Nuova variante dell'attacco BHI su CPU Intel, in grado di eludere la protezione nel kernel Linux

Un gruppo di ricercatori dell'Università Libera di Amsterdam ha identificato un nuovo metodo di attacco "Native BHI" (CVE-2024-2201), che consente, nei sistemi con processori Intel, di determinare il contenuto della memoria del kernel Linux durante l'esecuzione di un exploit nello spazio utenti. Nel caso in cui l'attacco venga applicato a sistemi di virtualizzazione, l'attaccante dal sistema ospite può determinare il contenuto della memoria dell'ambiente host o di altri sistemi ospiti.

Il metodo Native BHI offre una tecnica diversa per sfruttare la vulnerabilità BHI (Branch History Injection, CVE-2022-0001), che elude i precedentemente implementati metodi di protezione. Il metodo di attacco BHI proposto nel 2022 implicava lo sfruttamento di una vulnerabilità all'interno di un singolo livello di privilegi, per il quale l'exploit si basava sull'esecuzione di un programma eBPF caricato dall'utente nel kernel. Per bloccare la vulnerabilità è stato sufficiente limitare l'accesso all'esecuzione del codice eBPF per gli utenti ordinari.

Il nuovo metodo Native BHI non richiede accesso a eBPF e consente di effettuare un attacco da parte di utenti non privilegiati dallo spazio utenti. Il metodo si basa sull'esecuzione di gadget esistenti nel codice del kernel — sequenze di istruzioni che portano a un'esecuzione speculativa delle istruzioni. È stato sviluppato un apposito strumento InSpectre Gadget per trovare gadget appropriati nel kernel, che analizzando il kernel 6.6-rc4 ha identificato 1511 gadget Spectre e 2105 gadget ausiliari di dispatch.

Nuova variante dell'attacco BHI su CPU Intel, in grado di eludere la protezione nel kernel Linux

Sulla base dei gadget trovati, i ricercatori hanno preparato un exploit che consente di estrarre dalla memoria del kernel una stringa con 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.

Guarda il video

Il metodo BHI rappresenta una variante avanzata dell'attacco Spectre-v2, in cui per eludere le protezioni aggiunte (Intel eIBRS e Arm CSV2) e organizzare la fuga di dati si utilizza la sostituzione di valori nel buffer della storia globale delle diramazioni (Branch History Buffer), utilizzato dalle CPU per migliorare l'accuratezza delle previsioni di salto tenendo conto della storia dei salti passati. Durante l'attacco, attraverso manovre sulla storia dei salti, vengono create condizioni di previsione errata del salto e di esecuzione speculativa delle istruzioni necessarie, il cui risultato si accumula nella cache.

Le differenze rispetto all'attacco Spectre-v2 riguardano l'uso di un buffer con una cronologia dei salti (Branch History Buffer) invece del buffer di previsione dei salti (Branch Target Buffer). Per estrarre dati dalla memoria, l'attaccante deve creare le condizioni in cui, durante l'esecuzione di un'operazione speculativa, l'indirizzo venga preso da un'area che deve essere identificata. Dopo l'esecuzione di un salto indiretto speculativo, l'indirizzo di salto letto dalla memoria rimane nella cache, dopo di che uno dei metodi di determinazione del contenuto della cache può essere applicato sull'analisi della variazione del tempo di accesso ai dati memorizzati e a quelli non memorizzati.

L'attacco Native BHI non è protetto dall'uso delle istruzioni Intel IBT (Indirect Branch Tracking) e dal meccanismo ibrido di protezione del flusso di esecuzione delle istruzioni FineIBT, implementato nel kernel Linux, che combina l'uso delle istruzioni hardware IBT e la protezione software kCFI (kernel Control Flow Integrity) per bloccare le violazioni dell'ordine normale di esecuzione (control flow). FineIBT consente l'esecuzione di un salto indiretto solo se si salta a un'istruzione ENDBR, che si trova all'inizio della funzione. Inoltre (analogamente al meccanismo kCFI) segue un controllo degli hash, che garantisce l'invariabilità dei puntatori.

Per proteggere contro la nuova variante dell'attacco, è stata aggiunta al kernel Linux una modifica con l'implementazione di una modalità di protezione aggiuntiva, che utilizza i mezzi di protezione hardware proposti da Intel (BHI_DIS_S) o una protezione software alternativa, implementata per proteggere l'iper-vista. KVM. Gli sviluppatori dell'iper-vista Xen hanno anche rilasciato una correzione, basata sull'uso della modalità BHI_DIS_S, che limita le previsioni basate sulla cronologia dei salti. Il supporto per BHI_DIS_S è disponibile sui processori a partire dall'Intel Alder Lake, nonché sulle CPU server a partire dall'Intel Sapphire Rapids. È disponibile anche una modalità di protezione software, basata sull'uso di sequenze per pulire il buffer della cronologia dei salti, ma comporta una riduzione più evidente delle prestazioni.

Fonte: opennet.ru

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