Início TECNOLOGIA Ataque BadRAM para ignorar o mecanismo de atestado SEV-SNP em CPUs AMD

Ataque BadRAM para ignorar o mecanismo de atestado SEV-SNP em CPUs AMD

15
0

Uma equipe de pesquisadores das Universidades de Leuven, Lübeck e Birmingham desenvolveu um Ataque BadRAM (CVE-2024-21944) para contornar o mecanismo de atestado e comprometer ambientes protegidos pela extensão SEV-SNP em CPUs AMD. Para realizar o ataque, com poucas exceções, o invasor deve ter acesso físico aos módulos de memória e ser capaz de executar código de nível 0 do anel em um servidor executando ambientes convidados protegidos.

Antecedentes do AMD SEV-SNP

As extensões AMD SEV (Safe Encrypted Virtualization) visam fornecer garantias de integridade da memória da máquina digital, bem como proteção contra adulteração e análise por um administrador de sistema host capaz de executar código no nível do hipervisor. Inicialmente, a proteção AMD SEV estava limitada à criptografia do conteúdo da memória do sistema convidado e ao isolamento de registros. No entanto, os processadores AMD EPYC implementaram posteriormente a extensão SEV-SNP (Safe Nested Paging), que permite o trabalho seguro com tabelas de páginas de memória aninhadas, garante a integridade da memória e evita que o hipervisor modifique a memória do sistema convidado.

O mecanismo AMD SEV-SNP foi projetado para garantir que agências de inteligência ou pessoal em knowledge facilities e provedores de nuvem que executam sistemas convidados seguros não possam interferir no sistema convidado. O Ataque BadRAM fornece uma maneira de contornar essas proteções modificando os metadados SPD (Serial Presence Detect) em módulos de memória DDR4 ou DDR5. Se for bem-sucedido, o invasor poderá sobrescrever os dados criptografados na memória do sistema convidado (no nível do texto cifrado, sem descriptografá-los) e ignorar o mecanismo de atestado – por exemplo, para ocultar a introdução de um backdoor em uma máquina digital protegida pela tecnologia SEV-SNP .

Detalhes Técnicos do Ataque

O ataque é baseado na configuração de parâmetros de módulos de memória fictícios no SPD, forçando o processador a acessar endereços inexistentes mapeados para áreas de memória existentes. O invasor ajusta o SPD de forma que o módulo de memória reporte um tamanho maior que sua capacidade actual. Isso permite que o invasor mapeie a memória fictícia inexistente para um native DRAM actual que já está sendo usado de forma criptografada por sistemas convidados seguros.

Essa manipulação resulta em uma situação em que endereços diferentes apontam para a mesma memória física (ou seja, duas áreas são mapeadas para o mesmo chip DRAM). A área de memória mapeada fictícia pode então ser usada para acessar a memória actual já em uso, contornando efetivamente os mecanismos de proteção de memória da CPU.

Requisitos para o ataque

Para realizar o ataque, basta um programador simples que custa cerca de US$ 10, composto por um microcontrolador Raspberry Pi Pico, um soquete para módulos DDR4/DDR5 e uma fonte de alimentação. As ferramentas usadas no ataque, incluindo um módulo de kernel e explorações de protótipo, foram publicadas no GitHub.

Ataque BadRAM para ignorar o mecanismo de atestado SEV-SNP em CPUs AMD

Para alguns fornecedores de memória que não bloqueiam reescritas de SPD, é possível realizar o ataque programaticamente sem acesso físico ao servidor. Por exemplo, os módulos de memória retroiluminados RGB da Corsair podem ser modificados programaticamente. Em ataques totalmente baseados em software program, o sistema pode ser comprometido por meio de uma atualização maliciosa do BIOS ou sabotagem por administradores de servidores em serviços em nuvem.

Ataque BadRAM para ignorar o mecanismo de atestado SEV-SNP em CPUs AMD

Ataques Demonstrados

Dois ataques específicos foram demonstrados para validar o método:

  1. Ataque de repetição de texto cifrado: Ao usar o AMD SEV, os dados da memória são armazenados de forma criptografada. Embora o invasor não consiga descriptografar o conteúdo, ele pode ler os dados criptografados e substituí-los por outro conteúdo criptografado. Este ataque demonstra a capacidade de reproduzir texto cifrado.

  2. Ataque de desvio de atestado: O mecanismo de atestado SEV-SNP fornece prova criptográfica da integridade de uma máquina digital executada em um ambiente seguro. Um invasor pode interceptar o relatório de atestado de uma máquina digital legítima e substituí-lo por uma máquina digital comprometida, ocultando assim vestígios de injeção de backdoor.

Processadores afetados e mitigação

A vulnerabilidade afeta a 3ª e 4ª gerações dos processadores da série EPYC da AMD, que são fornecidos sob os codinomes Milão, Milão-X, Gênova, Bérgamo, Génova-Xe Siena. Para resolver a vulnerabilidade, a AMD lançou uma atualização de firmware SEV que implementa um ALIAS_CHECK mecanismo, que impede a manipulação de memória inerente a este ataque.

Comparação com tecnologias Intel e ARM

As tecnologias Scalable SGX e TDX da Intel não são vulneráveis ​​a esse ataque porque possuem verificações necessárias desde o início. A tecnologia Intel SGX mais antiga, que foi obsoleta em 2021, é parcialmente vulnerável ao ataque (semelhante ao anteriormente conhecido MemBuster ataque). Nesses casos, um invasor pode analisar os acessos à memória criptografada para ler o texto cifrado, mas não pode sobrescrevê-lo.

Braços Arquitetura de computação confidencial (CCA) extensões não foram testadas contra este ataque.

Vulnerabilidade adicional no AMD SEV-SNP

Foi relatada uma vulnerabilidade adicional relacionada ao AMD SEV-SNP. Esse problema existe no fork do emulador QEMU da AMD, projetado para executar máquinas virtuais com SEV-SNP. A vulnerabilidade permite que um administrador de ambiente host obtenha acesso root a sistemas convidados por meio da manipulação de tabelas ACPI. O problema surge porque, durante o processo de inicialização de um sistema convidado, a integridade do kernel Linux, do disco RAM inicial e dos parâmetros do kernel são verificados, mas as tabelas ACPI são ignoradas. Isto permite especialmente elaborados AML (linguagem de máquina ACPI) código a ser exposto pelo hipervisor e executado no ambiente convidado.

Argumenta-se que este problema não é específico do QEMU e está presente em todos os hipervisores e emuladores, já que o kernel do Linux confia inerentemente em quaisquer dados ACPI fornecidos pelo hipervisor.


Referências:

Caso você tenha encontrado algum erro no texto, envie uma mensagem ao autor selecionando o erro e pressionando Ctrl-Enter.

Você deve estar logado para comentar.