Avatar di Manolo De Agostini

a cura di Manolo De Agostini

C'è una nuova variante dell'attacco Spectre, svelata dai ricercatori della Ohio State University. SgxPectre, questo il nome dell'attacco, può estrarre informazioni dalle "enclave" sicure create da Intel SGX (Software Guard eXtensions).

SGX è una soluzione integrata nei processori Intel più moderni e permette a un'applicazione di creare delle cosiddette enclavi, dei recinti isolati dal resto dell'hardware e software del sistema (inclusi hypervisor e sistema operativo) nella memoria dei processori dove i software possono eseguire operazioni legate a informazioni sensibili come chiavi di codifica, password, dati utente e altro.

L'attacco si concentra su due caratteristiche hardware delle CPU Intel che sono state progettate per migliorare le prestazioni dei chip tramite l'esecuzione speculativa. La prima è la branch prediction del codice nell'enclave, che può essere manipolato tramite codice esterno, e l'implicit caching della memoria, legato all'esecuzione speculativa delle istruzioni.

Leggi anche: Intel, sono 32 le denunce per le vulnerabilità delle CPU

"Le unità di branch prediction usate nella modalità enclave per predire i branch target non sono completamente purificate all'ingresso dell'enclave. Perciò il codice esterno all'enclave target - in esecuzione nella regione di memoria non protetta o in un'altra enclave - può manipolare i target della branch prediction all'interno di tale enclave", spiegano i ricercatori.

"L'implicit caching causato dall'esecuzione speculativa di istruzioni non è ripristinato correttamente dopo che queste istruzioni sono state scartate, il che significa che le istruzioni eseguite in modo speculativo, sebbene non siano mai state memorizzate, possono portare a cambiamenti osservabili nello stato della cache".

Leggi anche: MeltdownPrime e SpectrePrime, nuovi modi per bucare le CPU

Secondo i ricercatori, SgxPectre funziona a causa di alcuni code pattern specifici nelle librerie software che consentono agli sviluppatori di aggiungere il supporto SGX ai loro software. Questi code pattern sono presenti nell'SDK di Intel che permette di creare programmi che usano SGX. Rust-SGX e Graphene-SGX sono vulnerabili per la stessa ragione.

In altre parole, qualsiasi codice creato con tali SDK è vulnerabile all'attacco. L'attacco può essere mitigato con Indirect Branch Restricted Speculation (IBRS), uno dei fix distribuiti da Intel negli aggiornamenti del microcode per la variante 2 di Spectre.

"Gli attacchi SgxPectre possono compromettere completamente la riservatezza delle enclavi SGX", dicono i ricercatori.  Intel ha fatto sapere che un aggiornamento per l'SDK SGX con mitigazioni per SgxPectre sarà pubblicato il 16 marzo. Gli sviluppatori devono integrare questa nuova versione dell'SDK nei loro software e distribuire l'aggiornamento agli utenti.

I software che implementano Retpoline per mitigare l'attacco Spectre sono sicuri secondo i ricercatori. Di seguito un video dimostrativo dell'attacco SgxPectre.

Il codice proof-of-concept è su Github, mentre una copia del paper dei ricercatori intitolato "SgxPectre: Attacks: Leaking Enclave Secrets via Speculative Execution" la trovate qui.