Sono ormai passati tre anni dalla scoperta delle prime vulnerabilità presenti nei processori che utilizzano il meccanismo dell’esecuzione speculativa (vedere Verificare se il processore in uso è vulnerabile a Meltdown e Spectre), tecnica utilizzata per ridurre “il costo” delle operazioni di salto condizionato.
Di recente sono state rinvenute tra i campioni trasmessi a VirusTotal esempi di codici exploit funzionanti capaci di sottrarre informazioni personali dai sistemi Windows e Linux proprio usando gli attacchi Spectre e Meltdown: Trovati su VirusTotal exploit funzionanti per usare le vulnerabilità Spectre e Meltdown su Windows e Linux.
Google ha quindi deciso di rompere gli indugi e pubblicare il codice PoC (proof-of-concept) che dimostra come sia possibile sfruttare le vulnerabilità Spectre per leggere il contenuto della memoria con un ampio ventaglio di configurazioni hardware e software.
Le varie soluzioni che i produttori di browser hanno fino ad oggi implementato (i.e. Site Isolation, out-of-process iframes, Cross-Origin Read Blocking, e altre policy Cross-Origin) non scongiurano l’eventualità di un attacco ma più semplicemente aiutano a rendere indisponibili le aree di memoria contenenti i dati personali dell’utente.
A questo indirizzo gli esperti di Google hanno pubblicato un test che mostra come sia possibile leggere il contenuto della memoria del browser facendo leva su Spectre (su GitHub è stata pubblicata la relativa documentazione).
Google ha così voluto dimostrare come gli attacchi Spectre sferrati attraverso una pagina web siano assolutamente fattibili richiamando l’attenzione degli sviluppatori sulla tematica.
L’estensione Spectroscope consente ad esempio sia ai programmatori che agli esperti in materia di sicurezza di controllare gli effetti degli exploit sul codice JavaScript.
Il video mostra l’esempio di un attacco che ha successo su un sistema Ubuntu basato su processore Intel i7-6500U utilizzando Chrome 88. I ricercatori di Google hanno comunque voluto sottolineare come lo stesso problema interessi piattaforme Windows, Linux, macOS, Android e ChromeOS oltre che processori AMD e ARM.