Condividi tramite


Controllo dell'integrità del codice

L'integrità della memoria è una funzionalità di sicurezza basata su virtualizzazione disponibile in Windows 10, Windows 11 e Windows Server 2016 e versioni successive. 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 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.

Annotazioni

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.

I controlli di integrità del codice assicurano la compatibilità con i requisiti di utilizzo della memoria del kernel dell'integrità della memoria e rilevano le violazioni seguenti:

Codice di errore Problema di integrità del codice
0x2000:
  • 2 - L'indirizzo nel codice del driver in cui è stato rilevato l'errore.
  • 3 - Tipo di pool.
  • 4 - Pool Tag (se specificato).

Il chiamante ha specificato un tipo di pool eseguibile. (Previsto: NonPagedPoolNx)
0x2001:
  • 2 - L'indirizzo nel codice del driver in cui è stato rilevato l'errore.
  • 3 - Protezione pagina (WIN32_PROTECTION_MASK).
Il chiamante ha specificato una protezione di pagina eseguibile. (Previsto: bit PAGE_EXECUTE* cancellati)
0x2002:
  • 2 - L'indirizzo nel codice del driver in cui è stato rilevato l'errore.
  • 3 - Priorità pagina (MM_PAGE_PRIORITY or logico con MdlMapping*).
Il chiamante ha specificato un mapping MDL eseguibile. Previsto: MdlMappingNoExecute.
0x2003:
  • 2 - Nome file immagine (stringa Unicode).
  • 3 - L'indirizzo dell'intestazione di sezione.
  • 4 - Nome della sezione (stringa con codifica UTF-8).
L'immagine contiene una sezione eseguibile e scrivibile.
0x2004:
  • 2 - Nome file immagine (stringa Unicode).
  • 3 - L'indirizzo dell'intestazione di sezione.
  • 4 - Nome della sezione (stringa con codifica UTF-8).
L'immagine contiene una sezione non allineata alla pagina.
0x2005:
  • 2 - Nome file immagine (stringa Unicode).
  • 3 - Directory IAT.
  • 4 - Nome della sezione (stringa con codifica UTF-8).
L'immagine contiene un IAT che si trova in una sezione eseguibile.

Attivazione di questa opzione:

È possibile attivare il controllo dell'integrità del codice per uno o più driver usando Gestione verifica driver o la riga di comando Verifier.exe. Per informazioni dettagliate, vedere Selezione delle opzioni del verificatore dei driver. È necessario riavviare il computer per attivare o disattivare l'opzione di controllo dell'integrità del codice.

  • Alla riga di comando

    Nella riga di comando il controllo dell'integrità del codice è rappresentato da 0x02000000 (bit 25). Per esempio:

    verifier /flags 0x02000000 /driver MyDriver.sys

    La funzionalità sarà attiva dopo l'avvio successivo.

  • Uso del Driver Verifier Manager

  1. Avviare il Manager verifica driver. Digitare Verifier in una finestra del prompt dei comandi.
  2. Selezionare Crea impostazioni personalizzate (per sviluppatori di codice) e quindi fare clic su Avanti.
  3. Selezionare(controllare) il controllo dell'integrità del codice.
  4. Riavviare il computer.

Implementare codice compatibile con l'integrità della memoria