Un bitflip è una situazione in cui il valore di un bit in una sequenza di dati conservati nella memoria RAM cambia da 0 a 1 o viceversa in modo inatteso o indesiderato. Nel codice binario, i bit rappresentano l’elemento di più piccolo per esprimere un dato. I bitflip possono verificarsi a causa di varie cause, tra cui disturbi elettrici, errori di memoria, interferenze elettriche oppure a causa di attacchi informatici progettati per alterare quanto conservato in memoria.
Si tratta di occorrenze potenzialmente problematiche perché possono portare a errori nei dati, compromettere l’integrità delle informazioni e avere conseguenze indesiderate sul funzionamento di un sistema o di una specifica applicazione. Nel contesto della sicurezza informatica, gli attaccanti possono cercare di indurre bitflip nei dati per alterare o compromettere informazioni sensibili o crittografate.
Attacchi alla memoria RAM: RowHammer e Blacksmith
Nel 2014, un gruppo di ricercatori presentò un attacco chiamato RowHammer che suscitò notevole interesse e preoccupazione. L’idea era quella di danneggiare, modificare o rubare dati usando una semplice applicazione in esecuzione a livello utente disponendo l’accesso ripetuto a determinate regioni dei chip di memoria DDR. Da quel momento, i produttori di chip di memoria svilupparono alcune misure di difesa, principalmente limitando il numero di volte in cui i programmi possono accedere al contenuto della memoria RAM.
Un paio di anni fa, altri esperti utilizzarono la tecnica fuzzing sulle memorie DDR4: l’approccio, battezzato Blacksmith, era molto simile e gli studiosi dimostrarono di essere ad esempio in grado di recuperare chiavi RSA-2048 pubbliche e private conservate in RAM.
Bitflip con il nuovo attacco RowPress
Prendendo ispirazione da Blacksmith, un gruppo di ricercatori del Politecnico federale di Zurigo ha ideato un nuovo metodo di aggressione. Chiamata RowPress, la tecnica prevede di “martellare” regioni della memoria RAM selezionate con cura e lasciarle aperte per periodi più lunghi del normale. In questo modo si possono provocare bitflip sfruttabili per formare la base di un attacco vero e proprio.
Per difendersi da RowHammer, l’industria aveva sviluppato una linea di difesa nota come ECC (error-correcting code), capace tra l’altro di rilevare e riparare automaticamente i bit invertiti. Questa protezione è stata superata negli attacchi RowHammer contro la memoria DDR3 più vecchia; alcuni ricercatori teorizzano che potrebbe essere possibile superare ECC anche con le più moderne DDR4.
Come misura aggiuntiva, i chip DDR4 con ECC offrono anche un’altra forma di difesa, nota come Target Row Refresh (TRR). Essa monitora il numero di volte in cui una riga in memoria è utilizzata: al raggiungimento di una certa soglia le informazioni sono automaticamente ricaricate in modo da mitigare un eventuale attacco. Nel caso di RowPress, spiegano i ricercatori, TRR non sembra essere efficace.
Eventuali aggressori possono quindi sfruttare la tecnica RowPress per compromettere dati e mettere a rischio la sicurezza dei sistemi. Ulteriori ricerche sono ancora in corso e nuovi sviluppi sono attesi per i mesi a venire. Anche perché i chip DDR4 di tutti e tre i principali produttori (Samsung, Hynix e Micron) sono vulnerabili a RowPress, anche quando dotati di difese quali ECC e TRR.