Degli attacchi di tipo side-channel nei confronti dei processori abbiamo parlato spesso. Vulnerabilità come Spectre e Meltdown hanno aperto il vaso di Pandora a inizio 2018 e da allora il panorama informatico non è stato più lo stesso. I ricercatori hanno iniziato a esaminare più attentamente il funzionamento interno dei processori moderni e hanno scoperto una serie di altre vulnerabilità di sicurezza, molte delle quali collegate a tecniche di esecuzione speculativa e ad altri meccanismi di ottimizzazione delle prestazioni.
La vulnerabilità GoFetch, scoperta nei SoC Apple Silicon, è un attacco side-channel che sfrutta una debolezza nel prefetcher (Data Memory Dependent Prefetcher, DMP). Questa lacuna di sicurezza consente a un eventuale aggressore di estrarre dati sensibili, come chiavi crittografiche, sfruttando la situazione in cui il SoC della serie Apple M confonde i contenuti della memoria con gli indirizzi dei dati.
All’atto pratico, si tratta di un grave problema perché GoFetch consente di estrarre la chiave privata direttamente dal sistema Mac vulnerabile, durante le operazioni di crittografia.
Cos’è la vulnerabilità GoFetch nei SoC Apple Silicon che equipaggiano i moderni Mac
La scoperta dell’esistenza della vulnerabilità GoFetch, è il risultato del lavoro di un team di ricercatori accademici. Le basi tecniche del problema sono illustrate nel sito gofetch.fail, appositamente creato per informare tutti gli interessati.
Il prefetcher consiste in un’ottimizzazione hardware che prevede gli indirizzi di memoria ai quali il codice in esecuzione è probabile possa accedere in seguito. Il problema principale risiede nel fatto che il prefetcher implementato nei SoC Apple Silicon, a differenza di analoghi componenti più tradizionali, utilizza i valori dei dati per fare predizioni, non limitandosi soltanto agli indirizzi.
Questo comporta la possibilità di “mescolare” il contenuto della memoria, ad esempio chiavi segrete, con i valori dei puntatori utilizzati per caricare altri dati. È il nocciolo del problema che mostra il fianco ad attacchi side-channel e consente l’estrazione di informazioni riservate.
La vulnerabilità che porta all’esposizione delle chiavi segrete può essere sfruttata con un’applicazione malevola senza privilegi di root, usando i diritti di un normale utente.
Il problema è che, trattandosi di una falla strettamente correlata con il design microarchitetturale del chip stesso, non c’è modo per gli ingegneri Apple di congegnare e applicare una patch correttiva. In altre parole, non è possibile correggere GoFetch attraverso un aggiornamento software o del firmware in quanto DMP è una caratteristica implementata in hardware.
Una contromisura eventualmente adottabile, è fare riferimento a uno switch (del quale i SoC Apple Silicon di derivazione ARM sembrano essere dotati) che consente di disattivare DMP. Almeno sui più recenti chip M3.
Per attenuare il problema sarebbe possibile integrare approcci correttivi nei software crittografici, compresi quelli di terze parti, ma ciò potrebbe ridurre drasticamente le prestazioni dei chip della serie M durante le operazioni di cifratura.