Meltdown e Spectre sono nuove vulnerabilità dei processori che colpiscono la maggior parte dei PC e degli smartphone. Sono disponibili delle patch, ma queste influiscono sulle prestazioni del processore.
Dopo aver letto questo articolo sarai in grado di:
Argomenti correlati
Sicurezza delle applicazioni Web
Cos'è il cross-site scripting?
Cross-Site Request Forgery (CSRF, richiesta intersito falsa)
Cos'è un buffer overflow?
Cos'è l'SQL injection?
Abbonati a theNET, il riepilogo mensile di Cloudflare sulle tematiche più discusse in Internet.
Copia link dell'articolo
Meltdown e Spectre sono vulnerabilità scoperte di recente che si trovano nei chip dei processori Intel, AMD, Apple e ARM. Queste vulnerabilità sono il risultato di un grave difetto di progettazione nei chip interessati e la scoperta di questo problema ha portato a una riprogettazione forzata del software del sistema operativo Windows, Mac e Linux per mitigare la vulnerabilità e impedire ai malintenzionati di sfruttarla.
Queste vulnerabilità sono state scoperte dai ricercatori del Project Zero di Google, un team dedicato a individuare falle di sicurezza prima che possano essere sfruttate dagli aggressori; al momento non sono noti exploit Meltdown o Spectre. I team di sicurezza delle principali aziende tecnologiche come Apple, Intel e Microsoft, nonché gli sviluppatori Linux open source, stanno ora dedicando ingenti risorse per cercare di garantire che i loro processori e sistemi operativi siano protetti da eventuali exploit dannosi.
Con poche eccezioni, tutti coloro che hanno un PC e/o uno smartphone sono a rischio. Secondo Google, ogni dispositivo con un chip del processore Intel prodotto dopo il 1995 ne risente. I chip AMD e ARM sono più difficili da sfruttare, ma anch'essi sono a rischio.
Oltre a sostituire il processore di un PC, l’unico modo per chiudere la vulnerabilità è applicare una patch al sistema operativo. All'inizio di dicembre, Apple ha introdotto silenziosamente una patch Meltdown su OSX, mentre Microsoft ha rilasciato una patch per Windows il 3 gennaio e gli sviluppatori Linux stanno ancora lavorando duramente per mettere a punto una patch.
Uno sfortunato effetto collaterale di queste patch Meltdown è che, per impostazione predefinita, rallentano la velocità di elaborazione dei computer che utilizzano il sistema operativo patchato. Si stima che questi rallentamenti avranno un impatto sulle prestazioni di circa il 5-30%, a seconda del tipo di chip e delle attività eseguite.
SSia Meltdown che Spectre sono vulnerabilità create durante l'esecuzione di uno speciale codice di basso livello chiamato "codice kernel", che viene eseguito specificatamente durante un processo noto come esecuzione speculativa.
L'esecuzione speculativa può forse essere spiegata più facilmente usando una metafora. Immaginate un escursionista che si è perso nel bosco e che si imbatte in un bivio che dà origine a due percorsi più o meno paralleli: uno riporterà l'escursionista a casa, l'altro no. Invece di perdere tempo ad aspettare che passi un altro escursionista e gli dia delle indicazioni, sceglie il percorso che ritiene più adatto per tornare a casa. A un certo punto dell'escursione, incontra un cartello che indica il sentiero; se il cartello gli dice che è sulla strada giusta, allora continua lungo quel sentiero e torna a casa. Se il cartello invece riporta che è sul sentiero sbagliato, torna subito indietro e prende il sentiero alternativo, il che non lo mette in una situazione peggiore rispetto a quando si trovava ancora alla base del sentiero in attesa di indicazioni.
Molti processori moderni utilizzano una tecnica simile, detta esecuzione speculativa, in cui la CPU cerca di indovinare quale codice deve essere eseguito successivamente e poi esegue quel codice prima che sia richiesto. Se il codice eseguito non risulta più necessario, le modifiche vengono annullate. Ciò ha lo scopo di risparmiare tempo e accelerare le prestazioni.
I rapporti sulla vulnerabilità Meltdown/Spectre suggeriscono che le CPU Intel potrebbero eseguire codice speculativo senza richiedere importanti controlli di sicurezza. Potrebbe essere possibile scrivere un software progettato per verificare se il processore ha completato un'istruzione che normalmente verrebbe bloccata da questi controlli di sicurezza.
Questa cattiva gestione dell'esecuzione speculativa crea una vulnerabilità della CPU che un aggressore può sfruttare per accedere a dati molto sensibili nella memoria del kernel, come password, chiavi di crittografia, fotografie personali, e-mail, ecc.
Un kernel è il programma alla base del sistema operativo di un computer. Ha il controllo completo sul sistema operativo e amministra tutto, dall'avvio della macchina alla consegna della memoria. Il kernel è anche responsabile dell'invio di istruzioni di elaborazione dei dati alla CPU (Central Processing Unit). La maggior parte delle CPU si sposta costantemente avanti e indietro tra la modalità kernel e la modalità utente.
In modalità kernel, la CPU esegue codice che ha accesso illimitato all'hardware e alla memoria del computer. Questa modalità è generalmente riservata alle operazioni di livello più basso e più attendibili. Gli arresti anomali che si verificano mentre la CPU è in modalità kernel sono potenzialmente catastrofici; possono mandare in crash l'intero sistema operativo.
In modalità utente, il codice in esecuzione non può accedere all'hardware o alla memoria di riferimento, ma deve delegare alle API di sistema (le API di sistema possono eseguire funzioni in modalità kernel che il software in modalità utente può richiedere con le autorizzazioni appropriate). Gli arresti anomali in modalità utente sono generalmente isolati e recuperabili. La maggior parte del codice viene eseguita in modalità utente.
La correzione nella patch Meltdown comporta una separazione più drastica della memoria del kernel dai processi utente. Ciò avviene tramite un metodo chiamato Kernel Page Table Isolation (KPTI). Il KPTI sposta le operazioni in modalità kernel in uno spazio di indirizzamento completamente separato dalle operazioni in modalità utente. Ciò significa che ci vuole molto più tempo per passare dalla modalità kernel alla modalità utente.
Per illustrare questo concetto, immagina un food truck che vende solo due prodotti: hot dog e limonata fredda. Il dipendente all'interno del food truck riesce a raggiungere facilmente sia la vaporiera contenente gli hot dog sia la ghiacciaia contenente le limonate fredde, e gli affari procedono speditamente. Ora immagina che arrivi un ispettore sanitario e richieda che gli alimenti caldi e freddi siano conservati in locali separati. Ora il dipendente può ancora raggiungere gli hot dog, ma deve uscire dal camion e camminare lungo la strada per prendere ogni limonata. Ciò rallenterebbe notevolmente la coda al food truck, soprattutto se la gente ordina molte limonate. Questo è simile al modo in cui KPTI può rallentare le prestazioni di un sistema operativo.
Sia Meltdown che Spectre sono vulnerabilità create dal modo in cui i processori gestiscono l'esecuzione speculativa, ma differiscono leggermente nel modo in cui funzionano e nei tipi di processori interessati.
Meltdown colpisce solo i processori Intel e Apple e può essere sfruttato per far trapelare informazioni che vengono esposte tramite il codice eseguito dai processori durante l'esecuzione speculativa. Meltdown è più facile da sfruttare rispetto a Spectre ed è stato definito il rischio più grande dagli esperti di sicurezza. Fortunatamente, Meltdown è anche più facile e semplice da correggere.
Spectre colpisce i processori Intel, Apple, ARM e AMD e può essere sfruttato per ingannare i processori inducendoli a eseguire codice che non dovrebbero essere autorizzati a eseguire. Secondo gli esperti di sicurezza di Google, Spectre è molto più difficile da sfruttare rispetto a Meltdown, ma è anche molto più difficile da mitigare.
Puoi accedere al documento completo su Meltdown e al documento su Spectre per ulteriori dettagli tecnici.