Hanno sviluppato una serie di attacchi di ripristino della cache della CPU nei browser Web senza richiedere JavaScript

Un team di ricercatori di varie università Americani, israeliani e australiani ha sviluppato tre attacchi mirati ai browser web che consentono l'estrazione di informazioni sul contenuto della cache del processore. Un metodo funziona nei browser senza JavaScripte gli altri due aggirano i metodi di protezione esistenti contro gli attacchi tramite canali di terze parti, inclusi quelli utilizzati nel browser Tor e DeterFox.

Per analizzare il contenuto della cache in tutti gli attacchi utilizzano il metodo "Prime + Probe", che implica il riempimento della cache con una serie di valori di riferimento e la determinazione delle modifiche misurando il tempo di accesso a loro quando ricaricati. Per aggirare i meccanismi di sicurezza presenti nei browser, che impediscono una precisa misurazione del tempo, in due versioni viene chiamato un server DNS o WebSocket di attacco controllato, che tiene traccia dell'ora di ricezione delle richieste. In una forma di realizzazione, il tempo di risposta DNS fisso viene utilizzato come riferimento temporale.

Le misurazioni effettuate utilizzando server DNS esterni o WebSocket, grazie all'utilizzo di un sistema di classificazione basato sul machine learning, sono state sufficienti per prevedere valori con una precisione del 98% nello scenario più ottimale (in media 80-90%). I metodi di attacco sono stati testati su varie piattaforme hardware (Intel, AMD Ryzen, Apple M1, Samsung Exynos) e si sono dimostrati versatili.

La prima variante dell'attacco DNS Racing utilizza un'implementazione classica del metodo Prime + Probe utilizzando gli array JavaScript. Le differenze si riducono all'uso di un timer esterno basato su DNS e di un gestore degli errori che si attiva quando si tenta di caricare un'immagine da un dominio inesistente. Il timer esterno consente attacchi Prime + Probe nei browser che limitano o disabilitano completamente l'accesso al timer JavaScript.

Per un server DNS ospitato sulla stessa rete Ethernet, la precisione del timer è stimata in circa 2 ms, che è sufficiente per eseguire un attacco di canale laterale (per confronto: la precisione del timer JavaScript standard nel browser Tor ha stato ridotto a 100 ms). Per l'attacco non è richiesto alcun controllo sul server DNS, poiché il tempo di esecuzione dell'operazione è selezionato in modo che il tempo di risposta DNS serva come segnale di un completamento anticipato della verifica (a seconda che il gestore degli errori sia stato attivato prima o dopo). , si conclude che l'operazione di verifica con la cache è terminata) ...

Il secondo attacco "String and Sock" è progettato per aggirare le tecniche di sicurezza che limitano l'uso di array JavaScript di basso livello. Invece di array, String e Sock utilizzano operazioni su stringhe molto grandi, la cui dimensione viene scelta in modo che la variabile copra l'intera cache LLC (cache di primo livello).

Successivamente, utilizzando la funzione indexOf (), viene cercata una piccola sottostringa nella stringa, che inizialmente è assente nella stringa originale, ovvero l'operazione di ricerca risulta in un'iterazione sull'intera stringa. Poiché la dimensione della riga corrisponde alla dimensione della cache LLC, la scansione consente di eseguire un'operazione di verifica della cache senza manipolare gli array. Per misurare i ritardi, al posto del DNS, questo è un appello a un server WebSocket attaccante controllato dall'aggressore: prima dell'inizio e dopo la fine dell'operazione di ricerca, le richieste vengono inviate nella catena,

La terza versione dell'attacco "CSS PP0" tramite HTML e CSS, e può funzionare in browser con JavaScript disabilitato. Questo metodo ha l'aspetto di "String and Sock" ma non è vincolato a JavaScript. L'attacco genera un insieme di selettori CSS che cercano per maschera. La grande linea originale che riempie la cache viene impostato creando un tag div con un nome di classe molto grande en che al suo interno è un insieme di altri div con i propri identificatori.

Ognuno di questi div annidati hanno uno stile con un selettore che cerca una sottostringa. Durante il rendering della pagina, il browser tenta prima di elaborare i div interni, il che si traduce in una ricerca su una stringa di grandi dimensioni. La ricerca viene effettuata utilizzando una maschera evidentemente mancante e porta ad un'iterazione dell'intera stringa, dopodiché viene attivata la condizione 'no' e si tenta di caricare l'immagine di sfondo.


Lascia un tuo commento

L'indirizzo email non verrà pubblicato. I campi obbligatori sono contrassegnati con *

*

*

  1. Responsabile dei dati: Miguel Ángel Gatón
  2. Scopo dei dati: controllo SPAM, gestione commenti.
  3. Legittimazione: il tuo consenso
  4. Comunicazione dei dati: I dati non saranno oggetto di comunicazione a terzi se non per obbligo di legge.
  5. Archiviazione dati: database ospitato da Occentus Networks (UE)
  6. Diritti: in qualsiasi momento puoi limitare, recuperare ed eliminare le tue informazioni.