Compartir a través de


Integridad de memoria y habilitación de VBS

La integridad de memoria es una característica de seguridad basada en virtualización (VBS) disponible en Windows 10, Windows 11 y Windows Server 2016 o posterior. La integridad de memoria y VBS mejoran el modelo de amenazas de Windows y proporcionan protección más sólida frente a los malware que intentan aprovechar el kernel de Windows. VBS usa la virtualización de hardware y 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 verse comprometido. La integridad de memoria es un componente crítico que protege y endurece Windows mediante la ejecución de la integridad del código del modo kernel dentro del entorno virtual aislado de VBS. La integridad de la memoria también restringe las asignaciones de memoria del kernel que podrían usarse para comprometer el sistema, lo que garantiza que las páginas de memoria del kernel solo sean ejecutables después de pasar las comprobaciones de integridad de código dentro del entorno de ejecución seguro y que nunca se pueda escribir en las páginas ejecutables.

Nota:

La integridad de la memoria se conoce a veces como integridad de código protegida por hipervisor (HVCI) o integridad de código reforzada por hipervisor, y se lanzó publicó como parte de Device Guard. Device Guard ya no se usa, excepto para localizar la integridad de memoria y la configuración de VBS en la directiva de grupo o en el registro de Windows.

Consulte Protección de recursos del sistema de seguridad basada en virtualización para obtener más información sobre estas protecciones.

Habilitación predeterminada

La integridad de la memoria está activada de forma predeterminada en instalaciones limpias de Windows 11 y, anteriormente, solo en instalaciones limpias de Windows 10 en modo S, en hardware compatible, como se describe en este artículo. También está activada de forma predeterminada en todos los equipos de núcleo protegido. En otros sistemas que no cumplen los requisitos de habilitación automática de integridad de memoria, los clientes pueden optar por usar cualquiera de los métodos descritos en cómo habilitar la integridad de la memoria. Los profesionales de TI y los usuarios finales siempre tienen el control final de si la integridad de la memoria está habilitada.

Características de hardware para la habilitación automática

La integridad de la memoria está activada de forma predeterminada cuando un equipo cumple las siguientes características mínimas de hardware:

Componente Detalle
Procesador
  • Intel 8ª generación o posterior a partir de Windows 11, versión 22H2 (procesadores Core de 11ª generación y versiones más recientes solo para Windows 11, versión 21H2)
  • Arquitectura AMD Zen 2 y versiones más recientes
  • Qualcomm Snapdragon 8180 y versiones más recientes
RAM Mínimo de 8 GB (solo aplicable para procesadores x64)
Storage SSD con un tamaño mínimo de 64 GB
Controladores Se deben instalar controladores compatibles con la integridad de memoria. Consulte Compatibilidad de controladores con integridad de memoria para obtener más información sobre los controladores.
BIOS La virtualización debe estar habilitada

Si va a crear una imagen que no va a habilitar automáticamente la integridad de la memoria, puede configurar la imagen para que esté activada de forma predeterminada.

Nota:

La habilitación automática solo pertenece a las instalaciones limpias, no a las actualizaciones de los dispositivos existentes.

Nota:

Los procesadores de escritorio Core de 11ª generación no se incluyen en la lógica de habilitación predeterminada actual. Sin embargo, son una plataforma recomendada para la integridad de memoria y el OEM puede habilitarla.

Integridad de memoria y controles VBS

En esta sección se enumera cómo los fabricantes de dispositivos y los usuarios finales pueden interactuar con la integridad de memoria y VBS. Para obtener información sobre cómo controlar el estado de integridad de memoria como administrador, consulte Cómo activar la integridad de la memoria.

Activación de la integridad de la memoria

Aunque Windows activará la integridad de memoria de forma predeterminada para la mayoría de los sistemas, hay varias razones que pueden impedir que se produzcan. Como OEM, puede garantizar que la integridad de la memoria este activada para los dispositivos mediante la configuración de claves del Registro en la imagen del sistema operativo.

Establezca las dos claves del Registro siguientes en la imagen para asegurarse de que la integridad de la memoria esté activada.

Clave del Registro Valor
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity Enabled=1
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity WasEnabledBy=1
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity EnabledBootId=<Current BootId>

BootId es un contador que se incrementa en cada arranque correcto y se puede encontrar en la clave del Registro: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\BootId. Las claves del Registro WasEnabledBy y EnabledBootId controlan una configuración que evita que el dispositivo no arranque. Cuando se establece, el dispositivo desactivará automáticamente la integridad de memoria si el sistema se bloquea durante el arranque, que podría deberse a que la integridad de memoria bloquea un controlador de arranque crítico incompatible. Esta característica de deshabilitación automática solo está disponible si BootId es menor que EnabledBootId + 3. En algunas versiones de Windows, la funcionalidad de deshabilitación automática está diseñada para revertirse si los errores de arranque continúan incluso después de desactivar la integridad de memoria, lo que indica que la integridad de memoria no era la causa principal de los errores.

Nota:

Para sistemas de alta seguridad, WasEnabledBy y EnabledBootId no deben establecerse.

Solución de problemas

Identificación del estado de integridad de memoria

La siguiente clave del Registro volátil refleja el estado de la integridad de memoria:

Clave del Registro Valor
HKLM\System\CurrentControlSet\Control\CI\State HVCIEnabled

Otras formas de comprobar el estado de integridad de memoria son examinar MsInfo32 en Ejecución de servicios de seguridad basados en virtualización o hacer referencia a la página Configuración de aislamiento principal de la aplicación de Seguridad de Windows para ver el valor de integridad de memoria. También hay una interfaz WMI para comprobar el uso de herramientas de administración, consulte Validación de las características de integridad de memoria y VBS habilitadas.

Problemas del controlador de depuración

Compruebe los registros de integridad de código para ver si se ha bloqueado la carga de controladores como resultado de la integridad de memoria. Estos se encuentran en Visor de eventos en la ruta de acceso siguiente:

Applications and Service Logs\Microsoft\Windows\CodeIntegrity\Operational

Por lo general, los eventos de compatibilidad de integridad de memoria tienen EventID=3087

Comprobación de los resultados de la habilitación predeterminada de integridad de memoria

Para ver detalles sobre los resultados de la habilitación predeterminada de integridad de memoria, compruebe el setupact.log y busque HVCI. Debería ver uno de los siguientes registros de resultados, así como las comprobaciones correctas o con errores que conducen a la decisión de habilitación:

Integridad de memoria habilitada: SYSPRP HVCI: Enabling HVCI

Integridad de memoria no habilitada: SYSPRP HVCI: OS does not meet HVCI auto-enablement requirements. Exiting now.

Si el dispositivo ha optado por no habilitar la integridad de memoria a través del método de clave del Registro detallado anteriormente, este será el único registro de sysprep de la integridad de memoria. Si el dispositivo tenía un problema de compatibilidad, debe identificarse en los registros anteriores con el mensaje de error:

SYSPRP HVCI: Compatibility did not pass. VBS_COMPAT_ISSUES 0xXXXXXXXX

A continuación se muestra una enumeración de los posibles problemas de compatibilidad de integridad de memoria o VBS. Cada problema se representa mediante un único índice en una matriz de bits y el mensaje de error genera el valor hexadecimal resultante de cada bit de error que está presente.

Índice de bits Problema de compatibilidad Valor hexadecimal Arquitectura
0 Arquitectura no soportada (por ejemplo, x86) 0x00000001
1 SLAT requerido 0x00000002 x64
2 Funcionalidad de arranque seguro necesaria 0x00000004 x64
3 IOMMU necesario 0x00000008 x64
4 MBEC/GMET necesario 0x00000010 x64
5 Se requiere UEFI 0x00000020 x64
6 Tabla de atributos de memoria WX de UEFI necesaria 0x00000040 x64
7 Tabla ACPI WSMT necesaria 0x00000080 x64
8 Bloqueo MOR de UEFI necesario 0x00000100 x64
9 En desuso
10 Virtualización de hardware necesaria 0x00000400 x64
11 Inicio seguro necesario 0x00000800 ARM64
12 En desuso
13 El dispositivo no cumple el tamaño mínimo de volumen necesario de 64 GB 0x00002000 x64, ARM64
14 SSD de unidad del sistema necesaria 0x00004000 x64, ARM64
15 Intel CET necesario (solo aplicable en W11 21H2) 0x00008000 x64
16 ARM SoC no es compatible con VBS 0x00010000 ARM64
17 8 GB de RAM necesarios 0x00020000 x64

Un ejemplo de un código de error y una identificación de errores: VBS_COMPAT_ISSUES 0x000000C0

0x000000C0:> 0x00000080 AND 0x00000040 -> Tabla de atributos de memoria WX de UEFI necesaria, tabla ACPI WSMT necesaria