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

Pubblicato informazioni su una nuova classe di attacchi LVI (Iniezione del valore di carico, CVE-2020-0551) sul meccanismo di esecuzione speculativa nelle CPU Intel, che può essere utilizzato per divulgare chiavi e dati segreti dalle enclave Intel SGX e da altri processi.

Una nuova classe di attacchi si basa sulla manipolazione delle stesse strutture microarchitettoniche utilizzate negli attacchi MDS (Campionamento dati microarchitettonici), Spettro e fusione. Allo stesso tempo, i nuovi attacchi non vengono bloccati dai metodi di protezione esistenti contro Meltdown, Spectre, MDS e altri attacchi simili. Una protezione LVI efficace richiede modifiche hardware alla CPU. Quando si organizza la protezione a livello di programmazione, aggiungendo l'istruzione LFENCE da parte del compilatore dopo ogni operazione di caricamento dalla memoria e sostituendo l'istruzione RET con POP, LFENCE e JMP, viene registrato un sovraccarico eccessivo: secondo i ricercatori, la protezione completa del software porterà a una diminuzione della prestazione da 2-19 volte.

Parte della difficoltà nel bloccare il problema è compensata dal fatto che l'attacco è attualmente più teorico che pratico (l'attacco è teoricamente possibile, ma molto difficile da implementare e riproducibile solo in test sintetici).
Intel appropriato il problema ha un livello di pericolosità moderato (5.6 su 10) e rilasciato aggiornando il firmware e l'SDK per l'ambiente SGX, in cui ha tentato di bloccare l'attacco utilizzando una soluzione alternativa. I metodi di attacco proposti sono attualmente applicabili solo ai processori Intel, ma non si può escludere la possibilità di adattare LVI per altri processori a cui sono applicabili attacchi di classe Meltdown.

Il problema è stato individuato lo scorso aprile dal ricercatore Jo Van Bulck dell'Università di Lovanio, dopodiché, con la partecipazione di 9 ricercatori di altre università, sono stati sviluppati cinque metodi di attacco base, ciascuno dei quali consente l'esistenza di metodi più specifici Opzioni. Indipendentemente, nel febbraio di quest'anno, anche i ricercatori di Bitdefender ha scoperto una delle varianti di attacco LVI e l'ha segnalata a Intel. Le varianti di attacco si distinguono per l'utilizzo di differenti strutture microarchitettoniche, quali buffer di storage (SB, Store Buffer), buffer di riempimento (LFB, Line Fill Buffer), buffer di cambio contesto FPU e cache di primo livello (L1D), precedentemente utilizzate in attacchi come ZombieLoad, RIDL, Fallout, PigroFP, prefigurare и Meltdown.

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

Il principale onori L'LVI contro gli attacchi MDS è che MDS manipola la determinazione del contenuto delle strutture microarchitettoniche che rimangono nella cache dopo la gestione speculativa degli errori o le operazioni di caricamento e archiviazione, mentre
Gli attacchi LVI consentono ai dati dell'aggressore di essere inseriti in strutture microarchitettoniche per influenzare la successiva esecuzione speculativa del codice della vittima. Utilizzando queste manipolazioni, un utente malintenzionato può estrarre il contenuto di strutture di dati private in altri processi durante l'esecuzione di determinato codice sul core della CPU di destinazione.

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

per problema dello sfruttamento nel codice del processo della vittima dovrebbero incontrarsi sequenze speciali di codice (gadget) in cui viene caricato un valore controllato dall'aggressore e il caricamento di questo valore provoca la generazione di eccezioni (errore, interruzione o assistenza), scartando il risultato e rieseguendo l'istruzione. Quando viene elaborata un'eccezione, viene visualizzata una finestra speculativa durante la quale i dati elaborati nel gadget perdono. In particolare, il processore inizia ad eseguire un pezzo di codice (gadget) in modalità speculativa, poi determina che la previsione non era giustificata e ripristina le operazioni allo stato originale, ma i dati elaborati durante l'esecuzione speculativa vengono depositati nella cache L1D e buffer microarchitettonici ed è disponibile per il recupero da essi utilizzando metodi noti per determinare i dati residui attraverso canali di terze parti.

L'eccezione "assist", a differenza dell'eccezione "fault", viene gestita internamente dal processore senza chiamare gestori software. L'assistenza può verificarsi, ad esempio, quando è necessario aggiornare il bit A (Accessed) o D (Dirty) nella tabella delle pagine di memoria. La principale difficoltà nell'effettuare un attacco ad altri processi è come avviare il verificarsi dell'assistenza manipolando il processo della vittima. Al momento non esistono metodi affidabili per farlo, ma è possibile che vengano trovati in futuro. La possibilità di effettuare un attacco è stata finora confermata solo per le enclavi Intel SGX, altri scenari sono teorici o riproducibili in condizioni sintetiche (richiede l'aggiunta di alcuni gadget al 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:

  • Perdita di dati dalle strutture del kernel al processo a livello utente. La protezione del kernel Linux contro gli attacchi Spectre 1, così come il meccanismo di protezione SMAP (Supervisor Mode Access Prevention), riducono significativamente la probabilità di un attacco LVI. Potrebbe essere necessario aggiungere ulteriore protezione al kernel se in futuro verranno identificati metodi di attacco LVI più semplici.
  • Perdita di dati tra processi diversi. L'attacco richiede la presenza di determinate parti di codice nell'applicazione e la definizione di un metodo per generare un'eccezione nel processo di destinazione.
  • Perdita di dati dall'ambiente host al sistema ospite. L'attacco è classificato come troppo complesso e richiede varie fasi difficili da implementare e previsioni di attività nel sistema.
  • Perdita di dati tra processi in diversi sistemi ospiti. Il vettore di attacco è simile all’organizzazione della fuga di dati tra diversi processi, ma richiede inoltre manipolazioni complesse per aggirare l’isolamento tra i sistemi ospiti.

Pubblicato dai ricercatori un po 'di prototipi con una dimostrazione dei principi per sferrare un attacco, ma non sono ancora adatti per effettuare attacchi reali. Il primo esempio consente di reindirizzare l'esecuzione speculativa del codice nel processo vittima, in modo simile alla programmazione orientata al rendimento (POR,Programmazione orientata al ritorno). In questo esempio, la vittima è un processo appositamente preparato contenente i gadget necessari (è difficile applicare un attacco a processi reali di terze parti). Il secondo esempio ci consente di interferire con i calcoli durante la crittografia AES all'interno dell'enclave Intel SGX e organizzare una perdita di dati durante l'esecuzione speculativa delle istruzioni per ripristinare il valore della chiave utilizzata per la crittografia.


Fonte: opennet.ru

Aggiungi un commento