Blacksmith: un nuevo ataque a la memoria DRAM y los chips DDR4

Un equipo de investigadores de ETH Zurich, Vrije Universiteit Amsterdam y Qualcomm han publicado un nuevo método de ataque RowHammer que puede alterar el contenido de bits individuales de memoria dinámica de acceso aleatorio (DRAM). El ataque recibió el nombre en código Blacksmith y se identificó como CVE-2021-42114. Muchos chips DDR4 equipados con protección contra métodos de clase RowHammer conocidos previamente son susceptibles al problema. Las herramientas para probar la vulnerabilidad de sus sistemas están publicadas en GitHub.

Recuerde que los ataques de clase RowHammer le permiten distorsionar el contenido de bits de memoria individuales leyendo cíclicamente datos de celdas de memoria vecinas. Dado que la memoria DRAM es una matriz bidimensional de celdas, cada una de las cuales consta de un capacitor y un transistor, realizar lecturas continuas de la misma región de la memoria produce fluctuaciones de voltaje y anomalías que causan una pequeña pérdida de carga en las celdas vecinas. Si la intensidad de lectura es alta, entonces la celda vecina puede perder una cantidad suficientemente grande de carga y el siguiente ciclo de regeneración no tendrá tiempo de restaurar su estado original, lo que conducirá a un cambio en el valor de los datos almacenados en la celda. .

Para protegerse contra RowHammer, los fabricantes de chips propusieron el mecanismo TRR (Target Row Refresh), que protege contra la corrupción de celdas en filas adyacentes, pero como la protección se basaba en el principio de "seguridad por oscuridad", no resolvió el problema en la raíz, pero protegido sólo de casos especiales conocidos, lo que facilitó la búsqueda de formas de eludir la protección. Por ejemplo, en mayo, Google propuso el método Half-Double, que no se vio afectado por la protección TRR, ya que el ataque afectó a células que no estaban directamente adyacentes al objetivo.

El nuevo método de Blacksmith ofrece una forma diferente de eludir la protección TRR, basada en el acceso no uniforme a dos o más cadenas agresoras en diferentes frecuencias para provocar una fuga de carga. Para determinar el patrón de acceso a la memoria que conduce a la fuga de carga, se ha desarrollado un fuzzer especial que selecciona automáticamente los parámetros de ataque para un chip específico, variando el orden, la intensidad y la sistematicidad del acceso a las celdas.

Este enfoque, que no está asociado con la influencia en las mismas celdas, hace que los métodos actuales de protección TRR sean ineficaces, que de una forma u otra se reducen a contar el número de llamadas repetidas a las celdas y, cuando se alcanzan ciertos valores, iniciar la recarga. de células vecinas. En Blacksmith, el patrón de acceso se distribuye en varias celdas a la vez desde diferentes lados del objetivo, lo que permite lograr una fuga de carga sin alcanzar valores umbral.

El método resultó ser significativamente más efectivo que los métodos propuestos anteriormente para evitar TRR: los investigadores lograron lograr una distorsión de bits en los 40 chips de memoria DDR4 diferentes comprados recientemente, fabricados por Samsung, Micron, SK Hynix y un fabricante desconocido (el fabricante era no especificado en 4 chips). A modo de comparación, el método TRRespass propuesto anteriormente por los mismos investigadores fue efectivo sólo para 13 de los 42 chips probados en ese momento.

En general, se espera que el método Blacksmith se aplique al 94% de todos los chips DRAM del mercado, pero los investigadores dicen que algunos chips son más vulnerables y más fáciles de atacar que otros. El uso de códigos de corrección de errores (ECC) en los chips y la duplicación de la frecuencia de actualización de la memoria no proporciona una protección completa, pero complica el funcionamiento. Cabe destacar que el problema no se puede bloquear en chips ya lanzados y requiere la implementación de nueva protección a nivel de hardware, por lo que el ataque seguirá siendo relevante durante muchos años.

Los ejemplos prácticos incluyen métodos para usar Blacksmith para cambiar el contenido de las entradas en la tabla de páginas de memoria (PTE, entrada de tabla de páginas) para obtener privilegios del kernel, corrompiendo la clave pública RSA-2048 almacenada en la memoria en OpenSSH (puede traer la clave pública en máquina virtual de otra persona para que coincida con la clave privada del atacante para conectarse a la máquina virtual de la víctima) y omitir la verificación de credenciales modificando la memoria del proceso sudo para obtener privilegios de root. Dependiendo del chip, se necesitan desde 3 segundos hasta varias horas de tiempo de ataque para cambiar un bit objetivo.

Además, podemos destacar la publicación del marco abierto LiteX Row Hammer Tester para probar métodos de protección de memoria contra ataques de clase RowHammer, desarrollado por Antmicro para Google. El marco se basa en el uso de FPGA para controlar completamente los comandos transmitidos directamente al chip DRAM para eliminar la influencia del controlador de memoria. Se ofrece un kit de herramientas en Python para la interacción con FPGA. La puerta de enlace basada en FPGA incluye un módulo para la transferencia de paquetes de datos (define patrones de acceso a la memoria), un Ejecutor de carga útil, un controlador basado en LiteDRAM (procesa toda la lógica requerida para la DRAM, incluida la activación de filas y la actualización de la memoria) y una CPU VexRiscv. Los desarrollos del proyecto se distribuyen bajo la licencia Apache 2.0. Se admiten varias plataformas FPGA, incluidas Lattice ECP5, Xilinx Series 6, 7, UltraScale y UltraScale+.

Fuente: opennet.ru

Añadir un comentario