Poco più di un anno fa scoppiò il bubbone Spectre e Meltdown, vulnerabilità insite nei microprocessori quindi presenti a livello hardware. I due appellativi sono stati scelti dai ricercatori protagonisti della scoperta: erano già a conoscenza dei problemi nelle CPU sin da metà 2017 ma ne parlarono pubblicamente solo a partire da gennaio 2018.
Spectre fa leva sulla cosiddetta esecuzione speculativa, una tecnica utilizzata dai processori per ridurre “il costo” delle operazioni di salto condizionato. Quando viene rilevata un’istruzione di salto condizionato, il processore cerca di pronosticare quale strada verrà verosimilmente percorsa (predizione delle diramazioni). Se la stima dovesse successivamente rivelarsi errata, tutti i calcoli eseguiti a partire dal salto condizionato vengono automaticamente scartati.
“Giocando” l’imperfetta gestione delle attività di esecuzione speculativa Spectre consente di accedere al contenuto della memoria accedendo allo stack della CPU o ad altre locazioni.
Di Spectre sono state poi scoperte, via a via, diverse varianti tra cui SpectreNG, SpectreRSB e Spectre Prime.
Meltdown “prende le mosse” da Spectre e permette a un aggressore o un processo dannoso in esecuzione sul sistema di accedere ad aree protette della memoria. Di Meltdown si conoscono anche varianti come Meltdown Prime e Total Meltdown, scoperte in date successive.
Intorno alla scoperta di Spectre e Meltdown si sviluppò un immenso clamore mediatico con tutti i produttori hardware e software che si sono attivati per trovare soluzioni a ciascuna vulnerabilità individuata a livello di processore.
Di Spectre e Meltdown parlammo “a caldo” nel nostro approfondimento Verificare se il processore in uso è vulnerabile a Meltdown e Spectre e successivamente abbiamo dato conto delle nuove lacune di sicurezza via a via scoperte.
Spectre e Meltdown hanno scoperchiato il classico vaso di Pandora: sin da subito gli esperti di tutti il mondo capirono come le vulnerabilità portate dal team di Google Project Zero, Cyberus Technology e Università tecnica di Graz fossero solo la punta dell’iceberg.
Nel corso del 2018 vennero a galla falle accessorie come quelle battezzate ForeShadow (Intel scopre nuove vulnerabilità nei suoi processori: ecco Foreshadow), BranchScope (BranchScope, un nuovo attacco sfrutta le lacune dei moderni processori), TLBleed (TBLeed, un attacco prende di mira l’hyperthreading dei processori Intel), PortSmash (PortSmash, nuova vulnerabilità nei processori sfrutta l’Hyper Threading) e NetSpectre (NetSpectre: l’attacco diventa possibile dalla rete ma per fortuna è solo teorico).
Una disamina delle varie lacune di sicurezza è disponibile anche su GitHub, a questo indirizzo.
Va detto che la maggior parte delle vulnerabilità citate richiede uno studio del sistema da aggredire per poter sferrare l’attacco con successo. Per questo motivo, ad oggi non si sono visti attacchi che fanno leva su Spectre, Meltdown e le varie varianti: i criminali informatici continuano a preferire l’utilizzo di altri bug di sicurezza (ad esempio lacune di Office, l’inserimento di macro e email phishing) per eseguire codice dannoso sui sistemi degli utenti.
Per risolvere o comunque lenire gli effetti delle vulnerabilità scoperte nei processori, gli interventi possibili sono l’aggiornamento del BIOS/UEFI della scheda madre (vedere Aggiornare BIOS: come si fa, a cosa serve e quando va fatto) e l’installazione degli appositi update sviluppati per ciascun sistema operativo (Microsoft, ad esempio, li distribuisce attraverso Windows Update).
Va detto che tutte le patch tese a modificare il comportamento del processore per scongiurare tentativi di attacco da parte di terzi, hanno un certo impatto prestazionale: soprattutto con certi carichi di lavoro, la CPU tende a divenire più lenta.
Le valutazioni relative ai cali prestazionali variano da vulnerabilità a vulnerabilità: Microsoft face a suo tempo presente che i possessori di PC basati su processori di più recente fattura non rileveranno alcun calo prestazionale dopo l’installazione delle patch anti-Spectre e Meltdown. Solo coloro che usano CPU basate su architettura Intel Haswell e precedenti potrebbero notare delle differenze, spiegò Microsoft.
Terry Myerson aggiunse che i cali prestazionali sarebbero stati più evidenti su Windows 7 e Windows 8.1 perché questi sistemi operativi utilizzano funzionalità a livello kernel (come quelle per il rendering delle fonti di carattere) direttamente interessate dall’applicazione delle patch anti-Spectre e Meltdown, molto più che in Windows 10.
Vale la pena installare le patch contro Spectre e Meltdown?
Se, come accennato in precedenza, gli aggiornamenti che consentono di proteggere il sistema da attacchi facenti leva sulle falle Spectre e Meltdown nonché sulle varie varianti tendono a provocare un rallentamento della macchina, è davvero opportuno installarle?
La risposta è: dipende dal contesto. Sui PC e sulle workstation degli utenti finali i rischi sono minimi: a meno che non vengano ad esempio sfruttate lacune di sicurezza del browser web (Spectre, il bug nei microprocessori può essere sfruttato usando codice JavaScript) – e i vari produttori si sono già attivati per scongiurare l’utilizzo di codice capace di far leva sulle vulnerabilità – non c’è modo perché codice malevolo possa eseguito in modalità remota.
L’utilità gratuita InSpectre sviluppata e aggiornata periodicamente da Steve Gibson e dal suo team, consente di verificare – a colpo d’occhio – se il sistema in uso sia o meno protetto dalle varie vulnerabilità utilizzando aggiornamenti del microcode in hardware o via software.
Il software InSpecre consente anche disattivare le correzioni di sicurezza e controllare le performance del sistema prima e dopo la loro applicazione.
Ad inizio 2018 le rivelazioni pubblicate in merito a Spectre e Meltdown vennero presentate come una minaccia incombente, un problema capace di gettare nel panico l’intera industria. Sebbene la scoperta di side-channel attack (tentativi di aggressione che fanno leva sull’implementazione di un sistema e sullo sfruttamento delle informazioni gestite durante il suo normale e corretto funzionamento) sia quasi all’ordine del giorno per ciò che riguarda i microprocessori, non si è mai avuta notizia di attacchi che hanno fatto uso, all’atto pratico, delle vulnerabilità in questione.
Più che gli utenti finali un po’ più a rischio sono semmai i provider di servizi cloud: provate ad analizzare le vulnerabilità che abbiamo presentato in apertura; alcune di esse potrebbero essere sfruttate, almeno in linea teorica, per superare i limiti di una macchina virtuale e leggere in aree del sistema sulle quali i normali processi non dovrebbero avere libertà d’azione (si pensi alle enclavi SGX di Intel).
I sistemi cloud, quindi server e sistemi governati da hypervisor condivisi tra più utenti, saranno con ogni probabilità quelli maggiormente presi di mira in futuro. Sulle singole workstation e i PC degli utenti finali, i criminali informatici continueranno a prediligere altre tattiche, efficaci e molto meno dispendiose.
D’altra parte anche i tecnici di Google hanno confermato che risolvere via software vulnerabilità come Spectre è una battaglia persa in partenza. Leggendo questo interessante studio si apprende che non c’è una soluzione unica e definitiva alle lacune di sicurezza come Spectre.
La varie vulnerabilità, sostengono ancora gli esperti di Google, continueranno a rimanere tra noi per tanti anni e le uniche soluzioni valide restano gli interventi in hardware dal momento che l’abbandono dell’esecuzione speculativa non è certo in discussione.
La chiave, semmai, è sempre la separazione dei processi e l’utilizzo di efficaci meccanismi di sandboxing (è l’approccio adoperato dai moderni browser web) ben accertandosi che essi stessi non soffrano di vulnerabilità che possano permetterne il superamento delle difese.
Il comportamento di Chrome, per esempio, è stato modificato e migliorato in modo tale da non consentire il caricamento di contenuti da più domini all’interno del medesimo processo. Ovviamente questa misura di sicurezza non protegge la specifica sandbox da un attacco ma evita che un’eventuale aggressione caricata ad esempio sotto forma di codice JavaScript possa impattare sui contenuti provenienti da altri domini e ad essi correlati.