Quali sono le vulnerabilità di Spectre e Meltdown?

Due delle vulnerabilità più pubblicizzate negli anni 2010 erano strettamente legate l'una all'altra. Piuttosto che essere vulnerabilità di sicurezza nel software, Spectre e Meltdown sono vulnerabilità nella progettazione fondamentale delle CPU che rendono il problema più difficile da risolvere. I problemi stessi sono particolarmente gravi, consentendo la divulgazione della memoria da altre applicazioni e dal sistema operativo.

Panoramica

Le CPU utilizzano design incredibilmente avanzati per ottenere le massime prestazioni, comprese tecniche che includono l'esecuzione speculativa e la previsione dei rami. L'esecuzione speculativa è il punto in cui la CPU inizia a eseguire un processo prima di sapere se è necessario, nel tentativo di risparmiare tempo quando determina che è necessario. La previsione del ramo è un sottoinsieme di esecuzione speculativa che tenta di prevedere l'esito di un processo e quindi inizia a calcolare il passaggio successivo in base a quel valore previsto, consentendo alla CPU di eseguire una serie di istruzioni da ordine.

La vulnerabilità di Spectre deriva dall'implementazione di queste due funzionalità. Consente a un'applicazione di violare le tecniche di isolamento della memoria integrate nella maggior parte dei software moderni che consentono la divulgazione della memoria, inclusi segreti come password e chiavi di crittografia. Uno dei problemi con Spectre è che è possibile accedere ai dati da applicazioni che non presentano vulnerabilità di sicurezza poiché è richiesto solo un programma dannoso.

La vulnerabilità Meltdown si basa su alcune tecniche di memoria, nonché sul sistema di esecuzione speculativo sopra menzionato. Utilizza una "condizione di gara" tra l'esecuzione del processo e il controllo dei privilegi e consente a un programma dannoso di accedere alla memoria di altre applicazioni e del sistema operativo.

Suggerimento: una "condizione di gara" è un problema in cui un'attività dovrebbe fare affidamento su un'altra, ma non viene applicato l'ordine di esecuzione corretto. Ciò può comportare che il "secondo" processo venga eseguito per primo e utilizzi la memoria non inizializzata che avrebbe dovuto contenere il risultato del "primo" processo, perdendo il contenuto precedente di quella memoria. In questo caso specifico, il processo non dovrebbe essere eseguito fino a quando un controllo delle autorizzazioni non ha verificato che è consentito, ma il controllo delle autorizzazioni può avvenire in secondo luogo a causa dell'ottimizzazione delle prestazioni.

Effetti

A metà del 2017 diversi team hanno scoperto e segnalato privatamente sia Meltdown che Spectre ai produttori di CPU che hanno sviluppato patch. A causa delle patch mirate all'ottimizzazione delle prestazioni, hanno finito per ridurre le prestazioni delle CPU fino a 30% negli scenari peggiori, con un calo delle prestazioni del 2-14% più rappresentativo delle persone esperienze.

Le vulnerabilità hanno interessato molte CPU x86, CPU IBM POWER e alcune CPU basate su ARM. Il crollo colpisce l'hardware che si trova tipicamente nei personal computer e nei server cloud. Lo spettro colpisce personal computer, server cloud e dispositivi mobili. Tutte le CPU Intel dal 1995 alla metà del 2018 erano vulnerabili ai problemi (con l'esclusione delle linee Itanium e Atom prima del 2013). Le CPU AMD non sono state colpite da Meltdown ma erano vulnerabili a Spectre.

Le patch di mitigazione del software sono state sviluppate e rilasciate tramite fornitori di sistemi operativi che risolvono la maggior parte dei problemi. Dalla metà del 2018 Intel ha aggiornato il design della CPU per includere mitigazioni hardware per i problemi.

Entrambi i problemi possono essere sfruttati tramite pagine Web dannose con JavaScript predisposto, quindi è davvero importante assicurati che le patch di sicurezza siano installate su ogni sistema, anche se la perdita di prestazioni sarà acuto. Sfortunatamente, i problemi non possono essere risolti con una singola patch, poiché sono problemi estremamente complessi con profondità integrazione nell'hardware, le patch di sicurezza continueranno a essere implementate nel tempo man mano che lo sono le varianti più recenti scoperto.