Già da ieri si parlava di una grave vulnerabilità che minacciava la sicurezza dei sistemi dotati di processore Intel. La risposta ufficiale dell’azienda di Santa Clara ha impiegato un po’ di tempo per arrivare, ma la notizia che abbiamo appreso è stata tutt’altro che confortante. Grazie alla pubblicazione di ulteriori informazioni per mano dei ricercatori informatici, sappiamo che queste tre falle in realtà riguardano tutti i processori che fanno uso di una particolare tecnica di ottimizzazione delle prestazioni.
Chiamiamole per nome: Meltdown e Spectre.

Un problema di progettazione

Di vulnerabilità se ne scoprono tante ogni giorno e in ogni genere di software. Questa volta la faccenda è diversa e molto più seria: il problema è dovuto ad un difetto di progettazione che interessa praticamente tutti i processori prodotti da 20 anni ad oggi. Sfruttando questo difetto è possibile accedere a settori di memoria che dovrebbero rimanere inaccessibili e leggere (soprattutto) informazioni sensibili quali password, chiavi di crittografia o simili. Insomma, tutta roba che non vorremmo mai finisse nelle mani di qualche malintenzionato. E non solo: non rimangono tracce del furto di dati.

Tali falle affliggono non solo i processori Intel, come si era pensato inizialmente, ma anche quelli prodotti da AMD e ARM, a prescindere dal sistema operativo utilizzato.

Per quanto riguarda Intel, sappiamo dalle prime notizie che sono potenzialmente affetti da queste falle tutti i processori prodotti a partire dal 1995, ad esclusione dei chip Itanium (per server) e Atom antecedenti al 2013. Non abbiamo dati sulla diffusione del problema tra i processori AMD e ARM, ma vista la natura del problema è auspicabile che anche queste due aziende debbano correre ai ripari (cosa che si sta già facendo). Guardando un aspetto più pratico, pressoché la totalità dei dispositivi informatici in circolazione monta un processore prodotto da uno di questi tre colossi: ecco perché in queste ore si sta discutendo molto della faccenda, oltre che lavorare per arginare il problema. A rischio sono non solo i dispositivi degli utenti, ma anche i server e tutti i dati ad essi affidati.

Meltdown e Spectre: sono state chiamate così le tre vulnerabilità del caso (Spectre ha due varianti). Le segnalazioni sono state effettuate da diversi team di esperti informatici, tra cui Google Project Zero che, sulla faccenda, ha pubblicato un articolo piuttosto tecnico ma completo a questo link. Google dichiara di avere informato le compagnie della falla Spectre l’1 giugno 2017 e di quella Meltdown prima del 28 luglio 2017. Sia Google che Intel avevano intenzione di rilasciare tutti i dettagli sui problemi il prossimo 9 gennaio, quando sarebbero stati pronti più fix possibile, ma sono stati forzati ad anticipare i tempi dopo che dei leak hanno portato, nella giornata di ieri, ad un crollo del 3.4% delle azioni Intel.

Un attacco side-channel

Abbiamo già detto che queste falle sfruttano una tecnica di ottimizzazione delle prestazioni largamente impiegata. Si tratta di una speculative execution, una tecnica che prevede l’esecuzione di alcune funzioni senza che esse siano richieste immediatamente, ma che potrebbero esserlo nel futuro. È un po’ come anticipare i compiti per casa, per evitare di trovarsi in futuro a doverne svolgere troppi in un sol giorno. Nell’eseguire l’azione speculativa, il processore verifica delle ipotesi considerate verosimili e, se valide, continua ad eseguire il codice. In caso contrario, l’esecuzione viene interrotta. I vantaggi di questa funzionalità sono facilmente intuibili per quanto riguarda le prestazioni effettive del sistema che la impiega. Tutto molto bello, se non fosse per il fatto che il cuore delle falle Meltdown e Spectre sta proprio in questo punto.

La speculative execution e tutti gli argomenti che prende in carico dovrebbero rimanere inaccessibili, cosa che invece non avviene. È possibile che le esecuzioni speculative abbiano effetti collaterali che non vengono ripristinati quando la CPU si avvale di ipotesi errate, e questo può portare alla rivelazione di informazioni. La lettura di tali informazioni può avvenire attraverso tre metodi, che sono appunto identificati con le tre vulnerabilità, Spectre (due varianti) e Meltdown.

  • Variante 1: bounds check bypass (CVE-2017-5753) Spectre
  • Variante 2: branch target injection (CVE-2017-5715) Spectre
  • Variante 3: rogue data cache load (CVE-2017-5754) Meltdown

Senza entrare nel dettaglio, Meltdown riesce a superare le limitazioni imposte via hardware tra l’applicazione in esecuzione e il sistema operativo, Spectre a superare l’isolamento imposto tra i diversi programmi. Quest’ultimo è il più difficile da sfruttare, ma anche quello più difficile da debellare. Da queste caratteristiche vengono i nomi delle falle: Meltdown fonde le barriere di sicurezza imposte dall’hardware; Spectre, come un fantasma, ci perseguiterà ancora per un po’ dal momento che è difficile da fixare. Tanto per dare un esempio, è possibile sfruttare la vulnerabilità per accedere da una macchina virtuale ai dati del sistema operativo che le fa da host, così come usare la stessa macchina virtuale per accedere ai dati di una seconda.

 

I ricercatori di Google sono riusciti a sfruttare con successo i tre i metodi di attacco tramite degli exploit da loro progettati. I processori messi sotto test sono stati:

  • Intel Xeon CPU E5-1650 v3 @3.50GHz
  • AMD FX -8320 Eight-Core Processor
  • AMD PRO A8-9600 R7, 10 COMPUTE CORES 4C+6G
  • ARM Cortex A57 core di un telefono Nexus 5X

A prova dell’estensione della minaccia, si noti che il campione sfruttato da Jann Horn – uno dei ricercatori e autore della relazione da cui questi dati sono stati presi – rappresenta processori dedicati ad ambiti molto diversi e per niente poco comuni. Attualmente Meltdown sembra affliggere solo i processori Intel, nel senso che non è chiara la situazione sui processori AMD e ARM. La vulnerabilità Spectre, invece, è stata verificata su tutti e tre i marchi.

Quali saranno le prossime mosse?

Non esiste un singolo fix per le tre varianti dell’attacco, perché ognuna si basa su una caratteristica diversa e richiede una forma di protezione specifica. I principali produttori di hardware e software sono da mesi al lavoro per porre rimedio al problema. Microsoft ha già pubblicato un fix per Windows 10 (KB2056892). Windows 7 e 8 riceveranno l’aggiornamento solo martedì prossimo. Apple ha aggiornato MacOs (versione 10.13.2), ma ulteriori modifiche arriveranno con il prossimo aggiornamento. I vari kernel Linux stanno per essere corretti. La correzione che si sta operando in queste ore è quindi di tipo software, ma rimane la problematica al livello hardware, che può essere risolta solo con una sostanziale riprogettazione. Si tratta di un’operazione molto complicata (e lunga) che vedrà impegnata nei prossimi anni tutti i maggiori produttori di hardware.

Intel ritiene che non sia necessario un rimpiazzo delle unità affette dalla falla e puntualizza che i produttori stanno già aggiornando i propri sistemi operativi per fronteggiare il problema. L’azienda ritiene ancora i suoi processori i più sicuri al mondo e ha affermato che col tempo si migliorerà la qualità della correzione applicata.

AMD ha aperto una pagina sul proprio sito dove vengono raccolte le ultime novità in merito alla limitazione del problema sui suoi dispositivi. In una tabella si legge che la prima variante dell’attacco (bounds check bypass, anche conosciuta come la prima delle due di Spectre) può essere risolta tramite aggiornamento software dai produttori. Le altre due varianti (branch target injection e rogue data cache load) non presentano un rischio a causa della differente architettura dei processori AMD.

Notizie non dissimili arrivano da ARM, che lavora con Intel e AMD per risolvere un metodo di analisi side-channel che sfrutta le tecniche di speculative execution usate in determinati processori, inclusi alcuni Cortex-A. I Cortex-M non sono interessati dal problema.

Nvidia – è opportuno non dimenticarla, anche se è principalmente un produttore di schede grafiche – dice di volere aggiornare i propri driver per aiutare a risolvere il problema con facilità. Per quanto riguarda invece i suoi SoC ARM, saranno applicate le dovute correzioni.

Ci sono già stati dei danni?

Come accennato in precedenza, un attacco di questo tipo non lascia tracce di alcun genere. Microsoft ha dichiarato che non ha “ricevuto alcuna evidenza che indichi che queste vulnerabilità siano state utilizzate per attaccare i clienti”. Presumibilmente, nessuno è ancora riuscito a sfruttare le vulnerabilità per mettere a segno un attacco, a causa del fatto che è veramente difficile implementare un exploit efficace.

Gli antivirus attualmente non potrebbero comunque bloccarlo, perché, a differenza dei malware tradizionali, non è possibile distinguerlo dalle applicazioni benigne. Tuttavia, lo stesso antivirus potrebbe rilevare il codice che sfrutta le falle una volta che i binaries diventano noti in seguito ad una eventuale diffusione e isolamento del malware.

Per il momento, e probabilmente anche per il futuro, il consiglio è quello di aggiornare tutto l’aggiornabile. Sono invitati a farlo tutti gli utenti e lo stanno già facendo tutte quelle aziende che fanno uso di grandi infrastrutture di server. Basti pensare a colossi come Amazon, che ha recentemente comunicato di aver messo al sicuro quasi tutte le istanze nella flotta EC2 e che a breve il lavoro sarà completato.

Certo è che di tutta questa faccenda sta iniziando a emergere il discorso sull’impatto che avranno le varie patch sulle prestazioni dei sistemi che le applicano. Ricordate il discorso sulla speculative execution, vero? L’uso di un processo out-of-order implica vantaggi nell’esecuzione di tanti programmi, soprattutto a livello server. Intel, da parte sua, ha detto che gli utenti comuni non avvertiranno rallentamenti di sorta, smentendo le voci su un calo medio del 30%. Secondo Linus Torvalds non c’è un numero ben definito, perché l’impatto dipende dall’hardware e dal carico di lavoro. “Penso un 5% nel caso di un carico con una componente kernel rilevante, ad esempio i database. Ma se fai dei micro-benchmark specifici, potresti notare un calo nelle performance a doppia cifra”.

Su questi due siti (meltdownattack.comspectreattack.com) è possibile scoprire di più su questi due bug che minacciano, praticamente, tutti i processori del mondo. Sono presenti informazioni generali e poco tecniche così come ricerche e analisi vere e proprie, oltre che i nomi di tutti i ricercatori che hanno lavorato per scoprire le vulnerabilità.