Blacksmith: un nuovo attacco alla memoria DRAM e ai chip DDR4

Un team di ricercatori dell'ETH di Zurigo, della Vrije Universiteit Amsterdam e di Qualcomm hanno pubblicato un nuovo metodo di attacco RowHammer in grado di alterare il contenuto di singoli bit di memoria ad accesso casuale dinamico (DRAM). L'attacco aveva il nome in codice Blacksmith e identificato come CVE-2021-42114. Molti chip DDR4 dotati di protezione contro i metodi della classe RowHammer precedentemente noti sono soggetti al problema. Gli strumenti per testare la vulnerabilità dei tuoi sistemi sono pubblicati su GitHub.

Ricordiamo che gli attacchi di classe RowHammer consentono di distorcere il contenuto dei singoli bit di memoria leggendo ciclicamente i dati dalle celle di memoria vicine. Poiché la memoria DRAM è una matrice bidimensionale di celle, ciascuna composta da un condensatore e un transistor, l'esecuzione di letture continue della stessa regione di memoria provoca fluttuazioni di tensione e anomalie che causano una piccola perdita di carica nelle celle vicine. Se l'intensità della lettura è elevata, la cella vicina potrebbe perdere una quantità di carica sufficientemente grande e il successivo ciclo di rigenerazione non avrà il tempo di ripristinare il suo stato originale, il che porterà a un cambiamento nel valore dei dati memorizzati nella cella .

Per proteggersi da RowHammer, i produttori di chip hanno proposto il meccanismo TRR (Target Row Refresh), che protegge dalla corruzione delle celle nelle file adiacenti, ma poiché la protezione era basata sul principio della “sicurezza tramite oscurità”, non ha risolto il problema a livello la radice, ma protetta solo da casi speciali noti, che hanno reso facile trovare modi per aggirare la protezione. Ad esempio, a maggio Google ha proposto il metodo Half-Double, che non è stato influenzato dalla protezione TRR, poiché l'attacco ha colpito celle che non erano direttamente adiacenti al bersaglio.

Il nuovo metodo di Blacksmith offre un modo diverso per bypassare la protezione TRR, basato sull'accesso non uniforme a due o più stringhe aggressori a frequenze diverse per causare perdite di carica. Per determinare il modello di accesso alla memoria che porta alla perdita di carica, è stato sviluppato uno speciale fuzzer che seleziona automaticamente i parametri di attacco per un chip specifico, variando l'ordine, l'intensità e la sistematicità dell'accesso alla cella.

Un tale approccio, che non è associato all'influenza sulle stesse celle, rende inefficaci gli attuali metodi di protezione TRR, che in una forma o nell'altra si riducono al conteggio del numero di chiamate ripetute alle celle e, quando vengono raggiunti determinati valori, ad avviare la ricarica delle cellule vicine. In Blacksmith, il modello di accesso è distribuito su più celle contemporaneamente da diversi lati del bersaglio, il che consente di ottenere perdite di carica senza raggiungere valori di soglia.

Il metodo si è rivelato significativamente più efficace rispetto ai metodi precedentemente proposti per aggirare il TRR: i ricercatori sono riusciti a ottenere una distorsione di bit in tutti i 40 diversi chip di memoria DDR4 recentemente acquistati, realizzati da Samsung, Micron, SK Hynix e da un produttore sconosciuto (il produttore era non specificato su 4 gettoni). Per fare un confronto, il metodo TRRespass precedentemente proposto dagli stessi ricercatori era efficace solo per 13 dei 42 chip testati in quel momento.

In generale, si prevede che il metodo Blacksmith si applichi al 94% di tutti i chip DRAM presenti sul mercato, ma i ricercatori affermano che alcuni chip sono più vulnerabili e più facili da attaccare rispetto ad altri. L'uso di codici di correzione degli errori (ECC) nei chip e il raddoppio della frequenza di aggiornamento della memoria non forniscono una protezione completa, ma complicano il funzionamento. È interessante notare che il problema non può essere bloccato nei chip già rilasciati e richiede l'implementazione di una nuova protezione a livello hardware, quindi l'attacco rimarrà rilevante per molti anni.

Esempi pratici includono metodi per utilizzare Blacksmith per modificare il contenuto delle voci nella tabella delle pagine di memoria (PTE, voce della tabella delle pagine) per ottenere privilegi del kernel, corrompendo la chiave pubblica RSA-2048 archiviata in memoria in OpenSSH (è possibile portare la chiave pubblica in macchina virtuale di qualcun altro per abbinare la chiave privata dell'aggressore per connettersi alla VM della vittima) e aggirare il controllo delle credenziali modificando la memoria del processo sudo per ottenere i privilegi di root. A seconda del chip, sono necessari da 3 secondi a diverse ore di tempo di attacco per modificare un bit di destinazione.

Inoltre, possiamo notare la pubblicazione del framework aperto LiteX Row Hammer Tester per testare i metodi di protezione della memoria contro gli attacchi della classe RowHammer, sviluppato da Antmicro per Google. Il framework si basa sull'uso di FPGA per controllare completamente i comandi trasmessi direttamente al chip DRAM per eliminare l'influenza del controller di memoria. Il toolkit in Python è offerto per l'interazione con FPGA. Il gateway basato su FPGA include un modulo per il trasferimento dei dati a pacchetto (definisce i modelli di accesso alla memoria), un Payload Executor, un controller basato su LiteDRAM (elabora tutta la logica richiesta per la DRAM, inclusa l'attivazione delle righe e l'aggiornamento della memoria) e una CPU VexRiscv. Gli sviluppi del progetto sono distribuiti sotto la licenza Apache 2.0. Sono supportate varie piattaforme FPGA, tra cui Lattice ECP5, Xilinx Series 6, 7, UltraScale e UltraScale+.

Fonte: opennet.ru

Aggiungi un commento