Pesquisadores da Escola Politécnica Federal de Zurique, na Suíça, desenvolveram um método de ataque chamado ZenHammer, que é uma variante de ataques da classe RowHammer, para modificar o conteúdo de bits individuais da memória dinâmica (DRAM), adaptado para uso em plataformas com processadores AMD. Métodos anteriores de ataques da classe RowHammer se limitavam a sistemas baseados em processadores Intel, mas a pesquisa realizada mostrou que distorções em células de memória também podem ser alcançadas em plataformas com controladores de memória da AMD.
O funcionamento do método foi demonstrado em sistemas AMD Zen 2 e Zen 3 com memória DDR4 de três dos principais fabricantes (Samsung, Micron e SK Hynix). O ataque permite contornar o mecanismo TRR (Target Row Refresh) implementado nos chips de memória, que visa proteger contra a distorção de células de memória em linhas adjacentes. De acordo com os pesquisadores, sistemas baseados em CPU AMD Zen 3 são mais vulneráveis do que sistemas com processadores Intel Coffee Lake, sendo mais fáceis e eficazes de atacar. Em sistemas AMD Zen 2, distorções em células foram alcançadas em 7 dos 10 chips DDR4 testados, enquanto em sistemas Zen 3, isso ocorreu em 6 de 10. Os pesquisadores também analisaram a possibilidade de realizar ataques em sistemas AMD Zen 4 com memória DDR5, mas o método desenvolvido para DDR4 foi reproduzido com sucesso apenas em 1 dos 10 chips de memória DDR5 testados. Vale destacar que a possibilidade de ataque não é descartada, mas requer o desenvolvimento de padrões de leitura mais eficazes, adequados para dispositivos DDR5.
Para trabalhar com chipsets AMD, foi possível adaptar exploits previamente desenvolvidos que alteram o conteúdo de entradas na tabela de páginas de memória (PTE, page table entry) para obter privilégios de kernel, contornando a verificação de senha/autorização através da modificação da memória do processo sudo e comprometendo a chave pública RSA-2048 armazenada na memória do OpenSSH para reconstruir a chave privada. O ataque às páginas de memória foi reproduzido em 7 dos 10 chips DDR4 testados, o ataque à chave RSA em 6 chips e o ataque ao sudo em 4 chips, com os tempos de ataque sendo de 164, 267 e 209 segundos, respectivamente.

O método também pode ser aplicado para atacar sistemas através de navegadores, para realizar alterações a partir de máquinas virtuais ou para organizar um ataque à rede. O código-fonte da ferramenta DARE para engenharia reversa da disposição de endereços na memória DRAM está disponível no GitHub sob a licença MIT, assim como dois conjuntos de utilitários para teste fuzzing da degradação de bits na memória — ddr4_zen2_zen3_pub para chips DDR4 (Zen 2 e Zen 3) e ddr5_zen4_pub para chips DDR5 (Zen 4), que podem ser usados para verificar se seus sistemas estão suscetíveis a ataques.

Para a degradação de bits, é utilizado o método RowHammer, que se baseia no fato de que a memória DRAM, que é um array bidimensional de células compostas por um capacitor e um transistor, quando lida continuamente em uma mesma área, provoca flutuações de tensão e anomalias que causam perda de carga nas células vizinhas. Se a intensidade de leitura for alta, uma célula vizinha pode perder uma quantidade significativa de carga e o próximo ciclo de regeneração não consegue restaurar seu estado original, resultando em uma alteração no valor dos dados armazenados na célula. Durante a pesquisa, foram reveladas características dos mecanismos de mapeamento de memória física e sincronização de atualização de memória em processadores AMD, o que permitiu recriar a endereçamento de baixo nível da DRAM, determinar os endereços das células vizinhas, desenvolver métodos de contorno de cache e calcular padrões e frequência de operações que levam à perda de carga.
Para proteção contra RowHammer, os fabricantes de chips utilizam o mecanismo TRR (Target Row Refresh), que bloqueia a degradação de células em casos específicos, mas não protege contra todas as possíveis variantes de ataque. O método de proteção mais eficaz continua sendo o uso de memória com códigos de correção de erros (ECC), que complicam significativamente, mas não eliminam completamente, a realização de ataques do tipo RowHammer. Aumentar a frequência de regeneração da memória também ajuda a reduzir a probabilidade de um ataque bem-sucedido.
A empresa AMD publicou um relatório sobre um problema, no qual afirma que os processadores AMD utilizam controladores de memória que estão de acordo com as especificações DDR, e como o sucesso do ataque depende principalmente das configurações do sistema e da memória DRAM, quaisquer questões sobre a mitigação do problema devem ser direcionadas aos fabricantes de memória e sistemas. Entre os métodos existentes para dificultar a realização de ataques do tipo Rowhammer, menciona-se o uso de memória ECC, o aumento da frequência de reativação da memória, a desativação do modo de reativação atrasada e o uso de processadores com controladores que suportam o modo MAC (Maximum Activate Count) para DDR4 (1ª, 2ª e 3ª gerações AMD EPYC
Fonte: opennet.ru
