Meltdown e Spectre: come risolvere il bug dei processori

Meltdown e Spectre: come risolvere il bug dei processori

Meltdown e Spectre: come risolvere il bug dei processori

La vulnerabilità più grave di sempre è quella di cui tutti parlano da circa una settimana, e non è una ma ben due, Meltdown e Spectre. La prima, Meltdown, riguarda quasi tutto: PC, tablet, server, smartphone, oltre molti altri oggetti intelligenti e anche il mondo del cloud. Le misure per risolverla, nonostante il rush degli ultimi giorni, devono ancora arrivare. Il problema secondo alcuni è di lunga data, si parla di 20 anni: nasce dal fatto che le architetture utilizzate dai produttori di processori hanno messo al primo posto le prestazioni sfavorendo invece la robustezza contro possibili attacchi esterni.

Il “meltdown”, ossia la fusione, è quella che porta differenti processi a sovrapporsi e a non essere più distinti e separati. Parliamo di processi che riguardano la memoria protetta del kernel del sistema operativo e i programmi che girano sui sistemi, e la possibilità quindi che un’applicazione malevola si intrometta e acceda direttamente alla memoria del kernel (aggirando la protezione di sicurezza KASLR) e quindi ai dati trattati da un diverso programma. La vulnerabilità è stata ricondotta principalmente ai processori Intel (ma probabilmente anche quelli AMD e ARM), e potenzialmente permette agli attaccanti di rubare password, chiavi crittografiche, Bitcoin, mail, foto, documenti o altri dati critici.

Gli exploit Meltdown e Spectre sfruttano la “Speculative Execution”

Meltdown è stato scoperto inizialmente lo scorso giugno da Jann Horn, un security analyst del team di ricerca sulla sicurezza Google Project Zero, che ha immediatamente avvisato Intel. Successivamente altri a dichiararlo in modo indipendente sono stati  Werner Haas, Thomas Prescher (Cyberus Technology), Daniel Gruss, Moritz Lipp, Stefan Mangard, Michael Schwarz (Graz University of Technology). Il secondo flaw, Spectre, è stato scoperto sempre da Horn di Google e separatamente da Paul Kocher in collaborazione con Daniel Genkin (University of Pennsylvania e University of Maryland), Mike Hamburg (Rambus), Moritz Lipp (Graz University of Technology), Yuval Yarom (University of Adelaide e Data61).

In teoria il problema non avrebbe dovuto diventare noto prima del rilascio di tutte le patches e di tutti gli aggiornamenti (per evitare il suo sfruttamento da parte degli hacker) ma le notizie hanno cominciato a filtrare ben presto, e negli scorsi giorni la notizia è esplosa diventando di dominio pubblico.

Meltdown e Spectre sono exploit che sfruttano una funzione delle CPU pensata inizialmente per renderle più performanti, la cosiddetta speculative execution, una tecnica associata al Simultaneous multithreading (SMT, l’elaborazione simultanea di più processi in parallelo). In sostanza quello che avviene è che per essere ancora più veloci, le CPU predicono il comportamento delle elaborazioni successive, prima che un processo sia completato. Le tecniche Meltdown e Spectre riescono però ad aggirare questo meccanismo permettendo ad un’applicazione terza con bassi privilegi (come un malware che gira contemporaneamente sul device, potenzialmente anche una routine Javascript in un browser non aggiornato) di accedere alla memoria del kernel e quindi leggervi le informazioni contenute.

In poche parole (come è stato ben spiegato su Motherboard in Cosa c’è dietro l’apocalisse dei processori di Intel), quando un processore utilizza la speculative execution per indovinare su una ramificazione, sta bypassando i controlli di accesso e, per un momento, sta esponendo lo spazio kernel protetto allo spazio utente. Un hacker intelligente può teoricamente sfruttare questa esposizione per dare un’occhiata alle password, alle chiavi e ad altre risorse protette.

Meltdown fa riferimento all’exploit “rogue data cache load” (CVE-2017-5754) mentre Spectre fa riferimento a due tecniche di exploitation conosciute come CVE-2017-5753, or “bounds check bypass”, and CVE-2017-5715, or “branch target injection”, che sfruttano sempre la possibilità di inserirsi nella memoria del kernel. Mentre Meltdown riguarda principalmente tutti i chip Intel usciti a partire dal 1995 (a parte Intel Itanium e Intel Atom prima del 2013), Spectre (in due varianti) tocca non solo i processori di Intel ma anche quelli di AMD (Ryzen) e ARM usati sugli smartphone. Meltdown è risolvibile via software, mentre Spectre per ora no e i problemi potrebbero rimanere per anni, come ha dichiarato TheRegister. Secondo Google però Spectre sarebbe molto più difficile da utilizzare da parte degli hacker.

In realtà non è la prima volta che Intel finisce sotto i riflettori dei Media per una vulnerabilità dei suoi processori: a giugno 2017 un gruppo di ricerca, Embedi, aveva già individuato un bug dei chip Intel che permetteva agli hacker di accedere da remoto a migliaia di PC, bypassando la sicurezza della porta AMT utilizzata normalmente dallo staff IT.

Da notare inoltre che il tema delle possibili vulnerabilità associate alle tecniche di Hyperthreading, con la possibile disclosure di informazioni registrate nella memoria locale, è già nota da tempo, almeno dal 2005, come aveva riportato il computer scientist Colin Percival nel blog Daemonic Dispatches, specificando che un attaccante sarebbe riuscito anche a rubare una chiave privata RSA usata sulla specifica macchina. Ai tempi il suo articolo sulle vulnerabilità dell’Intel Hyperthreading era stato rifiutato da una rivista dedicata alla Crittografia perché ritenuto poco collegato al tema ….

 

Come sarà risolto quindi il problema?

Secondo il Carnegie Mellon University Software Engineering Institute, Meltdown e Spectre dovrebbero essere risolti quanto prima, tramite aggiornamenti del sistema operativo, del firmware e delle altre applicazioni, e ove questo non sia possibile, con la sostituzione dell’hardware delle CPU impattate dal problema. Anche il CERT statunitense inizialmente ha proposto di sostituire tutti i sistemi vulnerabili (Fully removing the vulnerability requires replacing vulnerable CPU hardware): poi si è ricreduto. Al momento tutti sono quindi al lavoro per risolvere i problemi per i propri sistemi: secondo quanto dichiarato dalla stessa Intel, entro una settimana gran parte dei problemi dovrebbero essere già risolti (almeno per Meltdown).

  1. Aggiornamento dei sistemi operativi.

Apple, Microsoft e Google stanno già rilasciando i loro aggiornamenti per i rispettivi ambienti operativi.

Per Meltdown Microsoft ha già rilasciato una patch per Linux e per i datacenter, mentre per Windows 10 è già disponibile la patch KB4056892 e Apple chiuderà definitivamente la falla con l’aggiornamento a macOS 10.13.3 (ancora nessun aggiornamento invece per Windows 7 e 8.1).

Anche Android è a rischio: Google avrebbe già risolto la falla negli aggiornamenti di sicurezza di gennaio, ma il problema è che non tutti gli smartphone Android ricevono gli aggiornamenti di sicurezza.

Il sito Meltdownattack.com riporta la lista completa di tutte le indicazioni fornite dai vendor per gli  aggiornamenti di sicurezza dei propri sistemi.

  1. Fixing degli ambienti cloud

Per quanto riguarda gli ambienti basati su macchine virtuali, è stato dimostrato che un attacco eseguito su una macchina virtuale può leggere la memoria fisica della macchina ospite (host) e da lì leggere la memoria di un’altra macchina virtuale sullo stesso host. Un bel problema quindi per chiunque gestisca servizi cloud in modo condiviso tra i propri clienti: gli hacker potrebbero teoricamente affittare spazio su un cloud e una volta lì, utilizzare Meltdown per rubare password e altre informazioni da clienti attivi sugli stessi sistemi.

Tutti i cloud provider si sono quindi già mossi per risolvere i problemi: ad esempio Google ha già dichiarato di aver aggiornato tutti i suoi servizi cloud, e proposto di attivare per Chrome 63 (in vista della versione 64 che dovrebbe sistemare il problema) la funzione Site Isolation.

Amazon ha informato i suoi clienti dei servizi AWS che la vulnerabilità “has existed for more than 20 years in modern processor architectures”, dichiarando di aver protetto già “quasi tutte” le sue istanze e raccomandando di aggiornare le proprie interfacce software.

  1. L’impatto della vulnerabilità delle CPU nel settore finanziario

Anche la community del settore finanziario è molto preoccupata dei rischi associati a questo problema: secondo il Financial Services Information Sharing and Analysis Center (FS-ISAC), tutti i sui membri del settore finanziario stanno valutando con attenzione quali devono essere le misure più urgenti e concrete da prendere. Si teme anche che gli update possano portare a degradazioni delle performance dei sistemi, e quindi, per ripristinare i servizi, sia necessario investire in maggiore potenza elaborativa, con un costo quindi superiore associato al mantenimento dei sistemi attuali. “The current general thought is that the security risk will be lower on dedicated servers and endpoints (due to the expected exploit requirement to run code on an individual system) and higher on shared computers such as hosting and cloud services which use the same physical hardware (and processor) to share different (user) virtual machine,” ha dichiarato l’FS-ISAC.

A cura di:

Elena Vaciago, The Innovation Group

 

Siti di riferimento per rimanere informati:

Meltdown and Spectre. Bugs in modern computers leak passwords and sensitive data

Reading privileged memory with a side-channel

Apple – About speculative execution vulnerabilities in ARM-based and Intel CPUs

Intel – Important Security Information about Intel Manageability Firmware

Symantec – Meltdown and Spectre: Chip Vulnerabilities Could Facilitate Memory Leaks

FireEye Notice for CVE-2017-5754, CVE-2017-5753, and CVE-2017-5715 (“Meltdown” and “Spectre” vulnerabilities)