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 |
|
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.
Configuração recomendada
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