A inizio 2018 la scoperta delle vulnerabilità conosciute con gli appellativi Spectre e Meltdown ha rappresentato un momento di svolta nel campo della sicurezza informatica e dell’architettura dei processori. Queste vulnerabilità hanno rivelato un difetto fondamentale nelle moderne CPU, relativo all’uso della cosiddetta esecuzione speculativa per ottimizzare le prestazioni.
L’esecuzione speculativa, come abbiamo più volte osservato, è una tecnica che consente ai processori di anticipare le istruzioni future e di eseguirle prima ancora che siano effettivamente richiamate. L’approccio, che porta a evidenti benefici in termini di performance, tuttavia, ha aperto la strada per la scoperta di un gran numero di side-channel attack nei processori. Non si contano, negli anni a seguire, le vulnerabilità simili via via venute a galla.
Anche se l’esecuzione speculativa migliora le prestazioni, può facilitare l’utilizzo di un “canale laterale” (side-channel, appunto) per estrarre informazioni riservate. I side-channel attack, infatti, non si concentrano direttamente sulla manipolazione del software o dei dati stessi, ma piuttosto sfruttano comportamenti o proprietà fisiche del sistema per estrapolare materiale che dovrebbe invece restare ben custodito.
Spectre V2, attacco che riguarda le CPU Intel e i sistemi Linux
Un gruppo di ricercatori ha individuato un nuovo exploit che sfrutta vulnerabilità nell’esecuzione speculativa. Spectre v2 rappresenta una variante della lacuna di sicurezza scoperta nel 2018.
Questa volta la falla di sicurezza interessa i sistemi Linux basati su CPU Intel: gli aggressori possono sfruttarla, anche in questo caso, per estrarre informazioni dalla cache e mettere le mani su dati importanti (ad esempio password degli account, chiavi crittografiche, dati personali e riservati, codice software e altro ancora).
L’approccio presentato sfrutta due metodi di attacco: Branch Target Injection (BTI), che coinvolge la manipolazione della previsione del saldo (si pensi alle clausole if...then...else
dei programmi) al fine di eseguire percorsi non autorizzati, e Branch History Injection (BHI). Quest’ultimo metodo interviene sulla branch history, per provocare l’esecuzione speculativa di porzioni di codice scelte, portando alla divulgazione di dati riservati.
La branch history si riferisce al registro delle decisioni prese dalle unità di previsione dei salti all’interno di una CPU durante l’esecuzione di un programma. Nei moderni processori, il flusso di istruzioni di un programma può essere influenzato da strutture di controllo, come i branch condizionali (istruzioni “if”, “else”, “while” e così via). Le unità previsionali dei branch, disponibili all’interno della CPU, cercano di prevedere quale sarà il risultato di ciascun salto basandosi sulla storia precedente.
Tecniche di difesa insufficienti per bloccare gli attacchi Spectre V2
Intel ha già riconosciuto in passato i problemi di sicurezza in questione: le vulnerabilità BTI e BHI sono classificate, rispettivamente, con gli identificativi CVE-2022-0001 e CVE-2022-0002.
Il fatto è che i nuovi exploit estendono la base di sistemi interessati e toccano direttamente il kernel Linux. Linux Foundation, ad esempio, ha fatto presente che le nuove minacce alla sicurezza saranno seguite dal team di sviluppo del kernel Linux.
Lo studio appena condiviso dimostra che le tecniche di attenuazione esistenti, quali la disabilitazione di eBPF privilegiato e l’abilitazione di (Fine)IBT, non sono sufficienti per fermare lo sfruttamento del metodo di attacco BHI contro il kernel/hypervisor basato su Linux.
eBPF è una tecnologia che consente di eseguire codice personalizzato all’interno del kernel Linux. Disabilitare il privilegio significa limitare ciò che il codice eBPF può fare nel sistema. L’attivazione di (Fine)IBT mira a proteggere il sistema da attacchi che sfruttano la previsione di branch indiretti, ma si è mostrata inefficace nel fermare completamente gli attacchi che sfruttano la branch history.
SUSE Linux ha confermato l’impatto del problema di sicurezza mentre ad esempio Red Hat getta acqua sul fuoco spiegando eBPF senza privilegi è disabilitato per impostazione predefinita su RHEL: il problema non è sfruttabile nelle configurazioni standard.
Per una lista completa dei processori Intel interessati dalle varie vulnerabilità di esecuzione speculativa, è possibile consultare questa pagina aggiornata.
L’immagine in apertura è di Intel.