PURO
PURO

Una vulnerabilità non risolvibile di Apple Silicon (M1 e M2) espone i Mac a potenziali attacchi

Una vulnerabilità recentemente scoperta nei chip della serie M di Apple consente agli aggressori di estrarre chiavi segrete dai Mac quando eseguono operazioni crittografiche ampiamente utilizzate, hanno rivelato ricercatori accademici in un articolo pubblicato giovedì. Il tema è stato trattato dal sito Ars Technica, che ha approfondito in un articolo la problematica che affligge la generazione Apple Silicon, con particolare riguardo per i chipset M1 e M2. Il problema riguarda la possibilità di attivare un attacco a canale laterale che consente estrazioni di chiavi end-to-end quando i chip Apple eseguono implementazioni di protocolli crittografici ampiamente utilizzati. Purtroppo, non può essere corretto direttamente perché deriva dal design microarchitettonico del chip stesso. Invece, può essere mitigato solo creando difese nel software crittografico di terze parti che potrebbero ridurre drasticamente le prestazioni della serie M durante l’esecuzione di operazioni crittografiche, in particolare sulle generazioni M1 e M2. La vulnerabilità può essere sfruttata quando l’operazione crittografica mirata e l’applicazione dannosa con normali privilegi di sistema dell’utente vengono eseguite sullo stesso cluster di Cpu.

La minaccia risiede nel prefetcher dipendente dalla memoria dei chip di Apple, un’ottimizzazione hardware che prevede gli indirizzi di memoria dei dati a cui è probabile che il codice in esecuzione acceda nel prossimo futuro. Caricando i contenuti nella cache della Cpu prima che siano effettivamente necessari, DMP, come viene abbreviata la funzionalità, riduce la latenza tra la memoria principale e la Cpu, ossia risolve un collo di bottiglia comune nell’informatica moderna. I DMP sono un fenomeno relativamente nuovo che si trova solo nei chip della serie M e nella microarchitettura Raptor Lake di 13a generazione di Intel, sebbene le forme più vecchie di prefetcher siano comuni da anni.

Gli esperti di sicurezza sanno da tempo che i prefetcher classici aprono un cosiddetto canale laterale che i processi dannosi possono sondare per ottenere informazioni con chiavi segrete frutto delle operazioni crittografiche. Questa vulnerabilità di Apple Silicon nelle varianti M1 e M2 è il risultato delle previsioni dei prefetcher basate su modelli di accesso precedenti, che possono creare cambiamenti di stato che gli aggressori possono sfruttare per far trapelare informazioni. In risposta, gli ingegneri crittografici hanno ideato la programmazione a tempo costante, un approccio che garantisce che tutte le operazioni richiedano la stessa quantità di tempo per essere completate, indipendentemente dai loro componenti. In sostanza, si attua l’elaborazione mantenendo il codice libero da accessi o strutture di memoria dipendenti dal segreto.

La svolta della nuova ricerca è che espone un comportamento precedentemente trascurato dei DMP in Apple Silicon: a volte confondono il contenuto della memoria, come la chiave di cifratura, con il valore del puntatore utilizzato per caricare altri dati. Di conseguenza, DMP spesso legge i dati e tenta di trattarli come un indirizzo per eseguire l’accesso alla memoria. Questo “dereferenziamento” dei “puntatori”, ovvero la lettura dei dati e la loro fuoriuscita attraverso un canale laterale, è una flagrante violazione del paradigma del tempo costante. Il team di ricercatori ha spiegato in una e-mail:

“I prefetcher di solito guardano gli indirizzi dei dati a cui si accede (ignorando i valori dei dati a cui si accede) e cercano di indovinare gli indirizzi futuri che potrebbero essere utili. La DMP è diversa in questo senso poiché oltre agli indirizzi utilizza anche i valori dei dati per fare previsioni (prevedere gli indirizzi a cui andare e precaricare). In particolare, se il valore di un dato “assomiglia” a un puntatore, verrà trattato come un “indirizzo” (dove in realtà non lo è!) e i dati da questo “indirizzo” verranno portati nella cache. L’arrivo di questo indirizzo nella cache è visibile, con perdite sui canali laterali della cache.

Il nostro attacco sfrutta questo fatto. Non possiamo divulgare direttamente le chiavi di crittografia, ma ciò che possiamo fare è manipolare i dati intermedi all’interno dell’algoritmo di crittografia in modo che assomiglino a un puntatore tramite un attacco di input scelto. La DMP quindi vede che il valore dei dati “assomiglia” a un indirizzo e porta i dati da questo “indirizzo” nella cache, che fa trapelare l'”indirizzo”. Non ci interessa che il valore dei dati venga precaricato, ma il fatto che i dati intermedi assomiglino a un indirizzo è visibile tramite un canale di cache ed è sufficiente per rivelare la chiave segreta nel tempo”.

Nel documento pubblicato la settimana scorsa, il team ha spiegato la vulnerabilità di Apple Silicon in modo leggermente diverso:

“La nostra intuizione chiave è che mentre la DMP dereferenzia solo i puntatori, un utente malintenzionato può creare input di programma in modo che quando tali input si mescolano con segreti crittografici, lo stato intermedio risultante può essere progettato per assomigliare a un puntatore se e solo se il segreto soddisfa un utente malintenzionato. predicato scelto. Ad esempio, immagina che un programma abbia il segreto s, prenda x come input, calcoli e quindi memorizzi y = s ⊕ x nella sua memoria di programma. L’attaccante può creare diversi x e dedurre informazioni parziali (o addirittura complete) su s osservando se la DMP è in grado di dereferenziare y. Per prima cosa utilizziamo questa osservazione per infrangere le garanzie di una primitiva di scambio a tempo costante standard consigliata per l’uso nelle implementazioni crittografiche. Mostreremo quindi come violare implementazioni crittografiche complete progettate per essere sicure contro attacchi con input scelti”.

L’attacco, che i ricercatori hanno chiamato GoFetch , utilizza un’applicazione che non richiede l’accesso root, ma solo gli stessi privilegi utente richiesti dalla maggior parte delle applicazioni di terze parti installate su un sistema macOS. I chip della serie M sono divisi in cosiddetti cluster. L’M1, ad esempio, ha due cluster: uno contenente quattro core di efficienza e l’altro quattro core di prestazioni. Finché l’app GoFetch e l’app di crittografia di destinazione sono in esecuzione sullo stesso cluster di prestazioni, anche su core separati all’interno del cluster, GoFetch può estrarre abbastanza segreti da far trapelare una chiave segreta.

L’attacco funziona a Apple Silicon sia contro gli algoritmi di crittografia classici sia contro una nuova generazione di crittografia che è stata rafforzata per resistere agli attacchi previsti dei computer quantistici. L’app GoFetch richiede meno di un’ora per estrarre una chiave RSA a 2.048 bit e poco più di due ore per estrarre una chiave Diffie-Hellman a 2.048 bit. L’attacco impiega 54 minuti per estrarre il materiale necessario per assemblare una chiave Kyber-512 e circa 10 ore per una chiave Dilithium-2, senza contare il tempo offline necessario per elaborare i dati grezzi.

L’app GoFetch si connette all’app di destinazione e le fornisce input che firma o decrittografa. Mentre lo fa, estrae la chiave segreta dell’app che utilizza per eseguire queste operazioni crittografiche. Questo meccanismo significa che l’app di destinazione non deve eseguire alcuna operazione crittografica autonomamente durante il periodo di raccolta. Le chiavi RSA e Diffie-Hellman sono state elaborate su implementazioni di Go e OpenSSL e Kyber e Dilithium di CRYSTALS-Kyber e CRYSTALS-Dilithium. Tutte e quattro le implementazioni utilizzano la programmazione a tempo costante, dimostrando che le DMP in Apple Silicon sconfiggono la difesa ampiamente dispiegata.

Risultati sperimentali di quattro PoC di attacco crittografico.  Questo mostra la media di tre esecuzioni di ciascun PoC.  Il tempo online si riferisce al tempo necessario per un processo dell'aggressore co-localizzato, che include (1) la generazione di set di eliminazione standard;  (2) constatazione di un insieme di sfratti composto;  e (3) perdite di DMP.  Il tempo offline è il tempo di post-elaborazione (ad esempio riduzione del reticolo) necessario per completare il ripristino della chiave segreta.  Non è compreso il tempo per la fase di raccolta firme offline di Dilithium-2.
Risultati sperimentali di quattro PoC di attacco crittografico. Questo mostra la media di tre esecuzioni di ciascun PoC. Il tempo online si riferisce al tempo necessario per un processo dell’aggressore co-localizzato, che include (1) la generazione di set di eliminazione standard; (2) constatazione di un insieme di sfratti composto; e (3) perdite di DMP. Il tempo offline è il tempo di post-elaborazione (ad esempio riduzione del reticolo) necessario per completare il ripristino della chiave segreta. Non è compreso il tempo per la fase di raccolta firme offline di Dilithium-2.Chen et al.

GoFetch non è il primo esempio in cui i ricercatori identificano minacce nascoste nelle DMP di Apple. L’ottimizzazione è stata documentata per la prima volta in una ricerca del 2022 che ha scoperto un “DMP a caccia di puntatori” precedentemente sconosciuto sia nel chip M1 che nel chip A14 Bionic di Apple per iPhone. La ricerca, condotta da un diverso gruppo di accademici, ha dato origine ad Augury, un attacco che ha identificato e sfruttato un canale laterale della memoria che faceva trapelare puntatori. Alla fine, Augury non è stato in grado di mescolare dati e indirizzi quando sono state utilizzate pratiche a tempo costante, una lacuna che potrebbe aver dato l’impressione che il DMP non rappresentasse una grande minaccia.

“GoFetch dimostra che la DMP è significativamente più aggressiva di quanto si pensasse in precedenza e quindi rappresenta un rischio per la sicurezza molto maggiore”, hanno scritto gli autori di GoFetch sul loro sito web. “In particolare, troviamo che qualsiasi valore caricato dalla memoria è candidato a essere dereferenziato (letteralmente!). Questo ci consente di aggirare molti dei limiti di Augury e di dimostrare attacchi end-to-end su codice reale a tempo costante”.

Come altri canali laterali della Cpu, quello che rende possibile GoFetch non può essere riparato nel silicio. Invece, la responsabilità di mitigare gli effetti dannosi della vulnerabilità ricade sulle persone che sviluppano il codice per l’hardware Apple. Per gli sviluppatori di software crittografico in esecuzione su processori M1 e M2, ciò significa che oltre alla programmazione a tempo costante, dovranno impiegare altre difese, quasi tutte comportano significative penalità in termini di prestazioni.

Un buon esempio è una delle soluzioni più efficaci, nota come oscuramento del testo cifrato. L’accecamento funziona aggiungendo/rimuovendo maschere ai valori sensibili prima/dopo essere stati archiviati/caricati dalla memoria. Ciò randomizza efficacemente lo stato interno dell’algoritmo crittografico, impedendo all’aggressore di controllarlo e neutralizzando così gli attacchi GoFetch. Sfortunatamente, hanno detto i ricercatori, questa difesa è specifica per l’algoritmo e spesso costosa, potenzialmente addirittura raddoppiando le risorse di calcolo necessarie in alcuni casi, come per gli scambi di chiavi Diffie-Hellman.

Un’altra difesa consiste nell’eseguire processi crittografici sui core di efficienza precedentemente menzionati, noti anche come core Icestorm, che non dispongono di DMP. Un approccio consiste nell’eseguire tutto il codice crittografico su questi core. Anche questa difesa non è certo l’ideale. Non solo è possibile che modifiche senza preavviso aggiungano funzionalità DMP ai core di efficienza, ma l’esecuzione di processi crittografici qui probabilmente aumenterà anche il tempo necessario per completare le operazioni con un margine non banale. I ricercatori menzionano diverse difese ad hoc, ma sono ugualmente problematiche.

Il DMP dell’M3, la più recente generazione di chip di Apple, ha un bit speciale che gli sviluppatori possono invocare per disabilitare la funzionalità. I ricercatori non sanno ancora che tipo di penalità si verificherà quando questa ottimizzazione delle prestazioni verrà disattivata. (I ricercatori hanno notato che il DMP trovato nei processori Raptor Lake di Intel non fa trapelare lo stesso tipo di segreti crittografici. Inoltre, l’impostazione di uno speciale bit DOIT disattiva anche il DMP.)

“A lungo termine, riteniamo che la soluzione giusta sia quella di ampliare il contratto hardware-software per tenere conto del DMP”, hanno scritto i ricercatori che hanno scovato la falla in M1 e M2. “Come minimo, l’hardware dovrebbe esporre al software un modo per disabilitare selettivamente il DMP durante l’esecuzione di applicazioni critiche per la sicurezza. Questo ha già un precedente nel settore nascente. Ad esempio, le estensioni DOIT di Intel menzionano specificamente la disabilitazione del proprio DMP tramite un’estensione ISA. A lungo termine, l’ideale sarebbe un controllo più preciso, ad esempio per vincolare il DMP al precaricamento solo da buffer specifici o regioni di memoria non sensibili designate”.

I rappresentanti di Apple hanno rifiutato di commentare la documentazione relativa alla ricerca GoFetch. Gli utenti finali interessati dovrebbero verificare la presenza di aggiornamenti di mitigazione GoFetch che diventano disponibili per il software macOS che implementa uno qualsiasi dei quattro protocolli di crittografia noti per essere vulnerabili. Per maggiore cautela, probabilmente è anche saggio presumere, almeno per ora, che anche altri protocolli crittografici siano probabilmente vulnerabili. “Sfortunatamente, per valutare se un’implementazione è vulnerabile, sono necessarie la crittoanalisi e l’ispezione del codice per capire quando e come i valori intermedi possono essere trasformati in puntatori in modo da far trapelare segreti”, hanno consigliato i ricercatori. “Questo processo è manuale e lento e non esclude altri approcci di attacco”.

PURO
GAMEPEOPLE
DIFUZED
FIZZ
PALADONE
OTL
CROCKPOT
MYSTERY BOX
SUBSONIC