Trad
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 difetto, un canale laterale che consente estrazioni di chiavi end-to-end quando i chip Apple eseguono implementazioni di protocolli crittografici ampiamente utilizzati, non può essere corretto direttamente perché deriva dal design microarchitettonico del silicio 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 precedenti 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.
Attenzione alle ottimizzazioni hardware
La minaccia risiede nel prefetcher dipendente dalla memoria dei chip, 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, 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 canale laterale che i processi dannosi possono sondare per ottenere materiale con chiavi segrete dalle operazioni crittografiche. Questa vulnerabilità è 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 operandi . Lo fa 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 nel silicio Apple: a volte confondono il contenuto della memoria, come il materiale chiave, 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 è composto da:
- Boru Chen, Università dell’Illinois Urbana-Champaign
- Yingchen Wang, Università del Texas ad Austin
- Pradyumna Shome, Georgia Institute of Technology
- Christopher W. Fletcher, Università della California, Berkeley
- David Kohlbrenner, Università di Washington
- Riccardo Paccagnella, Carnegie Mellon University
- Daniel Genkin, Georgia Institute of Technology
In una e-mail, hanno spiegato:
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 di giovedì, il team ha spiegato la cosa 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.
Inserisci GoFetch
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 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 2048 bit e poco più di due ore per estrarre una chiave Diffie-Hellman a 2048 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 nel silicio Apple sconfiggono la difesa ampiamente dispiegata.

GoFetch non è la prima volta che 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.”
Prestazione penalizzante
Come altri canali laterali della CPU microarchitettonici, 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, l’ultimo 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.)
I lettori dovrebbero ricordare che qualsiasi sanzione verrà percepita solo quando il software interessato esegue operazioni crittografiche specifiche. Per i browser e molti altri tipi di app, il costo in termini di prestazioni potrebbe non essere evidente.
“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. “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ù accurato, 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.”
Post aggiornato per notare che l’app GoFetch si connette direttamente all’app target.
Opinione editoriale di Hal Turner
Non dovrebbe sorprendere che un importante produttore di computer abbia “integrato” i propri chip, una “vulnerabilità” che consentirebbe a una persona “malevola” (o a un governo) di intrufolarsi in un computer, impossessarsi delle chiavi di crittografia e quindi essere in grado di decrittografare password o dati in quel computer.
Per anni, le persone hanno sospettato che le aziende informatiche collaborassero segretamente con i governi per consentire loro di spiare l’uso dei computer. Oltre un decennio fa, Microsoft fu ampiamente interrogata quando qualcosa chiamato “nsa_key” fu trovato nel suo sistema operativo/registro.
Perché, si chiedeva il pubblico, dovrebbe esserci una “chiave” per la National Security Agency (NSA) degli Stati Uniti integrata in Microsoft Windows? Nessuna risposta è mai stata offerta.
Quindi eccoci qui nel marzo dell’anno 2024, e improvvisamente i “ricercatori” miracolosamente “trovano” quella che chiamano “vulnerabilità” nei computer APPLE; e questa “vulnerabilità” è “incorporata” nel chip principale del computer!
Anche se alcuni di questi potrebbero non sorprendere nessuno, un osservatore casuale potrebbe voler prestare attenzione al TEMPO in cui questa “vulnerabilità” viene rivelata.
“Tempismo”, dici? “Qual è il grosso problema riguardo ai tempi” chiedi?
BENE . . .
Non è passata una settimana fa che il Dipartimento di Giustizia degli Stati Uniti ha intentato una causa antitrust contro . . . . MELA.
HMMMMMM. APPLE ha reagito facendo sì che i “ricercatori” improvvisamente “scoprissero” una “vulnerabilità” che era stata “incorporata” nei chip dei computer APPLE per anni? Oppure questa rivelazione è stata una ritorsione per il governo che ha perseguitato APPLE in tribunale?
Ora che tutti sanno che esiste questa “vulnerabilità”, saranno in grado di determinare quali file crittografati potrebbero essere stati compromessi e potrebbero adottare misure per proteggere meglio le operazioni in corso.
Se ciò dovesse accadere, potrebbe rendere molto più difficile per il governo spiare l’uso dei computer, in tutto il mondo. In effetti, potrebbe non solo essere semplicemente “più difficile” per il governo spiare, ma questa rivelazione potrebbe renderlo addirittura impossibile.
Il governo sta fregando APPLE, e ad alcuni osservatori sembra che, con questa “rivelazione”, APPLE stia fregando a sua volta il governo.
Scontro tra Titani?
Di Franco Remondina