Ataques GDDRHammer y GeForge que distorsionan la memoria GPU para acceder a toda la memoria CPU.

Investigadores de varias universidades de EE. UU. y Australia han desarrollado dos ataques de tipo Rowhammer — GDDRHammer y GeForge — que permiten, al ejecutar un núcleo CUDA sin privilegios en la GPU NVIDIA, distorsionar bits individuales en los chips de memoria de video GDDR. A diferencia del método GPUHammer presentado el año pasado, los nuevos ataques no se limitan a afectar solo los datos procesados en la memoria de la GPU, sino que permiten obtener acceso completo a toda la memoria principal relacionada con el espacio de direcciones de la CPU. Los investigadores han demostrado exploits que proporcionan acceso root al sistema principal al ejecutar un núcleo CUDA sin privilegios en la GPU.

Ambos ataques logran la pérdida prematura de carga en ciertas celdas de memoria de video, a las que los atacantes no tienen acceso directo, lo que provoca un cambio en los bits almacenados en esas celdas. La capacidad de lectura y escritura en la memoria relacionada con el espacio de direcciones de la CPU se realiza mediante la intervención en el funcionamiento del asignador de memoria de la GPU (cudaMalloc) para romper la aislamiento de memoria de la GPU y mapear direcciones virtuales de la GPU a direcciones físicas arbitrarias de la GPU o la CPU.

La intervención se lleva a cabo mediante la distorsión de los valores de los bits en la memoria de video, donde se almacenan las tablas de páginas de la memoria de la GPU, responsables de la traducción de las direcciones virtuales a físicas. Las diferencias entre los ataques GDDRHammer y GeForge se deben al hecho de que el método GDDRHammer modifica la tabla de páginas de último nivel (PT — Last Level Page Table), mientras que el método GeForge modifica el directorio de páginas de último nivel (PD0 — Last Level Page Directory).

Entre otras cosas, las tablas de traducción de direcciones mencionadas se utilizan para organizar el acceso directo de la GPU a la memoria de la CPU, por lo que cambiar la dirección en la tabla de páginas de la GPU a una dirección física en la memoria RAM principal y establecer el indicador APERTURE, que activa el modo de mapeo de memoria de la CPU, permite leer y escribir datos accediendo a la memoria principal a través del bus PCIe con IOMMU desactivado (por defecto desactivado).

Ataques GDDRHammer y GeForge que distorsionan la memoria GPU para acceder a toda la memoria CPU.
Ataques GDDRHammer y GeForge que distorsionan la memoria GPU para acceder a toda la memoria CPU.

Los ataques exitosos han sido demostrados para las tarjetas gráficas profesionales NVIDIA RTX A6000 basadas en la microarquitectura Ampere (el costo de las nuevas tarjetas comienza en $6850, y de las usadas — en $4000) y modelos domésticos como la NVIDIA RTX 3060 ($250-300). La técnica de evasión de la protección contra Rowhammer, combinada con el uso de las capacidades de paralelización proporcionadas en las GPU, ha permitido aumentar 64 veces la frecuencia de ocurrencia de la distorsión de celdas en comparación con ataques anteriores. Como medida temporal para bloquear estos ataques, se puede habilitar el modo de corrección de errores ECC (Códigos de Corrección de Errores) con el comando "nvidia-smi -e 1", pero esto conlleva un costo adicional y potencialmente puede ser eludido usando métodos de ataque como ECCploit y ECC.fail.

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 agregaron el mecanismo TRR (Target Row Refresh), pero resultó que este solo bloquea la distorsión de celdas en casos particulares y no protege 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, así como para la memoria GDDR de las GPU NVIDIA. Además, se encontraron maneras de eludir la corrección de errores ECC y se propusieron opciones para realizar ataques a través de la red y mediante la ejecución de código JavaScript en el navegador.

Fuente: opennet.ru

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster