TSX Asynchronous Abort (TAA), una nuova falla per le CPU Intel

Le CPU Intel con supporto alle istruzioni TSX sono affette da una vulnerabilità chiamata TSX Asynchronous Abort (TAA). Coinvolte anche le ultime CPU basate sul progetto "Cascade Lake".

Avatar di Manolo De Agostini

a cura di Manolo De Agostini

Attacchi come Spectre, Meltdown e le molteplici varianti emerse hanno dimostrato come anche i microprocessori - e più in generale l’hardware nei nostri computer – possano avere delle vulnerabilità di sicurezza che consentono l’accesso a informazioni sensibili da parte di malintenzionati.

Le aziende del settore hanno affrontato la situazione offrendo un mix di aggiornamenti (microcode, firmware, sistema operativo, ecc.) per più generazioni di piattaforme, ma a quanto pare il pericolo è sempre dietro l’angolo, come ribadito solo poche settimane fa, e oggi ne abbiamo purtroppo la conferma.

In queste ore sono emerse nuove varianti di attacchi noti, come ZombieLoad o RIDL (a cui Intel si riferisce come Microarchitectural Data Sampling, MDS), che colpiscono le piattaforme di Intel fino ai più recenti processori basati sul progetto Cascade Lake (architettura Skylake), salvo le CPU che non supportano Intel TSX.

Prima di addentrarci in una lunga spiegazione, dobbiamo sottolineare che non ci sono report di exploit nel mondo reale che utilizzano queste vulnerabilità, il che se non altro può farci stare tutti un po’ più tranquilli. Andiamo con ordine.

A far emergere il problema che prende il nome di TSX asynchronous abort (TAA) è stato un gruppo di ricercatori appartenenti a vari atenei e centri di ricerca: Vrije Universiteit di Amsterdam, KU Leuven del Belgio, il tedesco Helmholtz Center for Information Security e la Graz University of Technology austriaca. La stessa Intel ha pubblicato una nota in merito visibile a questo indirizzo.

La vulnerabilità TSX Asynchronous Abort (TAA) è secondo Intel “simile alla Microarchitectural Data Sampling (MDS) e affligge gli stessi buffer (store buffer, fill buffer, load port writeback data bus). La condizione TAA, su alcuni processori che usano l’esecuzione speculativa, potrebbe consentire a un utente autenticato di consentire la pontenziale divulgazione di informazioni tramite un side channel con accesso locale”.

TAA sfrutta però un nuovo meccanismo per l’exploit. Come gli attacchi MDS, anche TAA può esporre dati sia dai core fisici che dai thread logici su processori con tecnologia Hyper-Threading. Nel caso specifico però vengono tirate in ballo le Intel Transactional Synchronization Extensions (Intel TSX), un’estensione del set di istruzioni x86 che aggiunge il supporto hardware alla memoria transazionale per migliorare le prestazioni con il software multi-thread.

TSX ha due sottofunzionalità: Restricted Transactional Memory (RTM) e Hardware Lock Elision (HLE). “TSX supporta transazioni atomiche di memoria sia svolte che abortite. In caso di interruzione di Intel TSX, tutte le precedenti scritture di memoria all'interno della transazione vengono ripristinate allo stato precedente all'inizio della transazione”, spiega Intel.

“Una transazione Intel TSX può essere interrotta in modo sincrono, ad esempio a causa di istruzioni non supportate nelle transazioni. Le transazioni Intel TSX possono essere interrotte anche in modo asincrono, quando un diverso processore logico scrive su una riga della cache che fa parte del set di lettura della transazione o quando la transazione supera il suo spazio di memoria buffer o per altri motivi legati alla microarchitettura”.

Il problema è che mentre avviene un’interruzione asincrona della transazione, alcuni carichi all’interno della transazione che non sono stati ancora completati potrebbero leggere dati dalle strutture microarchitetturali e passare speculativamente tali dati a operazioni dipendenti. “Ciò può causare effetti collaterali, che possono successivamente essere misurati per dedurre il valore dei dati nelle strutture microarchitetturali”, spiega Intel.

Siamo di fronte ancora a una vulnerabilità side channel in qualche modo legata all’esecuzione speculativa. L’esecuzione speculativa è una tecnica usata dalle CPU moderne per velocizzare i calcoli. I processori possono fare ipotesi dei calcoli successivi che dovrebbero svolgere e preparare già il risultato, al fine di velocizzare l’intero processo.

Nel caso però tale ipotesi si riveli sbagliata, l’esecuzione viene bloccata e bisogna avviare il corretto percorso di esecuzione in base alle condizioni reali. Questo processo porta la CPU ad ottenere dati arbitrari dai buffer, parti del chip che fanno da collegamento tra i diversi componenti, come il processore e la sua cache.

I ricercatori hanno dimostrato che è possibile sia manipolare quei buffer per contenere dati sensibili come chiavi crittografiche o password, sia causare accessi alla memoria speculativi interrotti. Di conseguenza è possibile far trapelare le informazioni sensibili dai buffer del chip.

Più concretamente un malintenzionato può arrivare a quei dati eseguendo un Javascript ad hoc da un sito visitato dal PC che si vuole colpire, ma anche attaccare una macchina virtuale su un server cloud.

Secondo quanto affermato a Wired dai ricercatori che hanno messo a punto l’attacco TAA, Intel è stata informata di queste nuove varianti di MDS a settembre dello scorso anno, ma l’azienda non ha corretto i problemi nell’arco dei successivi 14 mesi. Praticamente, a detta dei ricercatori, gli sforzi compiuti da Intel per risolvere le falle MDS non sarebbero stati sufficienti.

Sapevano che le mitigazioni diffuse a maggio potevano essere superate. Non erano efficaci”, ha commentato Kaveh Razavi, uno dei ricercatori della Vrije Universiteit. "Hanno completamente mancato una variante del nostro attacco, la più pericolosa”. Gli studiosi affermano di essere riusciti a perfezionare la tecnica per arrivare a sottrarre dati sensibili in pochi secondi anziché ore o giorni come in precedenza si riteneva necessario.

Il ricercatore Jonas Theis della Vrije Universiteit ha usato TAA per portare un sistema a rivelare l’hash della password di un amministratore in soli 30 secondi, come mostrato nel video qui sotto. Un malintenzionato dovrebbe comunque craccare quell’hash per ottenere una password usabile, cionondimeno è un problema serio.

Per risolvere le falle MDS Intel ha deciso di non impedire ai suoi processori di prendere dati arbitrari dai buffer quando avveniva un accesso di memoria invalido, ma si è limitata a impedire specifiche situazioni che permettevano al dato di fuoriuscire. Così facendo Intel ha lasciato la porta aperta ad alcune varianti.

I ricercatori affermano che non sono ancora del tutto sicuri che l’ampio aggiornamento dei microcode che Intel sta rilasciando affronti questi problemi. Il team della Vrije Universiteit ritiene che Intel abbia ora impedito la presenza di dati sensibili in alcuni dei suoi componenti buffer, ma non tutti.

Siamo particolarmente preoccupati che il piano di mitigazione di Intel sia orientato sui Proof of Concept (PoC), con una completa mancanza di ingegneria della sicurezza e analisi delle cause alla radice, con lievi variazioni nei PoC che portano a nuovi embarghi e a "nuove" vulnerabilità che rimangono irrisolte per lunghi periodi”, si legge sul sito creato dai ricercatori dedicato all’attacco. “Sfortunatamente, fino a quando non vi sarà una sufficiente pressione pubblica / industriale, Intel sembra avere pochi incentivi a cambiare rotta, lasciando al pubblico un falso senso di sicurezza”.

I ricercatori della Vrije Universiteit quindi ritengono che le misure adottate non siano risolutive e “raccomanda di disattivare l'hyperthreading nei processori Intel. Questo non risolve tutti i problemi, ma elimina i pericoli maggiori”.

Intel ha rilasciato un commento ufficiale che riportiamo di seguito: “I ricercatori hanno identificato un nuovo meccanismo, simile al Microarchitectural Data Sampling (MDS) che chiamiamo Transactional Synchronization Extensions (TSX) Asynchronous Abort, o TAA. Questo meccanismo fa affidamento su TSX, e le mitigazioni sono state offerte in un nuovo aggiornamento di microcode abbinato ad aggiornamenti corrispondenti per sistemi operativi e software hypervisor”.

Le mitigazioni riducono sostanzialmente la superficie d’attacco potenziale fornendo un mezzo per cancellare i buffer e disabilitare TSX per quei clienti che non usano questa funzione. Continuiamo ad incoraggiare tutti e tenere aggiornati i propri dispositivi, siccome è questo uno dei migliori modi per essere protetti. Ringraziamo i ricercatori che hanno lavorato insieme a noi, e i nostri partner di settore per il loro contributo, per l’annuncio coordinato di questo problema”.

TAA però non è l’unico problema a cui Intel ha dovuto far fronte in questi mesi. Nel complesso l’azienda dice di aver affrontato 77 vulnerabilità di vario tipo (67 delle quali scoperte da personale di Intel), tra cui un problema chiamato Jump Conditional Code (JCC). Si tratta di un bug che “coinvolge la Decoded ICache della CPU” e la cui risoluzione porterebbe a un impatto prestazionale tra lo 0 e il 4%.

Cosa fare per mettersi al sicuro?

Utenti comuni e aziende non devono far altro che mantenere aggiornati i propri sistemi: aggiornare i BIOS delle schede madre, i sistemi operativi e i vari software, come i browser che s’interfacciano al web, ma anche hypervisor, macchine virtuali, tutto insomma.

Come detto dai ricercatori, disabilitare l’Hyper-Threading è una soluzione parziale, e bisogna tener conto che si perdono prestazioni in alcuni scenari. Va inoltre ribadito che non ci sono report di exploit reali che usano queste vulnerabilità, quindi l’ultima soluzione la lasceremmo per il momento come ultima spiaggia.

Quali CPU sono coinvolte?

Si parla di tutti i processori Intel recenti con supporto TSX, inclusi i processori server Cascade Lake di quest’anno. TAA funziona anche su microarchitetture con mitigazioni hardware per Meltdown e Foreshadow, e su processori che non sono vulnerabili a MDS. Per un quadro complessivo delle falle emerse negli ultimi anni, di come sono state affrontate e delle architetture coinvolte in questo caso specifico, vi rimandiamo a questa pagina sul sito di Intel. Sono coinvolte le CPU di altre aziende? Al momento non risulta e difficilmente potrebbero, dato che il problema coinvolge Intel TSX.

Ci sono rischi di sicurezza seri?

Come già scritto, non ci sono al momento report di exploit reali che usano queste vulnerabilità.