Habilitar la protección basada en virtualización de la integridad de código

Advertencia

Algunas aplicaciones y controladores de dispositivo de hardware pueden ser incompatibles con la integridad de la memoria. Esta incompatibilidad puede provocar un mal funcionamiento de los dispositivos o el software 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 obtener los pasos de corrección.

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 sólidas 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 asume que el kernel puede estar en peligro. La integridad de memoria es un componente crítico que protege y fortalece Windows mediante la ejecución de la integridad de código de modo kernel dentro del entorno virtual aislado de VBS. La integridad de memoria también restringe las asignaciones de memoria del kernel que podrían usarse 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 aplicada por hipervisor, y se publicó originalmente como parte de Device Guard. Device Guard ya no se usa, excepto para buscar la integridad de memoria y la configuración de VBS en la directiva de grupo o en el Registro de Windows.
  • La integridad de la memoria funciona mejor con procesadores Intel Kabylake y superiores con control de ejecución basado en modo, y procesadores AMD Zen 2 y superiores con capacidades de captura de ejecución de modo invitado . Los procesadores más antiguos se basan en una emulación de estas funciones, llamada Modo de usuario restringido, y tendrán un mayor impacto en el rendimiento. Cuando se habilita la virtualización anidada, la integridad de memoria funciona mejor cuando la versión de la máquina virtual es = >9.3.
  • Las máquinas virtuales de Azure no admiten la integridad de memoria cuando se selecciona Arranque seguro con DMA. Si está seleccionado, VBS se mostrará como habilitado pero no ejecutándose. Por este motivo, asegúrese de elegir el arranque seguro solo mediante uno de los métodos siguientes.

Características de integridad de memoria

  • Protege la modificación del mapa de bits de Protección del flujo de control (CFG) para los controladores en modo kernel.
  • Protege el proceso de integridad de código del modo kernel que garantiza que otros procesos del kernel de confianza tengan un certificado válido.

Cómo activar la integridad de memoria

Para habilitar la integridad de la memoria en dispositivos Windows con hardware compatible en toda una empresa, use cualquiera de estas opciones:

Habilitar integridad de memoria mediante Seguridad de Windows

La integridad de memoria se puede activar en la configuración de Seguridad de Windows y se encuentra en Seguridad de WindowsSeguridad deldispositivo>. Detalles> de aislamiento de CoreIntegridad de > memoria. Para obtener más información, consulta Protección de dispositivos en Seguridad de Windows.

A partir de Windows 11 22H2, Seguridad de Windows muestra una advertencia si la integridad de 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 Seguridad de Seguridad de Windows.

Validar las características de integridad de memoria y VBS habilitadas

Uso Win32_DeviceGuard clase WMI

Windows 10, Windows 11 y Windows Server 2016 y superiores 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 la versión 1803 de Windows 10 y la versión 21H2 de Windows 11. Este valor se notifica para el control de ejecución basado en modo de Intel y las capacidades de captura de ejecución en modo invitado de AMD.

El resultado 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: una cadena que es única para un dispositivo en particular y establecida por WMI.

  • Versión: este campo enumera la versión de esta clase WMI. Actualmente, el único valor válido es 1.0.

  • AvailableSecurityProperties: este campo ayuda a enumerar y notificar 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 APIC está disponible.
  • CodeIntegrityPolicyEnforcementStatus: este campo indica el estado de aplicación de la directiva de integridad de código.

    Valor Descripción
    0 Desactivado
    1 Auditoría.
    2 Se aplica.
  • RequiredSecurityProperties: este campo describe 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 está configurado Credential Guard o la integridad de la memoria.

    Valor Descripción
    0 No hay ningún servicio configurado.
    1 Si se encuentra presente, Credential Guard se ha configurado.
    2 Si está presente, se configura la integridad de memoria.
    3 Si está presente, se configura el inicio seguro de protección del sistema.
    4 Si está presente, se configura la medición del firmware SMM.
    5 Si está presente, se configura la protección de pila impuesta por hardware en modo kernel.
    6 Si está presente, la protección de pila impuesta 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 integridad de 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 ejecuta la integridad de memoria.
    3 Si está presente, se está ejecutando el inicio seguro de protección del sistema.
    4 Si está presente, se está ejecutando SMM Firmware Measurement.
    5 Si está presente, se está ejecutando la protección de pila impuesta por hardware en modo kernel.
    6 Si está presente, la protección de pila impuesta 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 aplicación de la directiva de integridad de código de modo de usuario.

    Valor Descripción
    0 Desactivado
    1 Auditoría.
    2 Se aplica.
  • 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 la máquina virtual que están disponibles.

    Valor Descripción
    1 AMD SEV-SNP
    2 Seguridad basada en virtualización
    3 Intel TDX

Usar msinfo32.exe

Otro método para determinar las características de VBS disponibles y habilitadas consiste en 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 .

Características de seguridad basadas en virtualización en el resumen del sistema de información 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 con el Administrador de dispositivos.
  • Si experimenta un error crítico durante el arranque o su sistema es inestable después de activar la integridad de la memoria, puede realizar la recuperación mediante el Entorno de recuperación de Windows (Windows RE).
    1. En primer lugar, deshabilite las directivas que se usen para habilitar VBS y la integridad de la memoria, por ejemplo, la directiva de grupo.

    2. A continuación, arranque en Windows RE en el equipo afectado, consulte Referencia técnica de Windows RE.

    3. Después de iniciar sesión en Windows RE, establezca la clave del Registro de integridad de memoria en desactivado:

      reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 0 /f
      
    4. Finalmente, reinicie su dispositivo.

Nota

Si activó la integridad de memoria con el bloqueo UEFI, deberá deshabilitar el arranque seguro para completar los pasos de recuperación de Windows RE.

Implementación de la integridad de memoria en máquinas virtuales

La integridad de la memoria puede proteger una máquina virtual de Hyper-V como lo haría con una máquina física. Los pasos para habilitar la integridad de memoria son los mismos desde 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 para una máquina virtual:

Set-VMSecurity -VMName <VMName> -VirtualizationBasedSecurityOptOut $true

Requisitos para ejecutar la integridad de la 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 memoria y la virtualización anidada se pueden habilitar al mismo tiempo. Para habilitar la función Hyper-V en la máquina virtual, primero debe instalar la función Hyper-V en un entorno de virtualización anidada de Windows.
  • Los adaptadores de canal de fibra virtual no son compatibles con la integridad de memoria. Antes de conectar un adaptador de canal de fibra virtual a una máquina virtual, primero debe optar por no participar en 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 memoria. Antes de configurar un disco de paso a través con AllowFullSCSICommandSet, primero debe optar por no participar en la seguridad basada en virtualización mediante Set-VMSecurity.