GPUThor: la evolución del concepto de Rowhammer | Blog oficial de Kaspersky

¿Cómo se puede vulnerar un servidor industrial a través de su GPU y no dejar ningún rastro? Un ataque de tal complejidad (el cual sería, en gran medida, teórico) normalmente aprovecharía vulnerabilidades presentes en el hardware. Pero el ataque que hoy nos concierne ni siquiera tiene que ver con errores en el diseño de los componentes: explota, en cambio, peculiaridades en la forma en la que funciona el hardware, a veces en el nivel físico. En un artículo reciente, un grupo de investigadores canadienses de la Universidad de Toronto publicó una descripción de GPUThor, un nuevo ataque de tipo Rowhammer que resulta más eficaz que el original y que explota, precisamente, el comportamiento del hardware en la memoria de video.

Rowhammer y las tarjetas gráficas

GPUThor es una evolución del ataque contra la RAM que se propuso en 2014 en la investigación de Rowhammer. El ataque Rowhammer, al igual que todos los de su clase, se basa en un hecho sencillo: las celdas que conforman una memoria no están aisladas las unas de las otras por completo. Si se accede una y otra vez a una misma fila de celdas, es posible ―bajo ciertas condiciones― ocasionar alteraciones en los datos de filas vecinas (o, mejor dicho, provocar una inversión de bits). Una vez que se confirma la ocurrencia de este efecto, solo resta encontrar la manera de sacarle provecho para, por ejemplo, llevar a cabo una denegación o incluso ejecutar código arbitrario.

Pero ¿qué tiene que ver todo esto con los servidores y los aceleradores gráficos? Según ha despegado el interés por las tecnologías de inteligencia artificial, también lo ha hecho la demanda de hardware que pueda realizar en paralelo una gran cantidad de cálculos similares. Para este tipo de tarea, resultan ideales los aceleradores integrados en las tarjetas gráficas para juegos. Con esto, quedan en la mira de los ataques Rowhammer los proveedores de nube que alquilan aceleradores gráficos. La idea es que un atacante paga para acceder a un chip gráfico y, a través de él, busca comprometer la infraestructura entera del proveedor. Esta es la razón por la que los ataques contra la memoria de video mantienen un interés especial para los investigadores.

Cómo funciona el ataque GPUThor

En los primeros meses de este año, se publicaron tres nuevos documentos. En cada uno de ellos, se demostraba un ataque diferente contra los aceleradores de Nvidia equipados con memoria GDDR6. Los resultados que se mostraban en los tres documentos eran bastante modestos: el mayor daño que se logró fue contra una tarjeta gráfica diseñada para el sector hogareño. Los ataques contra aceleradores industriales como el Nvidia A6000 fueron mucho menos efectivos. Además, ninguno de los ataques funcionó cuando estaba habilitada la protección de memoria ECC (siglas en inglés de “código de corrección de errores”).

GPUThor también examina la posibilidad de atacar los aceleradores Ampere de Nvidia, que son más antiguos y traen memoria GDDR6. En particular, los investigadores estudiaron los modelos A4000, A4500, A5000 y A6000. Pero la eficacia del nuevo método, determinada por el número de celdas cuyos datos se pudieron alterar por la fuerza, es notablemente mayor. Además, los investigadores argumentan que, en teoría, la técnica también se podría aplicar contra aceleradores más recientes.

GPUThor: la evolución del concepto de Rowhammer | Blog oficial de Kaspersky¿Cómo se llegó a estos resultados? El mecanismo de defensa estándar contra los ataques Rowhammer se llama TRR (siglas en inglés de “Target Row Refresh”, o actualización de fila objetivo). Los canadienses investigaron este mecanismo de cerca. Resulta que si TRR detecta intentos de acceso repetidos, obliga a las celdas vecinas a actualizarse, lo que hace difícil o imposible alterar sus datos. Para sortear el mecanismo TRR, los atacantes normalmente intentan acceder a celdas al azar. Esto confunde al sistema de defensa y lo vuelve menos eficaz. Los investigadores descubrieron que, en las tarjetas Nvidia Ampere, TRR se activa solamente una vez cada setenta y dos ciclos de actualización de las celdas de memoria. Sabiendo esto, aplicaron un patrón de acceso desigual, que buscaba acceder repetidamente a las celdas objetivo con mucha más insistencia que antes. ¿El resultado? Tomando como parámetro el ataque para memorias GDDR original llamado GPUHammer, GPUThor tuvo una efectividad entre 7000 y 23 000 veces superior.

Resultados y perspectivas

Al combinar este patrón de ataque más agresivo con otras mejoras, se lograron entre 72 000 y 377 000 inversiones de bits por gigabyte. Las variantes anteriores de Rowhammer apenas si conseguían unos pocos cientos de inversiones, y eso en el mejor de los casos. Con esta tasa de efectividad, los investigadores lograron provocar errores que involucraron dos e incluso tres bits. La protección ECC puede corregir fácilmente un error que afecte a un único bit, pero no a dos.

El nuevo método también demuestra el verdadero daño que podría causar un ataque Rowhammer: usar GPUThor para acceder repetidamente a la memoria de video da lugar a una denegación de servicio. El acelerador se reinicia, pierde información y, finalmente, le indica al administrador que se lo debe reemplazar.

A pesar de los resultados impresionantes que se obtuvieron en la investigación, los ataques con GPUThor no han sido exitosos. Por un lado, los investigadores no pudieron demostrar la factibilidad de ejecutar código arbitrario como resultado de una alteración de datos, si bien afirman que la posibilidad existe, aun con el ECC habilitado. Por otro lado, un ataque miles de veces más efectivo sugiere que existe una chance teórica de atacar también aceleradores más nuevos, pero, hasta el momento, esto tampoco ha quedado demostrado.

Aun así, los investigadores canadienses han mostrado que los ataques Rowhammer contra aceleradores gráficos tienen todavía potencial. No sorprendería que, en investigaciones futuras, se demuestren ataques similares contra dispositivos mucho más avanzados que antes se consideraban altamente resistentes.