TikTag — un attacco al meccanismo di esecuzione speculativa nei CPU ARM, che consente di bypassare la protezione MemTag

Un gruppo di ricercatori dell'Università di Seul e della Samsung ha sviluppato una tecnica di attacco per i processori ARM, chiamata TikTag, che può essere utilizzata per bypassare il meccanismo di protezione hardware MemTag (MTE, Memory Tagging Extension), presente nei chip basati sull'architettura ARMv8.5-A. L'attacco consente di determinare il contenuto dei tag TikTag per indirizzi di memoria arbitrari a causa di perdite di dati che si verificano a causa dell'esecuzione speculativa delle istruzioni della CPU.

La tecnologia MemTag consente di associare tag a aree di memoria e di organizzare la verifica della correttezza dell'utilizzo dei puntatori, bloccando l'exploitation delle vulnerabilità causate dall'accesso a blocchi di memoria già liberati, da overflow di buffer e da accessi prima dell'inizializzazione. Utilizzando MemTag, per ogni 16 byte di memoria fisica viene creato un tag a 4 bit, che funge da chiave per accedere a questa memoria. Il tag può essere generato dall'applicazione per l'area di memoria allocata mediante istruzioni speciali della CPU e quindi memorizzato nei bit superiori inutilizzati del puntatore. Quando si accede alla memoria utilizzando un puntatore con tag, il processore verifica la corrispondenza del tag associato al puntatore con i tag associati ai blocchi di memoria e consente l'accesso solo se i tag coincidono.

Il metodo di attacco proposto consente di identificare i tag associati ai blocchi di memoria e di eludere la protezione MemTag. I ricercatori hanno dimostrato la possibilità di eseguire l'attacco TikTag sfruttando vulnerabilità nel kernel di Linux e nel browser Chrome, utilizzando sequenze di istruzioni esistenti in questi prodotti (gadget) che portano all'esecuzione speculativa del codice. Tali gadget, quando eseguiti in modalità speculativa, interagendo con puntatori, causano la lettura dei metadati di MemTag in base a condizioni esterne influenzabili dall'attaccante. Dopo aver determinato una previsione errata, il risultato dell'esecuzione speculativa viene scartato, ma i dati ottenuti rimangono nella cache e possono essere successivamente estratti tramite analisi attraverso canali secondari. La probabilità di eludere con successo la protezione MemTag nei test condotti è stata stimata al 95% durante un attacco della durata di circa 4 secondi.

TikTag è un attacco al meccanismo di esecuzione speculativa della CPU ARM, che consente di bypassare la protezione MemTag.

Sono stati identificati due tipi di gadget che portano a una perdita di informazioni sui tag MemTag. Nel primo caso, l'esecuzione speculativa si verifica a causa di una previsione errata del salto, e le condizioni per l'esecuzione del gadget possono essere create attraverso manipolazioni con le chiamate di sistema. Nel secondo caso
l'esecuzione speculativa avviene a causa di un errore nella previsione delle interrelazioni tra operazioni di lettura e scrittura durante l'ottimizzazione STLF (Store-To-Load-Forwarding), permettendo di selezionare il tag valutando lo stato della cache (se il tag corrisponde, il valore sarà direttamente reindirizzato dal comando «store» precedente all'operazione «load», cambiando lo stato della cache). Il primo tipo di gadget è adatto per attaccare il kernel Linux, mentre il secondo per il motore JavaScript V8, utilizzato nei browser basati su Chromium. Un prototipo degli strumenti per effettuare l'attacco è stato pubblicato su GitHub.

TikTag è un attacco al meccanismo di esecuzione speculativa della CPU ARM, che consente di bypassare la protezione MemTag.TikTag è un attacco al meccanismo di esecuzione speculativa della CPU ARM, che consente di bypassare la protezione MemTag.

La società ARM ha confermato la possibilità di attacchi sui sistemi con processori Cortex-X2, Cortex-X3, Cortex-A510, Cortex-A520, Cortex-A710, Cortex-A715 e Cortex-A720, ma non intende apportare modifiche alla CPU per bloccare il problema, poiché l'architettura MemTag implica che i tag non siano dati riservati per le applicazioni. Nel codice di base di Chromium, il problema rimane anch'esso non risolto, poiché nel browser Chrome la protezione basata su MemTag non è ancora attivata di default. Il team responsabile della sicurezza della piattaforma Android ha riconosciuto la possibilità di attacchi sui dispositivi Pixel 8, che utilizzano la protezione MemTag, ha aggiunto correzioni per bloccare le perdite e ha espresso disponibilità a offrire una ricompensa per la vulnerabilità trovata.

Come misure alternative per bloccare l'attacco, i ricercatori suggeriscono di utilizzare le istruzioni sb o isb per vietare l'esecuzione speculativa durante le operazioni critiche di memoria, oppure di inserire tra le istruzioni di salto e le istruzioni di accesso alla memoria riempimenti da altre istruzioni.

Fonte: opennet.ru

Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server 🔥 Acquista un hosting affidabile per siti web con protezione DDoS, VPS VDS server | ProHoster