Blacksmith: un novo ataque á memoria DRAM e aos chips DDR4

Un equipo de investigadores da ETH Zurich, Vrije Universiteit Amsterdam e Qualcomm publicaron un novo método de ataque RowHammer que pode alterar o contido de bits individuais de memoria dinámica de acceso aleatorio (DRAM). O ataque recibiu o nome en clave de Blacksmith e identificouse como CVE-2021-42114. Moitos chips DDR4 equipados con protección contra métodos de clase RowHammer coñecidos anteriormente son susceptibles ao problema. As ferramentas para probar a vulnerabilidade dos seus sistemas publícanse en GitHub.

Lembre que os ataques de clase RowHammer permítenche distorsionar o contido dos bits de memoria individuais lendo cíclicamente os datos das celas de memoria veciñas. Dado que a memoria DRAM é unha matriz bidimensional de celas, cada unha formada por un capacitor e un transistor, a realización de lecturas continuas da mesma rexión da memoria produce flutuacións de voltaxe e anomalías que provocan unha pequena perda de carga nas células veciñas. Se a intensidade de lectura é alta, entón a cela veciña pode perder unha cantidade suficientemente grande de carga e o seguinte ciclo de rexeneración non terá tempo para restaurar o seu estado orixinal, o que provocará un cambio no valor dos datos almacenados na cela. .

Para protexerse contra RowHammer, os fabricantes de chips propuxeron o mecanismo TRR (Target Row Refresh), que protexe contra a corrupción das celas nas filas adxacentes, pero como a protección estaba baseada no principio de "seguridade pola escuridade", non resolveu o problema no momento. a raíz, pero protexido só de casos especiais coñecidos, o que facilitaba atopar formas de evitar a protección. Por exemplo, en maio, Google propuxo o método Half-Double, que non se viu afectado pola protección TRR, xa que o ataque afectou ás células que non estaban directamente adxacentes ao obxectivo.

O novo método de Blacksmith ofrece unha forma diferente de evitar a protección TRR, baseada nun acceso non uniforme a dúas ou máis cadeas de agresores a diferentes frecuencias para provocar fugas de carga. Para determinar o patrón de acceso á memoria que conduce á fuga de carga, desenvolveuse un fuzzer especial que selecciona automaticamente os parámetros de ataque para un chip específico, variando a orde, intensidade e sistematicidade do acceso ás células.

Tal enfoque, que non está asociado a influír nas mesmas celas, fai que os métodos actuais de protección TRR sexan ineficaces, que dunha forma ou outra se reducen a contar o número de chamadas repetidas ás celas e, cando se alcanzan certos valores, iniciar a recarga. de células veciñas. En Blacksmith, o patrón de acceso esténdese por varias celas á vez desde diferentes lados do obxectivo, o que permite conseguir fugas de carga sen alcanzar os valores límite.

O método resultou ser significativamente máis eficaz que os métodos propostos anteriormente para evitar o TRR: os investigadores lograron conseguir unha distorsión de bits nos 40 chips de memoria DDR4 comprados recentemente por Samsung, Micron, SK Hynix e un fabricante descoñecido (o fabricante foi non especificado en 4 fichas). A modo de comparación, o método TRRespass proposto anteriormente polos mesmos investigadores foi efectivo para só 13 dos 42 chips probados nese momento.

En xeral, espérase que o método Blacksmith se aplique ao 94% de todos os chips DRAM do mercado, pero os investigadores din que algúns chips son máis vulnerables e máis fáciles de atacar que outros. O uso de códigos de corrección de erros (ECC) nos chips e a duplicación da taxa de actualización da memoria non proporciona unha protección completa, pero complica o funcionamento. Cabe destacar que o problema non se pode bloquear en chips xa lanzados e require a implementación dunha nova protección a nivel de hardware, polo que o ataque seguirá sendo relevante durante moitos anos.

Exemplos prácticos inclúen métodos para usar Blacksmith para cambiar o contido das entradas na táboa de páxinas de memoria (PTE, entrada da táboa de páxinas) para obter privilexios do núcleo, corrompindo a clave pública RSA-2048 almacenada na memoria en OpenSSH (pode traer a chave pública en OpenSSH). máquina virtual doutra persoa para que coincida coa clave privada do atacante para conectarse á máquina virtual da vítima) e omita a comprobación de credenciais modificando a memoria do proceso sudo para obter privilexios de root. Dependendo do chip, leva entre 3 segundos e varias horas de tempo de ataque cambiar un bit de destino.

Ademais, podemos sinalar a publicación do marco aberto LiteX Row Hammer Tester para probar métodos de protección de memoria contra ataques de clase RowHammer, desenvolvido por Antmicro para Google. O marco baséase no uso de FPGA para controlar completamente os comandos transmitidos directamente ao chip DRAM para eliminar a influencia do controlador de memoria. O kit de ferramentas en Python ofrécese para a interacción con FPGA. A pasarela baseada en FPGA inclúe un módulo para transferencia de datos de paquetes (define patróns de acceso á memoria), un Payload Executor, un controlador baseado en LiteDRAM (procesa toda a lóxica necesaria para a DRAM, incluída a activación da fila e a actualización da memoria) e unha CPU VexRiscv. Os desenvolvementos do proxecto distribúense baixo a licenza Apache 2.0. Admítense varias plataformas FPGA, incluíndo Lattice ECP5, Xilinx Series 6, 7, UltraScale e UltraScale+.

Fonte: opennet.ru

Engadir un comentario