Un gruppo di ricercatori dell’Università della California, San Diego (Luyi Li, Hosein Yavarzadeh e Dean Tullsen) ha individuato a febbraio del 2024 alcune vulnerabilità presenti nei processori Intel di ultima generazione.
Si tratta dei processori Raptor Lake e Alder Lake (cioè, le CPU di dodicesima e tredicesima generazione della serie Core).
Queste scoperte sono state pubblicate in una ricerca all’interno della quale sono state illustrate sofisticate tecniche per eseguire un attacco di tipo side-channel, chiamato Indirector. L’attacco in questione sfrutta una funzionalità implementata nei processori moderni, il branch predictor, per estrapolare dati sensibili dal dispositivo della vittima.

In questo articolo vedremo in maniera esaustiva i risultati del lavoro svolto dagli studiosi californiani e la risposta di Intel in merito alle falle riscontrate nei loro processori.
- Cos’è il branch predictor
- L’attacco Indirector
- I provvedimenti presi da Intel ed altre possibili contromisure
Cos’è il branch predictor
Il branch predictor ha il compito di prevedere la direzione che prenderà il flusso di esecuzione di un programma allo scopo di migliorare l’efficienza del dispositivo.
Nel momento in cui ci si trova davanti ad un’istruzione di ramo (come, ad esempio, un costrutto if-else) il processore deve stabilire quale percorso scegliere prima di conoscere il risultato dell’istruzione. Per far sì che non resti inattivo, la CPU predice il risultato e continua l’esecuzione lungo il percorso previsto.
Il branch predictor basa il suo funzionamento su tre componenti hardware presenti all’interno dei processori:
- Il Branch Target Buffer (BTB), che prevede gli indirizzi di destinazione dei rami diretti; cioe, le istruzioni di salto che hanno una destinazione fissa;
- Il Return Stack Buffer (RSB), che viene usato per gestire le chiamate di funzione e i relativi ritorni;
- L’Indirect Branch Prediction (IBP), che prevede gli indirizzi di destinazione dei rami indiretti, ossia quei salti il cui indirizzo di destinazione non è noto a priori e deve essere pertanto calcolato durante l’esecuzione.
Le componenti adibite al branch predictor sono state studiate nei minimi dettagli dal gruppo di ricercatori, i quali sono anche riusciti a rivelare la loro struttura, le loro dimensioni e le precise funzioni che governano l’hashing degli indici e dei tag. Tutto questo grazie ad un’accurata operazione di reverse engineering, eseguita attraverso dei microbenchmark sviluppati minuziosamente per analizzare il comportamento dell’Indirect Branch Predictor ed estrarre il suo stato interno.
Sono state utilizzati anche dei contatori di performance per misurare il numero di previsioni dei rami indiretti, che ha permesso di desumere la struttura della componente.
L’attacco Indirector
Lo studio portato avanti dai ricercatori di San Diego ha mostrato come le vulnerabilità dell’Indirect Branch Predictor possono essere usate per effettuare attacchi Branch Target Injection estremamente accurati.
Il Branch Target Injection è una categoria di attacchi informatici ad alta precisione che ha debuttato nel 2018 con Spectre e Meltdown.
Questi attacchi sono in grado di reindirizzare il flusso di controllo di un programma sfruttando a proprio vantaggio il branch predictor. Successivamente, viene eseguito del codice speculativo, generalmente utilizzato dal processore per prevedere le prossime istruzioni di un programma, per accedere ai dati sensibili memorizzati nel dispositivo della vittima.
Le vulnerabilità sono state individuate nei meccanismi di indicizzazione, codifica e revisione delle voci.
La loro struttura è risultata alquanto prevedibile, permettendo di eseguire manipolazioni mirate e precise.
Un’altra caratteristica che rende Indirector ulteriormente pericoloso è la sua capacità di non essere individuato dagli antivirus, dato che il processore continua a lavorare normalmente senza che vengano riscontrate anomalie. I ricercatori hanno anche affermato che, a differenza di altri attacchi simili, Indirector può essere eseguito in tempi estremamente veloci.
I ricercatori hanno anche utilizzato un tool chiamato iBranch Locator, che serve a localizzare qualunque ramo indiretto all’interno dell’Indirect Branch Predictor, senza la necessità di sapere a priori la cronologia delle informazioni precedenti alla diramazione. Oltre all’utilizzo di questo software, l’attacco illustrato dai ricercatori è basato su altri due meccanismi principali:
- Iniezioni Indirect Prediction Branch e Branch Target Buffer: consiste nell’eseguire iniezioni mirate nelle strutture di predizione per effettuare l’esecuzione speculativa del codice.
- Bypass ASLR: è un’operazione che consente di manipolare il flusso di controllo dei processi protetti attraverso una precisa identificazione della posizione dei rami indiretti.

I provvedimenti presi da Intel ed altre possibili contromisure
Intel è stata immediatamente allertata dal gruppo di ricercatori universitari.
In merito alle vulnerabilità riscontrate all’interno dei loro processori la compagnia ha dichiarato di aver già preso delle contromisure sufficienti a proteggersi dagli attacchi di tipo Branch Target Injection. Una di esse è l’introduzione di campi come Core-ID e Privilege Level all’interno dell’Indirect Branch Predictor. Questi campi vengono utilizzati per prevenire aliasing tra rami indiretti che vengono eseguiti su diversi core oppure a diversi livelli di privilegio.
L’azienda ha infine affermato di aver anche effettuato delle correzioni nella fase di progettazione delle nuove generazioni dei loro processori.
I ricercatori, però, credono che sia necessario implementare ulteriori misure di prevenzione.
Una di esse consiste nell’utilizzare maggiormente l’Indirect Branch Predition Barrier (IBPB). Si tratta di una funzionalità che invalida le predizioni dei rami diretti durante i cambi di contesto (per esempio, un passaggio di un utente ad un altro). Su Linux, l’Indirect Branch Prediction Barrier è attivo durante le transazioni alla modalità SECCOMP o durante attività con rami indiretti limitati nel kernel.
Questa soluzione, tuttavia, non è priva di effetti collaterali.
Infatti, se da un lato un utilizzo intensivo dell’Indirect Branch Predition Barrier aumenta il livello di sicurezza del dispositivo, dall’altro causa un significativo rallentamento delle prestazioni del processore, che può arrivare fino al 50%. È stato anche consigliato di rafforzare il Branch Prediction Unit implementando tag più complessi, una crittografia più robusta e la randomizzazione per avere maggiore isolamento tra diversi domini di sicurezza.



