Sono passati quattro anni dalla prima pubblicazione della ricerca su Spectre e Meltdown, vulnerabilità hardware nei processori moderni. 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 post esaminiamo 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 ha rivelato 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.
L’ultimo argomento è proprio quello che ha suscitato particolare interesse in questo lavoro scientifico apparentemente teorico. In tutti i casi, i ricercatori hanno sfruttato il sistema di predizione delle diramazioni. Questo meccanismo è stato introdotto più di 20 anni fa, 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.
POC for Spectre v1 ha mostrato che il processore leggerà 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.
Dopo la pubblicazione del lavoro su Spectre e Meltdown, sono state scoperte diverse altre vulnerabilità simili. I ricercatori continuano a cercare nuovi metodi per estrarre dati segreti sfruttando le vulnerabilità dei processori. La tabella riassuntiva di Intel elenca più di 20 di questi problemi, oltre ai tre originali.
Come contrastare Spectre
Teoricamente ci sono tre modi per rendere la vulnerabilità di un processore meno sfruttabile: i venditori 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 esempio, si può guardare alle 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 sarà 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. Le limitazioni tipiche di questi demo o proof of concept sono le seguenti:
- Dimostrano una perdita di dati casuali. Potrebbe non avere un valore pratico, sono solo informazioni casuali a cui l’hacker non aveva precedentemente accesso.
- I ricercatori hanno creato le condizioni ideali per l’attacco. Ad esempio, avevano un accesso illimitato al sistema. In questo caso, non è necessario utilizzare complessi metodi di esfiltrazione dei dati.
- Dimostra una vera violazione dei dati, ma in condizioni altamente improbabili.
Il lavoro teorico più impressionante (in termini di possibili conseguenze) è l’attacco NetSpectre. I ricercatori sono riusciti a dimostrare lo sfruttamento remoto con l’esfiltrazione dei dati ad una velocità da 15 a 60 bit all’ora. I limiti dell’attacco sono chiari: bassa velocità di trasmissione dei dati, i dati esfiltrati contengono un’enorme quantità di traffico spazzatura, più codice vulnerabile sul server attaccato “nel posto giusto” per il successo.
Due attacchi pratici, il più vicino possibile alle condizioni ITW, sono stati mostrati l’anno scorso. A marzo, Google ha mostrato un concetto 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, per riuscire a condurre i dati era 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 la minaccia?
Spook.js è stato neutralizzato con una patch software per il browser Google 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 la massima abilità dell’hacker.
La maggior parte dei proof of concept realistici sono stati risolti, e anche senza patch, il loro sfruttamento richiede un grande insieme di condizioni. Anche se i rapporti dei media sui reali “exploit Spectre” non sono stati confermati, i venditori di sicurezza hanno aggiunto strumenti per rilevare gli attacchi noti nel caso, quindi molto probabilmente 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”: un attacco che non richiede l’installazione di malware 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 per la maggior parte, anche per le grandi aziende, è sufficiente affidarsi agli sviluppatori di software e sistemi operativi, ai produttori di processori e alle soluzioni di sicurezza