Abilitare la protezione basata su virtualizzazione dell'integrità del codice
Warning
Alcune applicazioni e driver di dispositivo hardware potrebbero non essere compatibili con l'integrità della memoria. Questa incompatibilità può causare il malfunzionamento di dispositivi o software e in rari casi può causare un errore di avvio (schermata blu). Tali problemi possono verificarsi dopo che l'integrità della memoria è stata attivata o durante il processo di abilitazione stesso. Se si verificano problemi di compatibilità, vedere Risoluzione dei problemi relativi alla procedura di correzione.
L'integrità della memoria è una funzionalità di sicurezza basata su virtualizzazione (VBS) disponibile in Windows. L'integrità della memoria e vbs migliorano il modello di minaccia di Windows e offrono protezioni più avanzate contro il malware che tenta di sfruttare il kernel di Windows. VBS usa l'hypervisor di Windows per creare un ambiente virtuale isolato che diventa la radice dell'attendibilità del sistema operativo che presuppone che il kernel possa essere compromesso. L'integrità della memoria è un componente critico che protegge e rafforza Windows eseguendo l'integrità del codice in modalità kernel all'interno dell'ambiente virtuale isolato di VBS. L'integrità della memoria limita anche le allocazioni di memoria del kernel che possono essere usate per compromettere il sistema.
Nota
- L'integrità della memoria è talvolta definita integrità del codice protetta da hypervisor (HVCI) o integrità del codice applicata dall'hypervisor ed è stata originariamente rilasciata come parte di Device Guard. Device Guard non viene più usato se non per individuare l'integrità della memoria e le impostazioni VBS in Criteri di gruppo o nel Registro di sistema di Windows.
- L'integrità della memoria funziona meglio con Intel Kabylake e processori superiori con controllo dell'esecuzione basato sulla modalità e processori AMD Zen 2 e superiori con funzionalità Execute Trap in modalità guest . I processori meno recenti si basano su un'emulazione di queste funzionalità, denominata modalità utente con restrizioni, e avranno un impatto maggiore sulle prestazioni. Quando la virtualizzazione annidata è abilitata, l'integrità della memoria funziona meglio quando la macchina virtuale è la versione >= 9.3.
Funzionalità di integrità della memoria
- Protegge la modifica della bitmap di Control Flow Guard (CFG) per i driver in modalità kernel.
- Protegge il processo di integrità del codice in modalità kernel che garantisce che altri processi kernel attendibili abbiano un certificato valido.
Come attivare l'integrità della memoria
Per abilitare l'integrità della memoria nei dispositivi Windows con hardware di supporto in un'azienda, usare una di queste opzioni:
Abilitare l'integrità della memoria usando Sicurezza di Windows
L'integrità della memoria può essere attivata nelle impostazioni di Sicurezza di Windows e disponibile in Sicurezza di Windows> I dettagli diisolamento> dei core di sicurezza> del dispositivoIntegrità della memoria. Per altre informazioni, vedere Protezione dei dispositivi in Sicurezza di Windows.
A partire da Windows 11 22H2, Sicurezza di Windows visualizza un avviso se l'integrità della memoria è disattivata. L'indicatore di avviso viene visualizzato anche sull'icona Sicurezza di Windows nella barra delle applicazioni di Windows e nel Centro notifiche di Windows. L'utente può ignorare l'avviso dall'interno di Sicurezza di Windows.
Convalidare le funzionalità di integrità della memoria e vbs abilitate
Usare Win32_DeviceGuard classe WMI
Windows 10, Windows 11 e Windows Server 2016 e versioni successive hanno una classe WMI per le proprietà e le funzionalità correlate a VBS: Win32_DeviceGuard. È possibile eseguire query su questa classe da una sessione di Windows PowerShell con privilegi elevati, usando il comando seguente:
Get-CimInstance -ClassName Win32_DeviceGuard -Namespace root\Microsoft\Windows\DeviceGuard
Nota
La proprietà Mode Based Execution Control verrà elencata come disponibile solo a partire da Windows 10 versione 1803 e Windows 11 versione 21H2. Questo valore viene segnalato sia per il controllo dell'esecuzione basato sulla modalità di Intel che per le funzionalità di esecuzione trap in modalità guest di AMD.
L'output di questo comando fornisce informazioni dettagliate sulle funzionalità di sicurezza basate su hardware disponibili e sulle funzionalità attualmente abilitate.
InstanceIdentifier: stringa univoca per un dispositivo specifico e impostata da WMI.
Versione: questo campo elenca la versione di questa classe WMI. Oggi l'unico valore valido è 1.0.
AvailableSecurityProperties: questo campo consente di enumerare e segnalare lo stato sulle proprietà di sicurezza rilevanti per VBS e l'integrità della memoria.
Value Descrizione 0 Se presente, nel dispositivo non esistono proprietà appropriate. 1 Se presente, il supporto per gli hypervisor è disponibile. 2 Se presente, Avvio protetto è disponibile. 3 Se presente, la protezione DMA è disponibile. 4 Se presente, Proteggi sovrascrittura memoria è disponibile. 5 Se presente, le protezioni NX sono disponibili. 6 Se presente, le prevenzioni SMM sono disponibili. 7 Se presente, è disponibile MBEC/GMET. 8 Se presente, è disponibile la virtualizzazione APIC. CodeIntegrityPolicyEnforcementStatus: questo campo indica lo stato di imposizione dei criteri di integrità del codice.
Value Descrizione 0 Disattivato 1 Controlla. 2 Forzato. RequiredSecurityProperties: questo campo descrive le proprietà di sicurezza necessarie per abilitare VBS.
Value Descrizione 0 Non ci sono altri requisiti. 1 Se presente, è necessario il supporto per gli hypervisor. 2 Se presente, è necessario l'avvio protetto. 3 Se presente, è necessaria la protezione DMA. 4 Se presente, è necessario Proteggi sovrascrittura memoria. 5 Se presente, sono necessarie le protezioni NX. 6 Se presente, sono necessarie le prevenzioni SMM. 7 Se presente, è necessario MBEC/GMET. SecurityServicesConfigured: questo campo indica se è configurata l'integrità della memoria o di Credential Guard.
Value Descrizione 0 Nessun servizio configurato. 1 Se presente, Credential Guard è configurato. 2 Se presente, viene configurata l'integrità della memoria. 3 Se presente, Protezione del sistema avvio sicuro è configurato. 4 Se presente, la misurazione del firmware SMM è configurata. 5 Se presente, la protezione dello stack applicata dall'hardware in modalità kernel è configurata. 6 Se presente, protezione dello stack applicata dall'hardware in modalità kernel è configurata in modalità di controllo. 7 Se presente, Hypervisor-Enforced Conversione paging è configurato. SecurityServicesRunning: questo campo indica se Credential Guard o l'integrità della memoria è in esecuzione.
Value Descrizione 0 Nessun servizio in esecuzione. 1 Se presente, Credential Guard è in esecuzione. 2 Se presente, l'integrità della memoria è in esecuzione. 3 Se presente, Protezione del sistema avvio sicuro è in esecuzione. 4 Se presente, la misurazione del firmware SMM è in esecuzione. 5 Se presente, protezione dello stack applicata dall'hardware in modalità kernel è in esecuzione. 6 Se presente, protezione dello stack applicata dall'hardware in modalità kernel è in esecuzione in modalità di controllo. 7 Se presente, Hypervisor-Enforced conversione di paging è in esecuzione. SmmIsolationLevel: questo campo indica il livello di isolamento SMM.
UsermodeCodeIntegrityPolicyEnforcementStatus: questo campo indica lo stato di imposizione dei criteri di integrità del codice in modalità utente.
Value Descrizione 0 Disattivato 1 Controlla. 2 Forzato. VirtualizationBasedSecurityStatus: questo campo indica se VBS è abilitato e in esecuzione.
Value Descrizione 0 VBS non è abilitato. 1 La sicurezza basata su virtualizzazione è abilitata, ma non in esecuzione. 2 La sicurezza basata su virtualizzazione è abilitata e in esecuzione. VirtualMachineIsolation: questo campo indica se l'isolamento della macchina virtuale è abilitato.
VirtualMachineIsolationProperties: questo campo indica il set di proprietà di isolamento della macchina virtuale disponibili.
Value Descrizione 1 AMD SEV-SNP 2 Sicurezza basata su virtualizzazione 3 Intel TDX
Usare msinfo32.exe
Un altro metodo per determinare le funzionalità VBS disponibili e abilitate consiste nell'eseguire msinfo32.exe da una sessione di PowerShell con privilegi elevati. Quando si esegue questo programma, le funzionalità VBS vengono visualizzate nella parte inferiore della sezione Riepilogo sistema .
Risoluzione dei problemi
- Se un driver di dispositivo non riesce a caricare o si arresta in modo anomalo in fase di esecuzione, potrebbe essere possibile aggiornare il driver usando Gestione dispositivi.
- Se si verifica un errore critico durante l'avvio o il sistema è instabile dopo l'attivazione dell'integrità della memoria, è possibile eseguire il ripristino usando Ambiente ripristino Windows (Ambiente ripristino Windows).
Prima di tutto, disabilitare tutti i criteri usati per abilitare l'integrità di VBS e memoria, ad esempio Criteri di gruppo.
Eseguire quindi l'avvio in Windows RE nel computer interessato, vedere Informazioni di riferimento tecnico su Re di Windows.
Dopo aver eseguito l'accesso a Windows RE, impostare la chiave del Registro di sistema di integrità della memoria su off:
reg add "HKLM\SYSTEM\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity" /v "Enabled" /t REG_DWORD /d 0 /f
Infine, riavviare il dispositivo.
Nota
Se l'integrità della memoria è stata attivata con il blocco UEFI, sarà necessario disabilitare l'avvio protetto per completare i passaggi di ripristino di Windows RE.
Distribuzione dell'integrità della memoria nelle macchine virtuali
L'integrità della memoria può proteggere una macchina virtuale Hyper-V, proprio come una macchina fisica. I passaggi per abilitare l'integrità della memoria sono gli stessi dall'interno della macchina virtuale.
L'integrità della memoria protegge dal malware in esecuzione nella macchina virtuale guest. Non offre protezione aggiuntiva dall'amministratore host. Dall'host è possibile disabilitare l'integrità della memoria per una macchina virtuale:
Set-VMSecurity -VMName <VMName> -VirtualizationBasedSecurityOptOut $true
Requisiti per l'esecuzione dell'integrità della memoria nelle macchine virtuali Hyper-V
- L'host Hyper-V deve eseguire almeno Windows Server 2016 o Windows 10 versione 1607.
- La macchina virtuale Hyper-V deve essere di seconda generazione ed eseguire almeno Windows Server 2016 o Windows 10.
- L'integrità della memoria e la virtualizzazione annidata possono essere abilitate contemporaneamente. Per abilitare il ruolo Hyper-V nella macchina virtuale, è prima necessario installare il ruolo Hyper-V in un ambiente di virtualizzazione annidato di Windows.
- Fibre Channel virtuale adattatori non sono compatibili con l'integrità della memoria. Prima di collegare un adattatore Fibre Channel virtuale a una macchina virtuale, è necessario rifiutare esplicitamente la sicurezza basata su virtualizzazione usando
Set-VMSecurity
. - L'opzione AllowFullSCSICommandSet per i dischi pass-through non è compatibile con l'integrità della memoria. Prima di configurare un disco pass-through con AllowFullSCSICommandSet, è necessario rifiutare esplicitamente la sicurezza basata su virtualizzazione usando
Set-VMSecurity
.