Un bug è quando un programma fa qualcosa di inatteso, di sbagliato. C’è un errore nel programma, va corretto. Una funzionalità invece è quando il programma fa proprio quello che deve fare, ma poi gli hacker riescono a trovare un altro modo per utilizzare la funzione, inaspettato e pericoloso.
È quel che sta succedendo ai processori Intel – per adesso – spiega a Macitynet il papà del Pentium, mentre Apple rivela che mitigare il rischio ZombieLoad si porta via il 40% della capacità di calcolo dei processori Intel. Siamo davvero alla frutta con l’alleanza Apple-Intel? Se non basta questo, non capiremo mai cos’altro ci vuole. Ma andiamo con ordine.
Il papà del Pentium
A margine di una conferenza dedicata alle tecnologie di rete che si è tenuta alcuni giorni addietro a Sitges, vicino a Barcellona, Macitynet ha avuto l’occasione di incontrare Michael Kagan, CTO di Mellanox, ingegnere per una vita a Intel dove è stato il “papà del Pentium”, la generazione di processori che ha reso Intel la più performante tra i produttori di CPU. Venti anni fa Kagan ha lasciato Intel per fondare Mellanox (connessioni ultrarapide per quanto riguarda i server nei datacenter), azienda che da pochi mesi è stata acquistata per 7 miliardi di dollari da Nvidia.
Kagan ha un’idea molto chiara di quel che sta succedendo, e del perché siamo all’inizio e non alla fine. «Questo tipo di attacchi nascono non da bug bensì da funzionalità dei processori. Utilizzano tecniche che gli ingegneri che progettano le CPU hanno pensato per altre funzioni e le sfruttano in maniera differente, ma non si tratta di errori, bensì di funzionalità».
Per capirsi, Kagan fa un esempio: se una spia volesse sapere quante persone entrano in una stanza nascosta per fare una riunione segreta, potrebbe semplicemente guardare da remoto i cambiamenti del termostato del condizionatore d’aria presente nella stanza: se la temperatura si riscalda di tot gradi questa è una indicazione indiretta di quante persone sono entrate. La stessa cosa accade con le vulnerabilità dei processori: sono funzionalità (il termostato che indica i cambiamenti di temperatura e il tempo necessario al condizionatore per abbassare la temperatura al livello iniziale) ma per un hacker si utilizzano tutto in un altro modo.
«Ecco perché attacchi di questo tipo – ci dice Kagan – che per adesso abbiamo visto solo con Intel ma che, sfruttando altre modalità, saranno probabilmente possibili anche con altre architetture di altri produttori, non sono facilmente eliminabili dalle architetture. Non sono bug di progettazione, sono soluzioni per far andare più veloci i processori». Lavorare sul microcodice per sanitizzare la gestione dei calcoli ha comunque un impatto e in futuro le cose porteranno ad altri problemi, soprattutto per Intel che sta facendo un utilizzo molto pesante di tecniche di hyperthreading (tecnologia che ha creato lei nel 2002).
ZombieLoad e i suoi
Quando abbiamo parlato con Kagan Intel doveva ancora annunciare il nuovo problema dei processori che permette di sfruttare la vulnerabilità ZombieLoad che colpisce anche i Mac, compresi quelli più vecchi. Intel ha spiegato che il problema è stato già affrontato a livello hardware in molti dei recenti processori Intel Core di ottava e nona generazione, nonché nella famiglia di processori scalabili Intel Xeon di seconda generazione, e spiegato che ha anche conseguenze in ambito cloud/server.
L’insieme di queste nuove vulnerabilità è indicata con l’etichetta di “Microarchitectural Data Sampling” (MDS). Intel spiega che non è facile indicare il reale grado di pericolosità dei possibile exploit ma ha preparato dei correttivi specifici. Apple ha invece rilasciato dei fix per i suoi processori, mentre rimangono insicuri i computer precedenti al 2011 perché non c’è la modifica del microcodice (il codice che viene eseguito nella CPU, come traduzione del linguaggio macchina) per chiudere la vulnerabilità.
Ma perché ci sono questi problemi, che per adesso ha solo Intel e invece non se ne trova traccia nei processori AMD e nelle architetture ARM? Le vulnerabilità sono in realtà quattro: CVE–2018–12126, CVE–2018–12127, CVE–2018–12130 e CVE–2019–11091, classificate di pericolosità da bassa a media (da 3,8 a 6,5 su una scala di 10).
Quando correggere è peggio che sbagliare
L’impatto della correzione del problema, ha comunicato Apple, è devastante: se ne va fino al 40% della potenza di calcolo del processore, perché viene sostanzialmente chiusa la soluzione architetturale inventata da Intel dell’hyperthreading. Con questa tecnica i calcoli interni alla singola applicazione (workload) possono essere ripartiti tra i differenti core fisici e ulteriormente frammentati (core virtuali che eseguono thread), ottenendo un aumento della performance perché sostanzialmente vengono saturati tutti i cicli del processore con delle attività di calcolo.
Per fare questo il processore utilizza una serie di tecniche (Intel le chiama Microarchitectural Data Sampling) per la gestione della memoria di cache (quella dentro il processore) e per prevedere quali tipi di operazioni devono essere fatte e raggruppandole per gruppi simili, guadagnando di fatto tempo.
L’impatto della protezione è devastante, soprattutto nelle architetture meno potenti – come i portatili – e Intel lo sottostima probabilmente per questioni di comunicazione mentre Apple non esita a entrare esplicitamente in conflitto con Intel su questo punto (un altro segnale dei molti problemi fra le due aziende) ma sostiene anche che non è necessario disabilitare l’hyperthreading per sopravvivere a ZombieLoad e altre potenziali vulnerabilità.
Infatti, dice Apple, il tipo di vulnerabilità riguarda il funzionamento del processore ma non è da sola in grado di raggiungere e penetrare la sandboxing del sistema operativo. Se la vulnerabilità è un difetto congenito del cuore del processore, il sistema immunitario (cioè il sistema operativo) è in grado di tenerla fuori. Tutto cambia ovviamente se si installano app piratate, con codici manomessi, autorizzando software di provenienza dubbia o decisamente insicura.