Integrità della memoria e abilitazione VBS
L'integrità della memoria è una funzionalità di sicurezza basata su virtualizzazione (VBS) disponibile in Windows 10, Windows 11 e Windows Server 2016 o versione successiva. L'integrità della memoria e la sicurezza basata su vbs migliorano il modello di minaccia di Windows e forniscono protezioni più avanzate contro il malware che tenta di sfruttare il kernel di Windows. La sicurezza basata su virtualizzazione usa l'hypervisor Di Windows per creare un ambiente virtuale isolato che diventa la radice di attendibilità del sistema operativo che presuppone che il kernel possa essere compromesso. L'integrità della memoria è un componente critico che protegge e protegge Windows eseguendo l'integrità del codice in modalità kernel all'interno dell'ambiente virtuale isolato della sicurezza basata su virtualizzazione. L'integrità della memoria limita anche le allocazioni di memoria del kernel che potrebbero essere usate per compromettere il sistema, assicurandosi che le pagine di memoria kernel vengano eseguite solo dopo aver superato i controlli di integrità del codice all'interno dell'ambiente di runtime protetto e le pagine eseguibili stesse non siano mai scrivibili.
Nota
L'integrità della memoria viene talvolta definita integrità del codice protetta dall'hypervisor (HVCI) o hypervisor applicata all'integrità del codice ed è stata originariamente rilasciata come parte di Device Guard. Device Guard non viene più usato tranne per individuare l'integrità della memoria e le impostazioni VBS in Criteri di gruppo o nel Registro di sistema di Windows.
Per altre informazioni su queste protezioni, vedere Virtualization Based Security System Resource Protections .See Virtualization Based Security System Resource Protections for more details on these protections.
Abilitazione predefinita
L'integrità della memoria è attivata per impostazione predefinita su installazioni pulite di Windows 11 e in precedenza solo su installazioni pulite di Windows 10 in modalità S, su hardware compatibile come descritto in questo articolo. È anche attivato per impostazione predefinita su tutti i PC protetti. In altri sistemi che non soddisfano i requisiti di abilitazione automatica dell'integrità della memoria, i clienti possono acconsentire esplicitamente usando uno dei metodi descritti in come abilitare l'integrità della memoria. I professionisti IT e gli utenti finali hanno sempre il controllo finale sull'abilitazione dell'integrità della memoria.
Funzionalità hardware per l'abilitazione automatica
L'integrità della memoria è attivata per impostazione predefinita quando un PC soddisfa le funzionalità hardware minime seguenti:
Componente | Dettagli |
---|---|
Processore |
|
RAM | Minimo 8 GB (applicabile solo per processori x64) |
Storage | SSD con dimensioni minime di 64 GB |
Driver | I driver compatibili con l'integrità della memoria devono essere installati. Per altre informazioni sui driver, vedere Compatibilità dei driver con integrità della memoria. |
BIOS | La virtualizzazione deve essere abilitata |
Se si sta creando un'immagine che non abilita automaticamente l'integrità della memoria, è comunque possibile configurare l'immagine in modo che sia attivata per impostazione predefinita.
Nota
L'abilitazione automatica riguarda solo le installazioni pulite, non gli aggiornamenti dei dispositivi esistenti.
Nota
I processori desktop Intel 11th generation Core non sono inclusi nella logica di abilitazione predefinita corrente. Tuttavia, sono una piattaforma consigliata per l'integrità della memoria e possono essere abilitate dall'OEM.
Integrità della memoria e controlli VBS
Questa sezione enumera il modo in cui i produttori di dispositivi e gli utenti finali possono interagire con l'integrità della memoria e la sicurezza basata su vbs. Per informazioni su come controllare lo stato di integrità della memoria come amministratore, vedere Come attivare l'integrità della memoria.
Attivare l'integrità della memoria
Anche se Windows attiva l'integrità della memoria per impostazione predefinita per la maggior parte dei sistemi, esistono diversi motivi che potrebbero impedire che ciò accada. Gli OEM possono assicurarsi che l'integrità della memoria sia attivata per i dispositivi configurando le chiavi del Registro di sistema nell'immagine del sistema operativo.
Configurazione consigliata
Impostare le due chiavi del Registro di sistema seguenti nell'immagine per assicurarsi che l'integrità della memoria sia attivata.
Chiave del Registro di sistema | Valore |
---|---|
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity | Enabled=1 |
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity | WasEnabledBy=1 |
HKLM\System\CurrentControlSet\Control\DeviceGuard\Scenarios\HypervisorEnforcedCodeIntegrity | EnabledBootId=<Current BootId> |
BootId è un contatore che incrementa ogni avvio riuscito e si trova nella chiave del Registro di sistema: HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Memory Management\PrefetchParameters\BootId Le chiavi del Registro di sistema WasEnabledBy e EnabledBootId controllano un'impostazione che impedisce l'avvio di un dispositivo. Se impostato, il dispositivo disattiva automaticamente l'integrità della memoria se il sistema si arresta in modo anomalo durante l'avvio, potenzialmente causato dall'integrità della memoria che blocca un driver non compatibile critico per l'avvio. Questa funzionalità di disabilitazione automatica è disponibile solo se BootId è minore di EnabledBootId + 3. In alcune versioni di Windows, la funzionalità di disabilitazione automatica è progettata per ripristinare se gli errori di avvio continuano anche dopo la disattivazione dell'integrità della memoria, a indicare che l'integrità della memoria non era la causa radice degli errori.
Nota
Per i sistemi a sicurezza elevata, è consigliabile non impostare WasEnabledBy e EnabledBootId .
Risoluzione dei problemi
Identificazione dello stato di integrità della memoria
La chiave di regkey volatile seguente riflette lo stato dell'integrità della memoria:
Chiave del Registro di sistema | Valore |
---|---|
HKLM\System\CurrentControlSet\Control\CI\State | HVCIEnabled |
Altri modi per controllare lo stato di integrità della memoria sono esaminare MsInfo32 in Servizi di sicurezza basati su virtualizzazione In esecuzione o fare riferimento alla pagina Impostazioni di isolamento di base nell'app Sicurezza di Windows per visualizzare il valore dell'integrità della memoria. È disponibile anche un'interfaccia WMI per controllare l'uso degli strumenti di gestione, vedere Convalidare le funzionalità di integrità della memoria e vbs abilitate.
Problemi del driver di debug
Controllare i log di integrità del codice per verificare se i driver sono stati bloccati per il caricamento in seguito all'integrità della memoria. Si trovano in Visualizzatore eventi nel percorso seguente:
Applications and Service Logs\Microsoft\Windows\CodeIntegrity\Operational
In genere, gli eventi di compatibilità dell'integrità della memoria hanno EventID=3087
Controllare i risultati dell'abilitazione predefinita dell'integrità della memoria
Per visualizzare i dettagli sui risultati dell'abilitazione predefinita dell'integrità della memoria, controllare il setupact.log e cercare HVCI
. Verranno visualizzati uno dei log dei risultati seguenti, nonché i controlli con esito positivo/negativo che causano la decisione di abilitazione:
Integrità della memoria abilitata: SYSPRP HVCI: Enabling HVCI
Integrità della memoria non abilitata: SYSPRP HVCI: OS does not meet HVCI auto-enablement requirements. Exiting now.
Se il dispositivo è stato rifiutato esplicitamente dall'abilitazione dell'integrità della memoria tramite il metodo regkey descritto in precedenza, questo sarà l'unico log dal sysprep dell'integrità della memoria. Se il dispositivo presenta un problema di compatibilità, deve essere identificato nei log precedenti con il messaggio di errore:
SYSPRP HVCI: Compatibility did not pass. VBS_COMPAT_ISSUES 0xXXXXXXXX
Di seguito è riportata un'enumerazione dei potenziali problemi di compatibilità della vbs o dell'integrità della memoria. Ogni problema è rappresentato da un singolo indice in una matrice di bit e il messaggio di errore restituisce il valore esadecimale risultante da ogni bit di errore presente.
Indice bit | Problema di compatibilità | Valore esadecimale | Architettura |
---|---|---|---|
0 | Architettura non supportata (ad esempio x86) | 0x00000001 | |
1 | SLAT obbligatorio | 0x00000002 | x64 |
2 | Funzionalità di avvio protetto richiesta | 0x00000004 | x64 |
3 | IOMMU obbligatorio | 0x00000008 | x64 |
4 | MBEC/GMET obbligatorio | 0x00000010 | x64 |
5 | UEFI obbligatorio | 0x00000020 | x64 |
6 | Tabella degli attributi di memoria WX UEFI richiesta | 0x00000040 | x64 |
7 | Tabella WSMT ACPI obbligatoria | 0x00000080 | x64 |
8 | Blocco MOR UEFI obbligatorio | 0x00000100 | x64 |
9 | Deprecato | ||
10 | Virtualizzazione hardware necessaria | 0x00000400 | x64 |
11 | Avvio protetto obbligatorio | 0x00000800 | ARM64 |
12 | Deprecato | ||
13 | Il dispositivo non soddisfa le dimensioni minime del volume richiesto di 64 GB | 0x00002000 | x64, ARM64 |
14 | Unità SSD di sistema richiesta | 0x00004000 | x64, ARM64 |
15 | Intel CET Required (applicabile solo in W11 21H2) | 0x00008000 | x64 |
16 | Arm SoC non è compatibile con la sicurezza basata su vbs | 0x00010000 | ARM64 |
17 | 8 GB di RAM necessaria | 0x00020000 | x64 |
Esempio di codice di errore e identificazione degli errori: VBS_COMPAT_ISSUES 0x000000C0
0x000000C0 -> 0x00000080 AND 0x00000040 -> Tabella degli attributi di memoria WX UEFI richiesta, tabella WSMT ACPI richiesta