Verificare se il processore in uso è vulnerabile a Meltdown e Spectre

Quant'è importante proteggersi da Meltdown e Spectre? Perché è Microsoft stessa a consigliare di procedere con cautela agli aggiornamenti, soprattutto sui sistemi Windows Server?

Attorno alle vulnerabilità Meltdown e Spectre scoperte nei processori di cui è stata recentemente data notizia, si è sviluppato un enorme clamore mediatico.
Prima di offrirvi gli strumenti per verificare se il processore in uso sul proprio sistema sia vulnerabile o meno, è secondo noi importante fare alcune considerazioni.

Con la scoperta delle vulnerabilità Meltdown e Spectre non è tutto compromesso e i propri sistemi, client e server, non sono automaticamente a rischio di attacco.
Nuove vulnerabilità vengono infatti scoperte a cadenza giornaliera, decine di migliaia ogni anno. Solo perché a vulnerabilità viene assegnato un nome evocativo e d’impatto, perché le viene dedicato un sito web o è al centro di una campagna di marketing, non necessariamente essa deve essere considerata “a rischio elevato” e non è scontato che essa possa essere sfruttata, da parte di malintenzionati, per aggredire la propria infrastruttura.
Professionisti e aziende è bene che mettano da parte tutto il clamore originatosi attorno a Meltdown e Spectre e analizzino in maniera oculata in che modo tali vulnerabilità possano davvero impattare sulla propria rete.

Al momento non esistono exploit noti capaci di sfruttare Meltdown e Spectre ed è importante tenere presente che eventuale codice malevolo diverrebbe davvero pericoloso se questo venisse eseguito su un sistema.
In altre parole, per sfruttare le vulnerabilità Meltdown e Spectre un aggressore deve necessariamente indurre l’utente ad eseguire sul suo sistema un programma non autorizzato.

Per chi gestisce una rete aziendale oppure ha a che fare con l’amministrazione di macchine server la sfida è sempre la stessa: evitare che codice malevolo possa essere eseguito all’interno del network.
O si pensa che un codice malevolo, capace di sfruttare le tante vulnerabilità via a via scoperte in Windows (ad esempio quelle di privilege escalation per l’acquisizione dei diritti di amministratore), una volta in esecuzione su una macchina collegata alla propria rete locale, non possa fare razzìa delle password altrui (Il browser mostra la password celata da pallini o asterischi: non è un problema) o aggredire le risorse condivise in LAN?
Indipendentemente da Meltdown e Spectre, quindi, la sfida è sempre quella che consiste nel bloccare l’esecuzione di codice potenzialmente dannoso all’interno della rete locale.

Lo fa presente anche Microsoft (Aggiornamenti anti Meltdown e Spectre: quanto incidono sulle prestazioni del processore) che, neppure tanto tra le righe, suggerisce agli amministratori di sistemi Windows Server di evitare per il momento l’installazione delle patch anti Meltdown e Spectre.
Se altri utenti non potessero eseguire codice arbitrario sul server e il browser del server, ovviamente, non venisse usato anche per “navigare” sul web, si è ragionevolmente al sicuro ed è inutile pagare lo scotto in termini di performance (come spiegato più avanti, le patch incidono negativamente sulle prestazioni del processore e per proteggersi in toto è necessario anche un aggiornamento del firmware/BIOS).

Per tutti gli utenti finali la minaccia potrebbe in futuro arrivare dal browser. In altre parole, esattamente come accade per altri tipi di attacchi, gli aggressori potrebbero pubblicare sul web codice exploit capace di sfruttare la vulnerabilità Spectre.
All’aggiornamento del browser è quindi bene dedicare sempre la massima attenzione è installare sempre le versioni più aggiornate.
I produttori dei principali browser hanno infatti già rilasciato aggiornamenti che permettono di mitigare eventuali attacchi che, lo ripetiamo, al momento non sono stati rilevati.
Nell’articolo Come verificare se il browser è vulnerabile a Spectre abbiamo presentato un test online che permette di verificare se il browser web in uso fosse vulnerabile.

Cosa sono le vulnerabilità Meltdown e Spectre

Le vulnerabilità Meltdown e Spectre sono state purtroppo introdotte in fase di progettazione dei microprocessori, stando a quanto accertato tutti quelli presentati da 20 anni a questa parte.

Meltdown. Consente a un processo locale, sprovvisto di particolari privilegi, di leggere il contenuto di qualunque area della memoria utilizzabile dal processo stesso. Anche la memoria kernel è direttamente accessibile sfruttando questa vulnerabilità che, proprio per questo motivo, viene considerata molto pericolosa.
La vulnerabilità coinvolge i processori Intel.

Spectre. Permette a un processo locale, sprovvisto di particolari privilegi, di leggere il contenuto della memoria usata da altri processi. Anche Spectre permette di accedere alla memoria kernel, come chiarisce il team di Google Project Zero a questo indirizzo.
La vulnerabilità coinvolge i processori Intel, AMD e ARM.
Proprio per la sua natura di vulnerabilità cross-process, Spectre rappresenta la minaccia più importante in ottica futura perché il codice nocivo può leggere arbitrariamente il contenuto di qualunque locazione di memoria rastrellando dati sensibili, trasmessi poi su server remoti.

Come evidenziato in precedenza, però, il codice deve essere necessariamente eseguito sulla macchina dell’utente. E quando ciò accade è perché l’utente non ha aggiornato il browser, i suoi eventuali componenti aggiuntivi o ha aperto un allegato proveniente da una fonte sconosciuta o inaffidabile.
I produttori di sistemi operativi hanno già rilasciato aggiornamenti di sicurezza per “mitigare” le lacune presenti in hardware nei processori.

La loro installazione, però, va soppesata (ed eventualmente rimandata) per diversi motivi:

– L’approccio correttivo adottato dai produttori di sistemi operativi consiste nell’applicazione di un isolamento delle pagine del kernel sensibili al problema separandone il contenuto da qualunque processo in esecuzione.
Il mantenimento della nuova tabella tende a influenzare negativamente le prestazioni del processore quando impegnato con certi carichi di lavoro.
Secondo Microsoft l’installazione della patch non causa particolari problemi (leggasi cali di performance) a chi utilizza un sistema dotato di CPU Intel Skylake, Kaby Lake o Coffee Lake con Windows 10; viceversa chi adopera macchine dotate di CPU Haswell o precedenti con Windows 7 o Windows 8.1 può rilevare performance parzialmente ridotte: Aggiornamenti anti Meltdown e Spectre: quanto incidono sulle prestazioni del processore.

– In alcune circostanze, dopo l’installazione della patch, potrebbero verificarsi schermate blu. Si tratta di incompatibilità software (con alcuni antivirus che ad oggi non hanno ancora certificato il supporto della patch Microsoft; Vulnerabilità nei processori: alcuni antivirus possono provocare schermate blu) oppure di problematiche legate all’hardware (Microsoft ha dovuto temporaneamente ritirare gli aggiornamenti per i sistemi AMD: Microsoft ritira le patch anti Meltdown e Spectre sui PC AMD: causano schermate blu).

– Come confermato anche da Microsoft, per proteggersi completamente non bastano le patch per il sistema operativo ma è necessario aggiornare il firmware/BIOS della scheda madre facendo riferimento al sito web del produttore. Anche in questo caso, i produttori sono al lavoro per produrre e distribuire gli aggiornamenti del firmware.
È, in particolare, la “struttura” della vulnerabilità Spectre (CVE-2017-5715) a richiedere anche un aggiornamento del firmware.
Senza un aggiornamento del firmware, le patch anti Spectre di fatto sono inutili.

Come nota finale, è interessante osservare che aggiornamenti del firmware delle CPU (microcode updates) possono certamente essere distribuiti insieme con i sistemi operativi ma hanno un problema: vengono persi a ogni riavvio o spegnimento della macchina (e devono quindi essere ogni volta di nuovo applicati).
Può essere una strada percorribile: RedHat lo sta già facendo dal momento che ha aggiunto aggiornamenti per il microcode delle CPU nelle sue patch; Microsoft ha preferito non imboccare questa via.

Controllare se il processore è vulnerabile

Indipendentemente dalla versione di Windows utilizzata (Windows 10, Windows 8.1 o Windows 7), si può usare uno script PowerShell che permette di verificare se il processore in uso è vulnerabile o meno a Meltdown e Spectre.
Nel caso dei sistemi Windows 7 bisognerà prima installare Windows Management Framework 5.0 che provvederà a installare una versione più aggiornata di PowerShell. Senza il pacchetto Windows Management Framework 5.0 lo script non sarà utilizzabile e si riceverà subito un messaggio d’errore.
Se non si volesse installare il Windows Management Framework 5.0, si può ricorrere ad Ashampoo Spectre Meltdown CPU Checker, presentato a fine articolo.

Per procedere, basta digitare powershell nella casella di ricerca del sistema operativo quindi avviare PowerShell con i diritti di amministratore (tasto destro, Esegui come amministratore).

Al prompt di PowerShell bisognerà quindi scrivere quanto segue:

Install-Module SpeculationControl

Quando richiesto, si dovrà confermare (digitando S e premendo Invio), l’utilizzo del provider NuGet e dell’archivio non attendibile (non vi preoccupate si tratta in realtà di uno script assolutamente legittimo consigliato da Microsoft stessa).


Il passo seguente consiste nell’autorizzare l’esecuzione dello script digitando:

$SaveExecutionPolicy = Get-ExecutionPolicy
Set-ExecutionPolicy RemoteSigned -Scope Currentuser


Successivamente, si può avviare lo script vero e proprio:

Import-Module SpeculationControl
Get-SpeculationControlSettings


La voce Windows OS support for branch target injection mitigation a True indica che si sono installate le patch Microsoft.
Hardware support for branch target injection mitigation suggerisce se si fosse installato l’aggiornamento del firmware (UEFI/BIOS) per proteggersi da Spectre. L’indicazione False indica l’assenza dell’aggiornamento.

Per una protezione completa, quindi, bisognerà fare riferimento al sito del produttore del PC, del dispositivo o della scheda madre e andare alla ricerca di un aggiornamento del BIOS recante, nel changelog, un riferimento all’introduzione del “microcode Intel aggiornato a gennaio 2018“.
Nell’immagine in figura, si vede come l’utente abbia installato l’aggiornamento Microsoft ma non abbia provveduto ad aggiornare il firmware.
Il riferimento a PCID performance optimization enabled a True, significa che si sta usando un processore nuovo o relativamente nuovo che permetterà di ridurre al minimo il calo di performance dovuto all’installazione delle patch.

Per ripristinare la policy di esecuzione degli script originaria, basta infine digitare:

Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser

A questo punto, si può scrivere exit per chiudere PowerShell.

Per automatizzare il controllo ed evitare di ricorrere a PowerShell, si può usare il software InSpectre di Gibson Research oppure Ashampoo Spectre Meltdown CPU Checker.

InSpectre non necessita di installazione e consente di verificare non soltanto se il proprio sistema fosse vulnerabile a Meltdown e Spectre ma anche di controllare quale impatto può avere l’applicazione delle patch sulle performance del processore.
Tutte le indicazioni sull’utilizzo di InSpectre sono riportate nel nostro articolo Sistema vulnerabile a Meltdown e Spectre: InSpectre verifica anche l’impatto sulle prestazioni.


Ashampoo Spectre Meltdown CPU Checker è un programma che non necessita di installazione e che, una volta avviato, si occupa di verificare autonomamente se il processore in uso risulta vulnerabile o meno a Meltdown e Spectre.

L’aggiornamento del BIOS può essere eventualmente effettuato seguendo le indicazioni riportate nell’articolo Aggiornare BIOS: come si fa, a cosa serve e quando va fatto.

Per usare Ashampoo Spectre Meltdown CPU Checker, basta scaricarlo cliccando qui, avviare l’eseguibile quindi premere il pulsante Start security check.


A verifica completata, il programma mostra il responso finale, senza costringere l’utente ad effettuare alcun passaggio aggiuntivo.


Allo stato attuale l’utilità di Ashampoo non ripristina la execution policy predefinita per l’account utente corrente. A verifica effettuata, suggeriamo di eseguire PowerShell con i diritti di amministratore quindi digitare quanto segue:

Set-ExecutionPolicy Restricted -Scope CurrentUser

Ti consigliamo anche

Link copiato negli appunti