martedì 9 gennaio 2018

Gravi vulnerabilità nei processori Intel e ARM: Meltdown e Spectre.


Google ha rilasciato da qualche giorno i dettagli riguardanti tre vulnerabilità, sfruttabili con due tipi di attacco chiamati Meltdown e Spectre: inizialmente individuate solo per i processori Intel, Google ha affermato successivamente che le due vulnerabilità riguardano praticamente quasi tutti i processori rilasciati dal 1995 in poi. Google afferma che i due bug possono essere sfruttati per rubare dati processati recentemente nel computer, comprese le password archiviate nei password manager o nel browser, foto personali ed email, messaggi e perfino documenti confidenziali. I bug sono stati scoperti da Hann Horn, ricercatore di sicurezza di Google Project Zero, il gruppo di ricerca sulla sicurezza di Google. 

Le problematiche descritte sono bug a livello di hardware che necessitano di patch software. 
Horn aveva individuato e segnalato ai vendor di CPU queste problematiche nel Giungo 2017, specificando due diversi scenari di attacco. Aveva descritto queste problematiche come bug hardware che necessitano entrambe di patch per il firmware da parte dei vendor di CPU e patch software da parte dei vendor dei sistemi operativi e degli applicativi. Secondo Google queste problematiche affliggono tutti i principali produttori di processori (Intel, ARM), tutti i maggiori sistemi operativi (Windows, Linux, macOS, Android, ChromeOS), i provider cloud (Amazon, Google, Microsoft) e i produttori di applicativi. AMD invece ha rilasciato un avviso nel quale spiega che le proprie CPU non hanno questo bug: l'avviso completo si trova qui (ma il tema è più complicato, lo riprenderemo nei prossimi giorni).

Le vulnerabilità "risiedono" nella "speculative execution" della CPU
Le falle attuali risiedono nella tecNica chiamata di "speculative execution" impiegata in tutte le moderne CPU. E' una tecnica base di ottimizzazione delle prestazioni nella quale il processore tenta di calcolare il prossimo passo o istruzione in anticipo. Lo scopo è quello di preparare i risultati computazionali e averli già pronti all'uso quando saranno utili. Se una applicazione non necessita di dati "speculativi", la CPU semplicemente non li utilizza.

Google ha annunciato che Horn ha individuato una strada per usare la speculative execution per leggere dati dalla memoria della CPU che non dovrebbero essere disponibili ad app di livello utente. Riassumendo ha individuato 3 diverse vulnerabilità combinabili in due attacchi, chiamati Meltdown (CVE-2017-5754) e Spectre  (CVE-2017-5753 e CVE-2017-5715).

Che cosa sono Meltdown e Spectre
Meltdown rompe il fondamentale isolamento tra le applicazioni dell'utente e il sistema operativo. Questo attacco consente ad un programma l'accesso alla memoria, compresi dati protetti, di altri programmi e del sistema operativo. Il nome Meltdown discende proprio dal fatto che il bug "fonde" (melt) i confini che solitamente vengono applicati all'hardware. 

Spectre invece rompe l'isolamento tra applicazioni differenti. Consente ad un attaccante di "ingannare" programmi senza errori, che seguono le best practices, inducendoli a divulgare i dati segreti. Anzi, i controlli di sicurezza relativi alle best practices di cui parliamo sopra attualmente non fanno altro che incrementare la superficie di attacco, rendendo le applicazioni ancora più suscettibili a Spectre. Stiamo in sunto parlando di attacchi volti a interrompere la separazione tra i processi a livello account utente e i processi a livello kernel. Una separazione fondamentale per garantire che le informazioni, assai preziose, contenute nel kernel (pensa alle password) non possano essere lette da applicazioni con privilegi inferiori.

Spectre è più difficile da sfruttare rispetto a Meltdown, ma anche più difficile da mitigare. 

I rischi
Questi due attacchi consentono, quindi, il furto di una serie di dati molto delicati come password, certificati, dati memorizzati nella cache ecc...Alcuni ricercatori però affermano anche che la parte più grave del problema è il fatto che queste vulnerabilità possono rendere decisamente più semplice pe r un malware sfruttare altre vulnerabilità sul sistema. 

L'individuazione di Meltdown e Spectre sarà difficile
Google ha anche aggiunto che rilevare questi due attacchi è quasi impossibile al momento. L'exploit infatti non lascia alcuna traccia nei tradizionali file log ed è assai probabile che gli antivirus non siano in grado di individuarli. Ecco perchè Google non sa indicare se Meltdown e Spectre siano mai stati usati in attacchi reali. 

Quali CPU sono vulnerabili?Google conferma che potrebbero essere vulnerabili tutti i processori Intel rilasciati dal 1995 (fanno eccezione Intel Itanium e Intel Atom prima del 2013), e ARM. In sunto, dato il peso di mercato di queste due aziende (ma principalmente di Intel), possiamo dire che quasi tutti i processori sono affetti da questi bug. Ad esempio Intel ha una quota di mercato dell'80% sui pc fissi e più del 90% in quello dei portatili e server: in sunto un grandissimo numero di pc fissi, portatili e server hanno questa problematica. Non si conosce l'impatto di Meltdown sui dispositivi mobili, ma è già disponibile una patch per Android.

Le CPU ARM vulnerabili a Spectre e Meltdown. 

Le patch
Tutti concordano sul fatto che sia assolutamente necessario risolvere queste falle, data la loro gravità: nasce così l'esigenza di modificare tutto il sistema di gestione delle chiamate di sistema in modo che kernel e programmi siano EFFETTIVAMENTE in due ambienti diversi. Molte aziende hanno già iniziato a rilasciare patch per le vulnerabilità Meltdown e Spectre. Qui la lista

Il problema è che questa modifica potrebbe comportare, almeno per i PC su piattaforma Intel, un rallentamento che potrà variare dal 5 l 30% a seconda del modello di CPU (più un processore è recente, meno la patch avrà impatto sulle prestazioni) e a seconda del tipo di calcolo che dovrà eseguire. Se Intel nega categoricamente il rischio di rallentamento a causa della patch, va detto che ancora non sono stati effettuati benchmark accurati, ma moltissimi utenti che hanno già applicato le patch confermano il problema. 

Sono già disponibili patch per Linux e Android, Apple e Windows. Approfondiremo in prossimi articoli le patch e i problemi conseguenti. Dobbiamo avvisare ad esempio che gli utenti Windows, ricevuta o installata la patch, stanno riscontrando gravi problemi, ovvero il crash completo (la schermata blu si ripresenta ad ogni avvio) dei computer che montano alcuni antivirus. Sui forum tecnici di Microsoft è possibile rintracciare molteplici lamentele di utenti. Alcune info utili sono qui.

Riferimenti:
Il dossier su Meltdown: https://meltdownattack.com/meltdown.pdf
Il dossier su Spectre: https://spectreattack.com/spectre.pdf

Nessun commento:

Posta un commento