Partilhar via


Segurança baseada 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 da confiança do sistema operacional que pressupõe que o kernel pode ser 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 derrotar as proteções. O 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 de memória , que protege e fortalece o Windows ao executar a integridade do código no modo de kernel dentro do ambiente virtual isolado do 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 de 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 poderiam ser usadas para comprometer o sistema, garantindo que as páginas de memória do kernel só sejam executáveis depois de passar por verificações de integridade de código dentro do ambiente de tempo de execução seguro, e as próprias páginas executáveis nunca sejam graváveis. Dessa forma, mesmo que existam 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 ser tornada executável.

Observação

A integridade da memória é por vezes referida como de integridade de código protegida por hipervisor (HVCI) ou de 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 do VBS na Diretiva de Grupo ou no Registro do Windows.

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

Requisitos 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.
Tradução de endereços de segundo nível (SLAT) O VBS também requer que o suporte de virtualização do processador inclua SLAT (Second Level Address Translation), Intel VT-X2 com Extended Page Tables (EPT) ou AMD-v com Rapid Virtualization Indexing (RVI).
IOMMUs ou SMMUs (Intel VT-D, AMD-Vi, Arm64 SMMUs) Todos os dispositivos de entrada/saída 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.
Módulo de plataforma confiável (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 aderir às recomendações para proteger o código SMM, conforme descrito na especificação da Tabela de Mitigações de Segurança do Windows SMM (WMST) . A especificação WSMT contém detalhes de uma tabela ACPI que foi criada para uso com sistemas operacionais Windows que suportam recursos 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 ao 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 o VBS.

  • UEFI v2.6 Tabela de atributos de memória (MAT) - Para garantir a compatibilidade com o VBS, o firmware deve separar claramente os intervalos de memória de tempo de execução EFI para código e dados e relatar isso ao sistema operacional. A segregação e a geração de relatórios adequados dos intervalos de memória de tempo de execução EFI permitem que o VBS aplique as proteções de página necessárias às páginas de código dos serviços de tempo de execução EFI dentro da região segura do VBS. A transmissão dessas informações para o sistema operacional é realizada usando o EFI_MEMORY_ATTRIBUTES_TABLE. Para implementar o MAT UEFI, siga estas diretrizes:
    1. Todo o tempo de execução do 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 da 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 que estiver marcada como executável deve ser de leitura apenas. 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 que é executável e gravável.
  • Solicitação de substituição de memória segura (MOR) revisão 2 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 a implementação segura de MOR .
    Drivers compatíveis com integridade de memória Certifique-se de que todos os drivers do sistema foram testados e verificados para serem compatíveis com a integridade da memória. O Windows Driver Kit e o Driver Verifier contêm testes de compatibilidade do driver com a integridade da memória. Há três etapas para verificar a compatibilidade do driver:
    1. Use o Verificador de Controladores com a compatibilidade das verificações de integridade de código e habilitadas.
    2. Executar o teste de prontidão de integridade de código do hipervisor no HLK do Windows.
    3. Teste o driver num sistema com VBS e integridade de memória habilitada. Esta etapa é imperativa 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 detetar todas as violações de integridade de memória possíveis em tempo de execução.
    Arranque Seguro A Inicialização Segura deve ser habilitada em dispositivos que utilizam o VBS. Para mais informações, consulte Inicialização Segura

    O VBS funciona em VMs que têm suporte a virtualização em aninhamento ou Guest VSM habilitado. Este último é habilitado por padrão para VMs de Geração 2 no Hyper-V. Isso também inclui todas as VMs de Geração 2 no Microsoft Azure e VMs de Geração 1 que têm virtualização aninhada habilitada. Uma lista da série de VMs do Azure com suporte é detalhada na tabela abaixo.

    Nome da série VM Virtualização Aninhada de geração de VM
    Av2 Sim 1 (certos tamanhos internos suportam a 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 apenas
    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.