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

A integridade da memória é um recurso de VBS (segurança baseada em virtualização) disponível em Windows 10, Windows 11 e Windows Server 2016 ou superior. A integridade da memória e a 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 sistema operacional que pressupõe que o kernel pode ser comprometido. A integridade da memória é um componente crítico que protege e protege o Windows executando a integridade do código do modo kernel no ambiente virtual isolado da VBS. A integridade da memória também restringe as alocações de memória do kernel que podem ser usadas para comprometer o sistema, garantindo que as páginas de memória do kernel sejam executadas somente depois de passar em verificações de integridade de código dentro do ambiente de runtime seguro e as próprias páginas executáveis nunca sejam graváveis.

Observação

Às vezes, a integridade da memória é conhecida como HVCI (integridade de código protegida por hipervisor) ou integridade de código imposta pelo hipervisor e foi originalmente liberada como parte do Device Guard. O Device Guard não é mais usado, exceto para localizar a integridade da memória e as configurações de VBS no Política de Grupo ou no Registro do Windows.

Confira Proteções de Recursos do Sistema de Segurança Baseadas em Virtualização para obter mais detalhes sobre essas proteções.

Habilitação padrão

A integridade da memória é ativada por padrão em instalações limpo de Windows 11 e, anteriormente, somente em instalações limpo de Windows 10 no modo S, em hardware compatível, conforme descrito neste artigo. Ele também é ativado 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 da memória. Os profissionais de TI e os usuários finais sempre têm o controle final de se a integridade da memória está habilitada.

Recursos de hardware para habilitação automática

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

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

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

Observação

A habilitação automática pertence apenas a instalações limpo, não a atualizações de dispositivos existentes.

Observação

Os mercados da China e da Coreia são excluídos, para evitar problemas conhecidos de compatibilidade com software predominante nessas regiões geográficas.

Observação

Os processadores de área de trabalho Principais da 11ª geração da Intel não estão incluídos na lógica de habilitação padrão atual. No entanto, eles são uma plataforma recomendada para integridade de memória e podem ser habilitados pelo OEM.

Integridade de memória e controles VBS

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

Ativar a integridade da memória

Embora o Windows ative a integridade da 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 da memória esteja ativada para seus dispositivos configurando chaves do Registro na imagem do sistema operacional.

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

Chave do 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>

O BootId é um contador que incrementa 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 ter um dispositivo não inicializável. Quando definido, o dispositivo desativará automaticamente a integridade da memória se o sistema falhar durante a inicialização, potencialmente causada pela integridade da memória bloqueando um driver crítico de inicialização incompatível. Esse recurso de desabilitação automática só está disponível enquanto BootId é menor que EnabledBootId + 3. Em algumas versões do Windows, a funcionalidade de desabilitação automática foi projetada para reverter se as falhas de inicialização continuarem mesmo depois que a integridade da memória foi desativada, indicando que a integridade da 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 da memória

O seguinte regkey volátil reflete o estado da integridade da memória:

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

Outras maneiras de verificar o estado de integridade da 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 principal no aplicativo Segurança do Windows para ver o valor da integridade da memória. Também há uma interface WMI para verificar o uso de ferramentas de gerenciamento, consulte Validar recursos de integridade de memória e VBS habilitados.

Problemas de driver de depuração

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

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

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

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

Para ver detalhes sobre os resultados da habilitação padrão de integridade de memória, marcar setupact.log e pesquise por HVCI. Você deve ver um dos seguintes logs de resultados, bem como as verificações de êxito/falha que levam à decisão de habilitaçã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 excluído da habilitação de integridade de memória por meio do método regkey detalhado anteriormente, esse será o único log do sysprep da integridade da 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 integridade de memória ou VBS. 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 hexadecimal Arquitetura
0 Arquitetura sem suporte (por exemplo, x86) 0x00000001
1 SLAT necessário 0x00000002 x64
2 Funcionalidade de inicialização segura necessária 0x00000004 x64
3 IOMMU necessário 0x00000008 x64
4 MBEC/GMET Obrigatório 0x00000010 x64
5 UEFI Obrigatório 0x00000020 x64
6 Tabela de atributos de memória WX uefi necessária 0x00000040 x64
7 Tabela WSMT do ACPI necessária 0x00000080 x64
8 UEFI MOR Lock necessário 0x00000100 x64
9 Preterido
10 Virtualização de hardware necessária 0x00000400 x64
11 Inicialização segura necessária 0x00000800 ARM64
12 Preterido
13 Falha no dispositivo ao atender ao tamanho mínimo de volume necessário de 64 GB 0x00002000 x64, ARM64
14 SSD de unidade do sistema necessário 0x00004000 x64, ARM64
15 Intel CET Obrigatório (aplicável somente no W11 21H2) 0x00008000 x64
16 O ARM SoC não é compatível com o VBS 0x00010000 ARM64
17 8 GB de RAM necessá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 WX UEFI necessária, tabela WSMT do ACPI necessária