Solitamente, quando si parla di vulnerabilità, il colpevole è un software. I ricercatori del Google Project Zero hanno invece scoperto un bug hardware in alcuni moduli di memoria DDR3 che potrebbe essere sfruttato per attacchi di tipo “privilege escalation”. Alla vulnerabilità è stato dato il nome Rowhammer, in quanto legato al funzionamento della DRAM, la memoria volatile utilizzata in tutti i computer per immagazzinare temporaneamente dati ed istruzioni.
La DRAM (Dynamic Random Access Memory) è formata da un numero elevato di celle, in cui viene letta e scritta l’informazione digitale. Dal punto di vista hardware, questo tipo di memoria è costituito da una matrice di transistor e condensatori che permette di identificare la cella esatta, attraverso l’indicazione della riga e della colonna, ovvero del suo indirizzo. La miniaturizzazione dei chip di memoria ha permesso di ridurre le dimensioni fisiche e di aumentare la capacità della DRAM. Ma nelle DDR3 si possono verificare interazioni elettriche tra celle adiacenti, che provocano il cosiddetto “bit flipping“, ovvero il cambio del valore del bit memorizzato da 1 a 0 viceversa.
Il problema è stato descritto in dettaglio nel 2012 dai ricercatori di Intel e della Carnegie Mellon. All’epoca però nessuno ha immaginato che questo bug hardware potesse essere sfruttato per eseguire attacchi software. Google ha infatti dimostrato che il bit flipping può essere provocato mediante il “martellamento” delle celle di memoria (da cui il nome della vulnerabilità). Un cybercriminale potrebbe realizzare un programma o un processo che effettua migliaia di accessi ripetuti a due celle di memoria, causando la variazione del valore memorizzato in una terza cella adiacente.
Utilizzando due exploit, i ricercatori del Project Zero sono riusciti ad eludere le difese della sandbox di Chrome e ad accedere all’intera memoria fisica. I test sono stati effettuati su vari notebook che eseguivano una versione a 64 bit di Linux. In entrambi i casi è stato ottenuto un accesso con privilegi di amministratore. La stessa tecnica può essere impiegata su computer Windows. Google non ha specificato i nomi dei produttori dei moduli DRAM.
Per mitigare il problema, si potrebbe aumentare la frequenza di refresh della DRAM. In alternativa, si dovrebbero usare memorie di tipo ECC o DDR4. Non esiste un patch software che possa correggere un bug hardware.