Gli autori : Giuseppe Kim Jinbum Park Sihyeon Roh Jaeyoung Chung Youngjoo Lee di Taesoo Kim Byoungyoung Lee Authors: Giuseppe Kim Parco di Jinbum di Sihyeon Roh Giovanna Chung di Youngjoo Lee di Taesoo Kim di Byoungyoung Lee Table Of Links tavolo di sinistra astratto 1. Introduction 1 Introduzione 2. Background 2 Il background Memoria tagging estensione Attacco speculativo 3. Threat Model Modello di minaccia 4. Finding Tag Leakage Gadgets Trovare Tag Leakage Gadget Tag Leakage Template Giochi di Fuzzing 5. TIKTAG Gadgets 5 Giochi di Gadget TIKTAG-v1: sfruttare la riduzione della speculazione TIKTAG-v2: sfruttare la spedizione storage-to-load 6. Real-World Attacks Attacchi del mondo reale 6.1 Attacco di Chrome 7. Evaluation 7 Valutazione 8. Related work 8 - Lavori correlati 9. Conclusion And References 9 Conclusioni e riferimenti Abstract astratto ARM Memory Tagging Extension (MTE) è una nuova caratteristica hardware introdotta nell'architettura ARMv8.5-A, mirata a rilevare vulnerabilità alla corruzione della memoria. Il basso livello di copertura di MTE lo rende una soluzione attraente per mitigare gli attacchi alla corruzione della memoria nei sistemi software moderni ed è considerato il percorso più promettente per migliorare la sicurezza del software C/C++. Questo documento esplora i potenziali rischi di sicurezza presentati dagli attacchi di esecuzione speculativa contro MTE. In particolare, questo documento identifica nuovi gadget TIKTAG in grado di scaricare i tag MTE da indirizzi di memoria arbitrari attraverso l'esecuzione speculativa. Con i gadget TIKTAG, gli attaccanti possono bypassare la difesa probabilistica di MTE, aumentando il tasso di successo dell'attacco di quasi il 100%. Dimostriamo che i gadget TIKTAG possono essere utilizzati per bypassare le mitigazioni basate su MTE nei sistemi del mondo reale, Google Chrome e il kernel Linux. I risultati sperimentali mostrano che i gadget TIKTAG possono scaricare con successo un tag MTE con un tasso di successo superiore al 95% in meno di 4 secondi. Introduzione Le vulnerabilità alla corruzione della memoria presentano significative minacce alla sicurezza per i sistemi informatici. sfruttando una vulnerabilità alla corruzione della memoria, un attaccante corrompe i dati memorizzati in una memoria, sequestra il flusso di controllo o fabbrica i dati della vittima. Tale sfruttamento consente all'attaccante di eseguire codice arbitrario, escalare il suo privilegio o rilasciare dati sensibili alla sicurezza, danneggiando in modo critico la sicurezza del sistema informatico. In risposta a queste minacce, ARM Memory Tagging Extension (MTE) è stato recentemente proposto da ARMv8.5- A architettura, che è una nuova estensione hardware per mitigare gli attacchi di corruzione della memoria. Tecnicamente, MTE fornisce due operazioni hardware primitive, (i) tag e (ii) tag check. Quindi viene eseguita un'operazione di controllo dei tag quando si accede alla memoria, che confronta due tag, uno incorporato all'interno del puntatore per accedere alla memoria e l'altro associato alla posizione della memoria da accedere. Se questi due tag sono identici, l'accesso è consentito. Utilizzando MTE, possono essere sviluppate diverse tecniche di mitigazione a seconda di quale tag viene assegnato o di quali regioni della memoria vengono etichettate. Ad esempio, gli allocatori di memoria supportati da MTE, come Android Scudo [3] e Chrome PartitionAlloc [2], assegnano un tag casuale a tutta la memoria assegnata dinamicamente. Quindi, un puntatore a questa memoria assegnata incorpora il tag, e mentre il puntatore viene propagato, il tag viene propagato di conseguenza insieme. Quando si accede a qualsiasi memoria dinamicamente assegnata, viene esercitata un'operazione di controllo dei tag. Poiché i tag sono assegnati in modo casuale al tempo di esecuzione, è difficile per l'attaccante indovinare correttamente il tag. Così l'operazione di controllo dei tag rileverebbe statisticamente corruzioni della memoria. MTE introduce notevoli sfide per gli attaccanti per sfruttare la vulnerabilità alla corruzione della memoria. Questo perché le soluzioni basate su MTE rilevano un comportamento di violazione vicino alla causa principale della corruzione della memoria spaziale e temporale. In particolare, poiché MTE assicura che la relazione tra un puntatore e una posizione della memoria non sia corrotta, rileva prontamente le corruzioni – cioè, MTE rileva prontamente il momento in cui l'accesso al di fuori del confine si verifica in una vulnerabilità di overflow o quando un puntatore pendente è riverenziato in post-uso-free. Questo offre forti vantaggi di sicurezza a MTE, in particolare rispetto alle tecniche di mitigazione popolari come CFI [6, 52, 62], che non rileva la corruzione della memoria ma rileva il comportamento di sequestro del flusso di controllo (cioè, un comportamento di sfruttamento). In questo articolo, stiamo studiando se MTE fornisce l'assicurazione della sicurezza come promesso. In particolare, abbiamo analizzato se gli attacchi di esecuzione speculativa possono essere una minaccia alla sicurezza per rompere MTE. Per riassumere i nostri risultati, abbiamo scoperto che gli attacchi di esecuzione speculativa sono effettivamente possibili contro MTE, che danneggiano gravemente l'assicurazione della sicurezza di MTE. Abbiamo scoperto due nuovi gadget, chiamati TIKTAG-v1 e TIKTAG-v2, che possono scaricare il tag MTE di un indirizzo di memoria arbitrario. In particolare, TIKTAG-v1 sfrutta la riduzione della speculazione delle previsioni del ramo e dei prefetchers dei dati, e TIKTAGv2 sfrutta il comportamento di forwarding da negozio a carico. Per dimostrare l'utilizzabilità delle mitigazioni basate su MTE nel mondo reale, abbiamo sviluppato due attacchi reali con superfici di attacco distinte: Google Chrome e il kernel Linux. I nostri risultati di valutazione mostrano che i gadget TIKTAG possono scaricare tag MTE con un tasso di successo superiore al 95% in meno di 4 secondi. Inoltre, proponiamo schemi di mitigazione per prevenire lo sfruttamento dei gadget TIKTAG pur mantenendo i vantaggi dell'uso di MTE. Rispetto ai precedenti lavori sui canali laterali MTE [22, 38], riteniamo che questo documento apporti contributi unici per le seguenti ragioni. In primo luogo, Project Zero di Google ha riferito che non sono stati in grado di individuare le perdite di tag speculative dai meccanismi MTE [38]. Essi hanno concluso che i risultati di controllo speculativo MTE non inducono differenze distintive nello stato di cache tra il successo e il fallimento del controllo dei tag. Un altro lavoro indipendente, StickyTags [22], ha scoperto un gadget di perdita di tag MTE, che è un esempio del gadget TIKTAG-v1, e ha sospettato che la causa principale sia nella contenzione della memoria sui errori di controllo di tag falsi. Questo documento riferisce inoltre di nuovi gadget di perdita di tag MTE, in particolare le varianti del gadget TIKTAGv1 e del nuovo gadget TIKTAG-v2, insieme allo sviluppo di sfruttamento contro Chrome e il kernel Linux. Inoltre, questo documento propone nuovi meccanismi di difesa per impedire ai gadget TIKTAG di perdita di tag MTE, sia a livello hardware che software. Al momento della scrittura, MTE è ancora nelle prime fasi di adozione. Considerato il suo forte vantaggio di sicurezza, si prevede che un gran numero di mitigazioni basate su MTE (ad esempio, protezione dei dati sensibili [29, 31] e integrità del flusso di dati [13, 40, 60]) saranno implementate nel prossimo futuro su dispositivi che supportano MTE (ad esempio, telefoni cellulari Android). Come tale, i risultati di questo documento, in particolare su come i gadget TIKTAG sono costruiti e come i tag MTE possono essere rilasciati, gettano luce su come le soluzioni basate su MTE dovrebbero essere progettate o come la CPU dovrebbe essere implementata a livello microarchitetturale. Abbiamo segnalato gadget di perdita di tag MTE ad ARM nel novembre 2023. ARM ha riconosciuto e rivelato pubblicamente il problema nel dicembre 2023 [34]. Un altro gruppo di ricerca ha segnalato un problema simile ad ARM e ha pubblicato le sue scoperte [22], che sono state condotte indipendentemente dal nostro lavoro. La divulgazione responsabile. Abbiamo segnalato le vulnerabilità speculative in Google Chrome V8 al team di sicurezza di Chrome nel dicembre 2023. Essi hanno riconosciuto i problemi, ma hanno deciso di non correggere le vulnerabilità perché la sandbox V8 non è destinata a garantire la riservatezza dei dati di memoria e dei tag MTE. Dal momento che il browser Chrome attualmente non consente la sua difesa basata su MTE per impostazione predefinita, siamo d'accordo con la loro decisione in una certa misura. Tuttavia, riteniamo che la sicurezza del browser possa essere migliorata se le difese basate su MTE vengono implementate con le contromisure che proponiamo (§6.1.4).Abbiamo anche segnalato gli oracoli MTE nel dispositivo Pixel 8 al team di sicurezza di Android nell'aprile 2024. Questo documento è disponibile su archiv sotto la licenza CC 4.0. Questo documento è Con la licenza CC 4.0. available on arx iv iv