Dois grupos de cientistas desenvolveram independentemente os conceitos de ataque GDDRHammer e GeForge — um esquema para substituir dados na memória da placa de vídeo. Essa vulnerabilidade concede a um hipotético atacante acesso irrestrito a todo o sistema, incluindo a possibilidade de escalonamento de privilégios de usuário.

Fonte da imagem: gddr.fail

Em 2014, pesquisadores demonstraram pela primeira vez o ataque Rowhammer: o acesso repetido e rápido à RAM cria interferência elétrica que permite a troca de valores de bits — de zeros para uns e vice-versa. No ano seguinte, outro grupo de cientistas demonstrou que, ao atacar linhas específicas da DRAM que armazenam dados sensíveis, era possível contornar a proteção do sandbox de segurança e elevar os privilégios de usuários restritos. Ambos os ataques funcionaram em memória DDR3. O esquema do ataque Rowhammer continuou a evoluir e, no ano passado, foi adaptado para memória GDDR em placas de vídeo. Inicialmente, os pesquisadores trocaram apenas oito bits de memória e obtiveram uma degradação simples do modelo de IA.

Duas equipes de pesquisa independentes demonstraram recentemente dois mecanismos de ataque contra placas gráficas da geração Nvidia Ampere. Ao inverter bits da GDDR, eles obtiveram controle total sobre a memória da CPU e comprometeram completamente a máquina alvo. Para que o ataque funcione, o gerenciamento de memória IOMMU deve estar desativado, como é a configuração padrão da BIOS.

O ataque da primeira equipe, apelidado de GDDRHammer, funciona em placas gráficas profissionais Nvidia RTX 6000 baseadas na arquitetura Ampere, mas não na arquitetura Ada mais recente, que usa uma GDDR diferente e que os pesquisadores ainda não conseguiram realizar engenharia reversa. O esquema de ataque GDDRHammer permitiu aos pesquisadores atingir uma média de 129 inversões de bits por banco de memória e abriu caminho para a manipulação da alocação de memória, quebrando o isolamento.Tabelas de páginas — estruturas de dados responsáveis ​​por mapear endereços DRAM virtuais e físicos. Como resultado, um hipotético atacante obtém a capacidade de ler e gravar dados na memória da placa gráfica. Os métodos de defesa padrão contra ataques da classe Rowhammer não são mais suficientes, apontam os cientistas, porque não levam em conta o acesso à memória na placa gráfica.

Um esquema de ataque GeForge proposto por outro grupo de pesquisadores manipula não as tabelas de endereços de páginas de memória, mas um nível superior — o diretório que indica onde essas páginas são armazenadas. Usando esse esquema, os pesquisadores substituíram os bits 1171 em uma placa de vídeo Nvidia GeForce RTX 3060 e 202 em uma RTX 6000. Ao manipular os dados no diretório da tabela de memória, os pesquisadores conseguiram modificar arrays de endereços inteiros em vez de entradas individuais da tabela, abrindo um leque maior de possibilidades de exploração. A exploração do GeForge demonstrada pelos autores do projeto termina com a abertura de um terminal de prompt de comando com privilégios de root, o que significa privilégios ilimitados na máquina host. Eles afirmam que o mesmo pode ser feito em uma RTX 6000.

O driver da placa de vídeo Nvidia armazena as tabelas de páginas de memória em uma área reservada, que é ineficaz contra ataques da classe Rowhammer. Para contornar essa proteção, as explorações GDDRHammer e GeForge envolvem a movimentação desses dados para áreas inseguras. No caso do GDDRHammer, os bits responsáveis ​​pelo acesso à área protegida são manipulados: essas tabelas determinam qual área de memória é acessível, e a manipulação desses dados permite acesso arbitrário a toda a memória da placa gráfica. Além disso, é possível modificar os dados da tabela nas placas gráficas para que elas referenciem uma página na memória principal da CPU. Isso permite que o atacante tenha acesso de leitura e escrita a toda a memória do sistema, comprometendo assim toda a máquina.

No caso do GeForge, uma região de memória de 2 MB é isolada e controlada. Em seguida, é realizado um acesso esporádico à memória unificada.Os ataques de memória virtual (UVM) esvaziam o recurso de alocação de memória padrão do driver e, no momento certo, liberam um bloco isolado para que o driver possa alocar memória nesse fragmento. Como resultado, a entrada necessária acaba na subpágina correta dentro desse bloco, onde os valores dos bits podem ser substituídos.

Para se proteger contra esses esquemas de ataque, é necessário habilitar o recurso IOMMU (Unidade de Gerenciamento de Memória de Entrada/Saída) na BIOS. Esse recurso mapeia endereços virtuais visíveis para a máquina para endereços físicos na memória do host. Isso permite tornar fragmentos de memória específicos inacessíveis. No entanto, esse recurso é desabilitado por padrão por motivos de compatibilidade e porque reduz o desempenho do sistema. Outra opção é habilitar os códigos de correção de erros (ECC) pela linha de comando, mas isso também acarreta o risco de degradação de desempenho e pode ser contornado usando o efeito Rowhammer.

Até o momento, os cientistas confirmaram a capacidade de atacar as placas de vídeo Nvidia GeForce RTX 3060 e RTX 6000 da geração Ampere de 2020. No entanto, isso não exclui a possibilidade de hackear placas gráficas de outras gerações e fabricantes da mesma forma. Vale ressaltar também que a exploração do Rowhammer em condições reais ainda não foi documentada.

By admin

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *