Windows 10: Device Guard

Negli ultimi anni le minacce informatiche hanno subito un incremento in termini di quantità che di rapidità di diffusione tali da rendere inadeguati i sistemi tradizionali di rilevamento malware tramite rilevamento basato su firma. In Windows 10 Enterprise sono state rilasciate alcune funzionalità per migliorare la difesa dei sistemi non solo da malware, ma anche da attacchi zero-day e virus polimorfici.

Device Guard

Device Guard è un insieme di funzionalità di sicurezza hardware e software che permettono il blocco di un dispositivo  in modo che possa eseguire esclusivamente applicazioni attendibili. Questo significa che anche se l’autore di un attacco riesce a ottenere il controllo del kernel di Windows, è molto meno probabile che riesca a eseguire codice malevolo dopo il riavvio del computer in quanto sul sistema è stato limitato dal punti di vista di cosa può essere eseguito e quando.

Device Guard è in grado di utilizzare la virtualization-based security in Windows 10 Enterprise per isolare il servizio Code Integrity dal Microsoft Windows kernel eseguendolo in un container protetto dall’hypervisor e consentendo al servizio di usare le firme definite policy aziendali per determinare cosa sia attendibile.

Di seguito i requisiti necessari per l’utilizzo di Device Guard:

  • Windows 10 Enterprise
  • UEFI 2.3.1 o successivo che include la feature Secure Boot (a riguardo si veda anche il post Secure Boot)
  • Trusted Boot una parte del sistema operativo che sfrutta la funzionali di Secure Boot della specifica UEFI per impedire il caricamento di applicazioni malevole durante il processo di avvio del sistema. Trusted Boot è una modifica dell’architettura che contribuisce alla protezione da attacchi con rootkit che consentono di ottenere l’accesso al sistema tramite manomissione del processo di avvio di Windows. ( a riguardo si veda Secure the Windows 8.1 boot process).
  • Virtualization-based security un container protetto da Hyper-V isola i processi sensibili sel sistema operativo come già descritto precedenmente. Questa funzionalità richiede che le estensioni di virtualizzazione (a riguardo si veda il mio post Windows 10 Security: Virtual Secure Mode).
  • Package inspector tool uno strumento che consente di creare un catalogo dei file che richiedono la firma per le applicazioni di Windows classiche, in modo che le applicazioni possano essere facilmente firmate da un firmatario attendibile.

Device Guard permette quindi di configurare i sistemi Windows 10 Enterprise in modo che possano eseguire solo codice firmato da firmatari ritenuti attendibili in base alle Code Integrity policy definite a livello aziendale, il blocco dell’esecuzione di codice non autorizzato avviene attraverso le seguenti tecnologie:

  • User Mode Code Integrity (UMCI) (feature che si occupa di validare l’integrità dei driver e dei file sistema ogni volta che vengono caricati in memoria a riguardo si veda Code Integrity)
  • Nuove rule per l’integrità del kernel code che includono nuovi vincoli di firma Windows Hardware Quality Labs (WHQL)
  • Secure Boot con restrizioni del database (db/dbx)
  • Virtualization-based security per migliorare la protezione da manomissione della memoria di sistema, delle applicazioni in Kernel mode e dei driver (Opzionale)
  • Trusted Platform Module (TPM) 1.2 o 2.0 (Opzionale)

image

E’ possibile creare immagini di installazione di Windows 10 Enterprise con la virtualization-based security abilitata, le Code Integrity policy e impostando già varie configurazioni di sistema in modo da poter utilizzare Device Guard che proteggerà il sistema nelle seguenti fasi:

  1. All’avvio tramite Universal Extensible Firmware Interface (UEFI) Secure Boot in modo che non sia possibile avviare boot kits e il sistema operativo sia avviato prima di ogni altra cosa.
  2. Una volta avviato il sistema possono essere avviati gli Hyper-V virtualization-based security service tra cui il Kernel Mode Code Integrity che proteggerà i driver eseguiti a livello kernel, le soluzioni anti-malware, impedendo l’esecuzione di malware nelle fasi iniziali del processo di avvio o nel kernel dopo l’avvio.
  3. Utilizzo di UMCI per verificare che tutto ciò che viene eseguito in modalità utente(servizi, app Universal Windows Platform o un’applicazioni Windows classiche) sia attendibile.
  4. Insieme al sistema operativo viene avviato anche il TPM (Trusted Platform Module) che offre un componente hardware isolato che consente di proteggere le informazioni sensibili quali credenziali utente e certificati.

Prima di poter utilizzare  Device Guard nella propria infrastruttura occorre tenere presente che è necessario firmare le applicazioni. Device Guard supporta sia app UWP (Universal Windows Platform) che Windows Classic, ma occorre che queste siano firmate da in modo che siano ritenute attendibili all’interno dell’infrastruttura aziendale. Il processo di firma può avvenire nei seguenti modi:

  • Tramite pubblicazione di Windows Store.
  • Con un certificato digitale o mediante l’infrastruttura a chiave pubblica (PKI) aziendale. ISV e aziende possono firmare autonomamente le proprie applicazioni di Windows classiche, aggiungendosi all’elenco dei firmatari attendibili.
  • Con un’autorità di firma non Microsoft. ISV e aziende possono usare un’autorità di firma non Microsoft attendibile per firmare tutte le loro applicazioni di Windows classiche.
  • Con un servizio Web fornito da Microsoft (disponibile prossimamente). ISV e aziende saranno in grado di usare un servizio Web più sicuro fornito da Microsoft per firmare le proprie applicazioni di Windows classiche.

Oltre a firmare le applicazioni per utilizzare Device Guard sarà necessario creare le Code Integrity policy per limitare il codice che può essere eseguito su un dispositivo tramite gli strumenti forniti da Microsoft e distribuiti utilizzando gli strumenti di gestione correnti, come ad esempio Criteri di gruppo. Le Code Integrity policy sono un documento XML con codifica binaria che include le impostazioni di configurazione sia per la modalità utente che kernel, insieme alle restrizioni script hosts. Per ulteriore sicurezza il documento XML delle Code Integrity policy può essere firmato aggiungendo così un’ulteriore protezione dalla modifica o dalla rimozione di questi criteri eseguita da utenti amministratori.

Per ulteriori informazioni si veda Device Guard overview mentre per i passaggi necessari alla configurazione del Device Guard si veda Device Guard deployment guide. Inoltre si veda anche la sessione Dropping the Hammer Down on Malware Threats with Windows 10’s Device Guard tenutasi a Microsoft Ignite 2015.