viernes, 13 de diciembre de 2019

Protección basada en Virtualización con Device Guard

Device Guard protege el código ejecutado en el sistema operativo, utiliza Virtualization Based Security VBS para aislar el servicio de Hypervisor Code Integrity HVCI, que hace posible que Device Guard ayude a proteger los procesos en modo kernel y los controladores de exploits de vulnerabilidades y ataques Zero-day.

En modo Kernel garantiza que los controladores están firmados por una entidad de confianza WHQL o pertenecen a una lista de controladores seguros definidos por directiva. Device Guard evita la carga de código dinámico o los intentos de modificar código en memoria y bloqueará cualquier controlador que no esté en la lista de programas seguros. Device Guard proporciona protección en modo de usuario UMCI, mediante directivas de integridad de código que definen que elementos están autorizados para ejecutar código en cada servidor.

Device Guard puede se puede configurar con directivas de grupo GPOs, System Center Configuration Manager SCCM, Microsoft Intune o Windows PowerShell. Además se pueden crear archivos de catálogo con la herramienta Package Inspector, para aquellos archivos que no estén firmados. Windows Server 2016 dispone de plantillas administrativas para aplicar la configuración de las directivas de integridad de código de Device Guard.


Para crear la directiva de integridad de código a partir de un sistema de referencia, utilizar la siguiente serie de cmdlets de Windows PowerShell: 
  • $CIPolicyPath=$env:userprofile+"\Desktop\"
  • $InitialCIPolicy=$CIPolicyPath+"InitialScan.xml"
  • $CIPolicyBin=$CIPolicyPath+"DeviceGuardPolicy.bin"
  • New-CIPolicy -Level PcaCertificate -FilePath $InitialCIPolicy –UserPEs 3> CIPolicyLog.txt
  • ConvertFrom-CIPolicy $InitialCIPolicy $CIPolicyBin

Usar la versión binaria DeviceGuardPolicy.bin a modo de directiva de integridad de código en la ruta: C:\Windows\System32\CodeIntegrity\DeviceGuardPolicy.bin y guardar el archivo original InitialScan.xml por si fuera necesario combinar la directiva de integridad de código con otra directiva posteriormente.

Windows Server 2016 tiene una clase WMI para propiedades y características relacionadas con Device Guard denominada Win32_DeviceGuard. Esta clase puede consultarse con el siguiente cmdlet desde una sesión de Windows PowerShell con privilegios elevados:
  • Get-CimInstance –ClassName Win32_DeviceGuard –Namespace root\Microsoft\Windows\DeviceGuard
Esta publicada una guía para la implementación de Device Guard en:
Si estáis interesados en saber cómo mejorar la protección de infraestructuras basadas en tecnología de Microsoft apuntaros a nuestro curso HCHSW Hardening de Servidores Windows en TSS.

Autor: Angel A. Núñez, Profesor del Curso Hardening de Servidores Windows en The Security Sentinel HCHSW, MCT Microsoft Certified Trainer, Microsoft MVP Cloud and Datacenter Management, Microsoft Certified Azure Architect Expert y Autor del libro Windows Server 2016: Administración, seguridad y operaciones. Editorial 0xWord

Seguridad a lo Jabalí para Todo!!

Archivo del blog

Consultor e Instructor de Sistemas y Seguridad Informática en Asturias