sicurezza basata sulla virtualizzazione (VBS)

La sicurezza basata su virtualizzazione o VBS usa funzionalità di virtualizzazione hardware per creare e isolare un'area sicura di memoria dal normale sistema operativo. Windows può usare questa "modalità sicura virtuale" per ospitare una serie di soluzioni di sicurezza, fornendo loro una maggiore protezione dalle vulnerabilità nel sistema operativo e impedendo l'uso di exploit dannosi che tentano di sconfiggere le protezioni.

Una soluzione di sicurezza di esempio è Hypervisor-Enforced Integrità del codice (HVCI), comunemente definita integrità della memoria, che usa VBS per rafforzare significativamente l'applicazione dei criteri di integrità del codice. L'integrità del codice in modalità kernel controlla tutti i driver e i file binari in modalità kernel prima dell'avvio e impedisce il caricamento di driver o file di sistema non firmati nella memoria di sistema.

VBS usa l'hypervisor Windows per creare questa modalità di sicurezza virtuale e per applicare restrizioni che proteggono le risorse del sistema operativo e del sistema operativo vitali o per proteggere gli asset di sicurezza, ad esempio le credenziali utente autenticate. Con la maggiore protezione offerta da VBS, anche se il malware ottiene l'accesso al kernel del sistema operativo, gli exploit possibili possono essere notevolmente limitati e contenuti, perché l'hypervisor può impedire al malware di eseguire codice o accedere ai segreti della piattaforma.

Analogamente, i criteri di integrità del codice configurabili in modalità utente controllano le applicazioni prima del caricamento e avviano solo file eseguibili firmati dai firmatari noti e approvati. HVCI sfrutta VBS per eseguire il servizio di integrità del codice all'interno di un ambiente sicuro, fornendo protezioni più forti contro virus del kernel e malware. L'hypervisor, il livello più privilegiato del software di sistema, imposta e applica le autorizzazioni di pagina in tutta la memoria di sistema. Le pagine vengono eseguite solo dopo che i controlli di integrità del codice all'interno dell'area protetta sono passati e le pagine eseguibili non sono scrivibili. In questo modo, anche se esistono vulnerabilità come un overflow del buffer che consente al malware di tentare di modificare la memoria, le pagine codici non possono essere modificate e la memoria modificata non può essere resa eseguibile.

VBS richiede che i componenti seguenti siano presenti e configurati correttamente.

Si noti che TPM non è un requisito necessario, ma è consigliabile implementare TPM.

Requisito hardware Dettagli
CPU a 64 bit La sicurezza basata su virtualizzazione richiede l'hypervisor Windows, supportato solo nei processori IA a 64 bit con estensioni di virtualizzazione, tra cui Intel VT-X e AMD-v.
Conversione indirizzi di secondo livello (SLAT) VBS richiede inoltre che il supporto di virtualizzazione del processore includa La traduzione degli indirizzi di secondo livello (SLAT), Intel VT-X2 con tabelle di pagina estese (EPT) o AMD-v con l'indicizzazione di virtualizzazione rapida (RVI).
IOMMUs o SMMUs (Intel VT-D, AMD-Vi, Arm64 SMMUs) Tutti i dispositivi I/O in grado di DMA devono essere dietro un IOMMU o SMMU. Un IOMMU può essere usato per migliorare la resilienza del sistema contro gli attacchi di memoria.
Trusted Platform Module (TPM) 2.0 I TPMS, discreti o firmware, saranno sufficienti. Per altre informazioni, vedere Trusted Platform Module (TPM) 2.0.
Supporto del firmware per la protezione SMM Il firmware di sistema deve rispettare le raccomandazioni per la protezione avanzata del codice SMM descritto nella specifica Windows SMM Security Mitigations Table (WMST). La specifica WSMT contiene i dettagli di una tabella ACPI creata per l'uso con sistemi operativi Windows che supportano Windows funzionalità di sicurezza basata su virtualizzazione . Il firmware deve implementare le protezioni descritte nella specifica WSMT e impostare i flag di protezione corrispondenti, come descritto nella specifica per segnalare la conformità a questi requisiti al sistema operativo.
Creazione di report sulla memoria UEFI (Unified Extensible Firmware Interface) Il firmware UEFI deve rispettare il seguente formato di report della mappa della memoria e le linee guida per l'allocazione della memoria per garantire la compatibilità con VBS.

  • Tabella attributi di memoria UEFI v2.6 (MAT) - Per garantire la compatibilità con VBS, il firmware deve separare in modo pulito gli intervalli di memoria di runtime EFI per il codice e i dati e segnalarli al sistema operativo. La separazione e la creazione di report appropriati degli intervalli di memoria di runtime EFI consente a VBS di applicare le protezioni di pagina necessarie alle pagine codici dei servizi di runtime EFI all'interno dell'area protetta VBS. La comunicazione di queste informazioni al sistema operativo viene eseguita usando la EFI_MEMORY_ATTRIBUTES_TABLE. Per implementare il MAT UEFI, seguire queste linee guida:
    1. L'intero runtime EFI deve essere descritto da questa tabella.
    2. Tutti gli attributi appropriati per le pagine EfiRuntimeServicesData e EfiRuntimeServicesCode devono essere contrassegnati.
    3. Questi intervalli devono essere allineati ai limiti di pagina (4 KB) e non possono sovrapporsi.
  • Protezione pagina EFI - Tutte le voci devono includere attributi EFI_MEMORY_RO, EFI_MEMORY_XP o entrambi. Tutte le memoria UEFI contrassegnate devono essere di sola lettura. La memoria contrassegnata come scrivibile non deve essere eseguibile. Le voci potrebbero non essere lasciate con nessuno degli attributi impostati, indicando la memoria sia eseguibile che scrivibile.
  • Secure Memory Overwrite Request (MOR) revision 2 Secure MOR v2 è migliorato per proteggere l'impostazione di blocco MOR usando una variabile sicura UEFI. Ciò consente di proteggere gli attacchi di memoria avanzati. Per informazioni dettagliate, vedere Implementazione secure MOR.
    Driver compatibili con Hypervisor Code Integrity (HVCI) Assicurarsi che tutti i driver di sistema siano stati testati e verificati essere compatibili con HVCI. Il Windows Driver Kit e Driver Verifier contengono test per la compatibilità del driver HVCI. Esistono quattro passaggi per verificare la compatibilità dei driver:
    1. Usare Verifica driver con i nuovi controlli di compatibilità dell'integrità del codice abilitati.
    2. Eseguire il test di conformità all'integrità del codice Hypervisor nell'Windows HLK.
    3. Testare il driver in un sistema con VBS e HVCI abilitato. Questo passaggio è imperativo per convalidare il comportamento del driver con HVCI, poiché gli strumenti di analisi del codice statico non sono semplicemente in grado di rilevare tutte le violazioni HVCI possibili in fase di esecuzione.
    4. Usare lo strumento DGReadiness.

    VBS funziona su macchine virtuali con supporto di virtualizzazione annidato. Sono incluse tutte le macchine virtuali gen2 e le macchine virtuali Gen1 che supportano la virtualizzazione annidata. Un elenco di serie di macchine virtuali supportate è dettagliato nella tabella seguente.

    Nome serie di macchine virtuali Virtualizzazione annidata VM Gen
    Av2 1 (alcune dimensioni interne supportano la generazione 2)
    B No 1 e 2
    Dsv2/Dv2/Dv3/Ev3 1
    Dsv3/Ddsv3 1 e 2
    Dsv4/Ddsv4 1 e 2
    Esv3/Edsv3 1 e 2
    Esv4/Edsv4 1 e 2
    Ev4/Edv4 Ev4 - solo 1
    Edv4 -1&2
    Dv4/Ddv4 1 e 2
    Dv5/Ddv5/Dsv5/Ddsv5 1 e 2
    Ev5/Edv5/Esv5/Edsv5 1 e 2
    Dasv5/Dadsv5/Easv5/ Eadsv5 1 e 2
    Ebsv5/Edbsv5 1 e 2
    Fsv2 1 e 2
    Fx 2
    Lsv2 1 e 2

    Per altre informazioni su Hyper-V, vedere Hyper-V in Windows Server 2016 o Introduzione a Hyper-V in Windows 10. Per altre informazioni sull'hypervisor, vedere Specifiche di Hypervisor.