Blacksmith - um novo ataque à memória DRAM e chips DDR4

Uma equipe de pesquisadores da ETH Zurich, Vrije Universiteit Amsterdam e Qualcomm publicou um novo método de ataque RowHammer que pode alterar o conteúdo de bits individuais de memória dinâmica de acesso aleatório (DRAM). O ataque recebeu o codinome Blacksmith e foi identificado como CVE-2021-42114. Muitos chips DDR4 equipados com proteção contra métodos da classe RowHammer anteriormente conhecidos são suscetíveis ao problema. Ferramentas para testar vulnerabilidades de seus sistemas são publicadas no GitHub.

Lembre-se de que os ataques da classe RowHammer permitem distorcer o conteúdo de bits de memória individuais lendo ciclicamente dados de células de memória vizinhas. Como a memória DRAM é um conjunto bidimensional de células, cada uma composta por um capacitor e um transistor, a realização de leituras contínuas da mesma região de memória resulta em flutuações de tensão e anomalias que causam uma pequena perda de carga nas células vizinhas. Se a intensidade de leitura for alta, a célula vizinha poderá perder uma quantidade suficientemente grande de carga e o próximo ciclo de regeneração não terá tempo para restaurar seu estado original, o que levará a uma alteração no valor dos dados armazenados na célula .

Para proteção contra RowHammer, os fabricantes de chips propuseram o mecanismo TRR (Target Row Refresh), que protege contra corrupção de células em linhas adjacentes, mas como a proteção era baseada no princípio de “segurança por obscuridade”, não resolveu o problema em a raiz, mas protegido apenas de casos especiais conhecidos, o que facilitou encontrar maneiras de contornar a proteção. Por exemplo, em maio, o Google propôs o método Half-Double, que não foi afetado pela proteção TRR, uma vez que o ataque afetou células que não estavam diretamente adjacentes ao alvo.

O novo método do Blacksmith oferece uma maneira diferente de contornar a proteção TRR, com base no acesso não uniforme a duas ou mais cadeias agressoras em frequências diferentes para causar vazamento de carga. Para determinar o padrão de acesso à memória que leva ao vazamento de carga, foi desenvolvido um fuzzer especial que seleciona automaticamente os parâmetros de ataque para um chip específico, variando a ordem, intensidade e sistematicidade do acesso à célula.

Tal abordagem, que não está associada à influência nas mesmas células, torna ineficazes os atuais métodos de proteção de TRR, que de uma forma ou de outra se resumem a contar o número de chamadas repetidas para as células e, ao atingir determinados valores, iniciar a recarga de células vizinhas. No Blacksmith, o padrão de acesso é espalhado por várias células ao mesmo tempo, de diferentes lados do alvo, o que permite obter vazamento de carga sem atingir valores limite.

O método revelou-se significativamente mais eficaz do que os métodos propostos anteriormente para contornar o TRR - os pesquisadores conseguiram obter distorção de bits em todos os 40 chips de memória DDR4 diferentes adquiridos recentemente, fabricados pela Samsung, Micron, SK Hynix e um fabricante desconhecido (o fabricante era não especificado em 4 chips). Para efeito de comparação, o método TRRespass proposto anteriormente pelos mesmos pesquisadores foi eficaz para apenas 13 dos 42 chips testados naquela época.

Em geral, espera-se que o método Blacksmith se aplique a 94% de todos os chips DRAM no mercado, mas os pesquisadores dizem que alguns chips são mais vulneráveis ​​e mais fáceis de atacar do que outros. O uso de códigos de correção de erros (ECC) em chips e a duplicação da taxa de atualização da memória não fornecem proteção completa, mas complicam a operação. Vale ressaltar que o problema não pode ser bloqueado em chips já lançados e requer a implementação de novas proteções em nível de hardware, portanto o ataque permanecerá relevante por muitos anos.

Exemplos práticos incluem métodos para usar o Blacksmith para alterar o conteúdo das entradas na tabela de páginas de memória (PTE, entrada da tabela de páginas) para obter privilégios de kernel, corrompendo a chave pública RSA-2048 armazenada na memória no OpenSSH (você pode trazer a chave pública máquina virtual de outra pessoa para corresponder à chave privada do invasor para se conectar à VM da vítima) e ignorar a verificação de credenciais modificando a memória do processo sudo para obter privilégios de root. Dependendo do chip, leva de 3 segundos a várias horas de ataque para alterar um bit alvo.

Além disso, podemos observar a publicação da estrutura aberta LiteX Row Hammer Tester para testar métodos de proteção de memória contra ataques da classe RowHammer, desenvolvida pela Antmicro para o Google. A estrutura é baseada no uso de FPGA para controlar totalmente os comandos transmitidos diretamente ao chip DRAM para eliminar a influência do controlador de memória. Toolkit em Python é oferecido para interação com FPGA. O gateway baseado em FPGA inclui um módulo para transferência de dados por pacotes (define padrões de acesso à memória), um Payload Executor, um controlador baseado em LiteDRAM (processa toda a lógica necessária para DRAM, incluindo ativação de linha e atualização de memória) e uma CPU VexRiscv. Os desenvolvimentos do projeto são distribuídos sob a licença Apache 2.0. Várias plataformas FPGA são suportadas, incluindo Lattice ECP5, Xilinx Series 6, 7, UltraScale e UltraScale+.

Fonte: opennet.ru

Adicionar um comentário