Nuovo tipo di attacco BHI sulla CPU Intel, che consente di bypassare la protezione nel kernel di Linux

Un gruppo di ricercatori dell'Università Vrije di Amsterdam ha identificato un nuovo metodo di attacco "Native BHI" (CVE-2024-2201), che consente di determinare il contenuto della memoria del kernel Linux su sistemi con processori Intel, eseguendo un exploit nello spazio utente. Se impiegato su sistemi di virtualizzazione, l'attaccante dalla macchina virtuale può accedere alla memoria dell'ambiente host o di altri sistemi virtuali.

Il metodo Native BHI offre una tecnica differente per sfruttare la vulnerabilità BHI (Branch History Injection, CVE-2022-0001), superando i precedenti meccanismi di protezione. Il metodo di attacco BHI proposto nel 2022 prevedeva lo sfruttamento della vulnerabilità all'interno di un singolo livello di privilegi, utilizzando un exploit basato sull'esecuzione di un programma eBPF caricato dall'utente nel kernel. Per bloccare la vulnerabilità era sufficiente limitare l'accesso all'esecuzione di codice eBPF per gli utenti normali.

Il nuovo metodo Native BHI non richiede accesso a eBPF e consente un attacco da parte di un utente non privilegiato nello spazio utente. La tecnica si basa sull'esecuzione di gadget già esistenti nel codice del kernel - sequenze di istruzioni che portano all'esecuzione speculativa di istruzioni. È stato sviluppato uno strumento specifico, InSpectre Gadget, per identificare gadget idonei nel kernel; nell'analisi del kernel 6.6-rc4, sono stati trovati 1511 gadget Spectre e 2105 gadget ausiliari di gestione.

Nuovo tipo di attacco BHI sulla CPU Intel, che consente di bypassare la protezione nel kernel di Linux

Sulla base dei gadget trovati, i ricercatori hanno creato un exploit che consente di estrarre dai buffer del kernel una stringa contenente l'hash della password dell'utente root, caricata dal file /etc/shadow. La velocità di estrazione dei dati dalla memoria del kernel è di circa 3,5 kB al secondo.

Riproduci video

Il metodo BHI è una variante avanzata dell'attacco Spectre-v2, in cui, per bypassare la protezione aggiunta (Intel eIBRS e Arm CSV2) e organizzare una perdita di dati, vengono utilizzati valori di sostituzione nel buffer di storia delle diramazioni (Branch History Buffer), impiegato nelle CPU per migliorare l'accuratezza delle previsioni di diramazione, considerando la storia delle diramazioni passate. Durante l'attacco, mediante manovre sulla storia delle diramazioni, si creano le condizioni per una previsione errata di una diramazione e l'esecuzione speculativa delle istruzioni necessarie, i cui risultati rimangono nella cache.

Le differenze rispetto all'attacco Spectre-v2 riguardano l'uso del buffer di storia delle diramazioni (Branch History Buffer) invece del buffer di previsione delle diramazioni (Branch Target Buffer). Per estrarre dati dalla memoria, l'attaccante deve creare condizioni in cui, durante un'operazione speculativa, l'indirizzo venga preso da un'area che deve essere determinata. Dopo l'esecuzione di un salto indiretto speculativo, l'indirizzo letto dalla memoria rimane nella cache, e per la sua estrazione può essere applicato uno dei metodi di determinazione del contenuto della cache basati sull'analisi delle variazioni nei tempi di accesso tra dati cache e non-cache.

L'impiego di istruzioni Intel IBT (Indirect Branch Tracking) e il meccanismo ibrido di protezione del flusso di esecuzione FineIBT implementato nel kernel Linux non offre protezione contro l'attacco Native BHI. FineIBT consente l'esecuzione tramite un salto indiretto solo se il salto avviene verso l'istruzione ENDBR, che si trova all'inizio della funzione. Inoltre, a seguito dell'istruzione, viene eseguita una verifica degli hash che garantiscono l'integrità dei puntatori.

Per proteggere contro il nuovo tipo di attacco, il kernel Linux è stato aggiornato per implementare una modalità di protezione aggiuntiva, utilizzando le soluzioni hardware proposte da Intel (BHI_DIS_S) o una protezione software alternativa, progettata per salvaguardare il hypervisor. KVMGli sviluppatori dell'hypervisor Xen hanno anche rilasciato una patch, basata sull'utilizzo della modalità BHI_DIS_S, che limita le previsioni basate sulla storia delle diramazioni. Il supporto per BHI_DIS_S è disponibile su processori a partire da Intel Alder Lake e sulle CPU server a partire da Intel Sapphire Rapids. È disponibile anche una modalità di protezione software, basata sull'uso di sequenze per cancellare il buffer della storia delle diramazioni, ma comporta una riduzione delle prestazioni più evidente.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster