I ricercatori del Politecnico federale di Zurigo hanno scoperto che l'attacco Rowhammer funziona anche sulle CPU AMD. ZenHammer consente di cambiare il valore dei bit nelle celle di memorie DDR4 installate in sistemi basati sulle architetture Zen 2 e Zen 3. L'azienda californiana ha pubblicato un bollettino di sicurezza per suggerire alcune mitigazioni.
Attacco Rowhammer per processori AMD
Ogni cella DRAM viene realizzata con un transistor e un condensatore. In base alla carica elettrica del condensatore viene memorizzato un bit 0 o 1. Per accedere in lettura o scrittura alla singola cella è necessario specificare l'indirizzo della riga e della colonna (la memoria è organizzata in matrici). A causa dell'elevata densità, le celle sono molto vicine, quindi i dati nelle celle possono cambiare.
L'attacco Rowhammer prevede l'alterazione dei dati attraverso accessi ripetuti (hammering) alle righe delle celle di memoria. Si crea quindi una fluttuazione di tensione che provoca la variazione dello stato di carica delle righe adiacenti. Ciò comporta la modifica del valore del bit memorizzato (bit flipping). È possibile quindi provocare questi cambiamenti in specifiche locazioni di memoria per accedere a dati sensibili (ad esempio, le chiavi crittografiche) o effettuare un escalation di privilegi.
L'attacco era indirizzato finora ai processori Intel e ARM. I ricercatori del Politecnico federale di Zurigo hanno scoperto che sono vulnerabili anche le CPU AMD basate sulle architetture Zen 2 e Zen 3. La modifica del valore dei bit è stata effettuata su sistemi con processori Ryzen 5 3600X/5 5600G e memoria DDR4. Durante i test, l'attacco ZenHammer è stato sfruttato per ottenere privilegi di amministratore e trovare una chiave privata RSA a 2.048 bit.
L'attacco funziona anche con memoria DDR5 e piattaforma Zen 4, ma le probabilità di successo sono inferiori. Dopo aver ricevuto le informazioni dai ricercatori, AMD ha pubblicato un bollettino di sicurezza per consigliare alcune mitigazioni, come l'uso di CPU EPYC e DRAM con supporto ECC (Error Correcting Code).