Meltdown e Spectre. Tool di verifica, patch e situazione ad oggi.
11/01/2018
Meltdown e Spectre, gravi minacce all’alba del 2018. Il punto della situazione su due vulnerabilità tra le più gravi di sempre, che coinvolgono il cuore dei dispositivi tecnologici: i processori di PC e smartphone.
Nei primi giorni di gennaio il sito di Tecnologia “The Register” riporta la scoperta di gravi falle di sicurezza nei processori Intel prodotti nell’ultimo decennio. La gravità è tale da poter permettere il furto dei dati sensibili degli utenti (password, documenti, dati riservati).
Gli esperti del “Project Zero di Google” il 03 gennaio 2018 rivelano che le falle non riguardano solo i processori Intel, bensì anche quelli AMD e ARM (processori presenti non solo nei computer e server quindi, ma anche negli strumenti che utilizziamo tutti i giorni come lo smartphone).
RICERCA ESASPERATA DELLA PRESTAZIONE DEI PROCESSORI
Indicativamente dal 2009 la esasperata ricerca di incrementare le prestazioni dei processori, non è stata accompagnata da un altrettanto attenta valutazione della loro sicurezza. Gravi errori di progettazione e design delle funzionalità implementative hanno evidenziato vulnerabilitá come riportato dal giá citato gruppo “Project Zero”, ai colossi Intel, AMD e ARM.
Già nel giugno 2017, le vulnerabilità scoperte che affliggono i processori sono le tre seguenti:
1. “bounds check bypass” identificata tramite la Common Vulnerabilities and Exposure 2017-5753
2. “branch target injection” identificata invece tramite la CVE-2017-5715
3. “rogue data cache load” identificata tramite la CVE-2017-5754
"ESECUZIONE SPECULATIVA"
Il problema principale e comune di queste vulnerabilità é denominato “Esecuzione Speculativa (speculative execution)”, ossia quella funzionalità implementata nei processori al fine di aumentarne le prestazioni. Precisamente il processore, quando si trova davanti ad una scelta che implica del tempo di calcolo, proprio durante questo tempo, inizia a compiere già le istruzioni che derivano dalla scelta per lui più probabile del calcolo. In questo modo se la scelta è proprio quella, le operazioni da svolgere sono già state eseguite (risulta perciò più veloce), se invece il calcolo porta una scelta diversa, il processore eseguirà le operazioni che ne derivano “dimenticando” le operazioni già compiute.
Le operazioni compiute però rimangono nella cache, ed é proprio questa funzionalità che compromette la sicurezza dei sistemi, permettendo ad un attaccante di entrare in possesso dei dati riservati e sensibili degli utenti riuscendo ad accedere, via software, alle zone di memoria del processore e delle applicazioni alle quali di norma non dovrebbe accedere.
CYBERSECURITY: MELTDOWN E SPECTRE
Queste falle hanno dato origine a due gravi possibilitá di attacco: Meltdown e Spectre.
Meltdown si riferisce alla variante 3 (CVE-2017-5754) e come indicato nel suo scientific paper, riesce a superare l’isolamento che c’è tra la memoria dell’applicazione e la memoria del Kernel. Vale a dire che un’applicazione malevola riuscirebbe, sfruttando questa vulnerabilità, a leggere non solo quanto contenuto nel suo spazio di memoria, ma anche quanto contenuto nell’intera memoria del computer, potendo leggere quindi i dati dell’utente che fossero presenti.
Tutti i processori Intel prodotti dopo il 1995 (tranne Intel Itanium e Intel Atom prima del 2013) soffrono della vulnerabilità Meltdown. Anche se non sembrano soggetti a tale vulnerabilità i processori di altri produttori, sono in corso alcuni studi che non possono, per il momento, documentare il contrario.
Spectresi riferisce alle varianti 1 e 2 (CVE-2017-5753 e CVE-2017-5715) ed invece, come indicato nello scientific paper riesce a superare la protezione dell’isolamento che c’è tra le memorie delle applicazioni. Vale a dire che ad esempio un sito web contenente del codice Javascript con l’attacco Spectre permetterebbe ad un attaccante di leggere, ad esempio, l’intera memoria del browser (quindi le password salvate dell’utente) o quello che lui sta scrivendo. Ma non solo. Supponiamo un ambiente virtualizzato dove su un'unico sistema fisico vulnerabile vi siano varie macchine virtuali di diversi utenti. Conoscendo gli indirizzi di memoria, con un attacco Spectre su una determinata macchina, si riuscirebbero a leggere i dati contenuti nella memoria delle altre macchine virtuali. Come può immaginarsi, l’attacco Spectre è più complesso da realizzare rispetto all’attacco Meltdown ma è anche però più difficile da mitigare. Soffrono dell’attacco Spectre tutti i processori, Intel, AMD e ARM.
Una caratteristica particolare di questi attacchi è che bypassano il sistema operativo e sono difficili da distinguere dalle normali applicazioni legittime, per questo motivo non solo non lasciano traccia se colpiscono, ma nemmeno gli antivirus riescono a rilevarli con facilità.
REMEDIATION – MITIGATION
Trattandosi di falle “hardware” l’unica soluzione davvero efficace, come afferma in un bollettino anche lo US Computer Emergency Response Team, risulta quella della sostituzione del processore, con uno di “nuova generazione” e privo di queste vulnerabilità.
Essendo comprensibilmente difficile e anti-economico poter in tempi rapidi per tutti i possessori di computer e dispositivi IoT sostituire i processori dei loro device, tutti i produttori software e quelli degli stessi processori, stanno provvedendo in questi giorni, e non senza complicazioni, all’aggiornamento software dei loro programmi e Sistemi Operativi. Come possiamo immaginare, dovendo bloccare e mitigare le funzionalità di incremento delle prestazioni dei processori, le patch che vengono rilasciate incidono negativamente sulle prestazioni delle macchine, si stima con una riduzione tra il 5 e il 30% soprattutto negli ambienti virtualizzati e di data-center, dove cioè si fa un uso intenso del processore.
Microsoft è stata tra le prime a predisporre una patch per Windows 10, precisamente la patch KB4056892 che però ha creato disagi non essendo compatibile con alcuni antivirus, e rendendo impossibile il riavvio di alcune macchine con specifici processori AMD.
In merito alle soluzioni antivirus Microsoft ha chiesto ai produttori di tali software di testarli nei propri laboratori rendendoli compatibili con la patch. Quando potranno certificarne la piena compatibilità dovranno inserire attraverso gli aggiornamenti classici dell’antivirus, una determinata chiave di registro, indicata da Microsoft nei computer degli utenti. In questo modo Windows Update e WSUS solo in presenza di tale chiave di registro nel sistema, scaricheranno ed installeranno la patch nei computer.
Non tutti i produttori di Antivirus hanno terminato ad oggi di testare la compatibilità piena dei propri software con la patch Microsoft e pertanto alcuni utenti ancora sono privi della patch. Altri produttori antivirus invece richiedono ai clienti di creare manualmente la chiave di registro ed altri ancora hanno automatizzato completamente il processo. Casi specifici vanno chiariti con i fornitori delle soluzioni di sicurezza.
Uno dei motivi per cui Windows 10 non scarica la patch KB4056892 può essere quindi, come abbiamo visto, il tipo di software anti-malware presente sulla macchina. Ma un altro motivo che sta bloccando l’installazione automatica di questa patch è perché Microsoft ne ha sospeso temporaneamente la distribuzione ai dispositivi con processore AMD. Infatti insieme ad AMD sta lavorando per risolvere il problema che rende non avviabili le macchine che dispongono di alcune versioni di quel processore qualora installassero tale patch.
Nell'immagine sopra riportata si vede la chiave di registro senza la quale l’aggiornamento Microsoft non si installa
Per quanto riguarda gli altri sistemi operativi, diversi da Windows 10, Microsoft ha rilasciato ieri gli aggiornamenti di sicurezza per mitigare queste vulnerabilità. Al momento non si conoscono eventuali problematiche.
Intel, dal canto suo, già in data 04 gennaio 2018 ha pubblicato un comunicato ufficiale in cui dichiara di aver già corretto, attraverso il rilascio di patch software e aggiornamenti firmware, gran parte dei sistemi basati su Intel, che rendono tali sistemi immuni ad entrambi gli attacchi Spectre e Meltdown. Tale comunicato smentisce le voci secondo le quali le vulnerabilità sui processori Intel fossero un’invenzione.
Tutti gli altri produttori di software, Apple, Google, Mozilla, etc … stanno rilasciando aggiornamenti per i loro prodotti. L’unica mitigazione possibile al momento è aggiornare tutto ciò che è aggiornabile e continuare a farlo. Le applicazioni (browser, sistema operativo, etc…) una volta aggiornate, non scriveranno più nello spazio di memoria che riguarda le vulnerabilità.
PROOF OF CONCEPT (PoC)
Nel momento in cui scriviamo non risultano notizie di attacchi dannosi verso utenti e aziende che sfruttino le vulnerabilità di cui stiamo trattando. Un potenziale grave pericolo, se le falle non vengono corrette, comunque c’è e diventa ovviamente sempre più probabile con il passare del tempo.
È importante quindi, oltre a tenere i sistemi aggiornati, anche poter valutare se i propri sistemi siano vulnerabili oppure no. Per far ciò indichiamo di seguito alcuni tool individuati nella rete, tra i primi a circolare, che abbiamo testato sulle nostre macchine. Ovviamente non sono gli unici e altri ne usciranno nei prossimi giorni.
Per i sistemi Linux suggeriamo “Meltdown checker”, di Raphael Carvalho, il quale utilizza delle chiamate di sistema per capire se una o più di queste avvengono sfruttando la vulnerabilità Meltdown. Per utilizzare questo strumentino occorre scaricare i files sulla propria macchina, quindi “compilare” meltdown_checker.cc e quindi eseguirlo. Nei file da scaricare sono presenti chiare istruzioni su come procedere per effettuare il test.
Nell’immagine vediamo l’output del test su una macchina vulnerabile a Meltdown
Per i sistemi Windows, indichiamo invece la procedura “meltdown e spectre checker” di Catalin Cimpanu. Attraverso l’uso della Powershell, e grazie al modulo “SpeculationControl” che installeremo, questa procedura ci permette di controllare lo stato di protezione di Windows contro Meltdown e Spectre.
L'immagine indica che il sistema ha ricevuto patch per Meltdown, ma ha ricevuto patch incomplete per Spectre.
Infine ricordiamo che strumenti automatici di Vulnerability Assessment come Tenable, Nessus, OpenVas, etc... potrebbero aver già inserito tra i loro controlli anche quelli per le vulnerabilità di cui abbiamo trattato, che ricordiamo essere la CVE-2017-5754, CVE-2017-5753 e CVE-2017-5715.
A.S.
Hai degli asset di valore della tua azienda? Noi possiamo aiutarti a proteggerli.