L’esecuzione speculativa è un meccanismo utilizzato in tutti i processori che si occupa di “prevedere” quali salti verranno eseguiti durante l’esecuzione di un programma e caricare il codice successivo così da ottimizzare le prestazioni.
Ne abbiamo parlato brevemente nell’articolo su come funziona un processore.
Il fatto è che a partire da inizio 2018 vari ricercatori, dapprima con gli attacchi conosciuti come Spectre e Meltdown, hanno scoperto un modo per estrarre informazioni derivate da altri processi in esecuzione con la possibilità di accedere ad aree protette della memoria.
Da allora si sono susseguiti molti attacchi simili tanto che i vari produttori hardware e gli sviluppatori di sistemi operativi hanno rilasciato correzioni capaci di modificare in parte il comportamento dell’esecuzione speculativa, pagando uno scotto in termini prestazionali (le performance risultano ridotte). Tanto che ci eravamo chiesti se le patch per Spectre, Meltdown e attacchi simili fossero davvero indispensabili e se sì in quali contesti.
Adesso i ricercatori di VUSec hanno presentato un nuovo metodo che permette di scavalcare tutte le mitigazioni esistenti sfruttando ciò che chiamano Branch History Injection (BHI), una nuova variante di Spectre v2.
Nel loro report gli esperti illustrano una metodologia che può consentire a un aggressore, dotato di privilegi ridotti, di forzare il kernel del sistema operativo a gestire in modo errato le aree della memoria dalle quali possono essere sottratte informazioni riservate e dati sensibili.
Per dimostrare le loro asserzioni i tecnici di VUSec hanno pubblicato un codice proof-of-concept (PoC) che mostra come la password di un account root su Linux possa essere estratta dalla memoria sotto forma di hash. Il video dimostrativo dell’attacco è pubblicato su YouTube.
Intel e ARM hanno confermato il problema pubblicando due bollettini: questo è stato preparato dall’azienda di Santa Clara; questo da ARM che fa riferimento ai suoi Cortex-A e Neoverse.
Quale l’impatto sulle prestazioni delle patch contro la vulnerabilità BHI (variante di Spectre v2)
Sia Intel che ARM stanno lavorando su patch di sicurezza che possano almeno mitigare il nuovo problema scoperto a livello di processori e SoC.
Come sempre accade quando si ha a che fare con la gestione di vulnerabilità correlate con l’esecuzione speculativa, anche nel caso di BHI ci si attende un calo prestazionale.
Stando alle prime verifiche sin qui svolte, le patch per BHI non influiranno sulle performance generali ma piuttosto sulle prestazioni correlate con lo storage dei dati.
Con un sistema Linux basato su processore Core i9-12900K (Alder Lake), l’applicazione delle correzioni lato firmware potrebbe ridurre le prestazioni del 27% con alcuni carichi di lavoro e fino al 35% utilizzando altri processori (fonte: Phoronix). Pesantemente ridimensionate anche le performance relative al networking: qualunque operazione di I/O esterna al chip principale subisce una pesante penalizzazione.
Attività come la normale navigazione sul Web o la modifica delle immagini con GIMP non hanno invece mostrato particolari deficit.
I processori AMD non sono al sicuro da BHI anche se i moderni chip Zen già sfruttano il meccanismo Retpoline (il controllo sulle esecuzioni speculative viene passato al kernel) anche se le misure di sicurezza sin qui adottate potrebbero non essere sufficienti. Stando alle valutazioni di Phoronix AMD stessa potrebbe essere costretta ad adottare un’implementazione di Retpoline a carattere più generale invece della soluzione “personalizzata” che non impattava troppo sulle prestazioni.
Contemporaneamente alla scoperta di BHI era stata data notizia di un nuovo metodo di attacco (straight-line-speculation, SLS) che prende di mira i processori AMD. La nuova variante SLS interessa molti chip basati sulle microarchitetture Zen 1 e Zen 2 tra cui EPYC, Ryzen Threadripper e Ryzen con grafica Radeon integrata.
AMD ha pubblicato un elenco dei prodotti interessati e un whitepaper che offre consigli di sicurezza per una falla che viene classificata come di media gravità.