Vulnerabilità nei processori Intel che porta alla perdita di dati attraverso canali di terze parti

Un gruppo di ricercatori di università cinesi e americane ha individuato una nuova vulnerabilità nei processori Intel che porta alla fuga di informazioni sul risultato di operazioni speculative attraverso canali di terze parti, che possono essere utilizzate, ad esempio, per organizzare un canale di comunicazione nascosto tra i processi o rilevare perdite durante gli attacchi Meltdown.

L'essenza della vulnerabilità è che una modifica nel registro del processore EFLAGS, avvenuta a seguito dell'esecuzione speculativa delle istruzioni, influisce sul successivo tempo di esecuzione delle istruzioni JCC (salta quando vengono soddisfatte le condizioni specificate). Le operazioni speculative non vengono completate e il risultato viene scartato, ma il cambiamento EFLAGS scartato può essere determinato analizzando il tempo di esecuzione delle istruzioni JCC. Le operazioni di confronto pre-salto eseguite in modo speculativo, se il confronto ha esito positivo, determinano un piccolo ritardo che può essere misurato e utilizzato come caratteristica per abbinare il contenuto.

Vulnerabilità nei processori Intel che porta alla perdita di dati attraverso canali di terze parti

A differenza di altri attacchi simili attraverso canali di terze parti, il nuovo metodo non analizza la variazione del tempo di accesso ai dati memorizzati nella cache e non nella cache e non richiede la fase di reimpostazione del registro EFLAGS allo stato iniziale, il che rende difficile rilevare e bloccare l'attacco. A dimostrazione, i ricercatori hanno implementato una variante dell'attacco Meltdown, utilizzando un nuovo metodo per ottenere informazioni sul risultato di un'operazione speculativa. Il funzionamento del metodo per organizzare la fuga di informazioni durante un attacco Meltdown è stato dimostrato con successo su sistemi con CPU Intel Core i7-6700 e i7-7700 in un ambiente con kernel Ubuntu 22.04 e Linux 5.15. Su un sistema con CPU Intel i9-10980XE, l'attacco ha avuto successo solo in parte.

La vulnerabilità Meltdown si basa sul fatto che durante l'esecuzione speculativa delle istruzioni, il processore può accedere a un'area dati privata e quindi scartare il risultato, poiché i privilegi impostati vietano tale accesso dal processo utente. In un programma, un blocco eseguito speculativamente è separato dal codice principale da un salto condizionale, che in condizioni reali si attiva sempre, ma a causa del fatto che l'istruzione condizionale utilizza un valore calcolato che il processore non conosce durante il codice preventivo esecuzione, tutte le opzioni di branching vengono eseguite speculativamente.

Nella versione classica di Meltdown, poiché la stessa cache viene utilizzata per le operazioni eseguite speculativamente come per le istruzioni eseguite normalmente, è possibile durante l'esecuzione speculativa impostare marcatori nella cache che riflettano il contenuto dei singoli bit in un'area di memoria chiusa, e quindi nel codice normalmente eseguito per determinarne il significato attraverso l'analisi del tempo di accesso ai dati memorizzati e non memorizzati nella cache. La nuova variante utilizza la modifica nel registro EFLAGS come indicatore di una fuga di notizie. Nella demo di Covert Channel, un processo ha modulato i dati inviati per modificare il contenuto del registro EFLAGS e un altro processo ha analizzato la modifica del tempo di esecuzione dell'istruzione JCC per ricreare i dati inviati dal primo processo.

Fonte: opennet.ru

Aggiungi un commento