I ricercatori di diverse università degli Stati Uniti e dell'Australia hanno sviluppato due attacchi di tipo Rowhammer — GDDRHammer e GeForge — che consentono, eseguendo un kernel CUDA non privilegiato su GPU NVIDIA, di corrompere singoli bit nelle schede di memoria GDDR. A differenza del metodo GPUHammer presentato lo scorso anno, i nuovi attacchi non sono limitati all'impatto sui dati elaborati nella memoria GPU, ma permettono l'accesso completo a tutta la memoria principale che appartiene allo spazio di indirizzamento della CPU. I ricercatori hanno dimostrato exploit che forniscono accesso root al sistema principale durante l'esecuzione di un kernel CUDA non privilegiato su GPU.
Entrambi gli attacchi causano una perdita di carica anticipata in determinate celle di memoria video, alle quali gli attaccanti non hanno accesso diretto, il che porta a una modifica dei bit memorizzati in queste celle. La possibilità di lettura e scrittura in memoria, relativa allo spazio di indirizzamento della CPU, è realizzata interferendo con il funzionamento dell'allocatore di memoria GPU (cudaMalloc) per violare l'isolamento della memoria GPU e mappare gli indirizzi virtuali GPU su indirizzi fisici arbitrari della memoria GPU o CPU.
L'interferenza avviene attraverso la corruzione dei valori dei bit nella memoria video, in cui sono memorizzate le tabelle delle pagine della memoria GPU, responsabili della traduzione degli indirizzi virtuali in fisici. Le differenze tra gli attacchi GDDRHammer e GeForge risiedono nel fatto che il metodo GDDRHammer modifica la tabella delle pagine di ultimo livello (PT — Last Level Page Table), mentre il metodo GeForge modifica il catalogo delle pagine di ultimo livello (PD0 — Last Level Page Directory).
Tra l'altro, le tabelle di traduzione degli indirizzi menzionate vengono utilizzate per organizzare l'accesso diretto della GPU alla memoria della CPU, quindi modificare un indirizzo nella tabella delle pagine GPU in un indirizzo fisico nella memoria RAM principale e impostare il flag APERTURE, che attiva la modalità di mapping della memoria CPU, consente di leggere e scrivere dati accedendo alla memoria principale tramite il bus PCIe con IOMMU disattivato (disattivato per impostazione predefinita).


Attacchi di successo sono stati dimostrati per schede grafiche professionali ad alte prestazioni NVIDIA RTX A6000 basate sull'architettura Ampere (il costo delle nuove schede parte da $6850, mentre per quelle usate parte da $4000) e per i modelli consumer NVIDIA RTX 3060 ($250-300). La tecnica di bypass della protezione Rowhammer, combinata con l'utilizzo dei strumenti di parallelizzazione delle operazioni offerti dalle GPU, ha permesso di aumentare la frequenza di occorrenza della distorsione delle celle di 64 volte rispetto agli attacchi precedenti. Come misura temporanea per bloccare gli attacchi, il comando "nvidia-smi -e 1" può attivare la modalità di correzione degli errori ECC (Error Correcting Codes), ma questo comporta un costo aggiuntivo ed è potenzialmente vulnerabile a metodi di attacco come ECCploit e ECC.fail.
L'attacco RowHammer consente di distorcere il contenuto di singoli bit della memoria DRAM mediante letture cicliche dei dati dalle celle di memoria adiacenti. Poiché la memoria DRAM è un array bidimensionale di celle, ognuna delle quali composta da un condensatore e un transistor, la lettura continua della stessa area di memoria porta a fluttuazioni di tensione e anomalie che causano una leggera perdita di carica nelle celle vicine. Se l'intensità della lettura è elevata, la cella adiacente può perdere un volume di carica sufficientemente grande e il ciclo di rigenerazione successivo non riesce a ripristinare il suo stato originale, causando una modifica del valore dei dati conservati nella cella.
Il metodo d'attacco Rowhammer è stato proposto nel 2014, dando inizio a un gioco del gatto e del topo tra i ricercatori di sicurezza e i produttori di hardware. I produttori di chip di memoria hanno cercato di bloccare la vulnerabilità, mentre i ricercatori scoprivano nuovi modi per bypassarla. Per esempio, a protezione da RowHammer, i produttori di chip hanno aggiunto il meccanismo TRR (Target Row Refresh), ma si è rivelato che questo blocca la distorsione delle celle solo in casi specifici e non protegge da tutte le possibili varianti di attacco. Sono stati sviluppati metodi d'attacco per chip DDR3, DDR4 e DDR5 su sistemi con processori Intel, AMD e ARM, nonché per la memoria GDDR delle GPU NVIDIA. Inoltre, sono stati trovati modi per bypassare la correzione degli errori ECC e sono state proposte varianti di attacco tramite rete e attraverso l'esecuzione di codice JavaScript nel browser.
Fonte: opennet.ru
