CacheWarp: uma vulnerabilidade que permite evasão do mecanismo de proteção SEV em processadores AMD

vulnerabilidade

Se exploradas, essas falhas podem permitir que invasores obtenham acesso não autorizado a informações confidenciais ou geralmente causem problemas

Faz pouco A notícia foi anunciada por pesquisadores do CISPA, sobre um novo método de ataque CacheWarp comprometerá o mecanismo de segurança AMD SEV usado em sistemas de virtualização para proteger máquinas virtuais contra interferência do hipervisor ou administrador do sistema host.

Em relação à vulnerabilidade (CacheWarp), os pesquisadores mencionam que é baseado no uso de uma vulnerabilidade (listado em CVE-2023-20592) causado por mau funcionamento do cache durante a execução da instrução do processador INVD, com o qual é possível obter discrepância de dados na memória e cache e contornar mecanismos para manter a integridade da memória da máquina virtual, implementados com base nas extensões SEV-ES e SEV-SNP.

O método proposto permite que um invasor com acesso ao hipervisor execute código de terceiros e aumente privilégios em uma máquina virtual protegida pelo AMD SEV. A vulnerabilidade afeta os processadores AMD EPYC da primeira à terceira geração.

A tecnologia AMD SEV é usado para isolamento de máquina virtual por provedores de nuvem. Proteção AMD SEV É implementado por criptografia em nível de hardware da memória da máquina virtual, Além disso, a extensão SEV-ES protege os registros da CPU. Somente o sistema convidado atual tem acesso aos dados descriptografados e, quando outras máquinas virtuais e o hipervisor tentam acessar essa memória, recebem um conjunto de dados criptografados.

em ataque é mencionado que Baseia-se no uso da instrução INVD para invalidar blocos no cache da página sem despejar os dados acumulados no cache na memória (writeback). Portanto, O método permite despejar dados modificados do cache sem alterar o estado da memória.

Para realizar um ataque, propõe-se usar exceções de software para interromper a operação da máquina virtual em dois lugares: primeiro, o invasor chama a instrução “wbnoinvd” para redefinir todas as operações de gravação de memória acumuladas no cache e, segundo, ele chama a instrução “invd” para retornar operações de gravação não refletidas em memória para o estado anterior.

Para verificar a vulnerabilidade, sFoi publicado um protótipo de exploração que permite inserir uma exceção em uma máquina virtual protegida pelo AMD SEV e reverter alterações na VM que não foram redefinidas na memória.

A reversão de uma alteração pode ser usada para alterar o fluxo de um programa retornando um endereço de retorno anterior na pilha ou para usar parâmetros de login de uma sessão anterior que foi autenticada anteriormente retornando um valor de atributo de autenticação.

Por exemplo, pesquisadores demonstrou a possibilidade de usar o método CacheWarp para realizar um ataque Bellcore em a implementação do algoritmo RSA-CRT na biblioteca ipp-crypto, que possibilitou a recuperação da chave privada, substituindo erros no cálculo da chave digital.

Finalmente, é mencionado que cachewarp geralmente não afeta a todos Processadores AMD, já que por exemplo para processadores AMD EPYC de XNUMXª geração (Zen 3), O problema é resolvido na atualização do microcódigo Novembro publicado pela AMD (a correção não causa degradação de desempenho).

Enquanto para a primeira e segunda geração do AMD EPYC (Zen 1 e Zen 2), nenhuma proteção fornecida, uma vez que essas CPUs não suportam a extensão SEV-SNP, que fornece controle de integridade para máquinas virtuais. A quarta geração de processadores AMD AMD EPYC “Genoa” baseados na microarquitetura “Zen 4” Não é vulnerável.

Além disso, A terceira geração de processadores AMD EPYC introduziu uma extensão adicional, SEV-SNP (Paging Nested Seguro), que garante operação segura de tabelas de páginas de memória aninhadas. Além da criptografia geral da memória e do isolamento de log, o SEV-SNP implementa medidas adicionais para proteger a integridade da memória, evitando alterações na VM pelo hipervisor. As chaves de criptografia são gerenciadas por um processador PSP (Platform Security Processor) separado integrado ao chip, implementado com base na arquitetura ARM.

Se você estiver interessado em saber mais sobre isso, você pode consultar os detalhes no link a seguir.