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 superior. La integridad de la memoria y VBS mejoran el modelo de amenazas de Windows y proporcionan protecciones más sólidas contra malware que intentan 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 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 poner en peligro el sistema, lo que garantiza que las páginas de memoria del kernel solo se realicen ejecutables después de pasar comprobaciones de integridad de código dentro del entorno de tiempo de ejecución seguro y las páginas ejecutables nunca se puedan escribir.

Nota

La integridad de memoria se conoce a veces como integridad de código protegida por hipervisor (HVCI) o hipervisoraplicada integridad de código, y se publicó originalmente como parte de Device Guard. Device Guard ya no se usa excepto para localizar la integridad de la memoria y la configuración de VBS en 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 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á activado 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 Qualcomm Qualcom 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 habilitará automáticamente la integridad de la memoria, todavía 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

Se excluyen los mercados de China y Corea para evitar problemas de compatibilidad conocidos con software frecuente en esas zonas geográficas.

Nota

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

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 la 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.

Activar 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 esto suceda. Como OEM, puede asegurarse de que la integridad de la memoria está 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 Value
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 protege contra tener un dispositivo que no se puede arrancar. Cuando se establece, el dispositivo desactivará automáticamente la integridad de memoria si el sistema se bloquea durante el arranque, lo que podría deberse a que la integridad de la memoria bloquea un controlador crítico para el arranque incompatible. Esta característica de deshabilitación automática solo está disponible mientras BootId es menor que EnabledBootId + 3. En algunas versiones de Windows, la funcionalidad de deshabilitación automática está diseñada para revertir si los errores de arranque continúan incluso después de desactivar la integridad de la memoria, lo que indica que la integridad de la 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 regular volátil refleja el estado de integridad de la memoria:

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

Otras formas de comprobar el estado de integridad de memoria son examinar MsInfo32 en Servicios de seguridad basados en virtualización En ejecución o consultar la página Configuración de aislamiento principal en 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 Validar 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 los controladores como resultado de la integridad de la memoria. Estos se encuentran en Visor de eventos en la siguiente ruta de acceso:

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 los detalles sobre los resultados de la habilitación predeterminada de integridad de memoria, compruebe setupact.log y busque HVCI. Debería ver uno de los siguientes registros de resultados, así como las comprobaciones correcta 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 regkey detallado anteriormente, este será el único registro del sysprep de la integridad de memoria. Si el dispositivo tiene 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 Architecture
0 Arquitectura no admitida (por ejemplo, x86) 0x00000001
1 Se requiere SLAT 0x00000002 x64
2 Se requiere la funcionalidad de arranque seguro 0x00000004 x64
3 IOMMU requerido 0x00000008 x64
4 MBEC/GMET requerido 0x00000010 x64
5 UEFI requerido 0x00000020 x64
6 Tabla de atributos de memoria WX de UEFI necesaria 0x00000040 x64
7 Tabla WSMT ACPI necesaria 0x00000080 x64
8 Se requiere el bloqueo UEFI MOR 0x00000100 x64
9 Obsoleto
10 Virtualización de hardware necesaria 0x00000400 x64
11 Se requiere el inicio seguro 0x00000800 ARM64
12 Obsoleto
13 El dispositivo no cumple con el tamaño mínimo de volumen necesario de 64 GB 0x00002000 x64, ARM64
14 Ssd de unidad del sistema necesario 0x00004000 x64, ARM64
15 Intel CET requerido (solo aplicable en W11 21H2) 0x00008000 x64
16 ARM SoC no es compatible con VBS 0x00010000 ARM64
17 Se requiere 8 GB de RAM 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 requerida, tabla WSMT ACPI necesaria