Falle delle CPU, secondo uno sviluppatore Linux sono un problema ancora attuale

I problemi legati all'esecuzione speculativa delle CPU Intel "staranno con noi per molto tempo" ha affermato uno sviluppatore Linux di primo piano.

Avatar di Riccardo Magnani

a cura di Riccardo Magnani

Greg Kroah-Hartman, manutentore del kernel Linux stabile intervenuto all'Open Source Summit Europe, ritiene che i problemi di sicurezza legati all'esecuzione speculativa delle CPU (principalmente quelle Intel) "rimarranno con noi ancora per molto tempo".

Il tema è emerso nel 2017, quando all'inizio dell'anno scoppiò il caso "Spectre e Meltdown", attacchi side-channel all’esecuzione speculativa per cui l'industria tutta si è dovuta muovere con nuovi firmware, patch al sistema operativo e altri accorgimenti. Questi attacchi sfruttano vulnerabilità nel modo in cui i processori gestiscono l’esecuzione speculativa, una tecnica usata dalla maggior parte dei processori moderni per velocizzare le prestazioni.

Le CPU possono scegliere infatti di svolgere le istruzioni in modo speculativo, sulla base di ipotesi considerate verosimili. Durante l’esecuzione speculativa, il processore verifica queste ipotesi: se sono valide, l’esecuzione continua. Se non lo sono, l’esecuzione viene bloccata e può essere avviato il corretto percorso di esecuzione in base alle condizioni effettive. Quando la CPU fa ipotesi errate può potenzialmente esporre determinati tipi di dati tramite quello che viene definito un "side channel". Nei mesi successivi sono emerse diverse varianti di questi attacchi, che abbiamo imparato a conoscere con molteplici nomi.

"Questi problemi staranno con noi per molto tempo, non stanno andando via. Sono tutti bug delle CPU, in un certo senso sono tutti lo stesso problema. MDS, RDDL, Fallout, Zombieload: sono tutte varianti dello stesso problema di fondo". Ogni vulnerabilità, per quanto abbia simili radici, richiede però una risposta mirata, onde evitare serie conseguenze.

"RIDL e Zombieload , ad esempio, possono rubare dati da applicazioni, macchine virtuali, persino enclavi sicure. L'ultima è piuttosto divertente perché il contenuto di Intel Software Guard Extensions (SGX) dovrebbe essere sicuro all'interno dei chip Intel. A  quanto pare è piuttosto poroso. Puoi vedervi all'interno".

Come già scritto, per risolvere ogni problema è necessario patchare sia il kernel Linux che il BIOS e il microcodice della CPU, oltre a una serie di software. E questo ovviamente non vale solo per Linux, qualsiasi sistema operativo deve affrontare lo stesso percorso.

Intel e i suoi partner hanno risposto rapidamente alle minacce, ma secondo Kroah-Hartman è stata OpenBSD a trovare per prima la migliore risposta a questa nuova classe di falle di sicurezza: disattivare l'Hyper-Threading, scelta poi adottata ampiamente nell'ecosistema Linux.

Tuttavia non sembra essere abbastanza, è necessario proteggere il sistema operativo ogni volta che appare un nuovo modo di sfruttare l'Hyper-Threading. In ambiente Linux, ciò significa svuotare i buffer della CPU ogni volta si verifica un cambio di contesto (ad esempio quando la CPU smette di eseguire una macchina virtuale e ne avvia un'altra).

Ogni svuotamento del buffer richiede molto tempo e più macchine virtuali, container e altro ci sono in esecuzione, più tempo si perde. Quanto? Dipende dal lavoro. Kroah-Hartman ha affermato che passa le sue giornate a scrivere e rispondere alle email. Quell'attività subisce un calo delle prestazioni del 2%. Compilare il kernel Linux invece evidenzia un calo delle performance del 20%.

"La parte negativa è che devi scegliere: prestazioni o sicurezza. E questa non è una buona opzione", ha aggiunto lo sviluppatore, ricordando alla platea di sviluppatori di verificare quale scelta il fornitore di servizi cloud ha fatto.

Kroah-Hartman ha infine aggiunto che è necessario mantenere aggiornato il kernel Linux e il firmware del sistema con la disponibilità di ogni aggiornamento di sicurezza. L'unico modo per essere sicuri è adottare le ultime distribuzioni Canonical, Debian, Red Hat o SUSE o il più recente kernel Linux con supporto a lungo termine. "Se non state usando un kernel Linux di una distribuzione supportata o un kernel stabile / a lungo termine avete un sistema insicuro".

È una lotta continua, come tra il gatto e il topo: Intel sta lavorando per risolvere quante più falle con correttivi in hardware, ma è chiaro che per farlo servono nuove architetture o revisioni di chip. L'azienda ha già patchato in hardware diverse falle con i più recenti chip per desktop, mobile e server, mentre altre falle sono affrontate via software.

Intanto i malintenzionati o comunque anche i ricercatori di sicurezza cercano nuove tecniche per sfruttare una potenziale porta aperta nei microprocessori. Il lavoro non è affatto facile specie se si guarda alla mole di chip coinvolti, tanto che di recente vi abbiamo dato conto della distribuzione di una patch per Windows 10 contro le falle MDS per le CPU Intel Haswell.