Windows 10 Security: Virtual Secure Mode

Windows 10 introduce una serie di novità interessanti nell’ambito della sicurezza e una di questa è senza dubbio la tecnologia Virtual Secure Mode (VSM) che permette di implementare un ambiente sicuro in cui eseguire processi critici come il Local Security Authority (LSA) e il code integrity service.

VSM è una delle funzionalità di Device Guard, la collezione di feature di sicurezza disponibili nella versione Enterprise di Windows 10.

Scendendo nel dettaglio del funzionamento di VSM il Kernel Code Integrity service viene eseguito in un hypervisor-hosted service aumentando così la protezione del sistema operativo root e impedendo al malware di compromettere il kernel layer sfruttando il disaccoppiamento offerto dalla virtualizzazione. In pratica viene utilizzato un OS eseguito in in Hyper-V separtato dal sistema a cui Windows non ha accesso nè tramite GUI, nè tramite rete quindi anche nel caso in cui il kernel del sistema venisse compromesso i processi e i dati all’interno del VSM container rimarrebbero integri.

image

Come riportato in Device Guard overview per poter utilizzare VSM è necessario avere driver compatibili e le funzionalità di virtualizzazione attivate:

“Device Guard devices that run Kernel Code Integrity with virtualization-based security must have compatible drivers – legacy drivers can be updated – and have all virtualization capabilities turned on. This includes virtualization extensions and input/output memory management unit (IOMMU) support.”

Per quanto riguarda l’abilitazione di VSM è possibile fare riferimento all’articolo di Johan Arwidmark

Enabling Virtual Secure Mode (VSM) in Windows 10 Enterprise Build 10130, di seguito i passi principali:

  • Abilitare Secure Boot and UEFI nel BIOS e il Trusted Platform Module (TMP), dalle prove eseguite da Johan entrambe le versioni 1.2 e 2.0 (PTT) consentono l’utilizzo del VSM
  • Aggiungere in Windows 10 la feature Hyper-V
  • Abilitare l’opzione Enable Credential Guard nella policy relativa al Virtual Secure Mode (VSM): Computer Configuration / System / Device Guard / Turn on Virtualization Based Security
  • Configurare BCD per avviare VSM tramite il comando: bcdedit /set vsmlaunchtype auto

Per verificare se VSM è attivo è possibile che vengano registrati gli eventi di Sistema relativi alla protezione dei processi come LSA:

image

Oppure che sia in esecuzione il processo “Secure System”:

image

Di seguito la prova eseguita da Johan delle esecuzione del tool mimikatz realizzato dal ricercatore francese Benjamin Delpy in grado di elaborare i cosiddetti file dump che riflettono il contenuto della memoria ed estrarre tutte le password conservate dal momento che le credenziali dell’account utente vengono conservate nella memoria del sistema.

Di seguito l’output che si ottiene eseguendo su una macchina non prottetta da VSM il comando
mimikatz.exe privilege::debug sekurlsa::logonpasswords exit
In cui si può notare come il tool riesca a ricavare l’NTLM hash che potrebbe poi essere utilizzato per un  tentare un attacco di tipo Pass the hash.

image

Di seguito invece l’output che si ottiene eseguendo su una macchina prottetta da VSE il comando
mimikatz.exe privilege::debug sekurlsa::logonpasswords exit

image

[Update 01]

Per ulteriori informazioni si veda la Device Guard deployment guide e Credential Guard.