La vulnerabilità è dovuta alle funzionalità di ottimizzazione della memoria nei processori Intel.
ancora una volta, è stata scoperta una vulnerabilità nel sistema di esecuzione delle istruzioni speculative dei processori Intel, e questa volta un ricercatore di Google, ha annunciato di aver identificato una nuova vulnerabilità (già catalogata sotto CVE-2022-40982), detto «Caduta»
Downfall, è una vulnerabilità che consente di determinare il contenuto di XMM, YMM e registri vettoriali ZMM, precedentemente utilizzati da altri processi durante l'esecuzione di istruzioni AVX sullo stesso core della CPU.
A proposito di Caduta
Per quanto riguarda la vulnerabilità, si dice che un aggressore senza privilegi con la possibilità di eseguire il proprio codice sul sistema, potrebbe sfruttare la vulnerabilità per far trapelare dati da altri processi utente, il kernel di sistema, le enclavi Intel SGX isolate e le macchine virtuali.
I registri vettoriali filtrabili sono ampiamente utilizzati nella crittografia, nelle funzioni di copia di memoria e nell'elaborazione di stringhe, ad esempio, questi registri sono utilizzati nella libreria Glibc nelle funzioni memcpy, strcmp e strlen, tra le altre cose. Da un punto di vista pratico, la vulnerabilità potrebbe essere sfruttata per determinare i dati elaborati nelle istruzioni AES-NI o REP-MOVS (utilizzate nella funzione memcpy) in altri processi, che potrebbero far trapelare chiavi di crittografia, dati sensibili e password degli utenti.
La vulnerabilità si manifesta nei processori Intel che supportano i set di istruzioni estesi AVX2 e AVX-512 (il che significa che interessa i processori dalla sesta all'undicesima generazione), mentre i processori Intel basati sulle microarchitetture Alder Lake, Raptor Lake e Sapphire Rapids non sembrano interessati.
Come per la vulnerabilità Zenbleed recentemente scoperta che interessa i processori AMD Zen2, in Downfall, il motivo della vulnerabilità è la perdita di dati dai file di registro, che vengono utilizzati per condividere il contenuto del registro tra tutte le applicazioni e le attività sullo stesso core della CPU.
La perdita è dovuta a un trasferimento di dati speculativo durante l'esecuzione dell'istruzione GATHER, disponibile nelle estensioni AVX2 e AVX-512 e progettato per fornire un accesso rapido a diversi dati in memoria. Durante l'esecuzione dell'istruzione GATHER, i vecchi dati nel file di registro vengono utilizzati nell'esecuzione speculativa delle istruzioni dipendenti. Questi dati non si riflettono direttamente nei log del software, ma possono essere determinati utilizzando tecniche di attacco del canale laterale progettate per gli attacchi Meltdown, come l'analisi dei dati rimanenti nella cache della CPU.
Per sfruttare la Caduta, è stata sviluppata una tecnica di attacco chiamata Gather Data Sampling (GDS) e per il quale sono stati pubblicati prototipi di exploit per estrarre chiavi crittografiche dal processo di un altro utente, far trapelare dati dopo che sono stati copiati nel kernel Linux dalla funzione memcpy e intercettare caratteri stampati lasciati nei registri vettoriali dopo che altri processi hanno funzionato. Ad esempio, dimostra la possibilità di definire chiavi AES utilizzate per crittografare i dati nel processo di un altro utente utilizzando la libreria OpenSSL.
Il metodo ha mostrato un'elevata efficienza: conducendo un esperimento con 100 chiavi diverse, il 100% delle chiavi AES-128 e l'86% delle chiavi AES-256 sono state determinate con la durata di ciascun tentativo per determinare non più di 10 secondi. Nei sistemi cloud, è possibile utilizzare un attacco per determinare quali dati vengono elaborati in altre macchine virtuali. È possibile che la vulnerabilità possa essere sfruttata eseguendo codice JavaScript in un browser web.
Va detto che IIntel ha scoperto il problema l'anno scorso (precisamente nel mese di Agosto) e che la vulnerabilità è stata resa pubblica solo quest'anno alla conferenza BlackHat USA. e le correzioni per proteggersi dalla vulnerabilità sono già incluse nei vari aggiornamenti del kernel Linux che vanno dalla versione 6.4.9 6.1.44 alla 4.14.321.
Oltre a questo, tra le possibili misure per evitare l'impatto negativo della protezione contro la vulnerabilità Downfall sulle prestazioni, si menziona apportare modifiche ai compilatori per disabilitare l'uso dell'istruzione GATHER o aggiungere l'istruzione immediatamente dopo GATHER LFENCE, che disabilita l'esecuzione preventiva delle istruzioni successive prima che tutti i commit precedenti siano stati completati.
Per i sistemi in cui non sono disponibili fix del firmware, è stato disabilitato il supporto per tutte le estensioni AVX, mentre per la parte di aggiornamento del microcodice Intel prevede anche la possibilità di utilizzare l'interfaccia MSR per disabilitare selettivamente la protezione del firmware nell'ambito dei singoli processi.
Infine, se sei interessato a saperne di più, puoi controllare i dettagli nel file seguente link