ZenHammer: metodo di attacco per corrompere il contenuto della memoria sulle piattaforme AMD Zen

I ricercatori dell'ETH di Zurigo hanno sviluppato l'attacco ZenHammer, una variante della classe di attacchi RowHammer per modificare il contenuto di singoli bit di memoria ad accesso casuale dinamico (DRAM), adattata per l'uso su piattaforme con processori AMD. I precedenti attacchi RowHammer sono stati limitati ai sistemi basati su processori Intel, ma la ricerca ha dimostrato che il danneggiamento della memoria può verificarsi anche su piattaforme con controller di memoria AMD.

Il metodo è stato dimostrato sui sistemi AMD Zen 2 e Zen 3 con memoria DDR4 di tre produttori leader (Samsung, Micron e SK Hynix). L'attacco aggira con successo il meccanismo TRR (Target Row Refresh) implementato nei chip di memoria, che ha lo scopo di proteggere dalla corruzione delle celle di memoria nelle righe adiacenti. Secondo i ricercatori, i sistemi basati su CPU AMD Zen 3 sono più vulnerabili dei sistemi con processori Intel Coffee Lake e sono più facili ed efficaci da attaccare. Sui sistemi AMD Zen 2, la distorsione cellulare è stata ottenuta per 7 su 10 chip DDR4 testati e sui sistemi Zen 3 per 6 su 10. I ricercatori hanno anche analizzato la possibilità di un attacco ai sistemi AMD Zen 4 con memoria DDR5, ma l'attacco Il metodo sviluppato per DDR4 è stato riprodotto con successo solo su 1 dei 10 chip di memoria DDR5 testati, mentre la possibilità di un attacco in sé non è esclusa, ma richiede lo sviluppo di modelli di lettura più efficienti adatti ai dispositivi DDR5.

Per lavorare con i chip AMD, sono stati in grado di adattare exploit precedentemente sviluppati che modificano il contenuto delle voci nella tabella delle pagine della memoria (PTE, voce della tabella delle pagine) per ottenere privilegi del kernel, aggirare i controlli di password/autorità modificando la memoria del processo sudo e danneggiare la chiave pubblica RSA-2048 archiviata in memoria in OpenSSH per ricreare la chiave privata. L'attacco alla pagina di memoria è stato riprodotto su 7 chip DDR10 su 4 testati, l'attacco chiave RSA su 6 chip e l'attacco sudo su 4 chip, con tempi di attacco rispettivamente di 164, 267 e 209 secondi.

ZenHammer: metodo di attacco per corrompere il contenuto della memoria sulle piattaforme AMD Zen

Il metodo può essere utilizzato anche per attaccare un sistema tramite browser, per apportare modifiche da macchine virtuali o per lanciare un attacco su una rete. Il codice sorgente del toolkit DARE per il reverse engineering del layout degli indirizzi nella memoria DRAM è pubblicato su GitHub sotto una licenza MIT, così come due set di utilità per il test fuzzing della corruzione dei bit nella memoria: ddr4_zen2_zen3_pub per chip DDR4 (Zen 2 e Zen 3) e ddr5_zen4_pub per chip DDR5 (Zen 4), che possono essere utilizzati per testare la suscettibilità agli attacchi dei loro sistemi.

ZenHammer: metodo di attacco per corrompere il contenuto della memoria sulle piattaforme AMD Zen

Per distorcere i bit viene utilizzato il metodo RowHammer, basato sul fatto che nella memoria DRAM, che è una matrice bidimensionale di celle costituita da un condensatore e un transistor, l'esecuzione di letture continue della stessa regione di memoria porta a fluttuazioni di tensione e anomalie che causano una piccola perdita di carica delle 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 . Il ricercatore ha identificato le caratteristiche della mappatura e della sincronizzazione della memoria fisica con i meccanismi di aggiornamento della memoria utilizzati nei processori AMD, che hanno permesso di ricreare l'indirizzamento DRAM di basso livello, determinare gli indirizzi delle celle vicine, sviluppare metodi per bypassare la memorizzazione nella cache e calcolare modelli e frequenza di operazioni che portano alla perdita di carica.

Per proteggersi da RowHammer, i produttori di chip utilizzano il meccanismo TRR (Target Row Refresh), che blocca la corruzione delle celle in casi speciali, ma non protegge da tutte le possibili opzioni di attacco. Il metodo di protezione più efficace resta l'utilizzo della memoria con codici di correzione degli errori (ECC), che complicano notevolmente, ma non eliminano completamente, gli attacchi RowHammer. Aumentare la frequenza di rigenerazione della memoria può anche ridurre la probabilità di un attacco riuscito.

AMD ha pubblicato un rapporto sul problema affermando che i processori AMD utilizzano controller di memoria conformi alle specifiche DDR e poiché il successo dell'attacco dipende principalmente dalle impostazioni del sistema e dalla memoria DRAM, le domande sulla risoluzione del problema dovrebbero essere rivolte ai produttori di memoria. e sistemi I modi esistenti per rendere più difficili gli attacchi di classe Rowhammer includono l'uso della memoria ECC, l'aumento della frequenza di rigenerazione della memoria, la disabilitazione della modalità di rigenerazione differita e l'uso di processori con controller che supportano la modalità MAC (Maximum Activate Count) per DDR4 (1°, 2° e 3° generazione AMD EPYC "Napoli", "Roma" e "Milano") e RFM (Refresh Management) per DDR5 (AMD EPYC di quarta generazione).

Fonte: opennet.ru

Aggiungi un commento