ZenHammer: método de ataque para corromper el contenido de la memoria en plataformas AMD Zen

Investigadores de ETH Zurich han desarrollado el ataque ZenHammer, una variante de la clase de ataques RowHammer para modificar el contenido de bits individuales de memoria dinámica de acceso aleatorio (DRAM), adaptada para su uso en plataformas con procesadores AMD. Los ataques RowHammer anteriores se han limitado a sistemas basados ​​en procesadores Intel, pero las investigaciones han demostrado que la corrupción de la memoria también se puede lograr en plataformas con controladores de memoria AMD.

El método se demostró en sistemas AMD Zen 2 y Zen 3 con memoria DDR4 de tres fabricantes líderes (Samsung, Micron y SK Hynix). El ataque evita con éxito el mecanismo TRR (Target Row Refresh) implementado en los chips de memoria, cuyo objetivo es proteger contra la corrupción de las 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 efectivos de atacar. En los sistemas AMD Zen 2, la distorsión celular se logró en 7 de cada 10 chips DDR4 probados, y en los sistemas Zen 3 en 6 de cada 10. Los investigadores también analizaron la posibilidad de un ataque en los sistemas AMD Zen 4 con memoria DDR5, pero el ataque El método desarrollado para DDR4 se reprodujo con éxito sólo en 1 de cada 10 chips de memoria DDR5 probados, mientras que la posibilidad de un ataque en sí no está excluida, pero requiere el desarrollo de patrones de lectura más eficientes y adecuados para dispositivos DDR5.

Para trabajar con chips AMD, pudieron adaptar exploits desarrollados previamente que cambian 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, eludir las comprobaciones de contraseña/autoridad modificando la memoria del proceso sudo. y dañar la clave pública RSA-2048 almacenada en la memoria en OpenSSH para recrear la clave privada. El ataque a la página de memoria se reprodujo en 7 de los 10 chips DDR4 probados, el ataque a la clave RSA en 6 chips y el ataque sudo en 4 chips, con tiempos de ataque de 164, 267 y 209 segundos, respectivamente.

ZenHammer: método de ataque para corromper el contenido de la memoria en plataformas AMD Zen

El método también se puede utilizar para atacar un sistema a través de navegadores, realizar cambios desde máquinas virtuales o lanzar un ataque a través de una red. El código fuente del kit de herramientas DARE para realizar ingeniería inversa en el diseño de direcciones en la memoria DRAM se publica en GitHub bajo una licencia MIT, así como dos conjuntos de utilidades para pruebas de corrupción de bits en la memoria: ddr4_zen2_zen3_pub para chips DDR4 (Zen 2 y Zen 3) y ddr5_zen4_pub para chips DDR5 ( Zen 4), que pueden usarse para probar la susceptibilidad de sus sistemas a ataques.

ZenHammer: método de ataque para corromper el contenido de la memoria en plataformas AMD Zen

El método RowHammer se utiliza para distorsionar bits, que se basa en el hecho de que en la memoria DRAM, que es una matriz bidimensional de celdas que consta de un capacitor y un transistor, la realización de lecturas continuas de la misma región de la memoria conduce a fluctuaciones de voltaje y anomalías que provocan una pequeña pérdida de carga en las células 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. . El investigador identificó las características del mapeo de la memoria física y la sincronización con los mecanismos de actualización de la memoria utilizados en los procesadores AMD, lo que permitió recrear el direccionamiento DRAM de bajo nivel, determinar las direcciones de las celdas vecinas, desarrollar métodos para evitar el almacenamiento en caché y calcular patrones y frecuencia. de operaciones que conduzcan a pérdida de carga.

Para protegerse contra RowHammer, los fabricantes de chips utilizan el mecanismo TRR (Target Row Refresh), que bloquea la corrupción de celdas en casos especiales, pero no protege contra todas las opciones de ataque posibles. El método de protección más eficaz sigue siendo el uso de memoria con códigos de corrección de errores (ECC), que complican significativamente, pero no eliminan por completo, los ataques RowHammer. Aumentar la frecuencia de regeneración de la memoria también puede reducir la probabilidad de que un ataque tenga éxito.

AMD ha publicado un informe sobre el problema indicando que los procesadores AMD utilizan controladores de memoria que cumplen con las especificaciones DDR y dado que el éxito del ataque depende principalmente de la configuración del sistema y la memoria DRAM, las preguntas sobre cómo resolver el problema deben dirigirse a los fabricantes de memoria. y sistemas Las formas existentes de dificultar los ataques de clase Rowhammer incluyen el uso de memoria ECC, el aumento de la frecuencia de regeneración de la memoria, la desactivación del modo de regeneración diferida y el uso de procesadores con controladores que admitan el modo MAC (Maximum Activate Count) para DDR4 (1.º, 2.º y 3.º generación AMD EPYC "Nápoles", "Roma" y "Milán") y RFM (Refresh Management) para DDR5 (AMD EPYC de cuarta generación).

Fuente: opennet.ru

Añadir un comentario