Google dimostra lo sfruttamento delle vulnerabilità di Spectre utilizzando JavaScript in un browser

Google ha presentato diversi giorni fa vari prototipi di exploit che dimostrano la possibilità di sfruttare le vulnerabilità della classe Spectre durante l'esecuzione di codice JavaScript in un browser, senza passare attraverso i metodi di sicurezza aggiunti sopra.

Gli exploit possono essere utilizzati per accedere alla memoria di un processo che sta elaborando il contenuto web nella scheda corrente. Per testare il funzionamento dell'exploit è stato lanciato il sito web della pagina leaky e su GitHub è stato pubblicato il codice che descrive la logica dell'operazione.

Il prototipo proposto è progettato per sistemi di attacco con Processori Intel Core i7-6500U in ambiente Linux e Chrome 88, anche se questo non esclude che possano essere apportate modifiche per utilizzare l'exploit in altri ambienti.

Il metodo di funzionamento non è specifico per i processori Intel: dopo un adeguato adattamento, È stato confermato che l'exploit funziona su sistemi con CPU di terze parti, incluso l'Apple M1 basato sull'architettura ARM. Dopo piccole modifiche, l'exploit funziona anche su altri sistemi operativi e altri browser basati sul motore Chromium.

In un ambiente basato sui processori Chrome 88 e Intel Skylake standard, abbiamo ottenuto una perdita di dati dal processo responsabile del rendering dei contenuti web nella scheda Chrome corrente (processo di rendering) a una velocità di 1 kilobyte al secondo. Inoltre, sono stati sviluppati prototipi alternativi, ad esempio un exploit che consente, a costo di una ridotta stabilità, di aumentare la velocità di fuga a 8kB / s quando si utilizza il timer performance.now () con una precisione di 5 microsecondi (0.005 millisecondi ). È stata inoltre sviluppata una variante che funziona con una precisione del timer di un millisecondo, che potrebbe essere utilizzata per organizzare l'accesso alla memoria di un altro processo a una velocità di circa 60 byte al secondo.

Il codice demo pubblicato è composto da tre parti:

  • La prima parte calibrare il timer per stimare il tempo di esecuzione delle operazioni necessarie per recuperare i dati che rimangono nella cache del processore a seguito dell'esecuzione speculativa delle istruzioni della CPU.
  • La seconda parte Definisce il layout di memoria utilizzato durante l'allocazione dell'array JavaScript.
  • La terza parte sfrutta direttamente la vulnerabilità Spectre per determinare il contenuto della memoria del processo corrente a seguito della creazione di condizioni per l'esecuzione speculativa di determinate operazioni, il cui risultato viene scartato dal processore dopo aver determinato una previsione fallita, ma le tracce di esecuzione vengono depositate nella cache condivisa e possono essere ripristinate utilizzando metodi per determinare il contenuto della cache utilizzando canali di terze parti che analizzano la modifica del tempo di accesso ai dati memorizzati nella cache e non memorizzati nella cache.

La tecnica di sfruttamento proposta elimina i timer ad alta precisione disponibile tramite l'API performance.now () e senza supporto per il tipo SharedArrayBuffer, che consente di creare array nella memoria condivisa.

L'exploit include il dispositivo Spectre, che provoca l'esecuzione di codice speculativo controllato, e un analizzatore di perdite di canale laterale, che determina quali dati sono stati memorizzati nella cache durante l'esecuzione speculativa.

Il gadget viene implementato utilizzando un array JavaScript, in cui si tenta di accedere ad un'area al di fuori dei limiti di buffer, che influisce sullo stato del blocco di previsione del ramo a causa della presenza di un controllo della dimensione del buffer aggiunto dal compilatore (il processore esegue speculativamente un accesso in anticipo, ma ripristina lo stato dopo il controllo).

Per analizzare il contenuto della cache in condizioni di insufficiente precisione del timer, è stato proposto un metodo che inganna la strategia di eliminazione dei dati dalla cache Tree-PLRU utilizzata nei processori e consente, aumentando il numero di cicli, di aumentare notevolmente la differenza di tempo quando viene restituito il valore dalla cache e in assenza di un valore nella cache.

Google ha pubblicato un prototipo dell'exploit per mostrare la fattibilità degli attacchi utilizzando le vulnerabilità della classe Spectre e incoraggiare gli sviluppatori web a utilizzare tecniche che riducano al minimo i rischi di tali attacchi.

Allo stesso tempo, Google ritiene che senza una revisione significativa del prototipo proposto, sia impossibile creare exploit universali pronti non solo per la dimostrazione, ma anche per un uso diffuso.

fonte: https://security.googleblog.com


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.