Vulnerabilità Spectre: cos’è cambiato 4 anni dopo?
Sono passati quattro anni dalla prima pubblicazione della ricerca sulle vulnerabilità hardware Spectre e Meltdown. Da allora, i ricercatori hanno scoperto diverse falle simili, che sono potenzialmente in grado di far trapelare dati riservati. I ricercatori hanno anche mostrato esempi di attacchi che utilizzano queste vulnerabilità, anche se è improbabile che la maggior parte di essi siano utilizzati in natura. In questo approfondimento Kaspersky esamina lo stato di questi problemi hardware oggi e il loro potenziale utilizzo per attaccare le aziende.
Diverse varianti di Spectre
La notizia originale ad agosto 2018 rivelava tre vulnerabilità: Spectre v1 e v2, e Meltdown. Queste vulnerabilità hanno diverse caratteristiche comuni:
Il loro sfruttamento di solito comporta l’esecuzione di codice dannoso su un sistema vulnerabile, anche se di bassi privilegi. L’opzione più pericolosa è un attacco attraverso un browser quando si visita una pagina web “infetta”. Lo sfruttamento pratico richiede una serie di condizioni; in particolare, il codice dell’applicazione attaccata deve consentire la fuga di dati, avere un cosiddetto “gadget”, il cui accesso rende possibile l’attacco.
La fuga di dati stessa avviene attraverso canali laterali. Per questo motivo, la velocità della stessa è estremamente bassa. Un attacco riuscito può non lasciare alcuna traccia di accesso non autorizzato ai dati. In tutti i casi, inoltre, i ricercatori hanno sfruttato il sistema di predizione delle diramazioni. Questo meccanismo è stato introdotto più di 20 anni fa e permette di accelerare le prestazioni eseguendo un insieme di istruzioni anche prima di una richiesta esplicita della loro esecuzione da parte del programma. Se la predizione è corretta, le risorse del processore saranno utilizzate in modo più efficiente. Se la previsione è sbagliata, i calcoli vengono semplicemente scartati.
Sfruttando la vulnerabilità di Spectre v1, il processore legge dati che dovrebbero essere inaccessibili al programma. Questi vengono memorizzati nella cache e possono essere recuperati da lì attraverso canali laterali. Questo meccanismo era considerato sicuro, perché quel “segreto” erroneamente esposto non veniva trasmesso al programma. Tuttavia, i ricercatori hanno trovato il modo di leggere indirettamente quei dati.
Come contrastare Spectre
Teoricamente ci sono tre modi per rendere la vulnerabilità di un processore meno sfruttabile: i produttori possono emettere un aggiornamento del microcodice per i processori esistenti, possono modificare le nuove CPU o cercare di risolvere il problema attraverso gli aggiornamenti software. Spesso la vera mitigazione richiede una combinazione di aggiornamenti del firmware e del software. Il nuovo microcodice che copre alcune delle vulnerabilità è stato disponibile per i processori Intel dalla generazione Haswell del 2013. Le soluzioni hardware sono state implementate per la prima volta nell’ottava generazione di processori Intel, così come nelle CPU Zen 2 di AMD.
Le soluzioni software possono essere abbastanza complicate come dimostrano le possibili modifiche nel kernel Linux contro Spectre v1 e v2. È stata discussa una vasta gamma di misure, a seconda degli scopi e degli obiettivi di un particolare sistema, compresa la completa disabilitazione dell’esecuzione di codice speculativo con gravi conseguenze per le prestazioni della CPU.
Per la maggior parte delle organizzazioni il cui modello di business dipende dalle prestazioni di una grande flotta di server, questo calo di prestazioni rappresenta l’impatto più evidente delle misure anti-Spectre. Un benchmark relativamente recente sul sito web Phoronix, che esamina le prestazioni di varie applicazioni server, mostra una diminuzione delle prestazioni del 25% in media quando tutte le precauzioni anti-Spectre nel sistema operativo Linux sono abilitate.
Attacchi pratici e proof of concept
Nonostante il gran numero di tipi di attacco, la minaccia di furto di dati utilizzando Spectre è ancora teorica. Anche se ogni ricerca contiene del codice che dimostra la falla, ciò non significa che questo codice possa essere usato contro un sistema reale. Dopotutto i ricercatori hanno creato le condizioni ideali per l’attacco avendo un accesso illimitato al sistema. In questo caso, non è necessario utilizzare complessi metodi di esfiltrazione dei dati. Inoltre, la violazione dei dati dimostrata dai ricercatori è avvenuta in condizioni altamente improbabili.
Due attacchi pratici sono stati comunque mostrati l’anno scorso. A marzo, Google ha mostrato un concept di leaky.page: una pagina web che può estrarre dati dalla RAM. A settembre, è stato dimostrato un attacco Spook.js sull’ultima (al momento della ricerca) versione di Google Chrome (92) con protezione Spectre (isolamento delle pagine web in processi separati del browser).
Questo metodo ha permesso un vero e proprio furto di dati: i ricercatori hanno avuto accesso alle credenziali di un social network, ai dati del password manager e a un’immagine caricata da un utente su un cloud privato. Ma in tutti questi casi era comunque necessario avere una pagina “infetta” situata sullo stesso dominio. Per esempio, rubare una password di Tumblr comporta il caricamento di codice Javascript dannoso su un’altra pagina dello stesso social network.
Quanto è pericolosa oggi la minaccia?
Spook.js è stato neutralizzato con una patch software per il browser Chrome. Pertanto, in questo momento, non vi è alcuna minaccia immediata di sfruttamento delle vulnerabilità Spectre in condizioni reali. Tutti gli attacchi conosciuti sono estremamente complessi e richiedono un’estrema abilità da parte dell’hacker.
La maggior parte dei proof of concept realistici sono stati risolti e, anche senza patch, il loro sfruttamento richiede un insieme di condizioni estremamente particolare e unico. Anche se i report dei media sui reali “exploit Spectre” non sono stati confermati, i fornitori di sicurezza hanno aggiunto strumenti per rilevare gli attacchi noti e quindi i meccanismi di rilevamento del malware esistenti possono aiutare a proteggere la vostra azienda.
Tuttavia, non dovremmo ignorare completamente Spectre: è importante che la ricerca continui. C’è una piccola possibilità che con il tempo venga scoperto il “worst-case scenario”, ovvero un attacco che non richiede l’installazione di malware e che permette una fuga di dati che non lascia traccia.
Teoricamente è possibile condurre un attacco mirato usando vulnerabilità hardware se il valore dei dati rubati lo giustifica. La protezione contro tali rischi richiede seri investimenti per identificare i potenziali vettori di attacco, seguire le raccomandazioni degli sviluppatori di sistemi operativi, o implementare la protezione anche a costo di un grave calo di prestazioni. Ma nella maggior parte dei casi, anche per le grandi aziende, è sufficiente affidarsi agli sviluppatori di software e sistemi operativi, ai produttori di processori e alle soluzioni di sicurezza.