Due attacchi al meccanismo di previsione del canale della cache nei processori AMD

Un gruppo di ricercatori della Graz University of Technology (Austria), precedentemente noto per lo sviluppo di metodi di attacco MDS, NetSpectre, Lancia martello и ZombieLoad, ha condotto ricerche sulle ottimizzazioni hardware specifiche per i processori AMD e ha sviluppato due nuovi metodi di attacchi side-channel che manipolano le fughe di dati durante il funzionamento del meccanismo di previsione del canale cache LXNUMX dei processori AMD. Le tecniche possono essere utilizzate per ridurre l'efficacia della protezione ASLR, recuperare le chiavi nelle implementazioni AES vulnerabili e aumentare l'efficacia dell'attacco Spectre.

Sono stati identificati problemi nell'implementazione del meccanismo di previsione del canale (way predittor) nella cache dati di primo livello (L1D) della CPU, utilizzato per prevedere quale canale cache contiene un determinato indirizzo di memoria. L'ottimizzazione utilizzata nei processori AMD si basa sul controllo dei μ-tag (μTag). Il μTag viene calcolato applicando una specifica funzione hash all'indirizzo virtuale. Durante il funzionamento, il motore di previsione del canale utilizza μTag per determinare il canale della cache dalla tabella. Pertanto, μTag consente al processore di limitarsi ad accedere solo a un canale specifico, senza cercare tra tutte le opzioni, riducendo significativamente il consumo energetico della CPU.

Due attacchi al meccanismo di previsione del canale della cache nei processori AMD

Durante il reverse engineering dell'implementazione del sistema di previsione dei canali in varie generazioni di processori AMD rilasciati dal 2011 al 2019, sono state identificate due nuove tecniche di attacco del canale laterale:

  • Collide+Probe: consente a un utente malintenzionato di tenere traccia dell'accesso alla memoria per i processi in esecuzione sullo stesso core logico della CPU. L'essenza del metodo è utilizzare indirizzi virtuali che causano collisioni nella funzione hash utilizzata per calcolare μTag per tenere traccia dell'accesso alla memoria. A differenza degli attacchi Flush+Reload e Prime+Probe utilizzati sui processori Intel, Collide+Probe non utilizza la memoria condivisa e funziona senza conoscere gli indirizzi fisici.
  • Carica+Ricarica: consente di determinare in modo molto accurato le tracce di accesso alla memoria sullo stesso core fisico della CPU. Il metodo si basa sul fatto che una cella di memoria fisica può trovarsi nella cache L1D solo una volta. Quelli. l'accesso alla stessa cella di memoria a un indirizzo virtuale diverso causerà l'eliminazione della cella dalla cache L1D, consentendo il monitoraggio dell'accesso alla memoria. Sebbene l'attacco si basi sulla memoria condivisa, non svuota le linee della cache, consentendo attacchi furtivi che non eliminano i dati dalla cache di ultimo livello.

Basandosi sulle tecniche Collide+Probe e Load+Reload, i ricercatori hanno dimostrato diversi scenari di attacco sul canale laterale:

  • Viene mostrata la possibilità di utilizzare metodi per organizzare un canale di comunicazione indiretto nascosto tra due processi, consentendo il trasferimento di dati a velocità fino a 588 kB al secondo.
  • Utilizzando le collisioni in μTag, è stato possibile ridurre l'entropia per diverse varianti di ASLR (Address Space Layout Randomization) e bypassare la protezione ASLR nel kernel su un sistema Linux completamente aggiornato. Viene mostrata la possibilità di effettuare un attacco per ridurre l'entropia ASLR sia da applicazioni utente che utilizzando codice JavaScript eseguito in un ambiente sandbox e codice in esecuzione in un altro ambiente guest.

    Due attacchi al meccanismo di previsione del canale della cache nei processori AMD

  • Basandosi sul metodo Collide+Probe, è stato implementato un attacco per recuperare la chiave di crittografia da un'implementazione vulnerabile (basata su Tavolo a T) Crittografia AES.
  • Utilizzando il metodo Collide+Probe come canale di acquisizione dati, l'attacco Spectre è riuscito a estrarre dati privati ​​dal kernel senza utilizzare la memoria condivisa.

La vulnerabilità si verifica sui processori AMD basati su microarchitetture
Bulldozer, Piledriver, Steamroller, Zen (Ryzen, Epico), Zen+ e Zen2.
AMD è stata informata del problema il 23 agosto 2019, ma finora non ha rilasciato il rapporto con informazioni su come bloccare la vulnerabilità. Secondo i ricercatori, il problema può essere bloccato a livello di aggiornamento del microcodice fornendo bit MSR per disabilitare selettivamente il sistema di previsione dei canali, in modo simile a quello che ha fatto Intel per controllare la disabilitazione dei meccanismi di previsione dei rami.

Due attacchi al meccanismo di previsione del canale della cache nei processori AMD

Fonte: opennet.ru

Aggiungi un commento