ZenHammer — un método de ataque para distorsionar el contenido de la memoria en plataformas AMD Zen

Investigadores de la Escuela Politécnica Federal de Zúrich han desarrollado el método de ataque ZenHammer, que es una variante de los ataques de la clase RowHammer para modificar el contenido de bits individuales en la memoria dinámica (DRAM), adaptado para su uso en plataformas con procesadores AMD. Los métodos de ataque anteriores de la clase RowHammer estaban limitados a sistemas basados en procesadores Intel, pero la investigación realizada ha mostrado que también se pueden lograr distorsiones en las celdas de memoria en plataformas con controladores de memoria de AMD.

El funcionamiento del método se ha demostrado en sistemas AMD Zen 2 y Zen 3 con memoria DDR4 de tres de los principales fabricantes (Samsung, Micron y SK Hynix). El ataque permite sortear el mecanismo TRR (Target Row Refresh) implementado en los chips de memoria, diseñado para proteger contra la distorsión de celdas de memoria en filas adyacentes. Según los investigadores, los sistemas basados en CPU AMD Zen 3 son más vulnerables que los sistemas con procesadores Intel Coffee Lake, y son más fáciles y eficientes de atacar. En los sistemas AMD Zen 2, se lograron distorsiones en las celdas en 7 de los 10 chips DDR4 probados, mientras que en los sistemas Zen 3 se logró en 6 de 10. Los investigadores también analizaron la posibilidad de llevar a cabo un ataque en sistemas AMD Zen 4 con memoria DDR5, pero el método de ataque desarrollado para DDR4 solo se pudo reproducir con éxito en 1 de los 10 chips de memoria DDR5 probados; sin embargo, no se descarta la posibilidad de ataque, pero requiere el desarrollo de patrones de lectura más efectivos adecuados para dispositivos DDR5.

Se logró adaptar exploits previamente desarrollados para trabajar con chips AMD, que modifican el contenido de las entradas de la tabla de páginas de memoria (PTE, page table entry) para obtener privilegios de núcleo, eludiendo la verificación de contraseña/autorizaciones mediante la modificación de la memoria del proceso sudo y dañando la clave pública RSA-2048 almacenada en memoria en OpenSSH para recrear la clave privada. El ataque a las páginas de memoria se pudo reproducir en 7 de los 10 chips DDR4 probados, el ataque a la clave RSA en 6 chips, y el ataque a sudo en 4 chips, con tiempos de ataque de 164, 267 y 209 segundos, respectivamente.

ZenHammer - un método de ataque para distorsionar el contenido de la memoria en plataformas AMD Zen

El método también podría aplicarse para atacar sistemas a través de navegadores, para realizar cambios desde máquinas virtuales o para llevar a cabo un ataque de red. El código fuente de la herramienta DARE para la ingeniería inversa de la disposición de direcciones en la memoria DRAM está disponible en GitHub bajo la licencia MIT, así como dos conjuntos de herramientas para pruebas de fuzzing de distorsión de bits en memoria: ddr4_zen2_zen3_pub para chips DDR4 (Zen 2 y Zen 3) y ddr5_zen4_pub para chips DDR5 (Zen 4), que pueden utilizarse para verificar la vulnerabilidad de sus sistemas a attacks.

ZenHammer - un método de ataque para distorsionar el contenido de la memoria en plataformas AMD Zen

Para distorsionar los bits se utiliza el método RowHammer, que se basa en que en la memoria DRAM, que representa un arreglo bidimensional de celdas compuestas por un condensador y un transistor, la lectura continua de la misma área de memoria provoca fluctuaciones de voltaje y anomalías que causan una pequeña pérdida de carga en las celdas adyacentes. Si la intensidad de lectura es alta, la celda adyacente puede perder una cantidad suficiente de carga y el ciclo de regeneración siguiente no puede restaurar su estado original, lo que resulta en un cambio en el valor de los datos almacenados en la celda. La investigación ha identificado las características de los mecanismos de mapeo de la memoria física y sincronización con la actualización de la memoria utilizados en los procesadores AMD, lo que ha permitido recrear la direccionamiento de bajo nivel de la DRAM, determinar las direcciones de las celdas adyacentes, desarrollar métodos para evadir la caché y calcular patrones y frecuencias de operaciones que conducen a la pérdida de carga.

Para protegerse contra RowHammer, los fabricantes de chips aplican el mecanismo TRR (Target Row Refresh), que bloquea la distorsión de las celdas en casos específicos, pero no protege contra todas las posibles variantes de ataque. El método de protección más efectivo sigue siendo el uso de memoria con códigos de corrección de errores (ECC), que complican significativamente, pero no excluyen por completo la realización de ataques del tipo RowHammer. Aumentar la frecuencia de regeneración de la memoria también reduce la probabilidad de un ataque exitoso.

La empresa AMD ha publicado un informe sobre un problema, en el que se indica que en los procesadores AMD se utilizan controladores de memoria que cumplen con las especificaciones DDR, y dado que el éxito del ataque depende en gran medida de la configuración del sistema y de la memoria DRAM, cualquier consulta sobre la mitigación del problema debe dirigirse a los fabricantes de memoria y sistemas. Entre las formas existentes de dificultar los ataques de tipo Rowhammer se menciona el uso de memoria ECC, aumentar la frecuencia de regeneración de la memoria, desactivar el modo de regeneración intercalada y utilizar procesadores con controladores que soporten el modo MAC (Maximum Activate Count) para DDR4 (1ª, 2ª y 3ª generación AMD EPYC 'Naple', 'Rome' y 'Milan') y RFM (Refresh Management) para DDR5 (4ª generación AMD EPYC).

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster