Dettaglio News Dettaglio News

Meltdown e Spectre, vulnerabilità sui microprocessori mettono potenzialmente a rischio informazioni sensibili
05/01/2018
Meltdown & Spectre vulnerabilities
Il 3 gennaio 2018 ha siglato l'inizio del nuovo anno con la rivelazione di una serie di vulnerabilità di sicurezza, note come Meltdown e Spectre, che impattano i moderni microprocessori utilizzati sui computer (e su altri dispositivi). La gravità della vulnerabilità consiste nel fatto che se adeguatamente sfruttata potrebbe consentire l'accesso a informazioni sensibili.

Nello specifico, le vulnerabilità riguardano una caratteristica dei processori denominata "speculative execution" utilizzata per ottimizzare le prestazioni. Questa funzionalità consente di predire le azioni da intraprendere in base agli input ricevuti. Copia dei dati è quindi memorizzata temporaneamente nella CPU Cache alla quale i ricercatori di Google hanno dimostrato sia possibile accedere, sfruttando appunto la "speculative execution", raggiungendo quelle informazioni il cui accesso dovrebbe essere proibito. Al contempo Microsoft ha confermato la possibilità di sfruttare le vulnerabilità anche attraverso macchine virtuali per leggere la memoria fisica e accedere alla memoria di altri sistemi virtualizzati presenti sul medesimo host fisico.

Gli attacchi di tipo Spectre sfruttano le capacità di previsione dei "branch" di una CPU. Le CPU moderne includono una funzione chiamata "branch prediction", che esegue in modo speculativo le istruzioni in un punto in cui la CPU ritiene che si diramerà. Tale esecuzione speculativa consente di utilizzare in modo più completo le componenti della CPU, riducendo al minimo i tempi di attesa e, quindi, migliorando le prestazioni.

Quando un "branch" viene predetto con successo, le istruzioni precaricate vengono utilizzate, il che significa che i risultati delle istruzioni come la registrazione e le scritture di memoria saranno effettuate. Se un "branch" è male interpretato, le istruzioni eseguite a scopo speculativo verranno scartate e gli effetti collaterali diretti delle istruzioni saranno annullati. Ciò che non viene annullato sono gli effetti collaterali indiretti, come le modifiche alla cache della CPU.

Sfruttando la latenza delle operazioni di accesso alla memoria, la cache può essere utilizzata per estrarre i valori da istruzioni eseguite in modo speculativo.

Con entrambe le varianti dell'attacco Spectre, l'impatto è tale che un processo può esporre dati sensibili ad altri processi su un sistema. Spectre può anche consentire ad una parte di un'applicazione di accedere ad altre parti dello stesso spazio di memoria del processo che altrimenti non sarebbero consentite.
Meltdown (CVE-2017-5754)
Meltdown sfrutta un comportamento non sicuro che è stato riscontrato in particolare nelle CPU Intel e può influire sulle CPU di altri fornitori. Le CPU vulnerabili consentono letture della memoria nell'esecuzione di istruzioni "out of order" e contengono anche una "race condition" tra l'aumento delle eccezioni e l'esecuzione di istruzioni "out od order". L'attacco Meltdown legge un valore di memoria del kernel, il che solleva un'eccezione perché il codice in esecuzione con i privilegi dello spazio utente non è autorizzato a leggere direttamente la memoria del kernel.

Tuttavia, a causa delle "race condition", possono anche essere eseguite istruzioni fuori sequenza che seguono l'istruzione di errore. Anche se le istruzioni sono posizionate dopo l'istruzione di errore, l'esecuzione "out of order" consente ugualmente al codice di essere eseguito, utilizzando i dati recuperati dall'istruzione che solleva l'eccezione. Sebbene l'eccezione sollevata induca la CPU a ripristinare le istruzioni "out of order", lo stato della cache non viene ripristinato. Ciò consente ai dati provenienti da istruzioni "out of order" di persistere anche dopo che è stata sollevata l'eccezione.

L'impatto di Meltdown è tale che un processo in esecuzione nello spazio utente è in grado di visualizzare il contenuto della memoria del kernel.

Kernel Linux
Per i kernel Linux le "mitigations" per Meltdown sono indicate come KAISER e successivamente KPTI.

Queste mirano a migliorare la separazione tra le pagine di memoria del kernel e degli utenti. Poiché gli attacchi di tipo Spectre non superano invece i confini della memoria utente / kernel, le protezioni introdotte con KAISER / KPTI non aggiungono alcuna protezione contro di esse.

Le Patch
La situazione sulle patch per mitigare questi problemi, così come le informazioni in merito, sono in continua evoluzione.

Consigliamo di consultare la pagina web "meltdownspectre-patches" disponibile su Github per seguire le evoluzioni del problema ed avere i riferimenti sull'emissione delle patch dei sistemi ed architetture coinvolte.

Il CERT-PA continuerà a seguire le evoluzioni di quello che si preannuncia essere come un problema di lungo corso e, atteso che per il prossimo 9 gennaio tutti i maggiori produttori di sistemi operativi e browser, sia proprietari che opensource, hanno promesso il rilascio di patch significative per eliminare/mitigare le vilnerabilità emerse, produrrà dopo tale data un bollettino aggiornato con i riferimenti puntuali alle ultime patch.