Un nuevo ataque de tipo Rowhammer, denominado GPUThor, ha sido revelado recientemente. Este puede eludir las protecciones de código de corrección de errores (ECC) en GPUs NVIDIA, permitiendo ataques de denegación de servicio (DoS) y escalada de privilegios hasta nivel root.
Según un artículo publicado por investigadores de la Universidad de Toronto, GPUThor alcanza tasas de inversión de bits (bit flip) mucho más prácticas que conceptos anteriores como GPUHammer o GPUBreach, los cuales perdieron relevancia cuando se introdujo ECC. El ataque fue demostrado en GPUs NVIDIA workstation de clase Ampere con memoria GDDR6, incluyendo los modelos RTX A4000, RTX A4500, RTX A5000 y RTX A6000, ampliamente utilizados en infraestructuras de IA y nube.
Mejora del ataque GPUThor
Rowhammer es una clase de ataques donde se accede repetidamente a filas de memoria ('martillado') para incrementar la probabilidad de que bits en regiones adyacentes cambien de estado, lo que puede provocar corrupción de datos y riesgos de seguridad. En el contexto de entrenamiento de modelos de IA, un ataque exitoso podría afectar gravemente la precisión del modelo.
NVIDIA emplea mitigaciones como SECDED ECC para corregir errores de un bit y detectar errores de dos bits en bloques de memoria monitoreados. Sin embargo, los investigadores ajustaron GPUThor para que el 'martillado' siga un patrón no uniforme, a una velocidad que evita activar las mitigaciones Target Row Refresh (TRR) de GDDR6. Para ello, consideraron dos comportamientos no documentados de la GPU: cómo se combinan las solicitudes de memoria repetidas y con qué frecuencia se activa TRR.
En comparación con ataques anteriores, este ajuste generó 6.6 veces más activaciones de filas agresoras, logrando entre 72,000 y 377,000 inversiones por GB en las GPUs probadas sin protecciones ECC. Estas cifras son entre 4,548 y 23,597 veces superiores a las de GPUHammer, acercándose a las tasas de ataques Rowhammer de CPU potentes como Blacksmith.
Con GPUThor, encontrar un bit invertido explotable es posible en unos 1.1 minutos, frente a las 21.9 horas que tomaba con GPUHammer. Con ECC habilitado, GPUThor generó 387 errores de doble bit que ECC detecta pero no puede corregir, y dos errores de triple bit que ECC corrigió incorrectamente, resultando en corrupción de datos.
Denegación de servicio y escalada de privilegios
Los investigadores demostraron que GPUThor puede inducir un estado de denegación de servicio en una RTX A6000 con ECC, causando que la GPU se reinicie cada dos horas, interrumpiendo todas las cargas de trabajo. Tras repetir el ataque, el dispositivo puede llegar a marcarse a sí mismo como necesitado de reemplazo.
El ataque más interesante es la escalada de privilegios a nivel root, que afirman es posible corrompiendo las tablas de páginas de la GPU, otorgando a un programa CUDA sin privilegios acceso arbitrario a la memoria y abriendo una shell root en el sistema anfitrión.
Cómo defenderse del ataque
Además de los cuatro modelos confirmados como vulnerables, los investigadores señalan que, aunque existen limitaciones que mejoran la resiliencia a los ataques de denegación de servicio, la escalada de privilegios podría seguir funcionando en GPUs de clase servidor Ampere (A100) porque siguen dependiendo de ECC a nivel SECDED. En algunas GPUs Blackwell, la función de resiliencia RAS Repair hace que el ataque requiera más tiempo, pero no lo previene.
Según el artículo sobre GPUThor publicado ayer, incluso GPUs con HBM3/e y GDDR7 con ECC en el dado podrían ser vulnerables si se provocan inversiones de múltiples bits. Los investigadores informaron sus hallazgos a NVIDIA el 29 de abril, y el 21 de agosto la compañía publicó un aviso con recomendaciones.
NVIDIA recomienda habilitar tanto SYS-ECC como el aislamiento IOMMU/DMA, monitorear la telemetría de errores de GPU, y restringir la compartición o ejecución de cargas de trabajo no confiables. La compañía afirma que el riesgo varía según el dispositivo DRAM, la tecnología de memoria, el diseño de la plataforma, las defensas dentro de la DRAM y la configuración del sistema, señalando que no se observaron inversiones de bits en GPUs con GDDR6X o HBM2e probadas con los mismos patrones de ataque.
Los investigadores recomiendan evitar compartir GPUs entre inquilinos siempre que sea posible, monitorear los contadores de errores ECC y restringir cargas de trabajo CUDA no confiables. Afirman que una protección completa probablemente requerirá ECC de múltiples bits más fuerte y defensas a nivel de hardware en futuras GPUs.