Nuova vulnerabilità ZombieLoad scoperta sui chip Intel
L'indagine relativa alle vulnerabilità dipendenti dalle tecniche di esecuzione speculativa è andata avanti dal momento in cui sono stati rivelati Meltdown e Spectre. Sono stati pubblicati nuovi dettagli sullo stato di sicurezza dei processori Intel
di Rosario Grasso, Riccardo Robecchi pubblicata il 15 Maggio 2019, alle 20:25 nel canale SicurezzaIntel
La scoperta delle vulnerabilità Spectre e Meltdown ha incentivato uno studio, sia interno a Intel che da parte di entità esterne, sulle tecniche di esecuzione speculativa proprie dei processori di recente concezione. L'esecuzione speculativa si basa sulla parallelizzazione dell'esecuzione delle istruzioni al fine di migliorare i tempi di elaborazione, ma in certi casi può comportare dei problemi di sicurezza.
L'indagine ha portato alla pubblicazione di una serie di studi che hanno individuato una nuova vulnerabilità appartenente alla stessa famiglia, identificata con vari nomi: RIDL, Fallout, ZombieLoad o Microarchitectural Data Sampling. La pluralità di nomi dipende dal fatto che diversi gruppi hanno lavorato sul problema e ciascuno di essi lo ha identificato in maniera propria. La Vrije Universiteit di Amsterdam l'ha chiamata Rogue In-Flight Data Load; un team che comprende la University of Technology di Graz, l'Università del Michigan, il Worcester Polytechnic Institute e la KU Leuven ha scelto il nome di Fallout. Gruppi di studio separati presso la University of Technology di Graz sono giunti alla conclusione che i migliori nomi potessero essere ZombieLoad e Store-to-Leak Forwarding.
Internamente, Intel sta invece usando il nome di Microarchitectural Data Sampling (MDS). La vulnerabilità è stata scoperta in maniera indipendente sia da Intel che dai vari altri gruppi, e il primo avvertimento a Intel è arrivato nel mese di giugno dello scorso anno.
A livello architetturale, i processori eseguono normalmente le istruzioni in modo sequenziale, aspettando che tutti gli operandi di un'istruzione siano noti prima di eseguire quell'istruzione. Un programma che ha bisogno del valore elaborato dall'istruzione aspetterà che il lavoro di calcolo sia completato prima di accedere a quel valore. Secondo le tecniche di esecuzione speculativa, però, il processore tenta di indovinare in modo speculativo quale calcolo dovrà effettuare: in questo modo, se la condizione viene verificata, il risultato è già pronto per essere utilizzato. Per formulare questa ipotesi, la CPU generalmente si basa sui dati di precedenti calcoli custoditi in cache. Se il processore indovina, migliorerà i tempi di elaborazione; se sbaglia, ignorerà il valore presupposto e aspetterà che il calcolo del ramo di esecuzione venga portato a termine nella maniera tradizionale.
Un processo malevolo non può ovviamente accedere ai dati custoditi in cache, ma può leggere le tempistiche di accesso alle locazioni della cache. Il processore ha bisogno che le varie posizioni della cache vengano adattate rispetto al valore che sta inferendo e, a questo punto, si genera una differenza nelle tempistiche di accesso. Se dei dati sono salvati nella cache, infatti, una seconda istruzione che richiede i dati avrà un accesso istantaneo; se, invece, la posizione della cache deve essere aggiornata prelevando il dato dalla memoria si genererà una latenza. Se il processo malevolo è a conoscenza della gamma di valori che può essere memorizzata nelle celle di memoria della cache, un accesso al momento opportuno può fornirgli informazioni che possono permettergli di scoprire il contenuto della posizione ad accesso riservato. Analizzando i ritardi nell'accesso alle locazioni della cache, il processo malevolo è in grado di leggere potenzialmente ogni posizione di memoria del computer entrando in possesso di dati riservati del sistema operativo, password, dati cifrati e altro ancora.
Meltdown funziona seguendo questo principio e MDS è molto simile: tuttavia, piuttosto che accedere a dati presenti in cache, fa riferimento a dati provenienti dai vari buffer di cui si serve il processore. Il processore ha tre buffer specializzati (load, store e line fill) che utilizza per spostare i dati internamente e i valori che i buffer custodiscono vengono aggiornati o mantenuti con un meccanismo simile al funzionamento della cache.
Allo stesso tempo, però, il processo malevolo in questo caso ha uno scarso controllo sui dati che vengono utilizzati dai buffer e deve procedere a tentativi che possono rendere l'attacco particolarmente lento. Da questo il termine "sampling" (campionatura) nel nome della vulnerabilità. Il buffer di store, ad esempio, potrebbe contenere dati obsoleti provenienti da precedenti operazioni di store che sono irrilevanti per il processo malevolo. Per ottenere dati utilizzabili, devono essere fatti molti tentativi, e quindi il buffer interrogato diverse volte.
Quindi, sebbene questa problematica fosse già evidente per gli esperti che rintracciarono dapprima il sistema di individuazione dei valori delle locazioni della cache alla base di Meltdown, non esiste un modo semplice per forzare i buffer al fine di contenere informazioni sensibili per il processo malevolo. I ricercatori dell'Università di Amsterdam hanno mostrato un attacco proof-of-concept in cui un browser provava a leggere il file delle password cifrate di un sistema Linux. Tuttavia, per far funzionare questo attacco, alle vittime della dimostrazione è stato richiesto di eseguire ripetutamente il comando passwd, in modo da innescare un'alta probabilità che il contenuto del file si trovi in uno dei buffer. Per queste ragioni, Intel ritiene che la vulnerabilità appena rivelata sia a basso o medio rischio.
Intel ha rilasciato un aggiornamento del microcodice per risolvere lato software la vulnerabilità per quanto riguarda i processori Sandy Bridge e i processori Coffee Lake e Whiskey Lake di prima generazione. I sistemi operativi ripuliranno in maniera forzosa i vari buffer per garantire che siano privi di dati sensibili. I più recenti processori Coffee Lake, Whiskey Lake e Cascade Lake, invece, includono adeguamenti hardware che inibiscono il funzionamento delle varie vulnerabilità.
Per i sistemi che dipendono dalle correzioni del microcodice, Intel prevede una perdita di prestazioni media di circa il 3%, anche se questa percentuale potrebbe aumentare nel caso di carichi di lavoro sfavorevoli.
"Microarchitectural Data Sampling (MDS) è già stato affrontato a livello hardware in molti dei nostri recenti processori Intel Core di ottava e nona generazione, nonché nella famiglia di processori scalabili Intel Xeon di seconda generazione" si legge in una nota ufficiale diramata da Intel. "Per gli altri prodotti interessati, la risoluzione del problema è possibile tramite gli aggiornamenti del microcodice, insieme agli aggiornamenti del sistema operativo e agli hypervisor software appena rilasciati. Forniamo ulteriori informazioni sul nostro sito e incoraggiamo tutti gli utenti a mantenere aggiornati i loro sistemi, perché rimane il modo migliore per rimanere protetti. Ringraziamo i ricercatori che hanno collaborato con noi e con i nostri partner per il contributo che hanno dato ad affrontare il problema".
Come nel caso di Meltdown, ZombieLoad (o MDS) sembra un problema specifico dei processori Intel. Questi usano l'elaborazione speculativa per una questione di miglioramento delle prestazioni, ma anche di semplicità di implementazione, mentre i chip di AMD e di ARM funzionano secondo logiche leggermente differenti che li tengono alla larga dal problema.
55 Commenti
Gli autori dei commenti, e non la redazione, sono responsabili dei contenuti da loro inseriti - infoStando ai ricercatori che hanno scoperto la falla sono vulnerabili anche le ultime architetture.
Avresti il link per favore? Ti ringrazio
https://mdsattacks.com/
Io ho letto (non ricordo più dove) che quelli vulnerabili sono le cpu dal 2011 in avanti, incluso anche il 9900K che non ha il fix in hardware perché facente parte del più "vecchio" step 12 (Intel64 Family 6 Model 158 Stepping 12), mentre ce l'hanno i proci di nona generazione con stepping 13, di più nin zo
edit: aspè, da rimarcare che ci sono dei 9900K anche con step 13
edit: aspè, da rimarcare che ci sono dei 9900K anche con step 13
E' un macello, bisogna aspettare per avere le idee più chiare
Questa vulnerabilità interessa solo i processori Intel, più recenti compresi, ma AMD ed ARM sono esenti.
La patch di M$ e/o Intel, che fa perdere ottimisticamente il 3% di prestazioni per correzione microcode (e/o presumibilmente ben di più per update software), viene disinvoltamente applicata anche ai processori AMD, che non ne hanno bisogno, tanto per mantenere la par condicio.
È realmente difficile bloccare ogni tipo di speculazione a browser e app importanti , ma lasciarle attive a programmi di rendering e giochi?
La patch di M$ e/o Intel, che fa perdere ottimisticamente il 3% di prestazioni per correzione microcode (e/o presumibilmente ben di più per update software), viene disinvoltamente applicata anche ai processori AMD, che non ne hanno bisogno, tanto per mantenere la par condicio.
non si perde il 3%
Devi effettuare il login per poter commentare
Se non sei ancora registrato, puoi farlo attraverso questo form.
Se sei già registrato e loggato nel sito, puoi inserire il tuo commento.
Si tenga presente quanto letto nel regolamento, nel rispetto del "quieto vivere".