Seleziona una pagina
venerdì, Mar 22

GoFetch: una grave falla nei chip Apple M-series consente l’estrazione di chiavi crittografiche

da Hardware Upgrade :

Una nuova vulnerabilità scoperta nei chip M di Apple può
consentire a potenziali aggressori di estrarre chiavi di cifratura dai
Mac
durante l’esecuzione di operazioni crittografiche con protocolli
di comune e largo utilizzo.

Si tratta di una falla la cui correzione è complicata e comunque
indiretta, poiché deriva dalla progettazione micoarchitetturale dei chip
Apple Silicon. La vulnerabilità riguarda in particolare il prefetcher
dipendente dalla memoria
(Dependent-Memory Prefetcher o DMP),
un’ottimizzazione hardware che prevede quali possono essere gli indirizzi
di memoria dei dati a cui è probabile che il codice in esecuzione acceda
nel futuro immediato. Questo meccanismo fa sì che i contenuti vengano
caricati nella cache della CPU in anticipo rispetto a quando
effettivamente necessari, così da ridurre la latenza tra la memoria
principale e la CPU. I prefetcher “tradizionali” sono usati da anni nelle
CPU, ma i prefetcher dipendenti dalla memoria al momento si trovano solo
nelle architetture M di Apple e nei processori Raptor Lake di Intel.

La possibilità di sfruttare i prefetcher per condurre attacchi
side-channel
allo scopo di ottenere dati significativi, come le
chiavi di cifratura, è un problema noto, a cui gli ingegneri crittografici
hanno risposto con i principi di programmazione a tempo costante, ovvero
l’approccio che garantisce che tutte le operazioni richiedano la stessa
quantità di tempo per essere completate, indipendentemente dai loro
operandi.




Nei chip Apple Silicon M-series il DMP si comporta in maniera leggermente
differente poiché non osserva solamente gli indirizzi dei dati a cui si
accede (come nel caso dei prefetcher tradizionali), ma sfrutta anche i
valori dei dati per elaborare le sue previsioni di accesso. Tuttavia nel
momento in cui il valore di un dato “assomiglia” ad un puntatore, verrà
trattato come fosse un indirizzo anche se in realtà non lo è. La
conseguenza è che i dati di questo “indirizzo” vengono trasmessi alla
cache, dove sono visibili. Spiegano
i ricercatori che hanno scoperto la vulnerabilità
:

“Per sfruttare il DMP, abbiamo creato
input scelti per le operazioni crittografiche, in modo che i valori
simili a puntatori appaiano solo se abbiamo indovinato correttamente
alcuni bit della chiave segreta. Verifichiamo queste ipotesi monitorando
se il DMP esegue una dereferenziazione attraverso l’analisi della
temporizzazione della cache. Una volta effettuata l’ipotesi corretta,
procediamo a indovinare il successivo lotto di bit della chiave.
Utilizzando questo approccio, mostriamo attacchi di estrazione di chiavi
end-to-end su popolari implementazioni a tempo costante della
crittografia classica (OpenSSL Diffie-Hellman Key Exchange,
decrittazione Go RSA) e post-quantistica (CRYSTALS-Kyber e
CRYSTALS-Dilithium).”

In questo modo i ricercatori non possono ottenere direttamente le chiavi
crittografiche, ma manipolando i dati intermedi all’interno dell’algoritmo
di crittografia in maniera tale che assomiglino ad un puntatore diventa
possibile risalire alla chiave segreta nel corso del tempo, reiterando il
meccanismo. Questa scoperta ha portato i ricercatori a realizzare un
attacco proof-of-concept
, denominato
GoFetch
, che si basa su un’applicazione che non richiede l’accesso
di root, ma semplicemente gli stessi permessi utente che sono necessari
per qualsiasi app di terze parti in esecuzione su macOS.

I chip M-Series sono normalmente organizzati in cluster, tipicamente
suddivisi tra cluster “efficiency” e cluster “performance”. Nel momento in
cui l’app GoFetch e l’applicazione di crittografia “bersaglio” sono in
esecuzione sullo stesso cluster performance – anche su core separati
all’interno dello stesso cluster – l’attacco può riuscire ad estrarre
una quantità sufficiente di informazioni tali da consentire di risalire
alla chiave segreta di cifratura

I ricercatori hanno condotto una serie di prove dimostrando il successo
di GoFetch sia contro algoritmi di crittografia tradizionali, sia contro
gli algoritmi di nuova generazione pensati per essere resistenti ad
attacchi condotti con computer quantistici. Dalle prove dei ricercatori è
emerso che GoFetch impiega meno di un’ora per risalire ad una chiave
RSA a 2048-bit
e circa due ore per una chiave Diffie-Hellman
sempre a 2048-bit
. Nel caso di un algoritmo Kyber-512 il
tempo necessario è di 54 minuti, mentre sono invece necessarie 10 ore
circa per una chiave Dilithium-2, più il tempo necessario per
l’elaborazione dei dati grezzi.

Trattandosi di un meccanismo squisitamente hardware non è possibile
andare a risolvere la vulnerabilità in maniera diretta: gli effetti
potenzialmente dannosi di questa falla possono essere contenuti
solamente da parte degli sviluppatori
che eseguono algoritmi di
crittografia sui processori Apple Silicon e con possibili ricadute in
termini di prestazioni. 

Tra le soluzioni a disposizione la più efficace è quella dell’oscuramento
del testo cifrato che prevede l’aggiunta o rimozione di “maschere”
ai
valori significativi prima o dopo essere stati archiviati o caricati dalla
memoria. In questo modo lo stato interno dell’algoritmo crittografico è
casuale, il che impedisce un controllo da parte dell’attaccante e la
conseguente neutralizzazione di attacchi come GoFetch. Si tratta però di
una contromisura che deve essere usata in maniera specifica per
l’algoritmo di crittografia utilizzato e che spesso rappresenta un onere
significativo in termini di risorse di calcolo che possono aumentare di un
fattore due.

Un’alternativa percorribile è l’esecuzione di processi di
crittografia sui cluster “efficiency”
, che sono demandati
all’esecuzione di task computazionalmente non intensi e per questo motivo
privi di DMP. Non è però possibile escludere che evoluzioni architetturali
future possano prevedere l’aggiunta di DMP anche a questo tipo di core,
oltre al fatto che l’esecuzione di processi crittografici su questi
cluster, proprio in virtù della loro natura, richiederà un tempo maggiore
per il completamento delle operazioni.




Queste contromisure riguarderebbero però solamente i chip M1 ed M2, in
quanto i più recenti chip M3 prevedono una funzionalità che consente
agli sviluppatori di disabilitare la funzionalità DMP
. Al momento,
tuttavia, non sono note le effettive ricadute prestazionali se si sceglie
deliberatamente di non sfruttare il prefetch dipendente dalla memoria.

I ricercatori sottolineano che sul lungo termine la strada da seguire
preveda una maggior concertazione hardware-software, arrivando ad una
situazione in cui l’hardware dovrebbe chiaramente mostrare al software
un modo per disabilitare il DMP
quando sono in esecuzione
applicazioni critiche per la sicurezza.

E’ comunque opportuno ricordare che le eventuali ricadute prestazionali
saranno per lo più percepibili durante l’esecuzione di specifiche
operazioni crittografiche, passando pressoché inosservate per le
applicazioni più ordinarie. 

Già nel 2022 era stata rilevata una vulnerabilità a carico del DMP nei
processori Apple M1 e A14 Bionic, che aveva dato origine all’attacco
proof-of-concept Augury
. Allora, però, i ricercatori concordarono
sulla bassa gravità della falla dal momento che non fu possibile riuscire
a combinare dati e indirizzi. La nuova scoperta dimostra però che le
vulnerabilità a carico del DMP possono essere più serie e rappresentare
un potenziale rischio per la sicurezza maggiore rispetto a
quanto precedentemente ritenuto
.

Tutto ciò che al momento si può fare, lato utente, è verificare
l’eventuale disponibilità di aggiornamenti di sicurezza in grado di
mitigare GoFetch sui protocolli crittografici attualmente noti per essere
vulnerabili.

Source link