La vulnerabilità in eBPF consente di bypassare la protezione contro gli attacchi Spectre

Ieri abbiamo pubblicato qui sul blog la notizia su Aya, una libreria per creare driver eBPF in Rust ed è che lo scopo di questo è creare driver più sicuri o il Prossimo progetto per garantire la memoria del kernel Linux con Rust (due grandi progetti che daranno molto di cui parlare nei prossimi mesi).

Ed è che in breve tempo sono state segnalate varie vulnerabilità in quale sfruttare i bug in eBPF e che è un problema in cui gli sviluppatori del kernel non hanno smesso di funzionare e forse Rust è la soluzione.

La ragione per toccare questo argomento è che recentemente è uscita la notizia che hanno identificato Vulnerabilità "Altro" nel kernel Linux (CVE-2021-33624) per aggirare la protezione contro le vulnerabilità di classe Spectre, poiché ciò consente di utilizzare il sottosistema eBPF per poter determinare il contenuto della memoria a seguito della creazione di condizioni per speculazioni di esecuzione di determinate operazioni.

Si dice che la vulnerabilità è causato da errori nel verificatore, che viene utilizzato per rilevare errori e attività non valide nei programmi BPF. Il verificatore elenca i possibili percorsi di esecuzione del codice, ma ignora eventuali opzioni di ramificazione non valide dal punto di vista della semantica dell'architettura del set di istruzioni.

Quando si esegue un programma BPF, le opzioni di ramificazione che non sono state prese in considerazione dal verificatore possono essere previste in modo errato dal processore ed eseguite in modalità speculativa.

Sui sistemi interessati, un programma BPF senza privilegi può sfruttare questa vulnerabilità per filtrare il contenuto della memoria arbitraria del kernel (e quindi tutta la memoria fisica) attraverso un canale laterale.

Ad esempio, quando si analizza l'operazione di "caricamento", il verificatore presuppone che l'istruzione utilizzi un registro con un indirizzo il cui valore è sempre entro i limiti specificati, ma un attaccante può creare condizioni sotto il quale il processore tenterà in modo speculativo di eseguire uno scambio con un indirizzo che non soddisfa le condizioni di verifica.

L'attacco dello spettro richiede la presenza di uno script specifico nel codice privilegiato, portando all'esecuzione speculativa delle istruzioni. Manipolando i programmi BPF che vengono passati per l'esecuzione, è possibile generare tali istruzioni in eBPF e filtrare il contenuto della memoria del kernel e le aree arbitrarie della memoria fisica attraverso canali laterali.

Inoltre, puoi segnare una nota sull'impatto sulle prestazioni di beni per proteggersi dalla classe di vulnerabilità Spectre.

Questa nota riassume i risultati rr (Record and Replay) ottimizzazione del debugger, una volta creato da Mozilla per eseguire il debug di errori difficili da ripetere in Firefox. La memorizzazione nella cache delle chiamate di sistema utilizzate per verificare l'esistenza delle directory ha ridotto l'operazione "sorgenti rr" per il progetto di test da 3 minuti 19 secondi a 36 secondi.

L'autore dell'ottimizzazione ha deciso di controllare quanto cambierà prestazioni dopo aver disabilitato la protezione dello spettro. Dopo aver avviato il sistema con il parametro «mitigazioni = off», il tempo di esecuzione delle «sorgenti rr» senza ottimizzazione è stato di 2 minuti e 5 secondi (1.6 volte più veloce) e con ottimizzazione di 33 secondi (9% più veloce).

Curiosamente, disabilitare la protezione Spectre non solo ridurre il tempo di esecuzione del codice a livello di kernel in 1.4 volte (da 2 min 9s a 1 min 32s), ha anche dimezzato il tempo di esecuzione nello spazio utente (da 1 min 9s a 33s), presumibilmente a causa di una diminuzione dell'efficienza della cache della CPU e TLB vengono ripristinati quando la protezione Spectre è abilitata.

Il problema è apparso dal rilascio del kernel 4.15 e è stato corretto sotto forma di patch, che al momento ancora non raggiungono tutte le distribuzioni, quindi si raccomanda agli utenti che in questi giorni stiano effettuando i relativi aggiornamenti non appena ricevono le notifiche.

Si vuoi saperne di più, puoi controllare i dettagli nel seguente link


Lascia un tuo commento

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

*

*

  1. Responsabile del trattamento: AB Internet Networks 2008 SL
  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.