Attacchi GDDRHammer e GeForge, che distorcono la memoria GPU per accedere all'intera memoria CPU

I ricercatori di diverse università degli Stati Uniti e dell'Australia hanno sviluppato due attacchi di tipo Rowhammer — GDDRHammer e GeForge — che permettono, eseguendo un nucleo CUDA non privilegiato su GPU NVIDIA, di alterare singoli bit nei chip di memoria video GDDR. A differenza del metodo GPUHammer presentato lo scorso anno, i nuovi attacchi non si limitano a influenzare i dati elaborati nella memoria della GPU, ma consentono di ottenere accesso completo all'intera memoria principale relativa allo spazio di indirizzamento della CPU. I ricercatori hanno dimostrato exploit che forniscono accesso root al sistema principale durante l'esecuzione di un nucleo CUDA non privilegiato sulla GPU.

Entrambi gli attacchi provocano una prematura perdita di carica in determinate celle della memoria video, a cui gli aggressori non hanno accesso diretto, portando così a una modifica dei bit memorizzati in tali celle. La capacità di leggere e scrivere nella memoria relativa allo spazio di indirizzamento della CPU è realizzata interferendo con il funzionamento dell'allocatore di memoria della GPU (cudaMalloc) per violare l'isolamento della memoria della GPU e mappare indirizzi virtuali della GPU a indirizzi fisici arbitrari della memoria della GPU o della CPU.

L'interferenza avviene tramite la distorsione 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 riguardano il 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 sono utilizzate per organizzare l'accesso diretto della GPU alla memoria della CPU, quindi modificare un indirizzo nella tabella delle pagine della GPU in un indirizzo fisico nella memoria RAM principale e impostare il flag APERTURE, che abilita la modalità di mappatura della memoria della CPU, consente di leggere e scrivere dati accedendo alla memoria principale tramite il bus PCIe con IOMMU disabilitato (disattivato di default).

Attacchi GDDRHammer e GeForge, che distorcono la memoria GPU per accedere all'intera memoria CPU
Attacchi GDDRHammer e GeForge, che distorcono la memoria GPU per accedere all'intera memoria CPU

Attacchi di successo sono stati dimostrati su schede grafiche professionali ad alte prestazioni NVIDIA RTX A6000 basate sull'architettura Ampere (il prezzo delle nuove schede parte da $6850 e per quelle usate da $4000) e modelli consumer NVIDIA RTX 3060 ($250-300). La tecnica di bypass della protezione Rowhammer sviluppata, insieme all'utilizzo delle funzionalità di parallelizzazione offerte dalla GPU, ha permesso di aumentare di 64 volte la frequenza degli errori nelle celle rispetto ai precedenti attacchi. Come misura temporanea per bloccare gli attacchi, si può attivare la modalità di correzione degli errori ECC (Error Correcting Codes) con il comando "nvidia-smi -e 1", ma questo porta a costi addizionali e può essere potenzialmente bypassato con metodi di attacco come ECCploit ed ECC.fail.

L'attacco RowHammer consente di alterare il contenuto di singoli bit di memoria DRAM attraverso la lettura ciclica dei dati dalle celle di memoria adiacenti. Poiché la memoria DRAM è costituita da un array bidimensionale di celle, ognuna delle quali è composta da un condensatore e un transistor, la lettura continua della stessa area di memoria provoca fluttuazioni di tensione e anomalie che possono causare una leggera perdita di carica nelle celle vicine. Se l'intensità di lettura è elevata, una cella adiacente può perdere una quantità sufficiente di carica e il successivo ciclo di rigenerazione potrebbe non riuscire a ripristinare il suo stato originale, portando a una modifica del valore dei dati memorizzati nella cella.

Il metodo di attacco Rowhammer è stato proposto nel 2014, dopo di che è iniziato un gioco di "gatti e topi" tra i ricercatori di sicurezza e i produttori di hardware: i produttori di chip di memoria cercavano di bloccare la vulnerabilità mentre i ricercatori trovavano nuovi modi per eluderla. Ad esempio, per difendersi da RowHammer, i produttori di chip hanno aggiunto il meccanismo TRR (Target Row Refresh), ma si è scoperto che blocca la distorsione delle celle solo in casi specifici e non protegge da tutte le possibili varianti d'attacco. I metodi di attacco sono stati sviluppati per chip DDR3, DDR4 e DDR5 su sistemi con processori Intel, AMD e ARM, così come per la memoria GDDR delle GPU NVIDIA. Inoltre, sono stati trovati modi per bypassare la correzione degli errori ECC e sono state proposte varianti per eseguire attacchi attraverso la rete e tramite l'esecuzione di codice JavaScript nel browser.

Fonte: opennet.ru

Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS 🔥 Acquista un hosting affidabile per siti con protezione DDoS, server VPS VDS | ProHoster