Retbleed: un nuovo attacco di esecuzione speculativa che colpisce Intel e AMD

La notizia lo ha recentemente diffusoUn gruppo di ricercatori dell'ETH di Zurigo ha identificato un nuovo attacco al meccanismo di esecuzione speculativo di salti indiretti nella CPU, che permette di estrarre informazioni dalla memoria del kernel o organizzare un attacco al sistema host da macchine virtuali.

Le vulnerabilità erano denominate in codice Retbleed (già catalogato sotto CVE-2022-29900, CVE-2022-29901) e sono di natura simile agli attacchi Spectre-v2.

La differenza si riduce all'organizzazione dell'esecuzione speculativa di codice arbitrario elaborando l'istruzione "ret" (ritorno), che recupera l'indirizzo per saltare dallo stack, piuttosto che saltare indirettamente utilizzando l'istruzione "jmp", caricando l'indirizzo dalla memoria o un registro della CPU.

A proposito del nuovo attacco si dice che un utente malintenzionato può creare condizioni per una previsione del fork errato e organizzare un salto speculativo intenzionale a un blocco di codice non previsto dalla logica di esecuzione del programma.

In ultima analisi, il processore determinerà che la previsione del ramo non era giustificata e annullerà l'operazione al suo stato originale, ma i dati trattati Durante l'esecuzione speculativa rimarranno nella cache e buffer di microarchitettura. Se un blocco eseguito erroneamente esegue un accesso alla memoria, la sua esecuzione speculativa porterà all'installazione nella cache generale e alla lettura dei dati dalla memoria.

Per determinare i dati rimanenti nella cache dopo l'esecuzione speculativa di operazioni, l'autore dell'attacco può utilizzare metodi per determinare i dati residui tramite canali di terze parti, ad esempio, analizzando le modifiche nel tempo di accesso ai dati memorizzati nella cache e non nella cache.

Per l'estrazione intenzionale di informazioni da aree a livello di privilegio diverso (ad esempio dalla memoria del kernel), vengono utilizzati "dispositivi": script presenti nel kernel, adatti alla lettura speculativa di dati dalla memoria, a seconda delle condizioni esterne può essere influenzato da un attaccante.

Per proteggersi dai classici attacchi di classe Spectre, che utilizzano istruzioni branch indirette e condizionali, la maggior parte dei sistemi operativi utilizza la tecnica "retpoline", che si basa sulla sostituzione delle operazioni branch indirette con l'istruzione "ret", per la quale è richiesta una previsione separata dello stato dello stack l'unità viene utilizzata nei processori, non utilizza un blocco di previsione del ramo.

All'introduzione della retpoline nel 2018, si riteneva che la manipolazione dell'indirizzo simile a quella di uno spettro non fosse pratica per il fork speculativo con l'istruzione "ret".

I ricercatori che hanno sviluppato il metodo di attacco Retbleed ha dimostrato la possibilità di creare condizioni microarchitettoniche avviare una transizione speculativa utilizzando l'istruzione "ret" e rilasciato un toolkit pronto all'uso per identificare sequenze di istruzioni adeguate (gadget) per sfruttare la vulnerabilità nel kernel Linux in cui si verificano tali condizioni.

Nel corso dello studio, è stato preparato un exploit lavorativo che consente, su sistemi con CPU Intel, da un processo senza privilegi nello spazio utente di estrarre dati arbitrari dalla memoria del kernel a una velocità di 219 byte al secondo e con una precisione del 98%.

En i processori AMD, l'efficienza dell'exploit è molto più alta, poiché la velocità di fuga è di 3,9 KB al secondo. Come esempio pratico, viene mostrato come utilizzare l'exploit proposto per determinare il contenuto del file /etc/shadow. Sui sistemi con CPU Intel, è stato eseguito un attacco per determinare l'hash della password di root in 28 minuti e su sistemi con CPU AMD in 6 minuti.

L'attacco è stato confermato per 6-8 generazioni di processori Intel rilasciati prima del terzo trimestre del 2019 (incluso Skylake) e processori AMD basati sulle microarchitetture Zen 1, Zen 1+ e Zen 2 rilasciati prima del secondo trimestre del 2021. Sui modelli di processore più recenti, come AMD Zen3 e Intel Alder Lake, nonché processori ARM, il problema è bloccato dai meccanismi di protezione esistenti. Ad esempio, l'uso delle istruzioni IBRS (Indirect Branch Restricted Speculation) aiuta a proteggere da un attacco.

Preparato una serie di modifiche per il kernel Linux e l'hypervisor Xen, che bloccano il problema a livello di codice sulle CPU meno recenti. La patch del kernel Linux proposta cambia 68 file, aggiunge 1783 righe e rimuove 387 righe.

Sfortunatamente, la protezione comporta notevoli costi generali: nei testi realizzati su processori AMD e Intel, il degrado delle prestazioni è stimato tra il 14% e il 39%. È preferibile utilizzare la protezione basata sulle istruzioni IBRS, disponibile nelle nuove generazioni di CPU Intel e supportata dal kernel Linux 4.19.

Infine, se sei interessato a saperne di più, puoi consultare il dettagli nel seguente collegamento.


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.