Per individuare errori o problemi di sicurezza a livello software si utilizzano da tempo tecniche fuzzing: esse vengono utilizzate per provare il funzionamento di programmi che accettano input strutturati. Inviando dati casuali in ingresso si cerca di generare comportamenti anomali lato software e ingenerare comportamenti imprevisti.
Il fuzzing aiuta a scoprire e risolvere eventuali vulnerabilità non rilevate nelle precedenti fasi di test e debugging.
Nel 2014 un gruppo di ricercatori scoprì un insieme di vulnerabilità nelle memorie RAM battezzate complessivamente Rowhammer.
L’attacco permetteva di acquisire privilegi più elevati e disporre l’esecuzione di codice nocivo con i diritti più ampi possibile modificando il valore di bit adiacenti conservati in RAM.
Con il passare degli anni l’attacco Rowhammer è stato ulteriormente affinato ed esteso ad altre tipologie di memoria.
Inizialmente veniva utilizzato per guadagnare i diritti di root sui dispositivi Android ma successivamente fu dimostrato come si potessero attaccare anche dispositivi dotati di memorie ECC che integrano meccanismi di correzione degli errori.
A marzo 2020 è stato dimostrato come le misure di prevenzione degli attacchi non fossero sufficienti: i produttori di memorie DDR4 avevano implementato una serie di difese chiamate Target Row Refresh (TRR) che sembravano efficaci.
La novità è che altri ricercatori hanno messo a punto una modalità di attacco funzionante derivata da Rowhammer che questa volta interessa le memorie DDR4, fino a qualche tempo fa ritenute più sicure.
Il nuovo attacco, chiamato Blacksmith, consente di superare le difese dei moderni moduli DRAM aprendo la strada a un ampio ventaglio di possibili aggressioni.
Blacksmith permette ad esempio di bypassare tutte le protezioni di sicurezza implementate lato software facilitando l’acquisizione di privilegi più elevati, la corruzione del contenuto della memoria e altro ancora.
Il precedente attacco descritto a marzo 2020 non era in grado di aggredire tutte le memorie DRAM disponibili sul mercato mentre Blacksmith si è rilevato efficace con tutti i moduli RAM DDR4 che sono stati oggetto di verifica.
Come si vede nel video pubblicato su YouTube, il fuzzer è stato eseguito per 12 ore di fila con l’obiettivo di individuare i parametri ottimali da usare per l’attacco Blacksmith.
Utilizzando l’approccio illustrato, i ricercatori sono stati in grado di scambiare i bit (bit flipping) di circa 256 MB di memoria.
Per dimostrare che Blacksmith non è soltanto un attacco “teorico”, gli studiosi hanno effettuato una serie di test riuscendo ad esempio a recuperare chiavi pubbliche e private RSA-2048 utilizzate per l’autenticazione su un server SSH.
I più recenti moduli di memoria DDR5 sono già sul mercato e la loro adozione crescerà rapidamente nel corso degli anni a venire.
Con il lancio delle DDR5 gli attacchi come Rowhammer e Blacksmith potrebbero non costituire più un problema in quanto il sistema di difesa TRR è stato sostituito con il meccanismo chiamato refresh management, finora rivelatosi piuttosto solido ed efficace.