Informatica, i bug Meltdown e Spectre sono la cronaca di una morte annunciata?

Di Federico Ippoliti*

New York. In questi giorni stiamo assistendo ad un’escalation di notizie scandalo e di rivelazioni sui i due recentissimi bug informatici, denominati “Spectre” e “Meltdown”, che interessano l’intero mondo dei processori.

Spectre e Meltdown sono due bue che hanno creato numerosi problemi a milioni di sistemi informatici

Cominciamo dal fare chiarezza: cosa sono i bug? con questo termine in informatica si intende un errore di funzionamento di un sistema o di un programma. Solitamente, sono dunque delle falle che possono essere sfruttate da programmatori esperti per accedere al nostro computer ed alle relative aree sensibili; il fine ultimo può essere dei più vari, dalla raccolta di dati personali all’utilizzo della nostra macchina per condurre attacchi di massa a server noti per indurli al crash.

Per comprendere più chiaramente cosa sta accadendo, è necessario capire che i processori più moderni utilizzano un sistema molto complesso per migliorare la velocità di calcolo: l’esecuzione speculativa. Questa altro non è che un processo nel quale l’unità di calcolo può scegliere di eseguire delle istruzioni in modo speculativo, sulla base di ipotesi considerate verosimili dallo stesso. Durante questa fase, il processore verifica queste ipotesi; se sono valide, l’esecuzione continua. Se non lo sono, viene bloccata e può essere avviato il corretto procedimento in base alle condizioni effettive.

Rischi informatici per i processori Intel

In pratica, è un’ottimizzazione del processore che permette allo stesso di intuire quale delle due vie è più probabile che verrà presa (predizione delle diramazioni) e comincia immediatamente ad eseguire le istruzioni a partire da quel punto, salvo poi scartare tutti i risultati se l’ipotesi non venisse convalidata.

Il grave problema è che risulta possibile che l’esecuzione speculativa abbia effetti collaterali che non vengono ripristinati quando la CPU fa ipotesi errate, portando alla divulgazione di informazioni.

Il bug Meltdown fa sì che si crei un buco nell’isolamento che dovrebbe intercorrere tra le applicazioni dell’utente ed il sistema operativo, portando applicazioni di terze parti – ovvero non codificate direttamente dallo sviluppatore del sistema operativo sul quale l’applicativo opera – a poter accedere alla memoria di sistema contenente password e dati personali; solitamente, le due cose dovrebbero essere isolate l’una dall’altra. In parole povere, Meltdown rende leggibile la memoria del Kernel partendo dall’area utente.

È un problema risolvibile mediante software, dunque in maniera abbastanza “semplice”, attraverso il rilascio di patch (ovvero pacchetti di aggiornamento correttivi), e riguarda quasi solamente i processori Intel che sfruttano il paradigma out-of-order. Tutte le grandi software house sono già corse ai ripari, vedasi Windows 10 aggiornato con il Cumulative Pack KB4056892 ed Apple, con MacOS 10.13.2 e successivo 10.13.3.

Per quanto riguarda Spectre, invece, il problema è decisamente più serio: questo bug non riguarda solo il software, bensì l’architettura fisica dei processori moderni; il problema è, dunque, strutturale. Ciò rende Spectre di difficilissima risoluzione, se non tramite una riprogettazione drastica delle architetture costruttive delle nostre CPU.

A differenza di Meltdown va ad interrompere il velo di isolamento che dovrebbe esistere tra applicazioni differenti, dunque non più tra applicativo e sistema ma tra applicativo ed applicativo. Ciò potrebbe andare a rendere insicure anche quelle applicazioni considerate assolutamente sicure e quasi del tutto esenti da falle di sicurezza.

Aspetto ancor più grave è che Spectre colpisce praticamente ogni moderno processore esistente: computer, cellulari, server, automobili, console, tablet.

In parole povere, siamo di fronte alla conferma innegabile ed assoluta che, nel campo dell’informatica, di sicurezza e privacy non c’è traccia, e mai fino ad ora c’è stata!

I moderni processori vengono sviluppati su queste basi informatiche a partire dal 1995, dunque è stata costruita un’intera rete di hardware e software basati su paradigmi ed algoritmi atti ad aumentare la velocità di calcolo in maniera vertiginosa, quasi paranoica ed inesorabilmente legata al marketing, senza essere assolutamente certi di tutelare le nostre informazioni e le nostre vite prima di tutto.

Non sto esagerando se utilizzo il termine “vite”: quanto materiale strettamente privato affidiamo quotidianamente alla rete? Basta pensare alla corrispondenza privata (anche Pec), ai servizi di Home Banking, ai servizi di domotizzazione di infrastrutture fisiche, ai servizi di videosorveglianza, ai social network, alle applicazioni di messaggistica privata, ai server cloud di storage.

Se analizziamo l’entità della falla che ci troviamo ad affrontare in questi giorni, possiamo capire quanto grave potrebbe essere il problema per la sicurezza pubblica: pensiamo ai server militari, alle installazioni sensibili contenenti codici e testate di lancio, alle banche dati centralizzate delle Forze di Polizia.

La notte del 20 agosto 2017 avvenne un incidente tra la nave lanciamissili USS John S. McCain e la nave cisterna Alnic MC, nelle acque tra Singapore e lo Stretto di Malacca: sicuramente si trattò di un incidente, anche se non proprio dei più banali, ma vorrei riflettere su questo evento. Quanto potrebbero influire Spectre e Meltdown sui sistemi militari? Sarebbe possibile entrare in un dispositivo di controllo della navigazione navale per deviarne le rotte, creando incidenti? Ed in un apparato responsabile del controllo degli armamenti missilistici di bordo?

È facile credere che i sistemi militari (specie se statunitensi) siano sicurissimi e molto controllati, ma siamo certi che quelli della Alnic MC siano altrettanto affidabili? Per creare incidenti, non sarebbe a questo punto necessario violare sistemi della difesa, quando si potrebbero hackerare piattaforme limitrofe in grado di disturbare in eguale misura l’assetto bellico della zona.

Un’altra parentesi simile potrebbe essere aperta riflettendo circa l’impiego di tutte le apparecchiature “unmanned”, ovvero pilotate da remoto. E perché non parlare delle maglie radar, oppure dei sistemi di scudo antimissile posti a difesa dei nostri territori?

Naturalmente non è così semplice sfruttare questi bug, ma il rischio è presente e concreto. Esistono Paesi dove gli hacker sanno fare veri e propri miracoli e mi viene facile usare ad esempio nazioni come Cina, Russia Nord Corea e Pakistan.

Una domanda che mi sono posto oggi è la seguente: nonostante l’esistenza di Spectre e Meltdown sia nota ai vari team di ricerca (esempio Project Zero di Google) da almeno un anno, come mai la notizia è esplosa solamente oggi? E come mai la lente di ingrandimento è stata puntata particolarmente verso due aziende leader del settore, quali Intel ed Apple? Leggo ovunque articoli dove si parla in maniera eclatante dei dispositivi muniti di iOs e MacOS; le prime pagine dei giornali impazziscono con mega articoloni sui dispositivi Apple. Come mai non si parla allora dei processori che gestiscono i sistemi di infotainment delle nostre autovetture? Non sanno, forse, che utilizzano moduli GPS integrati nella vettura e dialogano su internet tramite la rete cellulare del nostro dispositivo, sempre maniacalmente connesso all’auto tramite modulo Bluetooth?

E facciamo caso ad un dettaglio, ovvero che i nostri cellulari sono stracolmi di applicazioni di terze parti; ora ricolleghiamo questo aspetto a Spectre e Meltdown.

Forse bisognerebbe tornare indietro nel tempo, nel 1949 precisamente, quando il geniale George Orwell pubblicò il suo romanzo intitolato “1984”.

Dovremmo aprire gli occhi e capire che le nostre vite sono salvate su tantissimi server, i nostri dati sono messi in rete con una facilità disarmante e ieri, abbiamo casualmente “scoperto” che questi server sono retti da processori assolutamente velocissimi, ma anche dannatamente insicuri. Informazioni che non ci sogneremmo mai di dire ad un estraneo (e talvolta nemmeno ad un familiare) sono invece alla portata di mani molto meno rassicuranti.

E per chiudere vorrei fare una riflessione: Neil Armstrong e Buzz Aldrin raggiunsero la Luna ed i loro moduli erano forniti di supporti elettronici ed informatici, essenziali per la riuscita della missione spaziale.

I processori dovettero fare veramente di tutto: calcolare le rotte, gestire le comunicazioni con la terra, gestire tutti i sistemi di bordo del modulo spaziale, e chi più ne ha più ne metta. Ebbene, l’elaboratore che utilizzarono aveva solamente 152Kb di memoria, comprensiva di RAM e ROM, e la frequenza di aggiornamento del processore andava dagli 0,043MHz ai 2MHz.

L’elaboratore da cui sto scrivendo queste parole ha un processore fisico ad otto core, ciascuno elabora a ben 3,2GHz, ed è dotato di 16Gb di memoria RAM. A cosa serve tutta questa potenza di calcolo? Avete mai pensato a quante cose sta facendo, o sarebbe in grado di fare, il vostro PC mentre lo utilizzate? A chi potrebbero andare i risultati di questi calcoli?

*Ricercatore

© RIPRODUZIONE RISERVATA

Autore