Fortalecendo a Segurança no Modo de Gerenciamento do Sistema
Novos métodos melhoram a proteção para SMM contra vulnerabilidades e ataques.
― 7 min ler
Índice
- A Necessidade de Segurança Aumentada no SMM
- Visão Geral do UEFI e do SMM
- Como os Atacantes Exploraram o SMM
- Apresentando o SmmPack
- A Estrutura do SmmPack
- Passos para Implementação do SmmPack
- Avaliando Modelos de Ameaça
- Avaliação de Desempenho do SmmPack
- Gerenciamento e Adoção do SmmPack
- Lidando com Código Compartilhado
- Conclusão
- Fonte original
- Ligações de referência
O Modo de Gestão de Sistema (SMM) é um modo especial e super privilegiado que rola em processadores x86 e x86-64. Ele é usado principalmente pra tarefas de baixo nível, tipo gerenciamento de energia e controle de hardware. O SMM se comunica com uma firmware chamada Interface de Firmware Extensível Unificada (UEFI). Essa firmware é essencial na hora de ligar o computador. Infelizmente, o SMM tem suas fraquezas. As pessoas mal intencionadas podem explorar essas brechas pra interferir na firmware UEFI, passando pelas medidas de segurança que os sistemas operacionais colocam.
Quando descobrem vulnerabilidades no SMM, isso é reportado como Vulnerabilidades e Exposições Comuns (CVEs). Mas, atualmente, não tem sistemas de segurança eficazes pra impedir que os atacantes analisem essas vulnerabilidades. Isso é um baita problema porque sem uma proteção adequada, os hackers conseguem manipular o SMM e acessar áreas sensíveis do sistema.
A Necessidade de Segurança Aumentada no SMM
Pra dificultar a análise dessas vulnerabilidades, novas soluções de segurança são necessárias. Uma dessas soluções é o SmmPack, que oferece ofuscação para os módulos SMM. A ideia principal por trás do SmmPack é criptografar os módulos SMM usando uma chave armazenada de forma segura dentro de um Módulo de Plataforma Confiável (TPM). Essa criptografia torna bem mais difícil pros atacantes acessarem e analisarem os módulos SMM.
Testando a eficácia do SmmPack, foi descoberto que ele limita os métodos que os atacantes normalmente usam pra conseguir esses módulos. Importante, o SmmPack não afeta o desempenho dos módulos SMM originais, garantindo que os sistemas mantenham sua eficiência.
Visão Geral do UEFI e do SMM
UEFI é um conjunto de especificações padronizadas que define como a firmware de um computador interage com seu sistema operacional. Um BIOS compatível com UEFI é composto por vários módulos armazenados em um chip de memória flash. O processo de inicialização é dividido em várias fases, com as mais importantes sendo Segurança (SEC), Inicialização Pré-EFI (PEI), Ambiente de Execução de Driver (DXE), Seleção de Dispositivo de Inicialização (BDS) e Tempo de Execução (RT).
Durante a fase DXE, o SMM é configurado, e os módulos SMM são carregados e executados. Esses módulos rolam em uma área segura de memória chamada RAM de Gestão de Sistema (SMRAM), que só pode ser acessada durante o SMM. Essa medida de segurança garante que os módulos SMM não possam ser lidos ou modificados facilmente.
Como os Atacantes Exploraram o SMM
Quando os atacantes conseguem acesso ao SMM, eles podem fazer mudanças não autorizadas no BIOS e inserir malware. Isso permite que eles contornem várias mecanismos de segurança, dando total controle sobre o sistema. As vulnerabilidades nos módulos SMM podem incluir erros de implementação, tipo acessar a memória fora do SMRAM designado.
Atualmente, recursos de segurança como inicialização segura não impedem esses tipos de ataque. Essa falta de defesa torna essencial implementar novos métodos que possam proteger os módulos SMM de ameaças potenciais.
Apresentando o SmmPack
SmmPack é uma estrutura projetada pra aumentar o custo e a complexidade da análise de vulnerabilidades nos módulos SMM. Aplicando criptografia, o SmmPack impede que os atacantes acessem ou analisem facilmente os módulos SMM. A chave para a criptografia é armazenada no TPM, que é um elemento de hardware seguro desenhado pra proteger chaves criptográficas.
Uma das características principais do SmmPack é que ele restringe o acesso a essa chave. Os atacantes não conseguem extrair a chave do TPM, mesmo que consigam acesso físico ao hardware. Além disso, qualquer modificação que possa permitir que eles contornem essa segurança mudará o Registro de Configuração de Plataforma (PCR) do TPM, assim, impedindo a recuperação da chave.
A Estrutura do SmmPack
O SmmPack funciona empacotando o módulo SMM através da criptografia e anexando um stub de descriptografia no final. Quando o módulo SMM empacotado é executado, ele primeiro roda o stub de descriptografia, que chama uma função pra descriptografar o módulo usando a chave armazenada no TPM.
Pra tornar esse processo tranquilo, o módulo SmmPack deve ser carregado logo no começo da fase DXE. Então, quando os módulos SMM são executados, eles permanecem descriptografados no SMRAM durante o tempo que rodam.
Passos para Implementação do SmmPack
Implementar o SmmPack envolve vários passos:
- Geração de Chave: O primeiro passo é definir uma chave única pra implementação do BIOS.
- Empacotamento dos Módulos SMM: Cada módulo SMM deve ser criptografado, e o stub de descriptografia deve ser adicionado.
- Cálculo do Valor do PCR: O valor do PCR deve ser determinado durante a execução.
- Selagem da Chave: Por fim, a chave é selada dentro do TPM pra evitar acessos não autorizados.
Seguindo esses passos, os módulos SMM podem ser efetivamente protegidos de análises não autorizadas.
Avaliando Modelos de Ameaça
SmmPack é projetado pra enfrentar diferentes classes de atacantes com base nos níveis de acesso deles:
- Classe 1: Os atacantes têm acesso apenas aos arquivos de atualização do BIOS. Eles podem baixar esses arquivos, mas o conteúdo vai estar criptografado e não vai ser facilmente analisável.
- Classe 2: Os atacantes podem rodar software arbitrário no sistema operacional que controlam. Eles podem tentar despejar o BIOS pra acessar os módulos SMM. Mas, como os módulos estão criptografados, eles não vão conseguir analisá-los facilmente.
- Classe 3: Os atacantes mais sofisticados têm acesso direto ao hardware. Eles podem tentar usar técnicas como ataques de boot frio pra acessar módulos descriptografados. Embora seja possível, esses ataques são bem desafiadores e custosos devido à existência de mecanismos de segurança adicionais.
Avaliação de Desempenho do SmmPack
Ao implementar o SmmPack, é importante analisar seu impacto no desempenho do sistema. O aumento no tempo de inicialização e no tamanho do BIOS é mínimo. Por exemplo, testes mostraram que o tempo de inicialização adicionado foi de aproximadamente 0,36 segundos, representando só cerca de 2,77% do tempo total de inicialização no ambiente experimental.
Além disso, a sobrecarga de tamanho devido ao SmmPack foi considerada desprezível, representando apenas uma pequena fração dos dados totais no sistema. Esse impacto mínimo no desempenho demonstra que o SmmPack é realista e prático pra adoção.
Gerenciamento e Adoção do SmmPack
Pra implementar o SmmPack com sucesso, certas tarefas de gerenciamento precisam ser feitas antes e depois que o BIOS é enviado. Essas tarefas incluem determinar a chave de criptografia, empacotar os módulos SMM, selar a chave no TPM e realizar atualizações regulares do BIOS.
O empacotamento dos módulos SMM usando o SmmPack pode ser integrado nos procedimentos existentes de atualização do BIOS. Isso garante que o processo não seja muito complicado e possa ser escalado facilmente por vários dispositivos.
Lidando com Código Compartilhado
Outra consideração ao implementar o SmmPack é a questão do código compartilhado entre diferentes fornecedores. Mesmo que uma empresa adote o SmmPack, vulnerabilidades no código compartilhado de outras empresas ainda podem ser exploradas. Portanto, melhorias contínuas e atualizações dos módulos SMM são necessárias pra manter a segurança.
Conclusão
O SmmPack apresenta um avanço significativo na segurança dos módulos SMM, aumentando a dificuldade e os custos pros atacantes que tentam analisar vulnerabilidades. Essa abordagem não só melhora a segurança da firmware, mas também oferece uma solução prática e eficiente pros fabricantes. Com seu impacto mínimo no desempenho do sistema e métodos de implementação realistas, o SmmPack tá pronto pra desempenhar um papel essencial na proteção dos módulos SMM no futuro.
Título: SmmPack: Obfuscation for SMM Modules with TPM Sealed Key
Resumo: System Management Mode (SMM) is the highest-privileged operating mode of x86 and x86-64 processors. Through SMM exploitation, attackers can tamper with the Unified Extensible Firmware Interface (UEFI) firmware, disabling the security mechanisms implemented by the operating system and hypervisor. Vulnerabilities enabling SMM code execution are often reported as Common Vulnerabilities and Exposures (CVEs); however, no security mechanisms currently exist to prevent attackers from analyzing those vulnerabilities. To increase the cost of vulnerability analysis of SMM modules, we introduced SmmPack. The core concept of SmmPack involves encrypting an SMM module with the key securely stored in a Trusted Platform Module (TPM). We assessed the effectiveness of SmmPack in preventing attackers from obtaining and analyzing SMM modules using various acquisition methods. Our results show that SmmPack significantly increases the cost by narrowing down the means of module acquisition. Furthermore, we demonstrated that SmmPack operates without compromising the performance of the original SMM modules. We also clarified the management and adoption methods of SmmPack, as well as the procedure for applying BIOS updates, and demonstrated that the implementation of SmmPack is realistic.
Autores: Kazuki Matsuo, Satoshi Tanda, Kuniyasu Suzaki, Yuhei Kawakoya, Tatsuya Mori
Última atualização: 2024-05-08 00:00:00
Idioma: English
Fonte URL: https://arxiv.org/abs/2405.04355
Fonte PDF: https://arxiv.org/pdf/2405.04355
Licença: https://creativecommons.org/licenses/by/4.0/
Alterações: Este resumo foi elaborado com a assistência da AI e pode conter imprecisões. Para obter informações exactas, consulte os documentos originais ligados aqui.
Obrigado ao arxiv pela utilização da sua interoperabilidade de acesso aberto.