lunedì 22 ottobre 2018

Proteggere Windows 10 dalle vulnerabilità Meltdown-Spectre ed usare InSpectre per controllare la situazione

In Windows 10 v1803 "April 2018 Update" non è stata inclusa la patch che risolve la vulnerabilità a Spectre, uno dei due gravi bug di sicurezza (l'altro si chiama Meltdown) delle CPU moderne. Prima o poi essa dovrebbe far parte della dotazione standard Windows 10, tuttavia non è ancora chiaro quando ciò avverrà. Ciò ha causato disorientamento in tutti gli utenti che avevano già provveduto all'installazione manuale della patch KB4090007 dedicata a Windows 10 v1709 (Fall Creators Update). Facciamo il punto della situazione e vediamo come risolvere il problema per Windows 10 v1803 "April 2018 Update" e la strategia da adottare per le prossime versioni di Windows 10 e fino a quando la patch non verrà definitivamente integrata nel sistema operativo. Per determinare il grado di protezione e le eventuali azioni necessarie a proteggere il sistema useremo il tool InSpectre (https://www.grc.com/inspectre.htm).
Scaricate ed eseguite (meglio se con privilegi di amministratore) InSpectre; il vostro obiettivo DEVE ESSERE (per quanto consentito dal vostro hardware) quello dell'immagine seguente:
InSpectre - Protezione da Spectre e Meltdown

Origine del problema

All'inizio del 2018, si è diffusa la notizia dell'esistenza di una coppia di gravi vulnerabilità, denominate Meltdown e Spectre, da cui sono affette tutte le CPU prodotte negli ultimi 20 anni. Inizialmente si pensava ad problema circoscritto ad un errore di progettazione delle sole CPU Intel ma indagini approfondite hanno appurato che il problema riguarda anche quelle AMD e ARM (cioè praticamente tutti gli smartphone attuali). Nel corso dei mesi, sono state individuate diverse varianti di attacco basate su Meltdown e/o Spectre (le informazioni tecniche sono pubblicate sui siti https://meltdownattack.com e https://spectreattack.com).
Entrambe le vulnerabilità sono basate su condizioni che si verificano durante l'esecuzione speculativa, una tecnologia che consente alla CPU di determinare "in anticipo" le istruzioni da eseguire e/o gli indirizzi di memoria da caricare durante l'elaborazione. Ciò consente di ottimizzare le prestazioni del codice da eseguire ma crea situazioni in cui un processo, anche se privo di particolari privilegi, può accedere ai dati di un altro processo o a quelli del nucleo (kernel) del sistema operativo.
  • Meltdown: consente ad un processo locale (privo di particolari privilegi), di compromettere l'isolamento tra le applicazioni ed il sistema operativo, permettendogli di accedere a qualunque area di memoria di un altro processo (un'applicazione, per esempio) o del kernel del sistema operativo. La difesa contro Meltdown consiste nel tenere aggiornato il sistema operativo, per cui vengono distribuite patch apposite. Le CPU Intel sono quelle maggiormente colpite da Meltdown (sembrerebbe che quelle AMD e ARM non lo siano o lo siano in forma minore) tuttavia l'applicazione delle patch software risolve il problema e non causa degrado delle prestazioni.
  • Spectre: è il più pericoloso (sebbene sia più difficile da sfruttare per un attaccante). Permette ad un processo locale (privo di particolari privilegi), di leggere il contenuto della memoria di altri processi o la memoria del kernel di sistema; rompe l'isolamento tra applicazioni permettendo di carpirne eventuali segreti (password, per esempio). Le patch software per il sistema operativo non sono sufficienti per difendersi da Spectre, è necessario l'aggiornamento del microcodice della CPU, da effettuarsi possibilmente per mezzo dell'aggiornamento del firmware della scheda madre (cioè del BIOS/UEFI). Ciò tuttavia può, in certi casi, causare un degrado delle prestazioni.

Interpretare i risultati di InSpectre

Inquadrato il problema è necessario interpretare correttamente i risultati forniti da InSpectre:
  1. System is Meltodown protected: controlla che il sistema operativo sia aggiornato con la patch che protegge da Meltdown. I risultati possibili sono:
    • YES: il sistema operativo ha ricevuto la patch di protezione per Meltdown.
    • NO: il sistema operativo non ha ricevuto la patch di protezione per Meltdown, è necessario aggiornare il sistema operativo e procedere al riavvio. Dopo il riavvio del sistema eseguire di nuovo InSpectre per verificare che la vulnerabilità sia stata risolta (se non è risolta probabilmente state usando una versione obsoleta di Windows). 
  2. System is Spectre protected: controlla che sia stato eseguito l'upgrade del microcodice della CPU, o mediante un aggiornamento del BIOS/UEFI oppure con una patch distribuita da Microsoft per Windows, da scaricare manualmente dal Microsoft Catalog Update. I risultati possibili sono:
    • YES: il microcodice della CPU risulta aggiornato (non specifica se mediante update del BIOS/UEFI o con update software distribuito da Microsoft).
    • NO: il microcodice della CPU non è aggiornato, è necessario eseguire l'aggiornamento del BIOS/UEFI (se il produttore della scheda madre o del computer stesso lo ha reso disponibile) oppure applicare la correzione del microcodice via software con l'apposita patch per Windows.
      NOTA BENE: se questa voce è NO ma la voce Microcode Update Available è YES, è possibile proteggere il sistema da Spectre con l'aggiornamento del BIOS/UEFI oppure con con l'apposita patch per Windows.
  3. Microcode Update Available: specifica se il produttore della CPU ha rilasciato (o ha intenzione di farlo) un update del microcodice. ATTENZIONE: il fatto che il microcodice sia stato rilasciato (o sia in procinto di esserlo) non significa che la vostra CPU sia aggiornata. I risultati possibili sono:
    • YES: il produttore della CPU ha rilasciato (o ha intenzione di rilasciare) un update del microcodice della CPU. Dovete controllare sul sito del produttore della scheda madre del computer (o del produttore del computer stesso) se è disponibile un aggiornamento del BIOS/UEFI recante come minimo la data di Gennaio 2018 o meglio successiva (meglio se Maggio/Giugno 2018), in quanto i documenti finali di Intel/AMD sono datati Maggio 2018 (ATTENZIONE: prima di procedere all'update del BIOS/UEFI leggete il resto di questo articolo); in alternativa potete aggiornare il microcodice manualmente scaricando la patch apposita dal Microsoft Catalog Update.
    • NO: il produttore della CPU non ha rilasciato un update del microcodice della CPU e/o non ha intenzione di farlo. In tal caso non è possibile in alcun modo proteggere il vostro sistema da Spectre.
      NOTA BENE: se questa voce è NO allora, probabilmente, la voce System is Spectre protected è NO (a meno che non abbiate una CPU recentissima, per esempio un Intel Core i9xxx, ossia nona generazione o successiva: tali CPU incorporano in hardware le protezioni necessarie), a meno che, con l'avanzare delle versioni di Windows 10, il sistema operativo venga aggiornato da Microsoft in modo da mitigare/annullare la possibilità di un attacco di Spectre (o sue varianti).
  4. Performance: esegue una valutazione delle prestazioni della CPU dopo l'applicazione di una o entrambe le patch. I risultati possibili sono:
    • valutazione positiva (per esempio GOOD, cioè buono): non c'è stata perdita di prestazioni dopo la risoluzione di una o entrambe le vulnerabilità.
    • valutazione non positiva (per esempio SLOWER, cioè rallentato): secondo InSpectre l'applicazione delle patch correttive ha determinato un rallentamento delle prestazioni del sistema. In tal caso l'utente può decidere di disabilitare la protezione per una o entrambe le vulnerabilità, usando i pulsanti <Disable Spectre Protection> (disabilita la protezione da Spectre) e/o <Disable Meltdown Protection> (disabilita la protezione da Meltdown) e ripristinare il precedente livello di prestazioni (dopo aver agito su uno o entrambi i pulsanti occorre riavviare il sistema).
  5. CPUID: è una stringa alfanumerica che identifica la CPU. Dovrete cercare tale stringa nella pagina del sito Microsoft che distribuisce l'update del microcodice della CPU (se il CPUID non è compreso nella pagina, significa che la vostra CPU non ha ricevuto l'aggiornamento).

Il problema dell'aggiornamento del microcodice della CPU

Per proteggersi da Spectre non bastano le patch per il sistema operativo, occorre aggiornare il firmware (BIOS o UEFI) della scheda madre, collegandosi al sito web del produttore e sperando che un nuovo firmware sia stato rilasciato (senza un aggiornamento del firmware le patch anti-Spectre sono inutili). La notizia delle vulnerabilità a Spectre/Meltdown è "esplosa" a Gennaio 2018 (sebbene fosse nota da tempo), quindi, un BIOS/UEFI deve ragionevolmente riportare una data posteriore. I produttori, come spesso accade, hanno realizzato aggiornamenti firmware solo per i prodotti più recenti, trascurando le CPU di generazioni precedenti. Fortunatamente, gli aggiornamenti del firmware delle CPU (update del microcode - microcodice) si possono distribuire con i sistemi operativi, con un solo limite: vengono persi a ogni riavvio (o spegnimento) del computer, quindi devono essere riapplicati ogni volta (l'operazione viene eseguita ogni volta che il sistema operativo fa un nuovo boot). Alcune distribuzioni Linux hanno percorso questa via, distribuendo le patch necessarie direttamente all'interno del sistema operativo. Microsoft ha preferito non farlo, ufficialmente per timore della possibile perdita di prestazioni che si verifica in alcuni casi. Tuttavia anche per Windows 10 sono stati distribuiti gli aggiornamenti dei microcodici delle CPU, solo che bisogna scaricarli ed installarli manualmente. La pagina di riferimento è la seguente (al momento della stesura di questo articolo è datata 13 Settembre 2018): https://support.microsoft.com/en-us/help/4093836/summary-of-intel-microcode-updates
Le patch rilasciate aggiornano il microcodice di quasi tutte le CPU Intel a partire dalla famiglia Sandy-Bridge del 2011 (se avete una CPU AMD non dovete scaricare queste patch). Le CPU più vecchie, comprese le CPU Core 2 Duo sono state escluse; sono state escluse anche alcune CPU recenti Xeon ed Extreme Edition per cui l'update non è tecnicamente fattibile a causa della loro particolare architettura hardware. Per capire se la vostra CPU ha un aggiornamento del microcodice dovete cercare il CPUID mostrato da InSpectre all'interno della pagina degli update. Le patch sono le seguenti:
Procedura di aggiornamento:
  • scegliete la patch corretta per la vostra versione di Windows 10 (click su uno dei link precedenti o partendo dalla pagina ufficiale Microsoft);
  • cercate il CPUID nella pagina che si apre: se c'è proseguite al prossimo punto (se il CPUID non c'è non potete aggiornare il microcodice);
  • scorrere la pagina che si apre verso il basso e fare click sul link "Microsoft Update Catalog"
    Microsoft Update Catalog
  • scaricate la patch corretta per il vostro sistema (32 o 64 bit) e, nel caso ce ne fosse più di una, scegliete quella con la data più recente (guardate la colonna "Ultimo aggiornamento");
  • fate doppio click sulla patch scaricata per eseguire l'update; alla fine dell'aggiornamento riavviate Windows 10. ATTENZIONE: prima di eseguire l'aggiornamento, è bene disabilitare/disinstallare eventuali firewall e/o antivirus di terze parti ed eventuali emulatori software di unità ottiche.
  • Dopo il riavvio, eseguite di nuovo InSpectre per verificare che sia tutto a posto.

Aggiornamento per CPU AMD

Gli aggiornamenti del microcodice delle CPU AMD sono stati rilasciati agli OEM (i grandi assemblatori), per la maggior parte delle CPU prodotte a partire dal 2011 fino alle recenti Ryzen2. Se avete una CPU AMD dovete quindi andare sul sito web del produttore della scheda madre/computer, verificare che ci sia un BIOS/UEFI recente ed aggiornarlo. Per Windows 10 v1709 Microsoft ha rilasciato l'Hotfix KB4093112, da scaricare ed installare manualmente. Successivi aggiornamenti saranno eventualmente disponibili direttamente da Windows Update (premete START, andate su Aggiornamento e sicurezza e controllate gli aggiornamenti: in pratica vi basterà tenere Windows aggiornato selezionando eventuali update manualmente se necessario). Le CPU AMD prodotte a partire dal 2019 (famiglia Zen 2 e successive) incorporeranno in hardware la protezione da Spectre.

Proteggere il browser da Spectre

La vulnerabilità a Spectre riguarda possibili azioni malevole di un processo infetto verso gli altri processi di sistema. Il browser, essendo usato per la navigazione in internet, è sicuramente il software più esposto al problema. Tutti i maggiori produttori di browser ne sono consapevoli ed hanno immediatamente preso le opportune contromisure: il vostro browser è protetto solo se mantenete costantemente aggiornato. Ad oggi, le ultime versioni più aggiornate dei seguenti browser risultano protette: Microsoft Internet Explorer 11, Microsoft Edge, Mozilla Firefox, Google Chrome e la sua controparte open Chromium. Se usate altri browser o se avete la pessima abitudine di non aggiornarlo, potete controllarne la vulnerabilità alla pagina https://xlab.tencent.com/special/spectre/spectre_check.html.

POTREBBE INTERESSARTI ANCHE…