Condividi tramite


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
  • Intel 8a generazione o successiva a partire da Windows 11 versione 22H2 (processori Core di prima generazione e versioni successive solo per Windows 11, versione 21H2)
  • Architettura AMD Zen 2 e versioni successive
  • Qualcomm Distribuzionon 8180 e versioni successive
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.

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