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

A segurança baseada em virtualização, ou VBS, usa a virtualização de hardware e 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. O Windows usa esse ambiente isolado para hospedar várias soluções de segurança, fornecendo-lhes uma proteção muito maior contra vulnerabilidades no sistema operacional e impedindo o uso de explorações mal-intencionadas que tentam derrotar proteções. A VBS impõe restrições para proteger recursos vitais do sistema e do sistema operacional ou para proteger ativos de segurança, como credenciais de usuário autenticadas.

Um desses exemplos de solução de segurança é a integridade da memória, que protege e protege o Windows executando a integridade do código do modo kernel no ambiente virtual isolado da VBS. A integridade do código do modo kernel é o processo do Windows que verifica todos os drivers e binários do modo kernel antes de serem iniciados e impede que drivers ou arquivos do sistema não assinados ou não confiáveis sejam carregados na memória do sistema. 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. Dessa forma, mesmo que haja vulnerabilidades como um estouro de buffer que permitem que o malware tente modificar a memória, as páginas de código executáveis não podem ser modificadas e a memória modificada não pode se tornar executável.

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.

A VBS exige que os componentes a seguir estejam 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 do Windows, que só tem suporte em processadores 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) A VBS também exige que o suporte à virtualização do processador inclua SLAT (Conversão de Endereços de Segundo Nível), Intel VT-X2 com EPT (Tabelas de Página Estendidas) ou AMD-v com RVI (Rapid Virtualization Indexing).
IOMMUs ou SMMUs (Intel VT-D, AMD-Vi, Arm64 SMMUs) Todos os dispositivos de E/S capazes de DMA devem estar por trá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 firmware, 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 WMST (Tabela de Mitigações de Segurança) do SMM do Windows. A especificação WSMT contém detalhes de uma tabela ACPI que foi criada para uso com sistemas operacionais Windows que dão suporte a recursos de VBS. O firmware deve implementar as proteções descritas na especificação 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órios de memória UEFI (Unified Extensible Firmware Interface) O firmware UEFI deve seguir as diretrizes de alocação de memória e formato de relatório de mapa de memória a seguir para que o firmware garanta a compatibilidade com a VBS.

  • TABELA de atributos de memória UEFI v2.6 (MAT) – Para garantir a compatibilidade com a VBS, o firmware deve separar corretamente os intervalos de memória de runtime de EFI para código e dados e relatar isso ao sistema operacional. A segregação adequada e o relatório de intervalos de memória de runtime de EFI permitem que a VBS aplique as proteções de página necessárias às páginas de código de serviços de runtime de EFI dentro da região segura da VBS. Transmitir essas informações para o sistema operacional é feito 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 (4 KB) 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 gravável não deve ser executável. As entradas podem não ficar com nenhum dos atributos definidos, indicando a memória executável e gravável.
  • Mor (Solicitação de Substituição de Memória Segura) revisão 2 O MOR seguro v2 é 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 de MOR seguro.
    Drivers compatíveis com integridade de memória Verifique se todos os drivers do sistema foram testados e verificados como compatíveis com a integridade da memória. O Kit de Driver do Windows e o Verificador de Driver contêm testes para compatibilidade de driver com integridade de memória. Há três etapas para verificar a compatibilidade do driver:
    1. Use o Verificador de Driver com as verificações de compatibilidade de integridade de código habilitadas.
    2. Execute o Teste de Preparação para Integridade de Código do Hipervisor no Windows HLK.
    3. Teste o driver em um sistema com VBS e integridade de memória habilitadas. Essa etapa é fundamental para validar o comportamento do driver com integridade de memória, pois as ferramentas de análise de código estático simplesmente não são capazes de detectar todas as violações de integridade de memória possíveis em runtime.

    A VBS funciona em VMs que têm suporte aninhado para virtualização. Isso inclui todas as VMs Gen2 e VMs Gen1 que dão suporte à virtualização aninhada. Uma lista de séries de VMs com suporte é detalhada na tabela abaixo.

    Nome da série de VMs Virtualização aninhada VM Gen
    Av2 Sim 1 (determinados tamanhos internos dão suporte à geração 2)
    B Não 1 e 2
    Dsv2/Dv2/Dv3/Ev3 Sim 1
    Dsv3/Ddsv3 Sim 1 e 2
    Dsv4/Ddsv4 Sim 1 e 2
    Esv3/Edsv3 Sim 1 e 2
    Esv4/Edsv4 Sim 1 e 2
    Ev4/Edv4 Sim Ev4 - 1 somente
    Edv4 -1&2
    Dv4/Ddv4 Sim 1 e 2
    Dv5/Ddv5/Dsv5/Ddsv5 Sim 1 e 2
    Ev5/Edv5/Esv5/Edsv5 Sim 1 e 2
    Dasv5/Dadsv5/Easv5/ Eadsv5 Sim 1 e 2
    Ebsv5/Edbsv5 Sim 1 e 2
    Fsv2 Sim 1 e 2
    Fx Sim 2
    Lsv2 Sim 1 e 2

    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.