Tecnica

Il nuovo attacco aggira i meccanismi di difesa hardware contro il buco dello spettro nei processori Intel e ARM

Il nuovo attacco aggira i meccanismi di difesa hardware contro il buco dello spettro nei processori Intel e ARM

 

Sebbene non sia facile da sfruttare, questo proof of concept mostra che alcuni processori Intel e ARM sono ancora vulnerabili agli attacchi del canale laterale.


Buco dello spettro

 

Le contromisure hardware che sono state messe in atto sui processori Intel e ARM negli ultimi anni per rimuovere un grave difetto chiamato Spectre non sono così forti come si pensava. Gli scienziati hanno sviluppato un nuovo metodo di attacco in grado di superare i meccanismi di difesa, ma il suo utilizzo non è facile come il wormhole originale.

Il nuovo attacco, scoperto dai ricercatori del Systems and Network Security Group del VU Amsterdam (VUSec), si chiama Spectre-BHI (Branch History Injection) o Spectre-BHB (Branch History Store) perché Intel e ARM gli hanno dato nomi diversi. Secondo il team di ricerca, questa è un’estensione dell’attacco Spectre v2 del 2017, noto anche come Spectre-BTI (Branch Target Injection), e come Spectre v2, può trapelare informazioni sensibili dallo spazio di memoria privilegiato del kernel.

Controlla anche:

Un exploit proof-of-concept dei ricercatori VUSec consiste nel far trapelare gli hash della password di root da /etc/shadow utilizzando un account non privilegiato. Il file /etc/shadow è un file di sistema su Linux a cui è possibile accedere solo dall’account di root amministrativo. In sostanza, l’exploit forza il kernel a caricare un file in memoria dove sarebbe normalmente protetto dall’accesso da processi non privilegiati, ma poi usa un attacco Spectre-BHI per accedere e divulgare il suo contenuto. Si tratta di una grave violazione del limite di sicurezza di base nei moderni sistemi operativi che separa le applicazioni in modalità utente e lo spazio di memoria dallo spazio di memoria privilegiato del kernel.

Cos’è lo spettro?

Spectre è una classe di vulnerabilità, originariamente rivelata nel gennaio 2017, che derivano da una moderna funzionalità delle prestazioni della CPU chiamata esecuzione speculativa, in cui la CPU tenta di prevedere in anticipo il percorso che un programma seguirà quando accede a un ramo condizionale ed esegue le istruzioni lungo questa traccia presto. Se le previsioni, basate su algoritmi interni, si rivelano errate, i risultati archiviati nella cache del processore verranno scartati. Attacchi di esecuzione speculativa come Spectre e molti altri che sono seguiti utilizzano questo meccanismo per far trapelare informazioni da cache temporanee che fungono da canali laterali.

“Al momento della scoperta di Spectre, Branch Target Injection (BTI o Spectre-v2), il tipo più pericoloso di Spectre, era facile da usare a tutti i livelli di autorizzazione”, spiegano i ricercatori di VUSec. “Ad esempio, un utente malintenzionato senza privilegi potrebbe passare qualsiasi target figlio a un predittore di ramo userland intermedio e costringere il kernel a saltare speculativamente al target del codice iniettato ed eseguire qualsiasi codice sia presente”.

Per ridurre il rischio, i fornitori di software come Google e i produttori di kernel Linux hanno sviluppato soluzioni software come retpoline. Sebbene fosse efficace, ha causato un calo significativo delle prestazioni, quindi i produttori di processori successivi hanno sviluppato la sicurezza hardware. La soluzione di Intel si chiama EIBRS e ARM è CSV2.

“Queste soluzioni sono complesse – l’articolo di ricerca originale è disponibile a questo link – ma il succo è che il predittore ‘in qualche modo’ tiene traccia del livello di autorizzazione (utente/kernel) a cui viene eseguito il target”, spiegano i ricercatori di VUSec. “E come ci si aspetterebbe, se il target appartiene a un livello di privilegio inferiore, il kernel non lo utilizzerà (cioè, non ci saranno più posizioni di codice casuali fornite da attaccanti che possono essere sequestrate in modo speculativo per il flusso di controllo del kernel). “

Il problema, tuttavia, è che il predittore della CPU si basa sulla cronologia globale per selezionare le voci di destinazione per l’esecuzione speculativa e, come hanno dimostrato i ricercatori VUSec, questa cronologia globale può essere danneggiata. In altre parole, mentre l’originale Spectre v2 consentiva agli aggressori di iniettare fisicamente la posizione del codice di destinazione e quindi eseguire di nascosto quel codice dal kernel, il nuovo attacco Spectre-BHI/BHB potrebbe costringere il kernel a prevedere erroneamente ed eseguire qualcosa di interessante. Gadget o frammenti di codice già esistenti. È nella storia ed è stato creato in passato, ma può portare alla perdita di dati.

“Intel eIBRS e Arm CSV2 sono corrotti? Come se. Ciò significa che le misure di sicurezza funzionano come previsto, ma la superficie di attacco rimanente è più importante di quanto inizialmente ipotizzato dai produttori. […] Tuttavia, la ricerca di strumenti che possono essere utilizzati sta diventando sempre più importante. “Più difficile di prima perché un utente malintenzionato non può iniettare obiettivi target direttamente oltre i limiti di autorizzazione.”

Mitigazione del nuovo bug Spectre-BHI

Intel ha identificato il nuovo Spectre-BHI come CVE-2022-0001 per la variante multi-privilegiata e CVE-2022-0002 per la variante multi-privilegiata. ARM lo descrive come CVE-2022-23960 per entrambe le varianti.

Secondo Intel, la maggior parte dei processori dell’azienda sono interessati, ad eccezione di quelli della famiglia Atom. Per ARM, le CPU deboli sono Cortex-A15, Cortex-A57, Cortex-A72, Cortex-A73, Cortex-A75, Cortex-A76, Cortex-A76AE, Cortex-A77, Cortex-A78, Cortex-A78AE, Cortex – A78C Cortex-X1, Cortex-X2, Cortex-A710, Neoverse N1, Neoverse N2, Neoverse V1.

Entrambe le società hanno formulato raccomandazioni e stanno offrendo contromisure software in questo momento. ARM ha cinque diverse soluzioni di mitigazione a seconda del sistema.

Nel loro exploit Linux, i ricercatori VUSec hanno utilizzato eBPF, una tecnologia disponibile dalla versione 4.4 del kernel che consente di inserire i programmi in modalità sandbox nel kernel del sistema operativo. Sebbene eBPF non faccia parte del problema sottostante e si possano trovare altri strumenti di codice che possono far trapelare dati, la presenza di un eBPF non privilegiato “facilita notevolmente gli attacchi speculativi (e altri)”, hanno affermato i ricercatori. Per questo motivo, consigliano di disabilitarlo e alcune distribuzioni Linux hanno iniziato a disabilitarlo per impostazione predefinita.

Fonte: OSC

Guarda anche

.

Related Articles

Back to top button