TLBleed: nuova vulnerabilità side-channel che colpisce l'Hyperthreading

26 Giugno 2018 14

TLBleed è una nuova vulnerabilità side-channel che interessa i processori con hyperthreading. È stata scoperta da un gruppo di ricercatori della Vrije Universiteit di Amsterdam: in poche parole, i processi in esecuzione sullo stesso core fisico, ma con core logici diversi possono scambiarsi dati illecitamente.

I ricercatori hanno sviluppato una dimostrazione dell'attacco: hanno caricato su un core fisico un programma per ognuno dei due core logici: in uno l'algoritmo Curve 25519 EdDSA, il cui scopo è calcolare le firme crittografiche, implementato in libgrcypt, e il loro malware nell'altro. Il malware è riuscito a indovinare la chiave crittografica a 256-bit in poco più di 17 secondi:

  • 2 millisecondi di osservazione;
  • 17 secondi di tentativi usando tecniche di machine learning;
  • una frazione di secondo di tentativi usando tecniche brute force.

TLBleed prende il nome dalla componente che viene compromessa: il TLB, ovvero il Translation Lookaside Buffer. È una cache speciale che il processore usa per determinare più velocemente gli indirizzi fisici di ogni byte di memoria RAM. I programmi ne usano uno virtuale per una serie di ragioni (comodità e sicurezza in primis). L'associazione tra indirizzo fisico e indirizzo virtuale è salvata in enormi tabelle; per velocizzare le cose, il TLB salva le associazioni più recenti: se un programma deve accedere a un indirizzo salvato nel TLB l'operazione sarà "veloce", se invece deve ripiegare sulle tabelle sarà "lento" (una manciata di cicli della CPU contro qualche centinaio almeno). Ogni ricerca "lenta" verrà inserita nel TLB, e di conseguenza ne verrà tolta una "veloce".

TLBleed attacca il TLB: è un buffer speciale dove vengono immagazzinate le mappature più recenti degli indirizzi fisici della memoria RAM.

Con i pochi dettagli tecnici precisi a disposizione, Ars Technica suppone che, come in tutti gli altri attacchi side-channel, sia questo il punto debole che sfrutta TLBleed: in qualche modo tenta di accedere ad alcune parti di memoria i cui indirizzi sono caricati nei TLB, poi cerca di accedervi di nuovo dopo che il programma di crittografia ha fatto qualche ciclo - e ha quindi necessariamente modificato gli indirizzi nel TLB. Misurando se l'accesso agli indirizzi è stato "veloce" o "lento" (e i ricercatori dicono che anche il "quando" è un fattore fondamentale), TLBleed può riuscire a determinare quali porzioni di memoria sono state usate dal programma vittima.

TLBleed ha anche evidenziato un dettaglio ancora più importante: i processori con SMT (e Hyperthreading, che è il nome commerciale di Intel per l'SMT) supportano due o più core logici, ognuno dei quali può eseguire un thread, su ogni core fisico. I core logici condividono le risorse del core fisico, tra cui cache e TLB. Quando il malware è in esecuzione sullo stesso core fisico del programma bersaglio, è possibile rilevare le modifiche al TLB praticamente in tempo reale.

Per Intel le contromisure già esistenti contro vulnerabilità side-channel proteggono anche contro TLBleed.

Per ora ci sono riscontri solo su processori Intel, ma i ricercatori non escludono che possano essere affetti anche chip AMD con SMT (Simultaneous Multithreading). È a causa di TLBleed (in particolare del rilevamento delle modifiche al TLB in tempo reale) che gli sviluppatori di OpenBSD hanno deciso di disabilitare in toto l'hyperthreading sul sistema operativo. Soluzione drastica, ma d'altra parte l'OS è noto per mettere la sicurezza al primo posto. Intel ha invece detto di ritenere il problema marginale - addirittura non ha pagato i ricercatori per la scoperta del bug. Motivazione ufficiale: le contromisure già in campo contro gli attacchi side-channel proteggono anche contro TLBleed.

Non tutti sono d'accordo. Un ex hacker NSA ha detto che una soluzione efficace richiederebbe modifiche profonde ai sistemi operativi. In ogni caso, i ricercatori sono i primi a sostenere che TLBleed non è il nuovo Spectre. Tutti i dettagli dell'attacco saranno resi pubblici la settimana prossima.


14

Commenti

Regolamento Commentando dichiaro di aver letto il regolamento e di essere a conoscenza delle informazioni e norme che regolano le discussioni sul sito. Clicca per info.
Caricamento in corso. Per commentare attendere...
V4N0

Bene, praticamente manca solo di trovare falle di sicurezza nel dissipatore e abbiamo fatto filotto.

Tizio Caio

e pensa alle falle che si tengono segrete :D

Top Cat

Ja! Assurdo!

Maurizio Mugelli

salta fuori che tutti gli avanzamenti in campo elettronico dal transistor in poi sono insicuri - sembra la trama di Galactica (reboot), torneremo alle telefonate con la centralinista che collega fisicamente i fili fra gli utenti...

M3r71n0

A me fa pensare che per 10 anni hanno fatto quello che volevano (ovviamente, solo chi sapeva).

sopaug

non così indietro dai... Gli ultimi processori sicuri erano i 486, che non supportavano esecuzione out of order.

I'm Simone

Precisiamo. La branch prediction si studia persino per i processori MIPS in Architettura degli Elaboratori a Informatica all'università. È roba che esiste da sempre.

Alessio Ferri

Se non pensi a quelle caratteristiche come un vettore d'attacco non approfondisci: appena qualcuno ci pensa esplode. Succede in qualunque campo: pensare qualcosa di radicalmente differente è difficile, ma se si tratta solo di variazioni è molto più facile

Maurizio Mugelli

definiscimi ultimi: spectre affligge tutti i processori con pipeline e branch prediction, praticamente dai primi Pentium se ci limitiamo ai processori per consumer, si puo' tranquillamente risalire alla fine degli anni 70 in ambito professionale.
questa invece i processori con smt, anche li si risale agli anni 70 o ai pentium 4 in ambito consumer.

Maurizio Mugelli

o piu' probabilmente che hanno ideato delle tecniche nuove che una volta studiate possono avere applicazioni o adattamenti ad una casistica estremamente ampia.

manu1234

questo è difficile dirlo, più che altro la sicurezza si è spostata molto da software all'hardware (pensa a tutti i trusted module) e mentre correggere una falla software è abbastanza semplice, quelle hardware sono una fregatura

daniele

Si e fa notare anche che gli aggiornamenti degli ultimi processori più che miglioramenti hardware erano modifiche software che togliendo sicurezza a pacchi rendevano tutto più veloce....

manu1234

vedere tutte queste falle che escono insieme dopo 10 anni di nulla fa pensare che fosse 10 anni che nessuno si prendeva la briga di controllare

Top Cat

Un'altra tegola che cade.

Recensione AMD Ryzen 7 6800U, la iGPU ora convince

Recensione AMD Ryzen 7 5800X3D: la V-Cache 3D funziona alla perfezione

Recensione NVIDIA GeForce RTX 3090 Ti: l'ultimo grido di Ampere

Mac Studio e Studio Display ufficiali: il Mac mini cresce ed è potentissimo | Prezzi