Nuove vulnerabilità per le CPU Intel
Si chiama Foreshadow ed è l’ultima tegola a cadere in testa a Intel e alla sicurezza dei suoi processori. La nuova vulnerabilità, scoperta indipendentemente da due gruppi di ricerca distinti e confermata dall’azienda, riguarda la funzionalità SGX presente in tutti i processori Intel Skylake e Kaby Lake e consiste in due diverse problematiche: da un lato una vulnerabilità nel funzionamento di SGX, dall’altra due attacchi che permettono di leggere liberamente (o quasi) la cache L1.
Il “foreshadowing” è una tecnica narrativa che prevede l’anticipazione di alcuni elementi della trama che non si sono ancora verificati, così da aggiungere tensione e da far intuire gli avvenimenti futuri nella narrazione. Il nome dell’attacco deriva quindi da tale tecnica, poiché dà indicazioni su ciò che ci sarà senza svelare in pieno la trama.
Foreshadow
Il primo attacco, chiamato appunto Foreshadow, sfrutta una falla nel funzionamento delle istruzioni SGX presenti nei processory Kaby Lake e Skylake. Le istruzioni SGX (Software Guard Extensions) permettono di creare delle enclavi nella memoria cui solo i processi autorizzati possono accedere e in cui essi stessi risiedono. Questo significa che nemmeno i processi operanti in kernel mode o a livelli di privilegio ancora superiori (ring 0, -1, -2) possono accedere a tali porzioni di memoria. Ciò permette quindi di escludere un accesso ai dati anche in caso di attacco che comprometta integralmente il sistema e ne dia pieno controllo all’attaccante, garantendo teoricamente la massima sicurezza.
I ricercatori che hanno lavorato su Foreshadow hanno però dimostrato come tali istruzioni non siano resistenti all’esecuzione speculativa e come questa possa essere utilizzata per ottenere informazioni . È infatti possibile estrarre la chiave di cifratura che identifica e protegge l’enclave (chiave di attestazione o attestation key) e accedere quindi ai suoi contenuti e modificarli.
Non solo: SGX fornisce anche un sistema di attestazione remota che permette di verificare che il programma sia in esecuzione in un’enclave e il corretto stato di funzionamento di questa su un processore abilitato. Con Foreshadow, però, è possibile estrarre la chiave di attestazione e firmare dunque attestazioni false spacciandole per vere, e senza la possibilità di verificare l’effettiva origine di tali attestazioni. Non è infatti possibile distinguere i messaggi di attestazione falsi da quelli veri una volta firmati con una chiave autentica.
SGX è tipicamente utilizzato in ambienti cloud, ma non solo; le sue funzionalità lo rendono infatti particolarmente indicato in tutti quegli ambienti dove un elevato livello di sicurezza e di separazione dei programmi è essenziale.
L’unico rimedio per questo attacco è una patch sia al livello del kernel che del microcodice. Per ragioni di sicurezza noon sono ancora stati rilasciati proof-of-concept. Linux ha già emanato delle patch per coprire il problema per i kernel 4.18, 4.17, 4.9 e 4.4. Microsoft ha incluso le patch nell’ultimo Patch Tuesday.
Essendo SGX una funzionalità esclusiva dei processori Intel, AMD e ARM non sono coinvolti da questo attacco.
Foreshadow-NG o L1 Terminal Fault
Si chiama Foreshadow-NG o L1 Terminal Fault (L1TF, secondo Intel) la coppia di attacchi scoperta da Intel mentre l’azienda indagava su Foreshadow. Tali attacchi non riguardano esclusivamente le istruzioni SGX, ma riguardano più in generale il contenuto della cache L1.
Foreshadow-NG permette di avere accesso in lettura potenzialmente a qualunque informazione presente nella cache L1, incluse informazioni che dovrebbero essere accessibili solo al kernnel o all’hypervisor. Ciò significa che è possibile accedere a istruzioni e dati di altri programmi (kernel incluso), senza escludere software in esecuzione su altre macchine virtuali che si appoggiano alla stessa macchina fisica. Ciò appare particolarmente significativo nel contesto del cloud computing, dove il noleggio di macchine virtuali è libero ed è potenzialmente possibile leggere dati riservati (es. chiavi private di cifratura) di altre macchine virtuali causando enormi problemi di sicurezza.
In questo caso la vulnerabilità è al momento certa solo sui processori Intel, che l’ha scoperta indagando su Foreshadow, ma non è escluso che possa essere presente anche su processori AMD o ARM. Ulteriori test in questo senso saranno condotti nel corso delle prossime settimane. I processori su cui è attestata la presenza della vulnerabilità sono tutti gli appartenenti alla serie Core dalla seconda generazione in poi e tutti gli equivalenti della famiglia Xeon.
Anche per Foreshadow-NG è necessario intervenire sia sul sistema operativo che sul microcodice per mitigare la vulnerabilità. Aggiornamenti sono già stati emanati per i kernel Linux e per i sistemi Windows.