Un bug in Linux 6.2 consentiva di aggirare la protezione dagli attacchi di Spectre v2

vulnerabilità

Se sfruttati, questi difetti possono consentire agli aggressori di ottenere l'accesso non autorizzato a informazioni riservate o, in generale, causare problemi

Recentemente, sono state rilasciate informazioni su a vulnerabilità identificata nel kernel Linux 6.2 (già elencato sotto CVE-2023-1998) e che si distingue perché lo è disabilitare la protezione dagli attacchi Spectre v2 che consentono l'accesso alla memoria da parte di altri processi in esecuzione su diversi thread SMT o Hyper Threading, ma sullo stesso core del processore fisico.

La vulnerabilità è notevole tra l'altro perché può essere utilizzato per organizzare la fuga di dati tra macchine virtuali nei sistemi cloud. 

Per coloro che non conoscono Spectre, dovrebbero sapere che questo è una delle due vulnerabilità originali della CPU di esecuzione transitoria (l'altro è Meltdown), che comportano attacchi side-channel temporizzati dalla microarchitettura. Questi influenzano i moderni microprocessori che eseguono previsioni di salto e altre forme di speculazione.

Sulla maggior parte dei processori, l'esecuzione speculativa derivante da una previsione errata del ramo può lasciare effetti collaterali osservabili che possono rivelare dati privati. Ad esempio, se lo schema degli accessi alla memoria effettuati da tale esecuzione speculativa dipende dai dati privati, lo stato risultante della cache dei dati costituisce un canale laterale attraverso il quale un utente malintenzionato può estrarre informazioni sui dati privati ​​utilizzando un attacco temporale.

Dalla divulgazione di Spectre e Meltdown nel gennaio 2018, sono emerse diverse varianti e nuovi tipi di vulnerabilità ad essi correlati.

Il kernel Linux consente ai processi userland di abilitare le mitigazioni chiamando prctl con PR_SET_SPECULATION_CTRL, che disabilita la funzione spec, nonché utilizzando seccomp. Abbiamo scoperto che sulle macchine virtuali di almeno uno dei principali fornitori di servizi cloud, in alcuni casi il kernel lasciava ancora il processo vittima aperto agli attacchi, anche dopo aver abilitato la mitigazione Spectre-BTI con prctl. 

Per quanto riguarda la vulnerabilità, si dice che nello spazio utente, per proteggersi dagli attacchi di Spettro, i processi possono disabilitare selettivamente l'esecuzione istruzioni speculative con prctl PR_SET_SPECULATION_CTRL o utilizzare il filtraggio delle chiamate di sistema basato su seccomp.

Secondo i ricercatori che hanno identificato il problema, l'ottimizzazione errata nel kernel 6.2 ha lasciato le macchine virtuali da almeno un grande fornitore di servizi cloud senza un'adeguata protezione nonostante l'inclusione della modalità di blocco dell'attacco spettro-ITV tramite prctl. La vulnerabilità si manifesta anche sui normali server con kernel 6.2, che vengono avviati con la configurazione "spectre_v2=ibrs".

L'essenza della vulnerabilità sta nella scelta delle modalità di protezione IBRS o eIBRS, le ottimizzazioni apportate hanno disabilitato l'uso del meccanismo STIBP (Single Thread Indirect Branch Predictors), necessario per bloccare le perdite quando si utilizza la tecnologia Simultaneous Multi-Threading (SMT o Hyper-Threading). )

A sua volta, solo la modalità eIBRS fornisce protezione contro le perdite tra i thread, non la modalità IBRS, poiché con essa il bit IBRS, che fornisce protezione contro le perdite tra i core logici, viene cancellato per motivi di prestazioni quando il controllo ritorna all'utente dello spazio, il che rende thread dello spazio utente non protetti dagli attacchi della classe Spectre v2.

Il test consiste in due processi. L'attaccante avvelena costantemente una chiamata indiretta per reindirizzarla speculativamente a un indirizzo di destinazione. Il processo vittima misura il tasso di previsione errato e tenta di mitigare l'attacco chiamando PRCTL o scrivendo direttamente sull'MSR utilizzando un modulo del kernel che espone le operazioni di lettura e scrittura dell'MSR nello spazio utente.

Il problema riguarda solo il kernel Linux 6.2 ed è dovuto all'errata implementazione delle ottimizzazioni progettate per ridurre il sovraccarico significativo durante l'applicazione della protezione contro Spectre v2. vulnerabilità È stato risolto nel ramo sperimentale del kernel Linux 6.3.

Finalmente sì sei interessato a saperne di più, puoi controllare i dettagli nel file seguente link


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.

  1.   Deiki suddetto

    Quelli con il parametro kernel mitigations=off:

    Bravi signori 👌😎🔥