ZenHammer — un metodo di attacco per alterare il contenuto della memoria su piattaforme AMD Zen

I ricercatori dell'Istituto Federale Svizzero di Tecnologia di Zurigo hanno sviluppato il metodo di attacco ZenHammer, una variante degli attacchi di tipo RowHammer per modificare il contenuto di singoli bit nella memoria dinamica ad accesso casuale (DRAM), adattata per l'uso su piattaforme con processori AMD. I metodi di attacco precedenti di tipo RowHammer erano limitati a sistemi basati su processori Intel, ma la ricerca condotta ha dimostrato che è possibile ottenere distorsioni nelle celle di memoria anche su piattaforme con controller di memoria della AMD.

Il funzionamento del metodo è stato dimostrato su sistemi AMD Zen 2 e Zen 3 con memoria DDR4 di tre dei principali produttori (Samsung, Micron e SK Hynix). L'attacco consente di bypassare con successo il meccanismo TRR (Target Row Refresh) implementato nei chip di memoria, mirato a proteggere contro la distorsione delle celle di memoria nelle righe adiacenti. Secondo le stime dei ricercatori, i sistemi basati su CPU AMD Zen 3 sono più vulnerabili rispetto ai sistemi con processori Intel Coffee Lake e sono più facili ed efficaci da attaccare. Nei sistemi AMD Zen 2, le distorsioni delle celle sono state ottenute su 7 dei 10 chip DDR4 testati, mentre nei sistemi Zen 3 su 6 dei 10. I ricercatori hanno anche analizzato la possibilità di attacchi sui sistemi AMD Zen 4 con memoria DDR5, ma il metodo sviluppato per DDR4 è stato riprodotto con successo solo su 1 dei 10 chip di memoria DDR5 testati, sebbene la possibilità di attacco non sia esclusa, ma richiede lo sviluppo di modelli di lettura più efficaci, adatti per dispositivi DDR5.

Per lavorare con i chip AMD, è stato possibile adattare exploit precedentemente sviluppati, che modificano il contenuto delle voci nella tabella delle pagine di memoria (PTE, page table entry) per ottenere privilegi di kernel, bypassando il controllo della password/o dei permessi tramite la modifica della memoria del processo sudo e danneggiando la chiave pubblica RSA-2048 memorizzata in OpenSSH per ricostruire la chiave privata. L'attacco alle pagine di memoria è stato riprodotto su 7 dei 10 chip DDR4 testati, l'attacco alla chiave RSA su 6 chip e l'attacco a sudo su 4 chip, con un tempo di attacco di 164, 267 e 209 secondi, rispettivamente.

ZenHammer - metodo di attacco per alterare il contenuto della memoria sulle piattaforme AMD Zen

Il metodo può essere applicato anche per attaccare un sistema tramite browser, per apportare modifiche da macchine virtuali o per organizzare attacchi sulla rete. Su GitHub, sotto la licenza MIT, è disponibile il codice sorgente dello strumento DARE per il reverse engineering della mappatura degli indirizzi in memoria DRAM, così come due set di utility per il fuzzing e il test della distorsione dei bit in memoria - ddr4_zen2_zen3_pub per i chip DDR4 (Zen 2 e Zen 3) e ddr5_zen4_pub per i chip DDR5 (Zen 4), che possono essere utilizzati per verificare la vulnerabilità dei propri sistemi agli attacchi.

ZenHammer - metodo di attacco per alterare il contenuto della memoria sulle piattaforme AMD Zen

Per la distorsione dei bit viene utilizzato il metodo RowHammer, che si basa sul fatto che in memoria DRAM, che è un array bidimensionale di celle composte da un condensatore e un transistor, l'esecuzione di continui accessi alla stessa area di memoria provoca fluttuazioni di tensione e anomalie che portano a una leggera perdita di carica nelle celle adiacenti. Se l'intensità di lettura è alta, una cella adiacente può perdere una quantità significativa di carica e il ciclo di rigenerazione successivo potrebbe non riuscire a ripristinare il suo stato originale, portando a una modifica del valore dei dati memorizzati nella cella. Durante la ricerca, sono state identificate le peculiarità dei meccanismi di mapping della memoria fisica e di sincronizzazione con l'aggiornamento della memoria utilizzati nei processori AMD, che hanno consentito di ricreare un'addrizzazione a basso livello della DRAM, identificare gli indirizzi delle celle adiacenti, sviluppare metodi di bypass della cache, calcolare modelli e frequenze di operazioni che portano alla perdita di carica.

Per proteggersi dal RowHammer, i produttori di chip utilizzano il meccanismo TRR (Target Row Refresh), che blocca la distorsione delle celle in casi specifici, ma non protegge da tutte le possibili varianti di attacco. Il metodo di protezione più efficace rimane l'uso di memoria con codici di correzione degli errori (ECC), che complicano notevolmente, ma non escludono del tutto, la possibilità di attacchi di tipo RowHammer. Aumentare la frequenza di rigenerazione della memoria può anche ridurre la probabilità di un attacco riuscito.

L'azienda AMD ha pubblicato un rapporto su un problema, che afferma che nei processori AMD vengono utilizzati 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 dei problemi dovrebbero essere indirizzate ai produttori di memoria e ai sistemi. Tra i metodi esistenti per complicare l'esecuzione di attacchi di tipo Rowhammer viene menzionato l'uso di memoria ECC, l'aumento della frequenza di rigenerazione della memoria, la disattivazione della modalità di rigenerazione differita e l'utilizzo di processori con controller che supportano la modalità MAC (Maximum Activate Count) per DDR4 (1, 2 e 3 generazione AMD EPYC «Naple», «Rome» e «Milan») e RFM (Refresh Management) per DDR5 (4 generazione AMD EPYC).

Fonte: opennet.ru

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