Quanto è pericoloso l'attacco TIKTAG nei SoC ARM: impatta su Chrome e Linux

Un gruppo di ricercatori scopre una vulnerabilità, battezzata TIKTAG, che può aprire alla sottrazione di dati riservati sui dispositivi basati su chip ARM.
Quanto è pericoloso l'attacco TIKTAG nei SoC ARM: impatta su Chrome e Linux

Un gruppo di ricercatori coreani di Samsung, dell’Università Nazionale di Seoul e del Georgia Institute of Technology, hanno identificato un nuovo attacco speculativo denominato TIKTAG. Protagonisti della nuova minaccia sono, questa volta, i SoC ARM utilizzati in milioni di dispositivi. Gli attaccanti possono scavalcare, con una probabilità di successo superiore al 95%, una delle principali funzionalità di sicurezza ARM.

Gli attacchi side-channel sui processori, dei quali abbiamo abbondantemente parlato in passato, non riguardano solamente i chip Intel e AMD ma anche tutti quelli derivati dai design ARM.

Attacco TIKTAG su ARM: quanto è davvero pericoloso

I chip ARM possono contare su una caratteristica di sicurezza chiamata Memory Tagging Extension (MTE). Aggiunta con l’avvento dell’architettura ARM v8.5-A, MTE è progettata per rilevare e prevenire fenomeni di corruzione della memoria.

In un altro articolo abbiamo visto infatti quanto la sicurezza della memoria nelle applicazioni sia fondamentale e perché le vulnerabilità che ne sfruttano le deficienze siano oggi tra le più comuni e, allo stesso tempo, pericolose. La corruzione della memoria può causare comportamenti imprevisti del software, crash di sistema ed esporre a lacune di sicurezza sfruttabili dagli aggressori per eseguire codice malevolo.

Come funziona la protezione MTE su ARM

MTE poggia su di un sistema di marcatura della memoria a basso overhead che associa piccoli tag di 4 bit a blocchi di memoria di 16 byte. Questo sistema permette di verificare che gli accessi alla memoria siano corretti, prevenendo così accessi illegittimi che potrebbero portare al danneggiamento dei dati conservati in memoria.

Quando un puntatore tenta di accedere a un blocco di memoria, MTE verifica che il tag del puntatore corrisponda al tag del blocco di memoria. Se i tag non corrispondono, l’accesso viene bloccato e viene generato un errore, prevenendo così la corruzione della memoria.

Il sistema mette a disposizione tre modalità operative per bilanciare sicurezza e prestazioni: sincrona, asincrona e asimmetrica. Inoltre, il kernel può esso stesso avvalersi di MTE per proteggere le sue strutture di dati critiche.

Bypassare la protezione dei chip ARM ed estrarre dati riservati è possibile

Il team di ricercatori ha scoperto che utilizzando codice “ad hoc”, è possibile sottrarre dati riservati durante il normale funzionamento dei chip ARM, accedendo ad aree della memoria che invece dovrebbero risultare off-limits.

L’attacco battezzato TIKTAG-v1 sfrutta una tecnica chiamata “speculation shrinkage“: consiste nella riduzione delle attività di previsione dei salti e nei comportamenti di prefetching dei dati a livello di CPU.

I moderni processori utilizzano unità di previsione dei salti o “rami (branch prediction) per migliorare le prestazioni eseguendo speculativamente istruzioni che potrebbero essere necessarie in futuro. TIKTAG-v1 utilizza chiamate di sistema per indurre il chip ARM a seguire percorsi di esecuzione speculativa. Manipolando i puntatori del kernel e osservando lo stato della cache, l’attaccante può dedurre i tag di memoria gestiti attraverso i sistema di prefetching.

Questo tipo di aggressione è particolarmente efficace nei confronti del kernel Linux, soprattutto rispetto a tutte quelle funzioni che coinvolgono accessi speculativi alla memoria.

Con TIKTAG-v2, variante dell’attacco, si fa leva sul processo che prevede la memorizzazione di un valore in un indirizzo di memoria che è poi immediatamente caricato dallo stesso indirizzo.

Quando un valore viene memorizzato in un indirizzo di memoria (store) e subito dopo viene letto dallo stesso indirizzo (load), il valore può essere gestito speculativamente. L’attaccante esegue sequenze di store e load speculativi e misura lo stato della cache. In questo modo, può derivare il risultato del controllo dei tag, di fatto scavalcando MTE.

Il problema di sicurezza sembra piuttosto grave perché si è rivelato efficace con il motore JavaScript V8 del browser Google Chrome, aprendo alla corruzione della memoria durante le attività di rendering delle pagine Web.

Scenari di attacco e implicazioni

Sebbene le modalità di aggressione sin qui descritte non permettano un’esposizione diretta di dati riservati come password, chiavi di crittografia o informazioni personali, TIKTAG può comunque permettere di rimuovere le protezioni di MTE, rendendo il sistema di sicurezza inefficace contro attacchi di corruzione della memoria.

Con ulteriori sviluppi e affinamenti, i due attacchi possono compromettere seriamente la sicurezza di elementi critici come Google Chrome e kernel Linux.

Qualunque vulnerabilità di sicurezza capace di impattare negativamente su un browser di utilizzo comune qual è Chrome oltre che su di un componente di base come il “nocciolo” di qualunque distribuzione GNU/Linux non può e non deve essere presa alla leggera.

ARM ha riconosciuto la gravità della problematica ma al momento non considera la vulnerabilità una compromissione della funzionalità MTE. “Poiché i tag di allocazione non sono considerati segreti per il software, un meccanismo speculativo che rivela il valore corretto del tag non è considerato una compromissione dei principi dell’architettura“, si legge nel bollettino di ARM.

Reazione simile anche da parte del team di Chrome che, pur riconoscendo l’esistenza delle problematiche in questione, ha deciso di non correggere le vulnerabilità poiché la sandbox di V8 non è progettata per garantire la riservatezza dei dati in memoria e dei tag MTE.

L’immagine in apertura è tratta dal sito ARM.

Ti consigliamo anche

Link copiato negli appunti