SMASH è un nuovo attacco basato su JavaScript che fornisce una lettura e scrittura arbitraria nel browser. Non si basa su vulnerabilità o bug del software, ma sfrutta invece il bug di Rowhammer molto più difficile da mitigare nell'hardware per avviare la catena di exploit. Tuttavia, sfruttare il bug di Rowhammer non è un compito facile. I moderni moduli di memoria sono dotati di una difesa in memoria dedicata contro Rowhammer, chiamata Target Row Refresh (TRR). Sebbene il lavoro precedente abbia dimostrato che TRR è vulnerabile a modelli di accesso più avanzati rispetto al normale Rowhammer, la costruzione di tali modelli dall'interno di JavaScript di alto livello è difficile.
SMASH dimostra, tuttavia, che non è impossibile creare schemi di accesso rapidi, che inducono Rowhammer e che evitano i TRR attraverso l'eliminazione della cache, senza fare affidamento su istruzioni di svuotamento di basso livello come CLFLUSH. Inoltre, la ricerca ha prodotto una nuova visione della TRR. E' stata in grado di sincronizzare le richieste di memoria con i comandi di aggiornamento inviati alla DRAM dal controller di memoria, consentendo un controllo molto dettagliato di quando e quali indirizzi sono esposti a TRR e quindi anche quando e quali indirizzi non lo sono.
Il lavoro svolto dai ricercatori conferma che il bug di Rowhammer continua a minacciare gli utenti del Web. Peggio ancora, le loro intuizioni sulla sincronizzazione mostrano che l'attaccante ha più controllo di quanto si pensasse in precedenza e renderà ancora più difficile costruire la corretta difesa Rowhammer di cui si ha bisogno fintanto che il bug persiste.
Più dettagli qui: https://www.vusec.net/projects/smash/ (eng)
Puoi prendere il codice per SMASH su https://github.com/vusec/smash
Commenti
Posta un commento