Habilitar a proteção baseada em virtualização de integridade de código

A integridade da memória é um recurso VBS (segurança baseada em virtualização) disponível no Windows. A integridade da memória e o VBS melhoram o modelo de ameaça do Windows e fornecem proteções mais fortes contra malware que tenta explorar o kernel do Windows. O 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 possa ser comprometido. A integridade da memória é um componente crítico que protege e endurece o Windows executando a integridade do código do modo kernel no ambiente virtual isolado do 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.

Observação

  • A integridade da memória às vezes é conhecida como integridade de código protegida por hipervisor (HVCI) 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 de VBS no Política de Grupo ou no registro do Windows.
  • A integridade da memória funciona melhor com o Intel Kabylake e processadores superiores com controle de execução baseado em modo e processadores AMD Zen 2 e superiores com recursos de Armadilha de Execução do Modo convidado . Os processadores mais antigos dependem de uma emulação desses recursos, chamada modo de usuário restrito, e terão um impacto maior no desempenho. Quando a virtualização aninhada está habilitada, a integridade da memória funciona melhor quando a VM é versão >= 9.3.

Aviso

Alguns drivers de dispositivos de hardware e aplicativos podem ser incompatíveis com a integridade da memória. Essa incompatibilidade pode causar mau funcionamento de dispositivos ou software e, em casos raros, pode resultar em uma falha de inicialização (tela azul). Esses problemas podem ocorrer depois que a integridade da memória tiver sido ativada ou durante o próprio processo de habilitação. Se ocorrerem problemas de compatibilidade, consulte Solução de problemas para as etapas de correção.

Recursos de integridade de memória

  • Protege a modificação do bitmap do CFG (Control Flow Guard) para drivers de modo kernel.
  • Protege o processo de integridade do código do modo kernel que garante que outros processos confiáveis do kernel tenham um certificado válido.

Como ativar a integridade da memória

Para habilitar a integridade da memória em dispositivos Windows com hardware de suporte em toda uma empresa, use qualquer uma dessas opções:

Segurança do Windows

A integridade da memória pode ser ativada em configurações de Segurança do Windows e encontrada em Segurança do Windows>Device security>Core isolation details>Memory integrity. Para obter mais informações, consulte Proteção do dispositivo no Segurança do Windows.

Começando com Windows 11 22H2, Segurança do Windows mostra um aviso se a integridade da memória estiver desativada. O indicador de aviso também aparece no ícone Segurança do Windows na barra de tarefas do Windows e na Central de Notificação do Windows. O usuário pode descartar o aviso de dentro de Segurança do Windows.

Habilitar a integridade da memória usando Intune

Use a configuraçãode Integridade de Código Imposta do Hypervisorde Tecnologia> Baseada em Virtualização usando o catálogo de configurações para habilitar a integridade da memória. Você também pode usar o nó HypervisorEnforcedCodeIntegrity no CSP virtualizationBasedTechnology.

Habilitar a integridade da memória usando Política de Grupo

  1. Use Política de Grupo Editor (gpedit.msc) para editar um GPO existente ou criar um novo.
  2. Navegue até oSystem>Device Guard deModelos Administrativos> de Configuração> do Computador.
  3. Clique duas vezes em Ativar Segurança Baseada em Virtualização.
  4. Selecione Habilitado e em Proteção Baseada em Virtualização da Integridade de Código, selecione Habilitado sem bloqueio UEFI. Selecione Habilitado com bloqueio UEFI se você quiser impedir que a integridade da memória seja desabilitada remotamente ou por atualização de política. Depois de habilitado com o bloqueio UEFI, você deve ter acesso ao menu BIOS da UEFI para desativar a Inicialização Segura se quiser desativar a integridade da memória. Habilitar a integridade da memória usando Política de Grupo.
  5. Selecione Ok para fechar o editor.

Para aplicar a nova política em um computador ingressado no domínio, reinicie ou execute gpupdate /force em um Prompt de Comando elevado.

Usar chaves de registro para habilitar a integridade da memória

Defina as seguintes chaves de registro para habilitar a integridade da memória. Essas chaves fornecem exatamente o mesmo conjunto de opções de configuração fornecidas pelo Política de Grupo.

Importante

  • Entre os comandos a seguir, você pode escolher as configurações de Inicialização Segura e Inicialização Segura com DMA. Na maioria das situações, é recomendável que você escolha Inicialização Segura. Essa opção fornece a Inicialização Segura com tanta proteção quanto é suportada pelo hardware de um determinado computador. Um computador com unidades de gerenciamento de memória de entrada/saída (IOMMUs) terá a Inicialização Segura com proteção DMA. Um computador sem IOMMUs simplesmente terá a Inicialização Segura habilitada.

  • Se você selecionar Inicialização Segura com DMA, a integridade da memória e os outros recursos do VBS só serão ativados para computadores com suporte a DMA. Ou seja, somente para computadores com IOMMUs. Qualquer computador sem IOMMUs não terá proteção contra integridade de memória ou VBS.

  • Todos os drivers do sistema devem ser compatíveis com a proteção baseada em virtualização de integridade de código; do contrário, o sistema poderá falhar. Recomendamos que você habilite esses recursos em um grupo de computadores de teste antes de ativá-los em computadores dos usuários.

Configurações recomendadas (para habilitar a integridade da memória sem bloqueio UEFI):

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "EnableVirtualizationBasedSecurity" /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "RequirePlatformSecurityFeatures" /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "Locked" /t REG_DWORD /d 0 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 1 /f
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Locked" /t REG_DWORD /d 0 /f

Se você quiser personalizar as configurações recomendadas anteriores, use as seguintes chaves de registro.

Para habilitar somente o VBS (sem integridade de memória)

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "EnableVirtualizationBasedSecurity" /t REG_DWORD /d 1 /f

Para habilitar VBS e exigir somente Inicialização Segura (valor 1)

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "RequirePlatformSecurityFeatures" /t REG_DWORD /d 1 /f

Para habilitar o VBS com Inicialização Segura e DMA (valor 3)

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "RequirePlatformSecurityFeatures" /t REG_DWORD /d 3 /f

Para habilitar VBS sem bloqueio UEFI (valor 0)

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "Locked" /t REG_DWORD /d 0 /f

Para habilitar o VBS com bloqueio UEFI (valor 1)

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard" /v "Locked" /t REG_DWORD /d 1 /f

Para habilitar a integridade da memória

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 1 /f

Para habilitar a integridade da memória sem bloqueio UEFI (valor 0)

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Locked" /t REG_DWORD /d 0 /f

Para habilitar a integridade da memória com o bloqueio UEFI (valor 1)

reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Locked" /t REG_DWORD /d 1 /f

Para apagar a interface do usuário da integridade da memória e exibir a mensagem "Essa configuração é gerenciada pelo administrador"

reg delete HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity /v "WasEnabledBy" /f

Para permitir que a interface do usuário de integridade da memória se comporte normalmente (não esmaeecido)

reg add HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity /v "WasEnabledBy" /t REG_DWORD /d 2 /f

Habilitar a integridade da memória usando Windows Defender WDAC (Controle de Aplicativo)

Você pode usar a política WDAC para ativar a integridade da memória usando qualquer uma das seguintes técnicas:

  1. Use o Assistente WDAC para criar ou editar sua política WDAC e selecione a opção Integridade de Código protegida pelo Hipervisor na página Regras de Política do Assistente.
  2. Use o cmdlet Set-HVCIOptions PowerShell.
  3. Edite sua política do WDAC XML e modifique o conjunto de valores para o <HVCIOptions> elemento.

Observação

Se sua política WDAC estiver definida para ativar a integridade da memória, ela será ativada mesmo que a política esteja no modo de auditoria.

Validar recursos de integridade de memória e VBS habilitados

Usar Win32_DeviceGuard classe WMI

Windows 10, Windows 11 e Windows Server 2016 e superior têm uma classe WMI para propriedades e recursos relacionados ao VBS: Win32_DeviceGuard. Essa classe pode ser consultada em uma sessão do Windows PowerShell com privilégios elevados usando-se o seguinte comando:

Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard

Observação

A propriedade Controle de Execução Baseada em Modo só será listada como disponível começando com Windows 10 versão 1803 e Windows 11 versão 21H2. Esse valor é relatado tanto para o controle de execução baseado em modo da Intel quanto para os recursos de Armadilha de Execução do Modo de Convidado da AMD.

A saída desse comando fornece detalhes dos recursos de segurança baseados em hardware disponíveis e os recursos que estão habilitados no momento.

AvailableSecurityProperties

Esse campo ajuda a enumerar e relatar o estado sobre as propriedades de segurança relevantes para VBS e integridade da memória.

Valor Descrição
0 Caso presente, não haverá propriedades relevantes no dispositivo.
1 Caso presente, há suporte ao hipervisor disponível.
2 Caso presente, a Inicialização Segura estará disponível.
3 Caso presente, a proteção de DMA estará disponível.
4 Caso presente, a Substituição de Memória Segura estará disponível.
5 Caso presente, proteções NX estarão disponíveis.
6 Caso presente, as mitigações SMM estarão disponíveis.
7 Se estiver presente, o MBEC/GMET estará disponível.
8 Se estiver presente, a virtualização APIC estará disponível.
InstanceIdentifier

Uma cadeia de caracteres exclusiva para um dispositivo específico e definida pela WMI.

RequiredSecurityProperties

Este campo descreve as propriedades de segurança necessárias para habilitar o VBS.

Valor Descrição
0 Não é necessário fazer nada.
1 Caso presente, o suporte ao hipervisor será necessário.
2 Caso presente, a Inicialização Segura será necessária.
3 Caso presente, a proteção de DMA será necessária.
4 Caso presente, a Substituição de Memória Segura será necessária.
5 Caso presente, as proteções NX serão necessárias.
6 Caso presente, as mitigações SMM serão necessárias.
7 Se estiver presente, o MBEC/GMET será necessário.
SecurityServicesConfigured

Este campo indica se o Credential Guard ou a integridade da memória estão configurados.

Valor Descrição
0 Nenhum serviço está configurado.
1 Caso presente, o Credential Guard estará configurado.
2 Se estiver presente, a integridade da memória será configurada.
3 Se estiver presente, System Guard o Lançamento Seguro será configurado.
4 Se estiver presente, a Medida de Firmware do SMM será configurada.
SecurityServicesRunning

Este campo indica se o Credential Guard ou a integridade da memória estão em execução.

Valor Descrição
0 Não há serviços em execução.
1 Caso presente, o Credential Guard estará em execução.
2 Se estiver presente, a integridade da memória estará em execução.
3 Se estiver presente, System Guard o Lançamento Seguro estiver em execução.
4 Se estiver presente, a Medida de Firmware do SMM estará em execução.
Version

Esse campo lista a versão da classe WMI. Agora o único valor válido é 1.0.

VirtualizationBasedSecurityStatus

Esse campo indica se a VBS está habilitada e em execução.

Valor Descrição
0 O VBS não está habilitado.
1 A VBS está habilitada, mas não está em execução.
2 A VBS está habilitada e em execução.
PSComputerName

Esse campo lista o nome do computador. Todos os valores válidos para nome de computador.

Usar msinfo32.exe

Outro método para determinar os recursos de VBS disponíveis e habilitados é executar msinfo32.exe de uma sessão do PowerShell elevada. Ao executar este programa, os recursos do VBS são exibidos na parte inferior da seção Resumo do Sistema .

Recursos de segurança baseados em virtualização no Resumo do Sistema de Informações do Sistema.

Solução de problemas

  • Se um driver de dispositivo não carregar ou falhar no runtime, você poderá atualizar o driver usando Gerenciador de Dispositivos.
  • Se você tiver um erro crítico durante a inicialização ou seu sistema estiver instável depois de ativar a integridade da memória, você poderá se recuperar usando o Ambiente de Recuperação do Windows (Windows RE).
    1. Primeiro, desabilite todas as políticas usadas para habilitar a integridade da memória e do VBS, por exemplo, Política de Grupo.

    2. Em seguida, inicialize para Windows RE no computador afetado, consulte Windows RE Referência Técnica.

    3. Depois de fazer logon em Windows RE, defina a chave do registro de integridade da memória como desativada:

      reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 0 /f
      
    4. Por fim, reinicie seu dispositivo.

Observação

Se você ativar a integridade da memória com o bloqueio UEFI, precisará desabilitar a Inicialização Segura para concluir as etapas de recuperação Windows RE.

Implantação de integridade da memória em máquinas virtuais

A integridade da memória pode proteger uma máquina virtual Hyper-V, assim como seria uma máquina física. As etapas para habilitar a integridade da memória são as mesmas de dentro da máquina virtual.

A integridade da memória protege contra malware em execução na máquina virtual convidada. Ele não fornece proteção extra contra o administrador do host. No host, você pode desabilitar a integridade da memória de uma máquina virtual:

Set-VMSecurity -VMName <VMName> -VirtualizationBasedSecurityOptOut $true

Requisitos para executar a integridade da memória em máquinas virtuais do Hyper-V

  • O host do Hyper-V deve executar pelo menos o Windows Server 2016 ou o Windows 10 versão 1607.
  • A máquina virtual do Hyper-V deve ser da geração 2 e executar pelo menos o Windows Server 2016 ou o Windows 10.
  • A integridade da memória e a virtualização aninhada podem ser habilitadas ao mesmo tempo. Para habilitar a função Hyper-V na máquina virtual, primeiro você deve instalar a função Hyper-V em um ambiente de virtualização aninhada do Windows.
  • Fibre Channel Virtual adaptadores não são compatíveis com a integridade da memória. Antes de anexar um Adaptador de Canal de Fibra virtual a uma máquina virtual, primeiro você deve optar por não usar a segurança baseada em Virtualização usando Set-VMSecurity.
  • A opção AllowFullSCSICommandSet para discos de passagem não é compatível com a integridade da memória. Antes de configurar um disco de passagem com AllowFullSCSICommandSet, primeiro você deve optar por não usar a segurança baseada em Virtualização usando Set-VMSecurity.