Segurança com Base em virtualização (VBS)

A segurança baseada em virtualização, ou VBS, usa recursos de virtualização de hardware para criar e isolar uma região segura de memória do sistema operacional normal. Windows pode usar esse "modo de segurança virtual" para hospedar várias soluções de segurança, fornecendo a elas uma maior proteção contra vulnerabilidades no sistema operacional e impedindo o uso de explorações mal-intencionadas que tentam impedir proteções.

Um exemplo de solução de segurança é Hypervisor-Enforced HVCI (Integridade de Código), normalmente conhecida como Integridade da memória, que usa VBS para fortalecer significativamente a imposição da política de integridade do código. A integridade do código do modo kernel verifica todos os drivers e binários do modo kernel antes de serem iniciados e impede que drivers não assinados ou arquivos do sistema são carregados na memória do sistema.

O VBS usa o hipervisor Windows para criar esse modo de segurança virtual e para impor restrições que protegem recursos vitais do sistema operacional ou para proteger ativos de segurança, como credenciais de usuário autenticadas. Com o aumento das proteções oferecidas pelo VBS, mesmo que o malware tenha acesso ao kernel do sistema operacional, as explorações possíveis podem ser muito limitadas e contidas, pois o hipervisor pode impedir que o malware execute código ou acesse segredos da plataforma.

Da mesma forma, a política de integridade de código configurável no modo de usuário verifica os aplicativos antes de eles são carregados e iniciará somente os executáveis assinados por signatários aprovados conhecidos. O HVCI aproveita o VBS para executar o serviço de integridade de código dentro de um ambiente seguro, fornecendo proteções mais fortes contra vírus e malware do kernel. O hipervisor, o nível mais privilegiado de software do sistema, define e impõe permissões de página em toda a memória do sistema. As páginas só são executadas depois que as verificações de integridade de código dentro da região segura são aprovadas e as páginas executáveis não são escritas. Dessa forma, mesmo se houver vulnerabilidades como um estouro de buffer que permitem que o malware tente modificar a memória, as páginas de código não poderão ser modificadas e a memória modificada não poderá se fazer executável.

O VBS requer que os componentes a seguir estão presentes e configurados corretamente.

Observe que o TPM não é um requisito obrigatório, mas é altamente recomendável implementar o TPM.

Requisito de hardware Detalhes
CPU de 64 bits A VBS (segurança baseada em virtualização) requer o hipervisor Windows, que só tem suporte em processadores de IA de 64 bits com extensões de virtualização, incluindo Intel VT-X e AMD-v.
SLAT (Conversão de Endereços de Segundo Nível) O VBS também requer que o suporte à virtualização do processador inclua SLAT (Conversão de Endereços de Segundo Nível), Intel VT-X2 com Tabelas de Páginas Estendidas (EPT) ou AMD-v com RVI (Indexação de Virtualização Rápida).
IOMMUs ou SMMUs (Intel VT-D, AMD-Vi, ARM64 SMMUs) Todos os dispositivos de E/S capazes de DMA devem estar atrás de uma IOMMU ou SMMU. Uma IOMMU pode ser usada para aprimorar a resiliência do sistema contra ataques de memória.
Trusted Platform Module (TPM) 2.0 Os TPMs, discretos ou firmwares, serão suficientes. Para obter mais informações, consulte Trusted Platform Module (TPM) 2.0.
Suporte de firmware para proteção do SMM O firmware do sistema deve seguir as recomendações para proteger o código SMM descrito na especificação Windows WMST (Tabelade Mitigações de Segurança) do SMM. A especificação do WSMT contém detalhes de uma tabela ACPI criada para uso com sistemas operacionais Windows que suportam Windows VBS (segurança baseada em virtualização). O firmware deve implementar as proteções descritas na especificação do WSMT e definir os sinalizadores de proteção correspondentes, conforme descrito na especificação para relatar a conformidade com esses requisitos para o sistema operacional.
Relatório de memória da UEFI (Interface de Firmware Extensível Unificado) O firmware UEFI deve seguir as diretrizes de formatação e alocação de memória do mapa de memória a seguir para que o firmware garanta a compatibilidade com o VBS.

  • MAT (Tabela de Atributos de Memória) da UEFI v2.6 – Para garantir a compatibilidade com o VBS, o firmware deve separar corretamente os intervalos de memória de runtime EFI para código e dados e relatar isso ao sistema operacional. A segregação e o relatório apropriados de intervalos de memória de runtime EFI permitem que o VBS aplique as proteções de página necessárias às páginas de código dos serviços de runtime EFI dentro da região segura do VBS. Transmitir essas informações para o sistema operacional é realizado usando o EFI_MEMORY_ATTRIBUTES_TABLE. Para implementar o UEFI MAT, siga estas diretrizes:
    1. Todo o runtime de EFI deve ser descrito por esta tabela.
    2. Todos os atributos apropriados para as páginas EfiRuntimeServicesData e EfiRuntimeServicesCode devem ser marcados.
    3. Esses intervalos devem ser alinhados em limites de página (4KB) e não podem se sobrepor.
  • Proteções de página EFI – Todas as entradas devem incluir atributos EFI_MEMORY_RO, EFI_MEMORY_XP ou ambos. Toda a memória UEFI marcada como executável deve ser somente leitura. A memória marcada como writable não deve ser executável. As entradas não podem ser deixadas com nenhum dos atributos definidos, indicando a memória que é executável e que pode ser escrita.
  • Revisão 2 de MOR (Solicitação de Substituir Memória Segura) O SECURE MOR v2 foi aprimorado para proteger a configuração de bloqueio MOR usando uma variável segura UEFI. Isso ajuda a proteger contra ataques avançados de memória. Para obter detalhes, consulte Implementação segura do MOR.
    Drivers compatíveis com HVCI (integridade de código do hipervisor) Verifique se todos os drivers do sistema foram testados e verificados como compatíveis com o HVCI. O Windows Driver Kit e o Driver Verifier contêm testes de compatibilidade do HVCI do driver. Há quatro etapas para verificar a compatibilidade do driver:
    1. Use o Verificador de Driver com as novas verificações de compatibilidade de integridade de código habilitadas.
    2. Execute o teste de preparação de integridade de código do hipervisor no Windows HLK.
    3. Teste o driver em um sistema com VBS e HVCI habilitados. Esta etapa é fundamental para validar o comportamento do driver com o HVCI, pois as ferramentas de análise de código estático simplesmente não são capazes de detectar todas as violações de HVCI possíveis em runtime.
    4. Use a ferramenta DGReadiness.

    Para obter mais informações sobre o Hyper-V, consulte Hyper-V no Windows Server 2016 ou Introdução ao Hyper-V no Windows 10. Para obter mais informações sobre o hipervisor, consulte Especificações do hipervisor.