Nella ridda di notizie sugli attacchi Meltdown e Spectre che riguardano la stragrande maggioranza dei microprocessori diffusi nel mondo, ci siamo accorti di non aver risposto a una semplicedomanda (mea culpa): come faccio a capire che il mio PC è vulnerabile a Meltdown e Spectre?

Il metodo più veloce lo propone Gibson Research con InSpectre, un piccolo strumento da 122 KB che non richiede installazione e verifica se il vostro PC è vulnerabile a Meltdown e Spectre. Potete scaricarlo da questa pagina. Un altro molto simile lo propone Ashampoo con Spectre Meltdown CPU Checker.

Se avete Windows, c’è anche un metodo più complesso da linea di comando, con uno script PowerShell messo a disponibile da Microsoft. Se state usando Windows 7 la prima cosa che dovete fare è scaricare Windows Management Framework 5.0, che installa sul vostro sistema la versione più recente di PowerShell (già presente su Windows 10).

Avviate Windows PowerShell come amministratore e scrivete il seguente comando nel prompt:

Install-Module SpeculationControl

Premete Invio e dopo qualche secondo vi apparirà

“Archivio non attendibile

Stai installando i moduli da un archivio non attendibile. Se ritieni attendibile questo archivio, modifica il relativo valore InstallationPolicy eseguendo il cmdlet Set-PSRepository. Vuoi installare i moduli da ‘PSGallery’? [S] Sì  [T] Sì a tutti  [N] No  [U] No a tutti  [O] Sospendi  [?] Guida (il valore predefinito è “N”)”.

Premete T e date Invio.

Adesso bisogna cambiare la policy per eseguire lo script, quindi è necessario salvare le impostazioni esistenti per poi ripristinarle in seguito. Poi potete cambiare le policy di esecuzione. Per farlo dovete impartire due comandi, dando Invio a ognuno. Il primo:

$SaveExecutionPolicy = Get-ExecutionPolicy

Il secondo:

Set-ExecutionPolicy RemoteSigned -Scope Currentuser

Scrivete “S” e premete Invio.

Adesso dovete eseguire lo script con i seguenti comandi:

Import-Module SpeculationControl

Get-SpeculationControlSettings

A questo punto vedrete il quadro della situazione, come nell’immagine qui sotto che riguarda il PC con cui abbiamo scritto questo articolo:

La voce “Windows OS support for branch target injection mitigation” si riferisce all’aggiornamento software distribuito da Microsoft ed è giusto che il risultato sia True (Vero).

“Hardware support for branch target injection mitigation” fa riferimento all’aggiornamento di UEFI/BIOS che dovete scaricare dal produttore del vostro PC o da quello della scheda madre. Vedete False perché abbiamo fatto la prova su un portatile non aggiornato.

“Hardware requires kernel VA shadowing” apparirà come True sull’hardware Intel, che è vulnerabile a Meltdown, e False sui sistemi AMD – non vulnerabili a Meltdown. Importante per i sistemi Intel che la voce “Windows OS support for kernel VA shadow is enabled” sia su True.

Un’altra voce interessante è PCID performance optimization. Anche in questo caso è importante che sia su True, perché significa che c’è una soluzione per mitigare l’impatto prestazionale legato ai correttivi. Sulle CPU Haswell (Intel Core di quarta generazione) e successive, PCID è presente. Non si può dire lo stesso sulle CPU più vecchie e quindi l’impatto prestazionale dei correttivi potrebbe essere maggiore.

A ogni modo prima di chiudere PowerShell ricordatevi di ripristinare le impostazioni originali con il comando:

Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser

Dopodiché scrivete T e date Invio per conferma.

E se uso Linux?

Lo sviluppatore Stéphane Lesimple ha creato uno strumento per capire se il vostro sistema con distribuzione Linux è vulnerabile a Spectre e Meltdown. Lo potete scaricare gratuitamente da Github.

Salvate l’archivio nella home directory ed estraete il tutto. Aprite il terminale per navigare fino alla posizione in cui sono estratti i file. Dopodiché date il comando sh ./spectre-meltdown-checker.shcome utente root e il gioco è fatto.

Se il vostro PC Linux è vulnerabile a entrambe le varianti di Spectre dovete installare l’ultimo firmware microcode per la vostra CPU e usare un kernel compilato con l’opzione retpoline e un compilatore aggiornato. Controllate insomma se chi mantiene la distribuzioneha un package kernel disponibile. Tenete comunque presente che vi sono continui lavori in corso e la situazione è in costante mutamento.