Logo ImpresaCity.it

Come funziona TLBleed, la vulnerabilità "erede" di Spectre

È un altro attacco side-channel come Spectre, ma che secondo Intel non ha una particolare pericolosità

f.p.

Per i processori Intel è stata segnalata una nuova vulnerabilità, battezzata TLBleed, analoga a Spectre e Meltdown. Anche TLBleed è infatti una vulnerabilità side-channel, che permette cioè di violare un software non sfruttando i bug o le caratteristiche del suo codice ma analizzando il comportamento del processore, e di altri componenti hardware, durante l'esecuzione del codice stesso.

Spectre e Meltdown sfruttano il modo in cui i processori pianificano la sequenza delle istruzioni da eseguire (la cosiddetta speculative execution). TLBleed si basa invece sull'analisi del Translation Lookaside Buffer (TLB, appunto), una memoria cache che viene usata nella conversione degli indirizzi della memoria virtuale "vista" da un processo in quelli della memoria RAM fisica del computer bersaglio.

TLBleed è stato identificato da alcuni ricercatori della Vrije Universiteit di Amsterdam. La vulnerabilità è stata dimostrata facendo in modo che un processo-malware "carpisse" le chiavi di cifratura usate da un secondo processo eseguito dallo stesso processore. I test sono stati eseguiti su vari processori Intel di diverse generazioni e le chiavi di encryption sono state "rubate" in oltre il 98,6% delle prove.

TLBleed è collegata al funzionamento del multithreading simultaneo, una funzione che le CPU - Intel e non solo - usano per eseguire più processi (thread, di solito due) allo stesso tempo con un singolo core del processore.
arm processor
Con il multithreading, ciascun thread "pensa" di avere a disposizione tutta la memoria del sistema ma ovviamente non è così. La CPU usa costantemente - e quindi conserva - tabelle di conversione che "mappano" la memoria virtuale vista dai thread sulle locazioni effettivamente disponibili della memoria RAM fisica.

Il TLB è una memoria cache molto veloce, a più livelli, che conserva una certa quantità di mappature fra memoria virtuale e fisica, di norma quelle effettuate più di recente dalla CPU. In questo modo se un thread deve accedere a dati che ha già elaborato - quindi a una locazione di memoria che ha già usato - il processore definisce molto velocemente l'indirizzo di memoria fisica che gli serve. Man mano che il codice di un thread viene eseguito, la CPU cambia i contenuti del TLB di conseguenza. Due thread eseguiti da un medesimo core condividono il suo TLB.

Questo sistema permette in teoria un attacco side-channel in cui un thread eseguito da un core della CPU osserva come variano i contenuti della TLB quando è in esecuzione un altro thread. Analizzando queste informazioni, il thread "ostile" può arrivare a capire cosa sta facendo il thread-bersaglio e persino a carpire le sue informazioni ipotizzando le zone di memoria a cui accede.
intel core x series processorNon è un compito semplice e infatti il codice di test che hanno prodotto i ricercatori dell'Università di Amsterdam usa funzioni di intelligenza artificiale per capire, in base al comportamento del TLB, quando il thread bersaglio sta compiendo operazioni importanti. Avendo una certa conoscenza del codice eseguito dal thread-bersaglio - nel caso dei test olandesi era una libreria crittografica - si possono dedurre informazioni anche critiche, sino a ricomporre le chiavi di cifratura usate dalla libreria.

Intel è al corrente dell'esistenza di TLBleed ma non lo considera un grave pericolo. Per sfruttare questa vulnerabilità un attaccante deve essere collegato al sistema bersaglio e comunque l'operazione non è affatto semplice, come si intuisce dal suo funzionamento. L'opinione di Intel è inoltre che le librerie crittografiche più evolute siano già scritte in modo da essere immuni da TLBleed: gli attacchi side-channel sono noti da tempo e alcuni software già gestiscono le memorie cache in modo da non dare indicazioni ad eventuali attaccanti.

Per alcuni esperti di sicurezza la questione non si risolve così velocemente. I test di Amsterdam comunque dimostrano che la vulnerabilità esiste e non è possibile indicare a priori se un software ne è immune o no. Il multithreading oltretutto non è presente solo nelle CPU Intel. Non a caso la distribuzione Linux OpenBSD, particolarmente attenta alla sicurezza, è stata aggiornata disabilitando del tutto il multithreading, una scelta drastica che non è stata presa alla leggera.

Se questo articolo ti è piaciuto e vuoi rimanere sempre informato con le notizie di ImpresaCity.it iscriviti alla nostra Newsletter gratuita.
Pubblicato il: 27/06/2018

Speciali

speciali

Check Point Experience, il futuro della cybersecurity è servito

speciali

Red Hat Open Source Day 2018, l’open source ridisegna il mondo