Scoperto nuovo attacco LVI-LFB (Load Value Injection nei Line Fill Buffer) side-channel critico

I ricercatori di Bitdefender hanno nuovamente identificato e creato un proof-of-concept per un nuovo attacco side-channel.

L'attacco, denominato LVI-LFB (Load Value Injection nei Line Fill Buffer) consente ai malintenzionati di iniettare i valori falsi in alcune strutture di micro-architettura che vengono poi utilizzate dalla vittima, provocando potenzialmente la divulgazione di dati segreti e protetti su diversi livelli di privilegi.

Questo nuovo attacco (CVE-2020-0551) colpisce le nuove CPU Intel che sfruttano l'esecuzione speculativa.

Breve panoramica

Nella loro ricerca di CPU sempre più veloci, i venditori hanno implementato varie versioni di esecuzione speculativa. Questa funzionalità fa in modo che la CPU esegua delle previsioni plausibili sulle istruzioni, che possono essere richieste prima che siano effettivamente richieste. Questo tipo di esecuzione speculativa può lasciare tracce nella cache, che gli aggressori possono utilizzare per violare la memoria kernel e privilegiata.

Ciò che rende la ricerca relativa a questi attacchi un'attività pionieristica rispetto a quella riguardante attacchi diretti verso vulnerabilità più tradizionali ha che fare con la radice stessa del funzionamento delle moderne CPU. Per effettuare indagini adeguate, i team di ricerca devono conoscere a fondo il funzionamento interno delle CPU (predizione delle diramazioni, esecuzione fuori ordine, esecuzione speculativa, pipeline e cache), dei sistemi operativi (chiamate di sistema, gestione di interruzioni ed eccezioni, KPTI), nonché gli attacchi side-channel e gli attacchi basati su esecuzione speculativa in generale.

Impatto

Questo nuovo attacco può essere particolarmente devastante in ambienti multi-tenant e multi-workload eseguiti su hardware condiviso tra gruppi di workload all'interno di un'organizzazione o tra organizzazioni, ad esempio cloud pubblici e privati. Questo perché, come mostrato nel proof-of-concept, è possibile che un processo con privilegi inferiori sotto il controllo dell'aggressore dirotti speculativamente il flusso di controllo in un processo con privilegi più elevati, in presenza di requisiti specifici.

Il rischio più diretto è il furto di dati segreti che verrebbero altrimenti mantenuti privati dalle protezioni perimetrali a livello di hardware, hypervisor e sistema operativo. Queste informazioni possono includere qualsiasi cosa, dalle chiavi di crittografia, alle password, o altre informazioni che un utente malintenzionato potrebbe esfiltrare o utilizzare per ottenere un ulteriore controllo del sistema preso di mira.

Com'è stato scoperto e reso pubblico l'attacco LVI-LFB

Questa nuova tecnica di attacco si chiama Load Value Injection e gli è stato assegnato il codice CVE-2020-0551 nel Common Vulnerabilities and Exposure.

I ricercatori avevano precedentemente esaminato MDS (Microarchitectural Data Sampling) da una sola direzione; la vittima accede al dato segreto, che viene caricato nei buffer MDS, mentre l'attaccante divulga il contenuto dei buffer MDS inviando un'istruzione di caricamento che richiede l'intervento di microcodice (ad esempio, attraverso lettura di un indirizzo non valido). Ma anche i buffer MDS possono essere utilizzati in modo improprio; se un malintenzionato esegue lo spraying di un determinato valore sui buffer MDS, una vittima può caricare speculativamente tale valore quando un'istruzione di load attiva tale microcodice (ad esempio, l'istruzione di load genera un errore). Analizzando in modo attento cos'è Spectre e cos'è MDS, un occhio allenato non tarderà a individuare la causa principale della nuova vulnerabilità LVI-LFB: una diramazione della memoria indiretta richiede l'intervento di un microcodice alimentato da valori obsoleti da buffer MDS che possono essere controllati da un attaccante, portando così all'esecuzione speculativa di codice arbitrario.

Altri scenari di attacco sono stati descritti da ricercatori accademici che lo hanno scoperto in modo indipendente e il problema è stato segnalato per la prima volta a Intel ad aprile 2019. Bitdefender ha segnalato il problema a Intel a febbraio 2020. Nella loro risposta del 25 febbraio riconoscevano l'esistenza del problema e dichiaravano che lo avrebbero reso pubblico il 10 marzo 2020.

Quali sistemi sono interessati?

L' attacco LVI-LFB colpisce le CPU Intel più recenti che sfruttano l'esecuzione speculativa.

Mitigazione

Le strategie di mitigazione per gli attacchi side-channel basati su hardware possono rientrare in diverse categorie, ognuna con un differente grado di impatto operativo sulle organizzazioni.

  1. Hardware. Si tratta di correzioni incluse direttamente nell'hardware e si applicano solo a generazioni di CPU costruite dopo l'identificazione dei difetti nell'architettura.
  2. Software. Si tratta di implementazioni di patch che funzionano interamente all'interno del software. Kernel Page Table Isolation (KPTI) è un buon esempio di correzione che protegge la memoria del kernel in uno spazio di indirizzi virtuali isolato, rendendo così inefficaci diversi attacchi side-channel speculativi come Meltdown. Ma per risultare efficace contro LVI-LFB da app a app, è necessario un nuovo tipo di KPTI – (KPTI orizzontale). In alternativa, il sistema operativo può anche eseguire il flush dei buffer MDS (in particolare i LFB) durante il passaggio da una modalità con meno privilegi a una modalità con più privilegi, per evitare che gli accessi alla memoria con microcodice effettuino un'esecuzione speculativa con dati controllati dall'attaccante
  3. Microcodice. Queste strategie di mitigazione richiedono una collaborazione tra hardware e software. Il fornitore di hardware fornisce una patch per il microcodice per presentare nuove funzionalità (ad esempio, mitigazioni per Spectre, L1TF o MDS) che vengono poi utilizzate dall'hypervisor o dai fornitori del sistema operativo per mitigare le vulnerabilità.
  4. Disattivazione di funzioni. Su sistemi in cui la sicurezza è fondamentale è una buona idea disattivare l',hyperthreading, così come effettuare la serializzazione di tutte le operazioni di carico critiche attraverso l'istruzione lfence. Altre forme di mitigazione possono richiedere modifiche sui compilatori, in modo da generare codice non vulnerabile a questo tipo di attacchi.

Un altro attacco side-channel scoperto da Bitdefender, l' attacco SWAPGS può essere mitigato usando Bitdefender Hypervisor Introspection.

Crediti

Il team di ricerca avanzata di Bitdefender vuole riconoscere il dovuto merito ai ricercatori che per primi hanno segnalato questo problema a Intel nell'aprile 2019, oltre che ringraziarli per la loro cooperazione e collaborazione, che hanno permesso la divulgazione al pubblico del problema (e non solo). Questi ricercatori accademici sono:

Jo Van Bulck, Daniel Moghimi, Michael Schwarz, Moritz Lipp, Marina Minkin, Daniel Genkin, Yuval Yarom, Berk Sunar, Daniel Gruss, e Frank Piessens

Questi ricercatori hanno creato un sito web dedicato e redatto un paper accademico dettagliato, disponibili ai seguenti link:

https://lviattack.eu/ (una descrizione dettagliata del problema)

https://lviattack.eu/lvi.pdf (un whitepaper accademico)

Ulteriori informazioni sono anche disponibili da Intel come segue:

https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00334.html (visoria)

https://software.intel.com/security-software-guidance/insights/deep-dive-load-value-injection (immersione tecnica)