Investigadores de la Universidad de Toronto han presentado el primer ataque de la clase Rowhammer utilizado para alterar el contenido de la memoria de video. Se ha demostrado la capacidad de realizar un ataque que puede sustituir hasta 8 bits de datos en una GPU discreta NVIDIA A6000 con memoria GDDR6. Se muestra un ejemplo práctico de cómo se puede utilizar tal alteración para interferir en la ejecución de modelos de aprendizaje automático y una disminución significativa (del 80% al 0.1%) en la precisión de los resultados que emiten al cambiar el valor de un solo bit.

Hasta ahora, la creación de ataques de la clase Rowhammer para la memoria de video ha sido problemática debido a la dificultad de determinar la disposición física de la memoria en chips GDDR, altas latencias de acceso a la memoria (4 veces más lentas) y una mayor frecuencia de actualización de memoria. Además, la investigación se ha visto obstaculizada por la implementación en los chips GDDR de mecanismos de protección propietarios contra manipulaciones que llevan a la pérdida prematura de carga, lo que requería la creación de bancos de pruebas de hardware especiales basados en FPGA para su análisis.
Para estudiar la memoria de video, los investigadores han creado una nueva técnica de ingeniería inversa de GDDR DRAM, y en el ataque se han utilizado optimizaciones de acceso a la memoria empleadas para organizar cálculos paralelos, que fueron utilizadas como potenciadores de la intensidad de acceso a celdas individuales. Para llevar a cabo el ataque en la GPU NVIDIA, se utilizó código de bajo nivel CUDA.
En el código de usuario CUDA, no se accede a direcciones físicas de memoria, pero en el controlador de NVIDIA se reflejó la memoria virtual en la misma memoria física, lo que los investigadores aprovecharon para calcular el desplazamiento de la memoria virtual y determinar la disposición de los bancos de memoria. El reconocimiento de los accesos a diferentes bancos de memoria se realizó mediante el análisis de latencias, que diferían al acceder a un solo banco o a varios bancos de memoria.
En sistemas que utilizan conjuntamente GPU, como servidores Para ejecutar modelos de aprendizaje automático, el ataque permite a un usuario modificar el contenido de la memoria de video con los datos de otro usuario. Como medida de protección, la empresa NVIDIA recomienda habilitar los códigos de corrección de errores (ECC, Error Correction Codes) con el comando "nvidia-smi -e 1" o utilizar series de tarjetas gráficas que soporten OD-ECC (On-Die ECC), como GeForce RTX 50, RTX PRO, GB200, B200, B100, H100, H200, H20 y GH200.
Según los investigadores, habilitar ECC en sistemas con GPU A6000 resulta en una disminución del rendimiento de la ejecución de modelos de aprendizaje automático de aproximadamente un 10% y una reducción del volumen de memoria del 6.25%. Las herramientas para realizar el ataque y llevar a cabo la ingeniería inversa de la disposición de la memoria de video en sistemas con GPU NVIDIA han sido publicadas en GitHub.
El ataque RowHammer permite distorsionar el contenido de bits individuales de la memoria DRAM mediante la lectura cíclica de datos desde celdas de memoria adyacentes. Dado que la memoria DRAM se presenta como un arreglo bidimensional de celdas, cada una compuesta por un condensador y un transistor, la lectura continua de una misma área de memoria provoca fluctuaciones de voltaje y anomalías que llevan a una pequeña pérdida de carga en celdas adyacentes. Si la intensidad de lectura es alta, entonces una celda adyacente puede perder suficiente carga y el ciclo de regeneración subsiguiente no logrará restaurar su estado original, lo que resultará en un cambio en el valor de los datos almacenados en la celda.
El método de ataque Rowhammer fue propuesto en 2014, después de lo cual comenzó un juego del gato y el ratón entre los investigadores de seguridad y los fabricantes de hardware: los fabricantes de chips de memoria intentaban bloquear la vulnerabilidad, mientras que los investigadores encontraban nuevas formas de eludirla. Por ejemplo, para protegerse contra RowHammer, los fabricantes de chips añadieron un mecanismo TRR (Target Row Refresh), pero resultó que solo bloquea la distorsión de celdas en casos particulares, sin proteger contra todas las posibles variantes de ataque. Se desarrollaron métodos de ataque para chips DDR3, DDR4 y DDR5 en sistemas con procesadores Intel, AMD y ARM. También se encontraron formas de eludir la corrección de errores ECC y se propusieron variantes de ataques a través de la red y mediante la ejecución de código JavaScript en el navegador.
Fuente: opennet.ru
