Vulnerabilità CPU di tipo Side-Channel – Spectre e MeltDown
Il 3 gennaio 2018 sono state rivelate tre vulnerabilità che coinvolgono la maggior parte dei processori distribuiti negli ultimi anni che li renderebbero vulnerabili ad attacchi di tipo side-channel. Questo tipo di attacchi sfruttano caratteristiche implementative di componenti hardware e software per ottenere informazioni di norma non accessibili, utili a compromettere la sicurezza di un dispositivo o di un sistema.
Tipologie di vulnerabilità
Sono state identificate due diverse tipologie di attacco:
- Meltdown (CVE-2017-5754 – Rogue data cache load), che aggira l’isolamento tra le applicazioni e il sistema operativo consentendo ad un programma di accedere ad aree di memoria di altri programmi e del sistema operativo.
- Spectre (CVE-2017-5753 – Bounds check bypass, CVE-2017-5715 – Branch target injection), che aggira l’isolamento tra le applicazioni e consente quindi di accedere ad aree di memoria di altre applicazioni.
Le vulnerabilità coinvolgono i processori prodotti da da Intel, AMD e ARM presenti in Computer Server, Desktop, Portatili e dispositivi mobili. Trattandosi di problemi a livello di architettura delle CPU le vulnerabilità possono essere rimosse definitivamente solamente con la sostituzione dell’hardware, al momento è quindi possibile solamente mitigarle tramite l’applicazione delle patch a livello di sistema operativo e microcodice.
L’elenco delle CPU Intel coinvolte è presente nel seguente Security Advisory:
https://security-center.intel.com/advisory.aspx?intelid=INTEL-SA-00088&languageid=en-fr
Linee guida
Le vulnerabilità descritte vengono esaminate da Microsoft nella Security Advisory ADV180002 -Guidance to mitigate speculative execution side-channel vulnerabilities.
Sono inoltre stati pubblicati articoli tecnici specifici con le procedure da seguire per il corretto aggiornamento dei sistemi operativi:
- Server: Windows Server guidance to protect against speculative execution side-channel vulnerabilities.
- Client: Windows Client Guidance for IT Pros to protect against speculative execution side-channel vulnerabilities.
Gli articoli includono l’elenco delle KB da applicare per ogni sistema operativo per il quale sono stati rilasciati aggiornamenti da parte di Microsoft. In entrami gli articoli viene anche evidenziato come la sola installazione degli aggiornamenti a livello di sistema operativo non sia sufficiente ad abilitare le mitigazioni. Gli step necessari sono i seguenti:
- Applicazione degli aggiornamenti di sicurezza del sistema operativo.
- Abilitazione degli aggiornamenti tramite l’aggiunta manuale delle chiavi di registro elencate negli articoli.
- Installazione degli aggiornamenti firmware rilasciati dal produttore dell’ hardware.
Da notare che la stessa Intel ha confermato che l’installazione degli aggiornamenti potrebbe comportare una diminuzione delle performance fino al 30% in base al tipo di workload.
Sistemi operativi fuori supporto
Microsoft rilasciato gli aggiornamenti necessari a mitigare le vulnerabilità descritte per i propri sistemi operativi di tipo Client e Server attualmente supportati. Al momento non sono stati quindi rilasciati aggiornamenti specifici (e non vi sono comunicazioni al riguardo) per i seguenti sistemi operativi:
- Windows XP.
- Windows Vista.
- Windows Server 2000.
- Windows Server 2003
- Sistemi operativi più obsoleti.
Per i seguenti sistemi operativi attualmente supportati non sono ancora state pubblicate le patch (e non vi sono previsioni in merito):
- Windows Server 2008 (non R2).
- Windows Server 2012 (non R2).
Compatibilità degli aggiornamenti con software antivirus di terze parti
Microsoft ha rilevato problemi di compatibilità degli aggiornamenti rilasciati con alcuni prodotti antivirus di terze parti. Microsoft ha chiesto ai produttori di antivirus di aggiungere una chiave nel registro di sistema per certificare la piena compatibilità con le patch appena rilasciate. Gli aggiornamenti legati alle vulnerabilità di tipo side-channel saranno installabili solamente nei sistemi in cui la seguente chiave di registro è presente:
Key=”HKEY_LOCAL_MACHINE” Subkey=”SOFTWARE\Microsoft\Windows\CurrentVersion\QualityCompat”
Value=”cadca5fe-87d3-4b96-b7fb-a231484277cc”
Type=”REG_DWORD”
Data=”0x00000000”
Verifica dello stato di protezioni dei sistemi
Microsoft ha pubblicato uno script PowerShell che consente di verificate lo stato di protezione dei sistemi. Per eseguire lo script su sistemi Windows 7 e Windows Server 2008 R2 è necessario l’aggiornamento di PowerShell tramite l’installazione del modulo Windows Management Framework 5.1 disponibile al seguente indirizzo. Per i sistemi Windows 10 e Windows Server 2016 non è necessario installare componenti aggiuntivi.
Per l’installazione dello script verificare che il sistema abbia accesso ad internet, avviare una sessione PowerShell con privilegi elevati ed eseguire il comando:
Install-Module SpeculationControl
Per verificare lo stato di protezione del sistema eseguire i seguenti comandi:
# Save the current execution policy so it can be reset
$SaveExecutionPolicy = Get-ExecutionPolicySet-ExecutionPolicy RemoteSigned -Scope Currentuser
Import-Module SpeculationControl
Get-SpeculationControlSettings
# Reset the execution policy to the original state
Set-ExecutionPolicy $SaveExecutionPolicy -Scope Currentuser
L’output generato simile al seguente. Le protezioni abilitate vengono indicate come “True”.
PS C:\> Get-SpeculationControlSettings
Speculation control settings for CVE-2017-5715 [branch target injection]Hardware support for branch target injection mitigation is present: True
Windows OS support for branch target injection mitigation is present: True
Windows OS support for branch target injection mitigation is enabled: TrueSpeculation control settings for CVE-2017-5754 [rogue data cache load]
Hardware requires kernel VA shadowing: True
Windows OS support for kernel VA shadow is present: True
Windows OS support for kernel VA shadow is enabled: True
Windows OS support for PCID optimization is enabled: True
La voce “Windows OS support for branch target injection mitigation is present” a “True” indica che si sono installate le patch Microsoft.
La voce “Hardware support for branch target injection mitigation is present” indica se sono stati installati aggiornamenti del firmware (UEFI/BIOS) per proteggersi da Spectre.
Microsoft ha pubblicato un articolo tecnico dove viene spiegato nel dettaglio l’output generato dall’esecuzione dello script:
Aggiornamenti VMware
VMware ha pubblicato il bollettino di sicurezza VMSA-2018-0002 nel quale vengono elencati i prodotti che necessitano di aggiornamenti.
Per l’hypervisor ESXi sono necessari i seguenti aggiornamenti di sicurezza:
- ESXi 6.5, aggiornamento ESXi650-201712101-SG.
- ESXi 6.0, aggiornamento ESXi600-201711101-SG.
- ESXi 5.5, aggiornamento ESXi550-201709101-SG.
Come indicato nel bollettino di sicurezza l’aggiornamento per la versione 5.5 non corregge le vulnerabilità derivanti da CVE-2017-5753.
Problemi con le prime Patch rilasciate da Intel (aggiornamento del 29 gennaio)
Sembra che le prime patch rilasciate da Intel abbiano causato su molti dispositivi problemi di instabilità e un aumento dei riavvii improvvisi provocando in alcuni scenari perdite di dati. Per questo motivo Intel ha ritirato gli aggiornamenti già pubblicati invitando gli utenti finali e i produttori di hardware a sospenderne l’installazione e la diffusione. La comunicazione ufficiale è disponibile al seguente link.
In seguito a questa comunicazione i principali produttori di hardware hanno dovuto rivedere le roadmap di aggiornamento dei propri sistemi. A questi indirizzi gli annunci rilasciati da HP riguardo gli aggiornamenti dei propri dispositivi Client e Server.
Microsoft ha pubblicato una patch che disabilita le mitigazioni (agendo a livello di chiavi di registro di Windows) contro una delle tre falle (la CVE-2017-5715 o Branch target injection vulnerability) che sembra essere la causa della maggior parte dei problemi. L’aggiornamento è disponibile nella KB4078130 ed è distribuito tramite Microsoft Update o scaricabile direttamente dal Microsoft Update Catalogue.