Un inizio 2018 piuttosto movimentato nel settore della sicurezza informatica. In questi giorni non si parla d’altro: ci riferiamo a Meltdown e Spectre, le nuove minacce che sfrutterebbero alcune vulnerabilità presenti su quasi tutte le recenti CPU. Ecco di cosa si tratta e come agire.
Vulnerabilità CPU – Meltdown e Spectre
Il caso è scoppiato in questi primi giorni del 2018, anche se a quanto pare le falle sarebbero state individuate già dal Giugno 2017. A fare la scoperta sono stati alcuni team di ricercatori, tra cui il Google Project Zero, il team specifico di Google che si occupa di sicurezza informatica, che all’epoca informarono del problema i costruttori e gli sviluppatori dei sistemi operativi (Microsoft, Apple, Linux).
A seguito di indiscrezioni trapelate, il 3 Gennaio 2018 la notizia è stata ufficialmente resa pubblica, scatenando il panico soprattutto a livello mediatico, dove come sempre la notizia è stata data con toni allarmanti e catastrofici.
Non è certamente la prima volta che vengono scoperti bug o vulnerabilità più o meno gravi, ma effettivamente in questo caso la situazione è abbastanza critica, se non altro per la diffusione e la portata del problema.
Le vulnerabilità scoperte sono principalmente due: denominate Meltdown e Spectre (quest’ultima in almeno due varianti).
La cosa preoccupante è che alcuni di questi attacchi possono essere attuati anche semplicemente visitando una pagina web malevola, senza lasciare traccia. Non c’è modo infatti di sapere se il nostro sistema è vittima dell’attacco o se è stato violato in passato.
Meltdown
Delle tre vulnerabilità, Meltdown è la più grave, ed è quella che è stata resa nota proprio in questi giorni. Sfrutta un comportamento non sicuro nella gestione della memoria virtuale, consentendo una lettura delle informazioni contenute nella memoria dedicata al kernel, durante operazioni out-of-order.
L’esecuzione out-of-order è una specifica tecnica di ottimizzazione, che permette di eseguire codice senza necessariamente rispettare l’ordine preimposto. In pratica il processore analizza il codice, ed esegue in parallelo le istruzioni non vincolate al resto del codice, per poi riordinarle e salvare il risultato in memoria.
Meltdown in pratica sfrutta questa modalità di funzionamento per aggirare con apposite istruzioni il controllo di accesso alla momoria riservata al kernel (di norma inaccessibile all’utente), rendendo di fatto a rischio eventuali dati sensibili presenti in quel momento in memoria.
Quello che c’è da sapere su Meltdown:
- È la vulnerabilità più grave.
- È facilmente sfruttabile per portare un attacco, ma è anche più semplice da risolvere.
- Riguarda principalmente le CPU Intel a causa di una gestione poco sicura della memoria virtuale. Potenzialmente il bug è presente in tutti i suoi processori dal 1995 ad oggi. Sicuramente sono vulnerabili tutte le CPU Intel dal 2010 circa a oggi, ad eccezione delle serie Itanium e Atom precedenti al 2013.
- Sarebbero a rischio anche CPU ARM, tra cui le famiglie Cortex-A15, Cortex-A57 e Cortex-A72 (quest’ultima ad esempio è alla base dell’imminente Qualcomm Snapdragon 845).
- È risolvibile a livello software (aggiornamenti specifici per Windows, Mac OSX e Linux), ma le patch per la sua soluzione hanno conseguenze negative sulle prestazioni (di quanto ancora non è chiaro e dipende da molte variabili, prime tra tutti il carico di lavoro).
- Intel in futuro dovrà modificare l’architettura delle sue CPU al fine di eliminare questa criticità.
Spectre
Spectre è una vulnerabilità più complessa da sfruttare per i pirati informatici e allo stesso tempo anche più difficile da risolvere. Il funzionamento di Spectre si basa principalmente sull’uso della branch prediction e della speculative execution.
La Speculative Execution è una particolare tecnica implementata da anni nelle moderne CPU al fine di aumentare le prestazioni. Consiste nel eseguire istruzioni prima ancora che queste vengano effettivamente richieste al processore. Ed esempio quando si verifica un conditional branch, ovvero un salto condizionale, il processore cerca di intuire quale condizione sia più probabile e comincia immediatamente a eseguire le istruzioni da quel punto. Se l’intuizione è errata, tutti i calcoli eseguiti dalla diramazione in poi sono scartati, in caso contrario le istruzioni precaricate vengono utilizzate, a tutto vantaggio dei tempi di attesa e delle prestazioni.
Spectre sfrutta a vario titolo questa caratteristica in quanto il processore non esegue i dovuti controlli sul codice che esegue in modo speculativo e al tempo stesso non elimina il prodotto risultante dell’eventuale diramazione errata.
Sono state illustrate due possibili varianti che fanno leva su questo meccanismo, e in pratica permetterebbe di leggere segmenti di memoria utilizzati da altri processi o ricavare per deduzione (dalle ipotesi non verificate) informazioni presenti sulla memoria utilizzata dallo stesso processo. Questo permetterebbe di accedere potenzialmente a dati sensibili presenti nella memoria di altri processi in quel momento in esecuzione.
In sintesi riguardo a Spectre:
- È una vulnerabilità molto complessa che è difficile da risolvere, ma è anche difficile da sfruttare per portare un attacco.
- Sono vulnerabili praticamente tutti i moderni sistemi: desktop, laptop, server, smartphone e tablet. Sono vulnerabili in sintesi tutti i dispositivi che utilizzano le moderne CPU Intel, AMD e ARM. Praticamente tutte quelle dell’ultimo ventennio.
- Non è risolvibile tecnicamente a livello software.
- Saranno necessari appositi fix che andranno a riscrivere il microcode delle CPU.
- Molto probabilmente sarà un problema che si trascinerà per alcuni anni a venire.
Informazioni dettagliate sul report pubblicato dai ricercatori riguardo Meltdown e Spectre è consultabile visitando questa pagina.
Cosa fare
Come si è visto, il problema è strutturale e legato all’architettura delle CPU e quindi in sostanza non è risolvibile completamente a livello software. Le minacce sono quindi indipendenti dal sistema operativo e non sfruttano vulnerabilità software.
Fortunatamente si può comunque limitare il problema e di fatto ridurre i rischi connessi a queste nuove minacce, ma comunque non sono completamente risolvibili (in particolare per quanto riguarda Spectre).
A livello software si sta già intervenendo per limitare il problema. Microsoft ha rilasciato tempestivamente alcuni aggiornamenti per la sicurezza. Su sistemi Windows 10 l’aggiornamento dovrebbe essere stato applicato automaticamente. Rilasciati anche i relativi aggiornamenti per Windows 7 e 8.1, che possono essere scaricati tramite Windows Update e attraverso i link diretti:
Windows 10 (KB4056892): download
Windows 8.1 (KB4056898): download
Windows 7 (KB4056897): download
Attenzione: a quanto pare, in alcuni casi l’applicazione del Fix non viene proposto automaticamente, in quanto potrebbe generare alcune incompatibilità con antivirus di terze parti, provocando la comparsa di BSOD (schermate blu) e conseguente crash del pc. Al riguardo segnaliamo questo comunicato di Microsoft.
In questi casi controlla prima la presenza dell’aggiornamento specifico per il tuo antivirus, quindi se ancora non è stata installata applica manualmente la patch per il sistema operativo. L’antivirus potrebbe comunque non essere in grado di rilevare un possibile attacco in atto.
Al fine di ridurre il rischio, valgono queste raccomandazioni generali:
- Aggiornare e tenere aggiornato il sistema.
- Aggiorna il browser: Firefox e Chrome hanno già rilasciato il relativo fix per la sicurezza e probabilmente ti è stato già applicato.
- Evita di visitare siti web non sicuri e non scaricare o eseguire file di dubbia provenienza.
- Non installare software o app poco attendibili, anche se presenti negli store ufficiali.
Si attendono poi specifici fix, se e quando verranno rilasciati, dai vari produttori di CPU. Intel secondo quanto annunciato dovrebbe pubblicarli già a partire da questa settimana.
Per i più smanettoni possono verificare lo stato di rischio del proprio sistema, seguendo la procedura illustrata in questo articolo, che sfrutta una powershell rilasciata da Microsoft per il test del sistema.
Ripercussioni e considerazioni finali
Come visto, da più parti si è subito corso ai ripari per tamponare il problema. Essendo un bug strettamente di origine hardware, sicuramente sentiremo parlare a lungo di questo problema e per il futuro si dovranno riprogettare a livello di architettura molte CPU.
Quello che suscita maggior interesse da parte di molti utenti è sul fronte delle prestazioni. Come detto infatti i fix software per la protezione da Meltdown possono avere un impatto negativo. Inizialmente si parlava addirittura di un calo potenziale dal 5 al 30% sul fronte delle prestazioni. Fortunatamente al momento questi dati non sembrano avere riscontro concreto. Sicuramente in alcune circostanze può esserci una riduzione di prestazioni, ma non a un livello così catastrofico.
In parole povere per l’utente comune, non dovrebbero verificarsi cali di prestazioni tangibili o comunque troppo evidenti. Discorso diverso invece in ambito business enterprise e in particolare nel settore del cloud computing, dove sicuramente avranno un impatto più significativo.
Che dire, la storia ancora una volta insegna che nel mondo dell’informatica, nulla è al riparo da possibili bug o falle nella sicurezza.
Continueremo comunque a seguire la vicenda e in caso di ulteriori sviluppi non esiteremo a pubblicare aggiornamenti.
Uffa… Chrome e Firefox ovviamente. Io navigo sempre con IE11 (mi ha abituato il lavoro) che oltre a essere peggiorato da Novembre 2017 in poi, non è compatibile con il plug-in Avast e nemmeno aggiornato a quanto sembra.
Va bene, userò Chrome anch’io…
Ottimo articolo comunque, peccato mi avete dato molti motivi di ansia.:D
Speriamo di poter tornare presto sull’argomento con indicazioni positive e rassicuranti! 😉