Delen via


Beveiliging op basis van virtualisatie (VBS)

Beveiliging op basis van virtualisatie, of VBS, maakt gebruik van hardwarevirtualisatie en de Windows-hypervisor om een geïsoleerde virtuele omgeving te creëren die de vertrouwensbasis van het besturingssysteem wordt, ervan uitgaand dat de kernel kan worden aangetast. Windows maakt gebruik van deze geïsoleerde omgeving om een aantal beveiligingsoplossingen te hosten, waardoor ze aanzienlijk betere bescherming bieden tegen beveiligingsproblemen in het besturingssysteem en het gebruik van schadelijke aanvallen die proberen beveiliging te verslaan. VBS dwingt beperkingen af om essentiële systeem- en besturingssysteemresources te beveiligen, of om beveiligingsassets zoals geverifieerde gebruikersreferenties te beveiligen.

Een voorbeeld van een dergelijke beveiligingsoplossing is geheugenintegriteit, waarmee Windows wordt beveiligd door de code-integriteit van de kernelmodus uit te voeren binnen de geïsoleerde virtuele omgeving van VBS. Integriteit van kernelmoduscode is het Windows-proces dat alle stuurprogramma's en binaire bestanden van de kernelmodus controleert voordat ze worden gestart, en voorkomt dat niet-ondertekende of niet-vertrouwde stuurprogramma's of systeembestanden in het systeemgeheugen worden geladen. Geheugenintegriteit beperkt ook kernelgeheugentoewijzingen die kunnen worden gebruikt om het systeem te compromitteren, zodat kernelgeheugenpagina's alleen uitvoerbaar worden gemaakt nadat code-integriteitscontroles in de beveiligde runtime-omgeving zijn doorgegeven en uitvoerbare pagina's zelf nooit beschrijfbaar zijn. Zelfs als er beveiligingsproblemen zijn, zoals een bufferoverloop, waardoor malware kan proberen geheugen te wijzigen, kunnen uitvoerbare codepagina's niet worden gewijzigd en kan het gewijzigde geheugen niet uitvoerbaar worden gemaakt.

Notitie

Geheugenintegriteit wordt soms aangeduid als HVCI (Hypervisor-Protected Code Integrity) of door de hypervisor afgedwongen code-integriteiten is oorspronkelijk uitgebracht als onderdeel van Device Guard. Device Guard wordt niet meer gebruikt, behalve voor het vinden van geheugenintegriteit en VBS-instellingen in groepsbeleid of het Windows-register.

VBS vereist dat de volgende onderdelen aanwezig en correct zijn geconfigureerd.

Hardwarevereiste Bijzonderheden
64-bits CPU Voor beveiliging op basis van virtualisatie (VBS) is de Windows-hypervisor vereist. Deze wordt alleen ondersteund op 64-bits IA-processors met virtualisatieextensies, waaronder Intel VT-X en AMD-v.
Tweede Niveau Adresvertaling (SLAT) VBS vereist ook dat de virtualisatieondersteuning van de processor SLAT (Second Level Address Translation) omvat, ofwel Intel VT-X2 met Extended Page Tables (EPT), of AMD-v met Rapid Virtualization Indexing (RVI).
IOMMUs of SMMUs (Intel VT-D, AMD-Vi, Arm64 SMMUs) Alle I/O-apparaten die geschikt zijn voor DMA, moeten zich achter een IOMMU of SMMU bevindt. Een IOMMU kan worden gebruikt om de systeemtolerantie tegen geheugenaanvallen te verbeteren.
Trusted Platform Module (TPM) 2.0 Zie TPM (Trusted Platform Module) 2.0voor meer informatie.
Firmwareondersteuning voor SMM-beveiliging Systeemfirmware moet voldoen aan de aanbevelingen voor het beveiligen van SMM-code die wordt beschreven in de specificatie Windows SMM Security Mitigations Table (WMST). De WSMT-specificatie bevat details van een ACPI-tabel die is gemaakt voor gebruik met Windows-besturingssystemen die VBS-functies ondersteunen. Firmware moet de beveiligingen implementeren die worden beschreven in de WSMT-specificatie en de bijbehorende beveiligingsvlagmen instellen zoals beschreven in de specificatie om naleving van deze vereisten aan het besturingssysteem te rapporteren.
UEFI-geheugenrapportage (Unified Extensible Firmware Interface) UEFI-firmware moet voldoen aan de volgende geheugenoverzichtsrapportage-indeling en richtlijnen voor geheugentoewijzing om compatibiliteit met VBS te waarborgen.

  • UEFI v2.6 Memory Attributes Table (MAT) - Om compatibiliteit met VBS te garanderen, moet firmware EFI-runtimegeheugenbereiken voor code en gegevens op schone wijze scheiden en dit rapporteren aan het besturingssysteem. Door de juiste scheiding en rapportage van EFI-runtimegeheugenbereiken kan VBS de benodigde paginabeveiliging toepassen op codepagina's van EFI-runtimeservices in de beveiligde VBS-regio. Het overbrengen van deze informatie naar het besturingssysteem wordt bereikt met behulp van de EFI_MEMORY_ATTRIBUTES_TABLE. Volg deze richtlijnen om de UEFI MAT te implementeren:
    1. De volledige EFI-runtime moet worden beschreven in deze tabel.
    2. Alle juiste kenmerken voor de pagina's EfiRuntimeServicesData en EfiRuntimeServicesCode moeten worden gemarkeerd.
    3. Deze bereiken moeten worden uitgelijnd op paginagrenzen (4 KB) en mogen niet overlappen.
  • EFI-paginabeveiliging:Alle vermeldingen moeten kenmerken bevatten EFI_MEMORY_RO, EFI_MEMORY_XP of beide. Alle UEFI-geheugen dat is gemarkeerd als uitvoerbaar, moet alleen-lezen zijn. Geheugen gemarkeerd beschrijfbaar mag niet uitvoerbaar zijn. Vermeldingen mogen niet worden achtergelaten zonder dat één van de eigenschappen is ingesteld, wat aangeeft dat het geheugen zowel uitvoerbaar als beschrijfbaar is.
  • Secure Memory Overwrite Request (MOR) revisie 2 Secure MOR v2 is verbeterd om de MOR-vergrendelingsinstelling te beveiligen met behulp van een UEFI-beveiligde variabele. Dit helpt u te beschermen tegen geavanceerde geheugenaanvallen. Zie Secure MOR-implementatievoor meer informatie.
    Stuurprogramma's die compatibel zijn met geheugenintegriteit Zorg ervoor dat alle systeemstuurprogramma's zijn getest en geverifieerd om compatibel te zijn met de geheugenintegriteit. De Windows Driver Kit en Driver Verifier tests bevatten voor de compatibiliteit van stuurprogramma's met geheugenintegriteit. Er zijn drie stappen om de compatibiliteit van stuurprogramma's te controleren:
    1. Gebruik Driver Verifier met de -code-integriteitscompatibiliteitscontroles ingeschakeld.
    2. Voer de Hypervisor Code Integrity Readiness Test uit in de Windows HLK.
    3. Test het stuurprogramma op een systeem met VBS en geheugenintegriteit ingeschakeld. Deze stap is noodzakelijk om het gedrag van het stuurprogramma met geheugenintegriteit te valideren, omdat hulpprogramma's voor statische codeanalyse niet in staat zijn om alle schendingen van de geheugenintegriteit tijdens runtime te detecteren.
    Beveiligd opstarten Beveiligd opstarten moet zijn ingeschakeld op apparaten die gebruikmaken van VBS. Zie Beveiligd opstarten voor meer informatie

    VBS werkt op VM's die ofwel ondersteuning voor geneste virtualisatie hebben of waarbij Gast-VSM is ingeschakeld. De laatste functie is standaard ingeschakeld voor vm's van de tweede generatie op Hyper-V. Dit omvat ook alle virtuele machines van de tweede generatie op Microsoft Azure en virtuele machines van de eerste generatie waarvoor geneste virtualisatie is ingeschakeld. Een lijst met ondersteunde Azure VM-serie wordt beschreven in de onderstaande tabel.

    VM-serienaam geneste virtualisatie voor VM-generatie
    Av2 Ja 1 (bepaalde interne grootten ondersteunen generatie 2)
    B Nee 1 en 2
    Dsv2/Dv2/Dv3/Ev3 Ja 1
    Dsv3/Ddsv3 Ja 1 en 2
    Dsv4/Ddsv4 Ja 1 en 2
    Esv3/Edsv3 Ja 1 en 2
    Esv4/Edsv4 Ja 1 en 2
    Ev4/Edv4 Ja Ev4 - 1 enkel
    Edv4 -1&2
    Dv4/Ddv4 Ja 1 en 2
    Dv5/Ddv5/Dsv5/Ddsv5 Ja 1 en 2
    Ev5/Edv5/Esv5/Edsv5 Ja 1 en 2
    Dasv5/Dadsv5/Easv5/ Eadsv5 Ja 1 en 2
    Ebsv5/Edbsv5 Ja 1 en 2
    Fsv2 Ja 1 en 2
    Fx Ja 2
    Lsv2 Ja 1 en 2

    Zie Hyper-V op Windows Server 2016 of Inleiding tot Hyper-V in Windows 10voor meer informatie over Hyper-V. Zie Hypervisor Specificationsvoor meer informatie over hypervisor.