LVI — una nuova classe di attacchi al meccanismo di esecuzione speculativa nella CPU.

Sono stati resi noti dati su un nuovo tipo di attacco LVI (Load Value Injection, CVE-2020-0551) al meccanismo di esecuzione speculativa nei processori Intel, che possono essere utilizzati per organizzare la fuga di chiavi e dati sensibili dagli enclave Intel SGX e da altri processi.

Il nuovo tipo di attacco si basa su manipolazioni delle stesse strutture microarchitettoniche degli attacchi MDS (Microarchitectural Data Sampling), Spectre e Meltdown. Questi nuovi attacchi non vengono bloccati dagli attuali metodi di protezione contro Meltdown, Spectre, MDS e altri attacchi simili. Per garantire una protezione efficace contro LVI, sono necessarie modifiche hardware nei processori. Implementando la protezione tramite software, attraverso l'aggiunta da parte del compilatore dell'istruzione LFENCE dopo ogni operazione di caricamento dalla memoria e sostituendo l'istruzione RET con POP, LFENCE e JMP, si generano sovraccarichi eccessivi: secondo le stime dei ricercatori, una protezione software completa comporterebbe una riduzione delle prestazioni da 2 a 19 volte.

In parte, la difficoltà di bloccare il problema è compensata dal fatto che attualmente l'attacco è più teorico che pratico (l'attacco è teoricamente possibile, ma molto difficile da attuare e si manifesta solo in test sintetici).
Azienda Intel ha assegnato al problema un livello moderato di pericolo (5.6 su 10) e ha rilasciato un aggiornamento del firmware e SDK per l'ambiente SGX, in cui ha tentato di bloccare l'attacco attraverso soluzioni alternative. I metodi di attacco proposti sono attualmente applicabili solo ai processori Intel, ma è possibile che LVI venga adattato anche ad altri processori soggetti ad attacchi di tipo Meltdown.

Il problema è stato identificato nell'aprile dello scorso anno dal ricercatore Jo Van Bulck dell'Università di Leuven, dopo di che, con la partecipazione di 9 ricercatori di altre università, sono stati sviluppati cinque metodi di base per eseguire attacchi, ognuno dei quali consente l'esistenza di varianti più specifiche . Indipendentemente, a febbraio di quest'anno, i ricercatori della Bitdefender hanno anche. Indipendentemente, a febbraio di quest'anno, i ricercatori della Bitdefender hanno anche hanno scoperto una delle varianti di attacco LVI è stata segnalata a Intel. Le varianti di attacco si differenziano per l'uso di diverse strutture microarchitetturali, come il buffer di archiviazione (SB, Store Buffer), il buffer di riempimento (LFB, Line Fill Buffer), il buffer di cambio contesto FPU e la cache di primo livello (L1D), già utilizzate in attacchi come ZombieLoad, RIDL, Fallout, LazyFP, Foreshadow e Meltdown.

LVI - una nuova classe di attacchi al meccanismo di esecuzione speculativa nella CPU

La principale differenza tra LVI e gli attacchi MDS è che MDS manipola la definizione del contenuto delle strutture microarchitetturali che rimangono nella cache dopo l'elaborazione speculativa delle eccezioni (fault) o delle operazioni di load e store, mentre
gli attacchi LVI permettono di ottenere la sostituzione dei dati dell'attaccante nelle strutture microarchitetturali per influenzare la successiva esecuzione speculativa del codice della vittima. Attraverso queste manipolazioni, l'attaccante può estrarre il contenuto di strutture dati riservate in altri processi durante l'esecuzione di un determinato codice sul core CPU target.

LVI - una nuova classe di attacchi al meccanismo di esecuzione speculativa nella CPU

Per sfruttamento del problema nel codice del processo vittima devono comparire sequenze di codice speciali (gadget) in cui viene caricato un valore controllato dall'attaccante. Il caricamento di questo valore porta all'insorgere di eccezioni (fault, abort o assist), che scartano il risultato e rieseguono l'istruzione. Durante la gestione dell'eccezione si verifica una finestra speculativa, durante la quale si verifica una perdita dei dati elaborati nel gadget. In particolare, il processore inizia ad eseguire in modalità speculativa un segmento di codice (gadget), poi determina che la previsione non è stata corretta e ripristina le operazioni allo stato originale, ma i dati elaborati durante l'esecuzione speculativa si accumulano nella cache L1D e nei buffer microarchitetturali, rendendoli disponibili per l'estrazione utilizzando metodi noti di rilevamento dei dati residui tramite canali laterali.

L'eccezione «assist», a differenza di «fault», viene gestita all'interno del processore senza invocare gestori software. L'assist può verificarsi, ad esempio, quando è necessario aggiornare il bit A (Accessed) o D (Dirty) nella tabella delle pagine di memoria. La principale difficoltà nell'eseguire un attacco su altri processi risiede nel come innescare l'insorgere dell'assist, manipolando il processo vittima. Al momento, non esistono metodi affidabili per farlo, ma in futuro non è escluso che vengano trovati. La possibilità di eseguire un attacco è attualmente confermata solo per gli enclave Intel SGX; gli altri scenari sono teorici o riproducibili in condizioni sintetiche (è necessaria l'aggiunta di determinati gadget nel codice).

LVI - una nuova classe di attacchi al meccanismo di esecuzione speculativa nella CPU

LVI - una nuova classe di attacchi al meccanismo di esecuzione speculativa nella CPU

Possibili vettori di attacco:

  • Fughe di dati dalle strutture del kernel al processo a livello utente. La protezione esistente nel kernel Linux contro attacchi di tipo Spectre 1 e il meccanismo di protezione SMAP (Supervisor Mode Access Prevention) riducono notevolmente la probabilità di un attacco LVI. Potrebbe essere necessaria un'ulteriore protezione nel kernel se in futuro venissero scoperti metodi più semplici per effettuare attacchi LVI.
  • Fuga di dati tra processi diversi. Per l'attacco è necessaria la presenza di determinati frammenti di codice nell'applicazione e l'identificazione del metodo di generazione dell'eccezione nel processo bersaglio.
  • Fuga di dati dall'ambiente host al sistema guest. L'attacco è classificato come troppo complesso, richiedendo l'esecuzione di vari passaggi difficili e previsioni sull'attività nel sistema.
  • Fuga di dati tra processi in diversi sistemi guest. Il vettore d'attacco è simile a quello che consente la fuga di dati tra processi diversi, ma richiede ulteriori complesse manovre per eludere l'isolamento tra i sistemi guest.

Ricercatori hanno pubblicato alcuni prototipi che dimostrano i principi di attuazione dell'attacco, ma al momento non sono adatti per eseguire attacchi reali. Il primo esempio permette di reindirizzare l'esecuzione speculativa del codice nel processo bersaglio, in analogia con la programmazione orientata al ritorno.ROP, Return-Oriented Programming). In questo esempio, l'obiettivo è un processo appositamente preparato che contiene i gadget necessari (l'applicazione dell'attacco a processi esterni reali è difficile). Il secondo esempio consente di infiltrarsi nei calcoli durante la crittografia AES all'interno dell'enclave Intel SGX e organizzare la fuoriuscita di dati durante l'esecuzione speculativa delle istruzioni per ripristinare il valore utilizzato per la crittografia della chiave.


Riproduci video

Fonte: opennet.ru

Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS 🔥 Acquista hosting affidabile per siti web con protezione DDoS, server VPS VDS | ProHoster