Nuova variante di attacco Foreshadow che colpisce i processori Intel, AMD, ARM e IBM

Un gruppo di ricercatori dell’Università Tecnica di Graz (Austria) e del Centro Helmholtz per la Sicurezza Informatica (CISPA), rivelato (PDF) un nuovo vettore per l'utilizzo degli attacchi del canale laterale prefigurare (L1TF), che consente di estrarre dati dalla memoria delle enclave Intel SGX, SMM (System Management Mode), aree di memoria del kernel del sistema operativo e macchine virtuali nei sistemi di virtualizzazione. A differenza dell’attacco originale proposto nel 2018 prefigurare La nuova variante non è specifica per i processori Intel e riguarda CPU di altri produttori come ARM, IBM e AMD. Inoltre la nuova variante non richiede prestazioni elevate e l'attacco può essere effettuato anche eseguendo JavaScript e WebAssembly in un browser web.

L'attacco Foreshadow sfrutta il fatto che quando si accede alla memoria da un indirizzo virtuale che provoca un'eccezione (termin page error), il processore calcola speculativamente l'indirizzo fisico e carica i dati se sono disponibili nella cache L1. L'accesso speculativo viene eseguito prima che la ricerca nella tabella delle pagine di memoria sia completata e indipendentemente dallo stato della voce della tabella delle pagine di memoria (PTE), ad es. prima di verificare la presenza dei dati nella memoria fisica e la loro leggibilità. Una volta completato il controllo della disponibilità della memoria, in assenza del flag Present in PTE, l'operazione viene scartata, ma i dati rimangono nella cache e possono essere recuperati utilizzando metodi per determinare il contenuto della cache attraverso canali laterali (analizzando i cambiamenti nel tempo di accesso ai dati memorizzati nella cache e non nella cache).

I ricercatori hanno dimostrato che i metodi esistenti di protezione contro Foreshadow sono inefficaci e vengono implementati con un'errata interpretazione del problema. Vulnerabilità
Foreshadow può essere sfruttato indipendentemente dai meccanismi di sicurezza del kernel precedentemente considerati sufficienti. Di conseguenza, i ricercatori hanno dimostrato la possibilità di effettuare un attacco Foreshadow su sistemi con kernel relativamente vecchi, in cui tutte le modalità di protezione Foreshadow disponibili sono abilitate, così come con kernel nuovi, in cui solo la protezione Spectre-v2 è disabilitata (usando l'opzione del kernel Linux nospectre_v2).

E 'stato trovato che effetto di precarico non correlato alle istruzioni di precaricamento del software o agli effetti dell'hardware
prefetch durante l'accesso alla memoria, ma si verifica quando i dereferenziamenti speculativi dello spazio utente si registrano nel kernel. Questa errata interpretazione della causa della vulnerabilità ha inizialmente portato a supporre che la fuga di dati in Foreshadow potesse avvenire solo attraverso la cache L1, mentre la presenza di determinati frammenti di codice (gadget di prefetch) nel kernel potrebbe contribuire alla fuga di dati al di fuori della cache L1, ad esempio, nella cache L3.

La caratteristica identificata apre anche la possibilità di creare nuovi attacchi mirati ai processi di traduzione di indirizzi virtuali in fisici in ambienti isolati e di determinazione di indirizzi e dati archiviati nei registri della CPU. A titolo dimostrativo, i ricercatori hanno mostrato la possibilità di utilizzare l'effetto identificato per estrarre dati da un processo all'altro con una prestazione di circa 10 bit al secondo su un sistema dotato di CPU Intel Core i7-6500U. Viene inoltre mostrata la possibilità di perdita del contenuto del registro dall'enclave Intel SGX (ci sono voluti 32 minuti per determinare un valore a 64 bit scritto in un registro a 15 bit). Si è rivelato possibile implementare alcuni tipi di attacchi in JavaScript e WebAssembly, ad esempio è stato possibile determinare l'indirizzo fisico di una variabile JavaScript e riempire i registri a 64 bit con un valore controllato dall'aggressore.

Per bloccare l'attacco Foreshadow attraverso la cache L3 è efficace il metodo di protezione Spectre-BTB (Branch Target Buffer) implementato nel set di patch retpoline. Pertanto, i ricercatori ritengono che sia necessario lasciare abilitata retpoline anche sui sistemi con nuove CPU che già dispongono di protezione contro le vulnerabilità note nel meccanismo di esecuzione speculativa della CPU. Allo stesso tempo, i rappresentanti di Intel hanno dichiarato che non intendono aggiungere ulteriori misure di protezione contro Foreshadow ai processori e ritengono sufficiente includere la protezione contro gli attacchi Spectre V2 e L1TF (Foreshadow).

Fonte: opennet.ru

Aggiungi un commento