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

Aplicável a

Este tópico aborda diferentes maneiras de habilitar a integridade de código protegida do hipervisor (HVCI) no Windows 10. Alguns aplicativos, incluindo drivers de dispositivo, podem ser incompatíveis com a HVCI. Isso pode fazer com que os dispositivos ou softwares não funcionem corretamente e em casos raros possam resultar em uma tela azul. Esses problemas podem ocorrer após a ativação da HVCI ou durante o processo de ativação em si. Se isso acontecer, consulte Solução de problemas para obter as etapas de correção.

Observação

O HVCI funciona com CPUs modernas de sétima geração ou mais e seu equivalente no AMD. Novo recurso de CPU é a virtualização do modo de execução baseado em modo (MBE) obrigatório.

Dica

"O kernel seguro depende do recurso controle de execução baseado em modo (MBEC), se estiver presente em hardware, que aprimora a SLAT com um bit executável de usuário/kernel ou a emulação de software do hipervisor desse recurso, chamado de modo de usuário restrito (RUM)." Mark Russinovich e Alex Ionescu. Livro Windows Internals 7ª edição

Recursos do HVCI

  • O HVCI protege a modificação do bitmap da proteção de fluxo de código (CFG).
  • HVCI também garante que outros Truslets, como o Credential Guard, tenham um certificado válido.
  • Drivers de dispositivos modernos também devem ter um certificado EV (validação estendida) e devem dar suporte a HVCI.

Como ativar o HVCI no Windows 10

Para habilitar o HVCI em dispositivos Windows 10 com suporte a hardware em toda a empresa, use qualquer uma destas opções:

Aplicativo de segurança do Windows

O HVCI está rotulado como integridade de memória no aplicativo de segurança do Windows e pode ser acessado por meio das configurações > Update & segurança > segurança doWindows > Device Device Security > isolamento do núcleo detalhes sobre > aintegridade da memória. Para obter mais informações, consulte KB4096339.

Habilitar o HVCI usando o Intune

Habilitar no Intune requer o uso do nó integridade de código no CSP AppLocker.

Habilitar o HVCI usando a política de grupo

  1. Use o editor de política de grupo (gpedit. msc) para editar um GPO existente ou criar um novo.
  2. Navegue até configuração > do computadormodelos > administrativos doDevice Guarddosistema > .
  3. Clique duas vezes em ativar a segurança baseadaem virtualização.
  4. Clique em habilitado e na proteção baseada em virtualização de integridade do código, selecione habilitado com bloqueio UEFI para garantir que o HVCI não pode ser desabilitado remotamente ou selecione habilitado sem bloqueio de UEFI.

    Habilitar o HVCI usando a política de grupo

  5. Clique em OK para fechar o editor.

Para aplicar a nova política em um computador associado a um domínio, reinicie ou gpupdate /force execute em um prompt de comando com privilégios elevados.

Usar as chaves do Registro para habilitar a proteção baseada em virtualização de integridade de código

Defina o valor da chave de Registro para habilitar o HVCI. Isso fornece exatamente o mesmo conjunto de opções de configuração oferecido pela 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 o máximo de proteção compatível com o 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.
    Por outro lado, com Inicialização Segura com DMA, a configuração habilitará a Inicialização Segura, e a própria VBS, apenas em um computador que dê suporte a DMA, ou seja, um computador com IOMMUs. Com essa configuração, nenhum computador sem IOMMUs terá proteção VBS ou HVCI, embora ele ainda possa ter o WDAC.
  • 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.

Para Windows 10 versão 1607 e posterior

Configurações recomendadas (para habilitar a proteção baseada em virtualização de políticas de Integridade de Código, 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 configurações.

Para habilitar VBS

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 VBS com Inicialização Segura e DMA (valor 3), no comando acima, altere /d 1 para /d 3.

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 VBS com bloqueio UEFI (valor 1), no comando acima, altere /d 0 para /d 1.

Para habilitar a proteção baseada em virtualização de políticas de Integridade de Código

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

Para habilitar a proteção baseada em virtualização de políticas de Integridade de Código 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 proteção baseada em virtualização de políticas de Integridade de Código com bloqueio UEFI (valor 1), no comando acima, altere /d 0 para /d 1.

Para Windows 10 versão 1511 e anterior

Configurações recomendadas (para habilitar a proteção baseada em virtualização de políticas de Integridade de Código, 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 "HypervisorEnforcedCodeIntegrity" /t REG_DWORD /d 1 /f

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

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

Para habilitar VBS (sempre bloqueado para UEFI)

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 VBS com Inicialização Segura e DMA (valor 3), no comando acima, altere /d 1 para /d 3.

Para habilitar a proteção baseada em virtualização de políticas de Integridade de Código (com o padrão, bloqueio UEFI)

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

Para habilitar a proteção baseada em virtualização de políticas de Integridade de Código sem bloqueio UEFI

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

Validar recursos de segurança baseada em hardware do Windows Defender Device Guard habilitados

O Windows 10 e o Windows Server 2016 têm uma classe WMI para propriedades e recursos relacionados: 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 classe WMI Win32_DeviceGuard só está disponível na edição Enterprise do Windows10.

A saída desse comando dá detalhes sobre os recursos de segurança baseados em hardware, bem como os recursos habilitados no momento.

AvailableSecurityProperties

Este campo ajuda a enumerar e relatar o estado das propriedades de segurança relevantes do Windows Defender Device Guard.

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 houver, controle de execução baseado em modo estará disponível.

InstanceIdentifier

Uma cadeia de caracteres exclusiva de um dispositivo específico. Os valores válidos são determinados por WMI.

RequiredSecurityProperties

Esse campo descreve as propriedades de segurança necessárias para habilitar a segurança baseada em virtualização.

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 houver, o controle de execução baseado em modo será necessário.

SecurityServicesConfigured

Este campo indica se o Windows Defender Credential Guard ou o serviço HVCI foi configurado.

Valor Descrição
0. Não há serviços configurados.
1. Caso esteja presente, o Windows Defender Credential Guard estará configurado.
2. Caso esteja presente, o HVCI estará configurado.
3. Se estiver presente, a inicialização segura do System Guard será configurada.

SecurityServicesRunning

Este campo indica se o Windows Defender Credential Guard ou o serviço HVCI está em execução.

Valor Descrição
0. Não há serviços em execução.
1. Caso esteja presente, o Windows Defender Credential Guard estará em execução.
2. Caso esteja presente, o HVCI estará em execução.
3. Se estiver presente, o início seguro do System Guard está 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. A VBS não está habilitada.
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.

Outro método para determinar os recursos disponíveis e habilitados do Windows Defender Device Guard é executar o msinfo32.exe em uma sessão do PowerShell com privilégios elevados. Quando você executa esse programa, as propriedades do Windows Defender Device Guard são exibidas na parte inferior da seção Resumo do sistema .

Propriedades do Windows Defender Device Guard no Resumo do Sistema

Solução de problemas

A. Se um driver de dispositivo falhar ao ser carregado ou falhar no tempo de execução, talvez você possa atualizar o driver usando o Gerenciador de Dispositivos.

B. Se você enfrentar mau funcionamento de software ou de dispositivo depois de usar o procedimento anterior para ativar a HVCI, mas se puder fazer logon no Windows, será possível desativar a HVCI renomeando ou excluindo o arquivo SIPolicy.p7b do local de arquivo na etapa 3 acima e, em seguida, reiniciar o dispositivo.

C. Se você tiver um erro crítico durante a inicialização ou se o sistema ficar instável após o uso do procedimento acima para ativar a HVCI, poderá recuperar usando o Ambiente de Recuperação do Windows (Windows RE). Para inicializar o Windows RE, consulte Referência técnica do Windows RE. Depois de fazer logon no Windows RE, você poderá desativar a HVCI renomeando ou excluindo o arquivo SIPolicy.p7b do local de arquivo na etapa 3 acima e, em seguida, reiniciar o dispositivo.

Como desativar a HVCI no Windows 10 Fall Creators Update

  1. Renomear ou excluir o arquivo SIPolicy.p7b localizado em C:\Windows\System32\CodeIntegrity.
  2. Reinicie o dispositivo.
  3. Para confirmar se a HVCI foi desabilitada com êxito, abra Informações do Sistema e verifique se Serviços de segurança baseados em virtualização em execução, que agora não deve ter um valor exibido.

Implantação do HVCI em máquinas virtuais

O HVCI pode proteger uma máquina virtual Hyper-V, da mesma forma que faria com uma máquina física. As etapas para habilitar o WDAC são iguais dentro da máquina virtual.

O WDAC protege contra malware em execução na máquina virtual convidada. Ele não fornece proteção adicional do administrador do host. No host, você pode desabilitar o WDAC para uma máquina virtual:

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

Requisitos para executar o HVCI 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 HVCI e a virtualização aninhada podem ser habilitadas ao mesmo tempo
  • Os adaptadores de Fibre Channel virtuais não são compatíveis com o HVCI. Antes de anexar um adaptador virtual de Fibre Channel a uma máquina virtual, você deve primeiro recusar a segurança baseada em virtualização usando Set-VMSecurity.
  • A opção AllowFullSCSICommandSet para discos de passagem não é compatível com o HVCI. Antes de configurar um disco de passagem com o AllowFullSCSICommandSet, primeiro você deve recusar a segurança baseada em virtualização Set-VMSecurityusando.