Integridade de memória e habilitação de VBS

A integridade de memória é um recurso de VBS (segurança baseada em virtualização) disponível no Windows 10, Windows 11 e Windows Server 2016 ou superior. Integridade de memória e VBS melhoram o modelo de ameaça do Windows e fornecem proteções mais fortes contra malware que tenta explorar o Kernel do Windows. A VBS usa o hipervisor do Windows para criar um ambiente virtual isolado que se torna a raiz de confiança do OS, o que pressupõe que o kernel possa ser comprometido. A integridade de memória é um componente crítico que protege e fortalece o Windows executando a integridade do código no modo kernel dentro do ambiente virtual isolado da VBS. A integridade da memória também restringe as alocações de memória do kernel que poderiam ser usadas para comprometer o sistema, garantindo que as páginas de memória do kernel somente sejam tornadas executáveis após passarem por verificações de integridade de código dentro do ambiente de tempo de execução seguro e que as páginas executáveis nunca sejam graváveis.

Observação

A integridade da memória às vezes é chamada de HVCI (integridade de código protegido por hipervisor) ou integridade de código imposta pelo hipervisor e foi originalmente lançada como parte do Device Guard. O Device Guard não é mais usado, exceto para localizar a integridade da memória e as configurações da VBS na política de grupo ou no registro do Windows.

Consulte Proteções de recursos do sistema de segurança baseado em virtualização para obter mais detalhes sobre essas proteções.

Habilitação padrão

A integridade de memória é ativada por padrão em instalações limpas do Windows 11 e, anteriormente, apenas em instalações limpas do Windows 10 no modo S, em hardware compatível, conforme descrito neste artigo. Também é ativada por padrão em todos os computadores de núcleo seguro. Em outros sistemas que não atendem aos requisitos de habilitação automática de integridade de memória, os clientes podem optar por usar qualquer um dos métodos descritos em como habilitar a integridade de memória. Os profissionais de TI e os usuários finais sempre têm o controle final sobre se a integridade de memória está habilitada.

Recursos de hardware para ativação automática

A integridade de memória é ativada por padrão quando um computador atende aos seguintes recursos mínimos de hardware:

Componente Detalhe
Processador
  • Intel de 8ª geração ou posterior a partir do Windows 11, versão 22H2 (processadores Core de 11ª geração e mais recentes apenas para Windows 11, versão 21H2)
  • Arquitetura AMD Zen 2 e mais recente
  • Qualcomm Snapdragon 8180 e mais recente
RAM Mínimo de 8 GB (aplicável apenas para processadores x64)
Armazenamento SSD com tamanho mínimo de 64 GB
Drivers Drivers compatíveis com integridade de memória devem ser instalados. Consulte Compatibilidade do driver com integridade de memória para obter mais informações sobre drivers.
BIOS A virtualização deve estar habilitada

Se você estiver criando uma imagem que não habilitará automaticamente a integridade de memória, ainda poderá configurar sua imagem para que ela seja ativada por padrão.

Observação

A ativação automática refere-se apenas a instalações limpas, não a atualizações de dispositivos existentes.

Observação

Os processadores Intel Core de 11ª geração para desktop não estão inclusos na lógica de ativação padrão atual. No entanto, eles são uma plataforma recomendada para integridade de memória e podem ser habilitados pelo OEM.

Integridade da memória e controles de VBS

Esta seção enumera como os fabricantes de dispositivos e usuários finais podem interagir com a integridade de memória e a VBS. Para saber mais sobre como controlar o estado de integridade de memória como administrador, consulte Como ativar a integridade de memória.

Ativar a integridade de memória

Embora o Windows ative a integridade de memória por padrão para a maioria dos sistemas, há vários motivos que podem impedir que isso aconteça. Como um OEM, você pode garantir que a integridade de memória seja ativada para seus dispositivos configurando chaves do Registro na imagem do SO.

Defina as duas chaves do Registro a seguir em sua imagem para garantir que a integridade de memória seja ativada.

Chave do Registro Valor
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity Habilitado=1
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity WasEnabledBy=1
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity EnabledBootId=<BootId atual>

O BootId é um contador que é incrementado em cada inicialização bem-sucedida e pode ser encontrado na chave do Registro: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\BootId. As chaves do Registro WasEnabledBy e EnabledBootId controlam uma configuração que protege contra um dispositivo não inicializável. Quando definido, o dispositivo desligará automaticamente a integridade de memória se o sistema falhar durante a inicialização, potencialmente causado pela integridade de memória bloqueando um driver crítico de inicialização incompatível. Esse recurso de desativação automática só estará disponível enquanto BootId for menor que EnabledBootId + 3. Em algumas versões do Windows, a funcionalidade de desativação automática foi projetada para ser revertida se as falhas de inicialização continuarem mesmo depois que a integridade de memória foi desativada, indicando que a integridade de memória não foi a causa raiz das falhas.

Observação

Para sistemas de alta segurança, WasEnabledBy e EnabledBootId NÃO devem ser definidos.

Solução de problemas

Identificando o estado de integridade de memória

A regkey volátil a seguir reflete o estado da integridade de memória:

Chave do Registro Valor
HKLM\System\CurrentControlSet\Control\CI\State HVCIEnabled

Outras maneiras de verificar o estado de integridade de memória são examinar MsInfo32 em Serviços de segurança baseados em virtualização em execução ou consultar a página Configurações de isolamento do núcleo no aplicativo Segurança do Windows para ver o valor da Integridade de memória. Há também uma interface WMI para verificação usando ferramentas de gerenciamento, consulte Validar VBS habilitada e recursos de integridade de memória.

Depurando problemas de driver

Verifique os logs de integridade do código para ver se algum driver foi impedido de carregar como resultado da integridade de memória. Eles estão no Visualizador de eventos no seguinte caminho:

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

Geralmente, os eventos de compatibilidade de integridade de memória têm EventID=3087

Verificar os resultados da ativação padrão da integridade de memória

Para ver detalhes sobre os resultados da ativação padrão de integridade de memória, verifique o setupact.log e pesquise HVCI. Você deve ver um dos seguintes logs de resultados, bem como as verificações de sucesso/falha que levam à decisão de ativação:

Integridade de memória habilitada: SYSPRP HVCI: Enabling HVCI

Integridade de memória não habilitada: SYSPRP HVCI: OS does not meet HVCI auto-enablement requirements. Exiting now.

Se o dispositivo tiver sido recusado pela ativação da integridade da memória por meio do método regkey detalhado anteriormente, esse será o único log do sysprep da integridade de memória. Se o dispositivo tiver um problema de compatibilidade, ele deverá ser identificado nos logs anteriores com a mensagem de erro:

SYSPRP HVCI: Compatibility did not pass. VBS_COMPAT_ISSUES 0xXXXXXXXX

Veja a seguir uma enumeração dos possíveis problemas de compatibilidade de VBS ou integridade de memória. Cada problema é representado por um único índice em uma matriz de bits, e a mensagem de erro gera o valor hexadecimal resultante da presença de cada bit de erro.

Índice de bits Problema de compatibilidade Valor hex Arquitetura
0 Arquitetura não suportada (por exemplo, x86) 0x00000001
1 SLAT necessário 0x00000002 x64
2 É necessária capacidade de inicialização segura 0x00000004 x64
3 IOMMU obrigatório 0x00000008 x64
4 MBEC/GMET obrigatórios 0x00000010 x64
5 UEFI obrigatório 0x00000020 x64
6 Tabela de atributos de memória UEFI WX obrigatória 0x00000040 x64
7 Tabela ACPI WSMT obrigatória 0x00000080 x64
8 Bloqueio de UEFI MOR obrigatório 0x00000100 x64
9 Preterido
10 Virtualização de hardware obrigatória 0x00000400 x64
11 Lançamento seguro obrigatório 0x00000800 ARM64
12 Preterido
13 O dispositivo não atende ao tamanho mínimo de volume obrigatório de 64 GB 0x00002000 x64, ARM64
14 SSD da unidade do sistema obrigatório 0x00004000 x64, ARM64
15 Intel CET obrigatório (aplicável apenas no W11 21H2) 0x00008000 x64
16 ARM SoC não é compatível com a VBS 0x00010000 ARM64
17 8 GB de RAM obrigatório 0x00020000 x64

Um exemplo de código de erro e identificação de erro: VBS_COMPAT_ISSUES 0x000000C0

0x000000C0 -> 0x00000080 E 0x00000040 -> Tabela de atributos de memória UEFI WX obrigatória, tabela ACPI WSMT obrigatória