Investigadores de seguridad han demostrado que la vulnerabilidad física Rowhammer representa una amenaza severa para las unidades de procesamiento gráfico modernas, presentando dos cadenas de ataque completas denominadas GeForge y GDDRHammer. A diferencia de investigaciones preliminares que apenas lograron inducir una cantidad mínima de alteraciones de bits para degradar la inferencia de redes neuronales, estos nuevos tipos de ataque logran un compromiso absoluto a nivel de sistema.
Al ejecutar código estándar y sin privilegios en una GPU NVIDIA, un atacante puede corromper las estructuras de memoria internas del dispositivo para obtener acceso arbitrario de lectura y escritura sobre toda la memoria física de la CPU anfitriona. Esta manipulación cruzada permite al atacante escalar privilegios y obtener una consola de superusuario en el sistema operativo central.
Evasión de mitigaciones y patrones
El éxito de estos ataques depende de técnicas inéditas para evadir las mitigaciones de actualización de filas objetivo (TRR) implementadas en la memoria GDDR6. La investigación de GeForge introduce patrones no uniformes que abarcan múltiples intervalos de actualización, variando la intensidad y el orden de las activaciones de las filas de memoria para evitar la detección del hardware.
Para aplicar mapas de direcciones físicas obtenidos mediante perfiles fuera de línea a las asignaciones dinámicas de memoria, desarrollaron una técnica de anclaje de páginas que explota la asignación no lineal de las direcciones físicas hacia los conjuntos de la memoria caché L2.
Simultáneamente, el equipo de GDDRHammer descubrió que las filas de memoria DRAM en las tarjetas gráficas siguen una disposición geométrica no monótona, lo que les permitió construir patrones de doble cara altamente efectivos a pesar de que las direcciones físicas parecieran distantes. Al asignar tareas de bancos de memoria individuales a distintos multiprocesadores de transmisión y sincronizar parcialmente la ejecución, lograron maximizar el rendimiento de activación esquivando el muestreo de seguridad.
Estos enfoques generaron resultados masivos; el método GeForge indujo 1,171 alteraciones de bits en una RTX 3060 de consumo y 202 en una RTX A6000 profesional, mientras que GDDRHammer alcanzó un promedio de 1,032 alteraciones por gigabyte, representando un aumento de 64 veces respecto a intentos anteriores.
Manipulación de tablas de páginas y masaje de memoria
Para convertir estas alteraciones eléctricas en un arma, los atacantes apuntan a las tablas de páginas jerárquicas administradas por la unidad de gestión de memoria de la GPU. Debido a que el controlador asigna normalmente estas estructuras en regiones protegidas o impredecibles, los exploits se basan en técnicas de masaje de memoria para forzar la ubicación de las entradas de la tabla de páginas en ubicaciones físicas que el atacante sabe que son vulnerables.
El ataque GDDRHammer utiliza mapeos de memoria compartida para inundar el asignador, acortando la brecha entre las regiones de tablas de páginas y la memoria controlada por el usuario. GeForge se centra específicamente en corromper las entradas del Directorio de Páginas 0 (PD0).
Al asignar y liberar cuidadosamente fragmentos de Memoria Virtual Unificada, el atacante dirige la creación de nuevas estructuras PD0 directamente hacia una subpágina específica de 4 kilobytes. Una vez en posición, el proceso altera un bit dentro del puntero de dirección física de la entrada, redirigiéndolo hacia una tabla de páginas falsificada y controlada enteramente por el código malicioso.
Escalada de privilegios a través del bus PCIe
El control sobre la tabla de páginas de la tarjeta gráfica se traduce directamente en control sobre el procesador central del equipo. Las entradas de la tabla de páginas de NVIDIA contienen un campo de apertura específico que dicta si la dirección física asociada reside en la memoria local del dispositivo o en la memoria del sistema anfitrión. Al alterar este campo en la entrada falsificada, cualquier operación de lectura o escritura posterior realizada por la GPU se enruta a través del bus PCIe directamente hacia la memoria RAM física del host.
Este acceso directo a la memoria elude la propia unidad de gestión de memoria de la CPU y las protecciones de copia en escritura del sistema operativo. En su demostración práctica, los investigadores utilizaron esta capacidad para sobrescribir el segmento de código de la biblioteca estándar de C directamente en la memoria del host. Específicamente, inyectaron código máquina en la función de cierre de registro, la cual fue ejecutada posteriormente por un programa legítimo con privilegios elevados, otorgando de inmediato al atacante acceso absoluto al sistema.
Prevalencia del hardware y medidas de mitigación
Las pruebas exhaustivas confirmaron que esta vulnerabilidad está generalizada en el hardware actual. El estudio de GDDRHammer evaluó 25 tarjetas gráficas de gama alta, descubriendo que 16 de los 17 modelos RTX A6000 basados en la arquitectura Ampere eran susceptibles a estos ataques. Aunque la memoria con código de corrección de errores (ECC) puede mitigar la confiabilidad del ataque al corregir fallos de un solo bit, esta función está desactivada por defecto en muchas tarjetas de estación de trabajo debido a la penalización en el rendimiento y está completamente ausente en modelos de consumo masivo.
La defensa inmediata más efectiva contra el compromiso del host es la aplicación de una Unidad de Gestión de Memoria de Entrada-Salida (IOMMU). Cuando está activa, la IOMMU restringe el acceso directo de la GPU a los marcos de página del host explícitamente autorizados, neutralizando el mapeo de apertura falsificado. No obstante, ambos equipos de investigación señalan que la IOMMU se encuentra frecuentemente desactivada por defecto en sistemas Linux comerciales por razones de compatibilidad, dejando a una cantidad significativa de equipos expuestos a este vector de ataque.
Finalmente si estas interesado en poder conocer mas al respecto, puedes consultar los detalles en el siguiente enlace.
Continúar leyendo...