Partilhar via


VBS (Segurança Baseada em Virtualização)

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, tornando-o a raiz da confiança do sistema operacional que assume que o kernel pode estar comprometido. O Windows usa esse ambiente isolado para hospedar uma série de soluções de segurança, fornecendo-lhes uma proteção muito maior contra vulnerabilidades no sistema operacional e impedindo o uso de explorações maliciosas que tentam passar pelas 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 exemplo de solução de segurança é a integridade da memória, que protege e fortalece o Windows ao executar 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 os drivers ou arquivos de sistema não assinados ou não confiáveis sejam adicionados à memória do sistema. 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. Dessa forma, mesmo que haja vulnerabilidades, como um estouro de buffer que permite que o malware tente modificar a memória, as páginas de código executável não podem ser alteradas e a memória modificada não pode ser tornada executável.

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.

A VBS requer que os seguintes componentes estejam presentes e configurados corretamente.

Requisito de hardware Detalhes
CPU de 64 bits A segurança baseada em virtualização (VBS) requer o hipervisor do Windows, que só é suportado 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 requer que o suporte à virtualização do processador inclua SLAT (tradução de endereços de segundo nível), Intel VT-X2 com EPT (tabelas de páginas estendidas) 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 melhorar a resiliência do sistema contra ataques de memória.
Trusted Platform Module (TPM) 2.0 Para obter mais informações, consulte Trusted Platform Module (TPM) 2.0.
Suporte de firmware para proteção SMM O firmware do sistema deve seguir as recomendações para proteger o código SMM descrito na especificação da WMST (tabela de mitigações de segurança do Windows SMM). A especificação da WSMT contém detalhes de uma tabela ACPI criada para usar com sistemas operacionais Windows que oferecem suporte a recursos VBS. O firmware deve implementar as proteções descritas na especificação da WSMT e definir os sinalizadores de proteção correspondentes, conforme descrito na especificação, para relatar a conformidade desses requisitos com o sistema operacional.
Relatório de memória UEFI (Unified Extensible Firmware Interface) O firmware UEFI deve aderir ao seguinte formato de relatório de mapa de memória e diretrizes de alocação de memória para que o firmware garanta a compatibilidade com a VBS.

  • Tabela de atributos de memória (MAT) UEFI v2.6: para garantir a compatibilidade com a VBS, o firmware deve separar corretamente os intervalos de memória de tempo de execução da EFI para código e dados e relatar ao sistema operacional. A segregação e a geração de relatórios adequados de intervalos de memória de tempo de execução da EFI permitem que a VBS aplique as proteções de página necessárias às páginas de código de serviços de tempo de execução da EFI dentro da região segura da VBS. A transmissão dessas informações para o sistema operacional é realizada usando EFI_MEMORY_ATTRIBUTES_TABLE. Para implementar o UEFI MAT, siga estas diretrizes:
    1. Todo o tempo de execução da 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 nos 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 gravável não deve ser executável. As entradas não podem ser deixadas com nenhum dos atributos definidos, indicando memória executável e gravável.
  • Solicitação de substituição de memória segura (MOR) revisão 2 A MOR v2 segura é aprimorada para proteger a configuração de bloqueio MOR usando uma variável segura UEFI. Isso ajuda na proteção contra ataques avançados de memória. Para obter detalhes, consulte Implementação de MOR segura.
    Drivers compatíveis com a 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 de compatibilidade de driver com a integridade da 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 de integridade do código do hipervisor no HLK do Windows.
    3. Teste o driver em um sistema com a VBS e a integridade de memória habilitadas. Esta etapa é essencial para validar o comportamento do driver com a integridade de memória, pois as ferramentas de análise de código estático não são capazes de detectar todas as violações de integridade de memória possíveis no tempo de execução.
    Inicialização Segura A inicialização segura deve ser habilitada em dispositivos que utilizam a VBS. Para obter mais informações, consulte a Inicialização segura.

    A VBS funciona em VMs que têm suporte à virtualização aninhada. Isso inclui todas as VMs Gen2 e VMs Gen1 que oferecem suporte à virtualização aninhada. Uma lista das séries de VMs suportadas está detalhada na tabela abaixo.

    Nome de série da VM Virtualização aninhada Geração da VM
    Av2 Yes 1 (certos tamanhos internos suportam gen 2)
    B Não 1 e 2
    Dsv2/Dv2/Dv3/Ev3 Yes 1
    Dsv3/Ddsv3 Yes 1 e 2
    Dsv4/Ddsv4 Yes 1 e 2
    Esv3/Edsv3 Yes 1 e 2
    Esv4/Edsv4 Yes 1 e 2
    Ev4/Edv4 Yes Ev4, apenas 1
    Edv4, 1&2
    Dv4/Ddv4 Yes 1 e 2
    Dv5/Ddv5/Dsv5/Ddsv5 Yes 1 e 2
    Ev5/Edv5/ESV5/Edsv5 Yes 1 e 2
    Dasv5/Dadsv5/Easv5/ Eadsv5 Yes 1 e 2
    Ebsv5/Edbsv5 Yes 1 e 2
    Fsv2 Yes 1 e 2
    Fx Sim 2
    Lsv2 Yes 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.