Habilitar la protección basada en virtualización de la integridad de código
Advertencia
Algunas aplicaciones y controladores de dispositivos de hardware pueden ser incompatibles con la integridad de la memoria. Esta incompatibilidad puede hacer que los dispositivos o el software no funcionen correctamente y, en raras ocasiones, puede provocar un error de arranque (pantalla azul). Estos problemas pueden producirse después de activar la integridad de la memoria o durante el propio proceso de habilitación. Si se producen problemas de compatibilidad, consulte Solución de problemas para ver los pasos de corrección.
La integridad de memoria es una característica de seguridad basada en virtualización (VBS) disponible en Windows. La integridad de la memoria y VBS mejoran el modelo de amenazas de Windows y proporcionan protecciones más seguras contra el malware que intenta aprovechar el kernel de Windows. VBS usa el hipervisor de Windows para crear un entorno virtual aislado que se convierte en la raíz de confianza del sistema operativo que supone que el kernel se puede poner en peligro. La integridad de memoria es un componente crítico que protege y protege Windows mediante la ejecución de la integridad de código en modo kernel dentro del entorno virtual aislado de VBS. La integridad de memoria también restringe las asignaciones de memoria del kernel que se podrían usar para poner en peligro el sistema.
Nota
- La integridad de memoria a veces se conoce como integridad de código protegida por hipervisor (HVCI) o integridad de código aplicado por hipervisor, y se publicó originalmente como parte de Device Guard. Device Guard ya no se usa excepto para buscar la integridad de la memoria y la configuración de VBS en directiva de grupo o en el Registro de Windows.
- La integridad de la memoria funciona mejor con Intel Kabylake y procesadores superiores con control de ejecución basado en modo y procesadores AMD Zen 2 y superiores con capacidades de captura de ejecución en modo invitado . Los procesadores más antiguos se basan en una emulación de estas características, denominada modo de usuario restringido, y tendrán un mayor impacto en el rendimiento. Cuando la virtualización anidada está habilitada, la integridad de la memoria funciona mejor cuando la máquina virtual es versión >= 9.3.
Características de integridad de memoria
- Protege la modificación del mapa de bits de Control Flow Guard (CFG) para los controladores de modo kernel.
- Protege el proceso de integridad de código en modo kernel que garantiza que otros procesos de kernel de confianza tengan un certificado válido.
Cómo activar la integridad de la memoria
Para habilitar la integridad de la memoria en dispositivos Windows con hardware compatible en toda una empresa, use cualquiera de estas opciones:
Habilitación de la integridad de memoria mediante Seguridad de Windows
La integridad de la memoria se puede activar en Seguridad de Windows configuración y se puede encontrar en Seguridad de Windows>Dispositivosdetalles> de aislamiento de seguridad > coreIntegridad de memoria. Para obtener más información, consulte Protección de dispositivos en Seguridad de Windows.
A partir de Windows 11 22H2, Seguridad de Windows muestra una advertencia si la integridad de la memoria está desactivada. El indicador de advertencia también aparece en el icono de Seguridad de Windows en la barra de tareas de Windows y en el Centro de notificaciones de Windows. El usuario puede descartar la advertencia desde dentro de Seguridad de Windows.
Validación de vbs habilitado y características de integridad de memoria
Uso de Win32_DeviceGuard clase WMI
Windows 10, Windows 11 y Windows Server 2016 y versiones posteriores tienen una clase WMI para las propiedades y características relacionadas con VBS: Win32_DeviceGuard. Esta clase puede consultarse desde una sesión de Windows PowerShell con privilegios elevados mediante el siguiente comando:
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
Nota
La propiedad Control de ejecución basada en modo solo se mostrará como disponible a partir de Windows 10 versión 1803 y Windows 11 versión 21H2. Este valor se notifica tanto para el control de ejecución basado en modo de Intel como para las funcionalidades de captura de ejecución en modo invitado de AMD.
La salida de este comando proporciona detalles de las características de seguridad basadas en hardware disponibles y las características que están habilitadas actualmente.
InstanceIdentifier: cadena única para un dispositivo determinado y establecida por WMI.
Versión: en este campo se muestra la versión de esta clase WMI. Actualmente, el único valor válido es 1.0.
AvailableSecurityProperties: este campo ayuda a enumerar e informar sobre el estado de las propiedades de seguridad pertinentes para VBS y la integridad de la memoria.
Valor Descripción 0 Si se encuentra presente, no hay ninguna propiedad pertinente en el dispositivo. 1 Si se encuentra presente, existe compatibilidad con el hipervisor. 2 Si se encuentra presente, el arranque seguro está disponible. 3 Si se encuentra presente, la protección de DMA está disponible. 4 Si se encuentra presente, la sobrescritura de memoria segura está disponible. 5 Si se encuentra presente, las protecciones NX están disponibles. 6 Si se encuentra presente, las mitigaciones de SMM están disponibles. 7 Si está presente, MBEC/GMET está disponible. 8 Si está presente, la virtualización de APIC está disponible. CodeIntegrityPolicyEnforcementStatus: este campo indica el estado de cumplimiento de la directiva de integridad de código.
Valor Descripción 0 Desactivado 1 Auditoría. 2 Forzada. RequiredSecurityProperties: en este campo se describen las propiedades de seguridad necesarias para habilitar VBS.
Valor Descripción 0 No se necesita nada. 1 Si se encuentra presente, se necesita la compatibilidad con el hipervisor. 2 Si se encuentra presente, se necesita el arranque seguro. 3 Si se encuentra presente, se necesita la protección de DMA. 4 Si se encuentra presente, se necesita la sobrescritura de memoria segura. 5 Si está presente, se necesitan las protecciones NX. 6 Si está presente, se necesitan las mitigaciones de SMM. 7 Si está presente, se necesita MBEC/GMET. SecurityServicesConfigured: este campo indica si se ha configurado Credential Guard o la integridad de la memoria.
Valor Descripción 0 No se configura ningún servicio. 1 Si se encuentra presente, Credential Guard se ha configurado. 2 Si está presente, se configura la integridad de la memoria. 3 Si está presente, se configura Protección del sistema inicio seguro. 4 Si está presente, se configura la medición de firmware de SMM. 5 Si está presente, se configura La protección de pila aplicada por hardware en modo kernel. 6 Si está presente, protección de pila aplicada por hardware en modo kernel se configura en modo auditoría. 7 Si está presente, se configura Hypervisor-Enforced traducción de paginación. SecurityServicesRunning: este campo indica si se está ejecutando Credential Guard o la integridad de la memoria.
Valor Descripción 0 No se está ejecutando ningún servicio. 1 Si se encuentra presente, Credential Guard está en ejecución. 2 Si está presente, se está ejecutando la integridad de la memoria. 3 Si está presente, se está ejecutando Protección del sistema inicio seguro. 4 Si está presente, se está ejecutando la medición de firmware de SMM. 5 Si está presente, se está ejecutando la protección de pila aplicada por hardware en modo kernel. 6 Si está presente, la protección de pila aplicada por hardware en modo kernel se ejecuta en modo auditoría. 7 Si está presente, Hypervisor-Enforced traducción de paginación se está ejecutando. SmmIsolationLevel: este campo indica el nivel de aislamiento de SMM.
UsermodeCodeIntegrityPolicyEnforcementStatus: este campo indica el estado de cumplimiento de la directiva de integridad de código en modo de usuario.
Valor Descripción 0 Desactivado 1 Auditoría. 2 Forzada. VirtualizationBasedSecurityStatus: este campo indica si VBS está habilitado y en ejecución.
Valor Descripción 0 VBS no está habilitado. 1 VBS está habilitado, pero no en ejecución. 2 VBS está habilitado y en ejecución. VirtualMachineIsolation: este campo indica si el aislamiento de máquina virtual está habilitado.
VirtualMachineIsolationProperties: este campo indica el conjunto de propiedades de aislamiento de máquina virtual que están disponibles.
Valor Descripción 1 AMD SEV-SNP 2 Seguridad basada en virtualización 3 Intel TDX
Uso de msinfo32.exe
Otro método para determinar las características de VBS disponibles y habilitadas es ejecutar msinfo32.exe desde una sesión de PowerShell con privilegios elevados. Al ejecutar este programa, las características de VBS se muestran en la parte inferior de la sección Resumen del sistema .
Solución de problemas
- Si un controlador de dispositivo no se carga o se bloquea en tiempo de ejecución, es posible que pueda actualizar el controlador mediante Administrador de dispositivos.
- Si experimenta un error crítico durante el arranque o el sistema es inestable después de activar la integridad de la memoria, puede recuperarlo mediante el entorno de recuperación de Windows (Windows RE).
En primer lugar, deshabilite las directivas que se usan para habilitar VBS y la integridad de la memoria, por ejemplo, directiva de grupo.
A continuación, arranque para Windows RE en el equipo afectado, consulte Windows RE Referencia técnica.
Después de iniciar sesión en Windows RE, establezca la clave del Registro de integridad de memoria en off:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 0 /f
Por último, reinicie el dispositivo.
Nota
Si ha activado la integridad de la memoria con bloqueo UEFI, deberá deshabilitar Arranque seguro para completar los pasos de recuperación de Windows RE.
Implementación de integridad de memoria en máquinas virtuales
La integridad de la memoria puede proteger una máquina virtual de Hyper-V, igual que lo haría con una máquina física. Los pasos para habilitar la integridad de la memoria son los mismos desde dentro de la máquina virtual.
La integridad de la memoria protege contra el malware que se ejecuta en la máquina virtual invitada. No proporciona protección adicional del administrador del host. Desde el host, puede deshabilitar la integridad de memoria de una máquina virtual:
Set-VMSecurity -VMName <VMName> -VirtualizationBasedSecurityOptOut $true
Requisitos para ejecutar la integridad de memoria en máquinas virtuales de Hyper-V
- El host de Hyper-V debe ejecutar al menos Windows Server 2016 o Windows 10, versión 1607.
- La máquina virtual de Hyper-V debe ser de la generación 2 y ejecutar como mínimo Windows Server 2016 o Windows 10.
- La integridad de la memoria y la virtualización anidada se pueden habilitar al mismo tiempo. Para habilitar el rol de Hyper-V en la máquina virtual, primero debe instalar el rol de Hyper-V en un entorno de virtualización anidada de Windows.
- Canal de fibra virtual adaptadores no son compatibles con la integridad de la memoria. Antes de conectar un adaptador de canal de fibra virtual a una máquina virtual, primero debe excluirse de la seguridad basada en virtualización mediante
Set-VMSecurity
. - La opción AllowFullSCSICommandSet para discos de paso a través no es compatible con la integridad de la memoria. Antes de configurar un disco de paso a través con AllowFullSCSICommandSet, primero debe rechazar la seguridad basada en virtualización mediante
Set-VMSecurity
.