Virtualization-based security (VBS) e Windows Defender Application Control (WDAC)

La sicurezza basata su virtualizzazione (VBS, Virtualization-based Security) in Windows è una tecnologia che utilizza funzionalità di virtualizzazione hardware per creare e isolare una regione sicura della memoria del sistema operativo. Questo ambiente isolato consente di eseguire funzionalità di sicurezza avanzate con un livello di protezione maggiore rispetto a quello che sarebbe possibile in un sistema operativo tradizionale.

La Virtualization-based security crea un ambiente virtuale all’interno del quale possono essere eseguite funzionalità di sicurezza critiche. In questo modo, anche se un malware compromettesse il sistema operativo principale, non sarebbe in grado di accedere alle funzionalità di sicurezza eseguite all’interno dell’ambiente virtuale. La Virtualization-based security supporta diverse funzionalità, tra cui:

  • Credential Guard: Protegge le credenziali di accesso impedendo che vengano rubate da malware.
  • Hypervisor-Enforced Code Integrity (HVCI): Garantisce che solo il codice con firma digitale valida venga eseguito nel kernel del sistema operativo, prevenendo l’esecuzione di malware.
  • Secure Kernel: Fornisce un kernel isolato e protetto che esegue operazioni di sicurezza sensibili.

 

A che serve la VBS?

Gli obiettivi della Virtualization-based security sono molteplici:

  • Isolare le operazioni di sicurezza: Le funzionalità di sicurezza critiche vengono eseguite in un ambiente isolato, riducendo il rischio che malware comprometta il sistema.
  • Proteggere le credenziali: Impedisce l’accesso non autorizzato alle credenziali di accesso.
  • Rafforzare la sicurezza del kernel: Previene l’esecuzione di codice non autorizzato a livello di kernel, migliorando la resistenza contro attacchi sofisticati come gli exploit zero-day.

 

È utile abilitarla?

Abilitare la Virtualization-based security può fornire un significativo aumento della sicurezza, specialmente in ambienti ad alto rischio come le reti aziendali. Tuttavia, ci sono alcune considerazioni da tenere in mente:

  • Requisiti hardware: La VBS richiede un processore con supporto per la virtualizzazione (ad esempio Intel VT-x o AMD-V) e TPM 2.0.
  • Compatibilità del software: Alcune applicazioni e driver potrebbero non essere compatibili con la VBS, quindi è importante testare la compatibilità prima di abilitare questa funzione.
  • Prestazioni: La VBS può avere un impatto sulle prestazioni, sebbene generalmente questo impatto sia minimo rispetto ai benefici in termini di sicurezza.

Per abilitarla è sufficiente utilizzare le Group Policy. In Computer Configuration > Administrative Templates > System > Device Guard dovete abilitare Turn On Virtualization Based Security.

Le impostazioni che è possibile configurare sono:

Protezione del codice di integrità basata sulla virtualizzazione: Questa impostazione abilita la protezione del codice di integrità in modalità kernel basata sulla virtualizzazione. Quando è abilitata, vengono applicate protezioni alla memoria in modalità kernel e il percorso di convalida del codice di integrità è protetto dalla funzionalità VBS.

  • Disabled (Disabilitato): disattiva la Protezione del Codice di Integrità Basata sulla Virtualizzazione da remoto se era precedentemente attivata con l’opzione “Enabled without lock”.
  • Enabled with UEFI lock (Abilitato con blocco UEFI): garantisce che la Protezione del Codice di Integrità Basata sulla Virtualizzazione non possa essere disabilitata da remoto. Per disattivare la funzione, è necessario impostare la Group Policy su “Disabled” e rimuovere la funzionalità di sicurezza da ogni computer con un utente fisicamente presente, per cancellare la configurazione persista in UEFI.
  • Enabled without lock (Abilitato senza blocco): consente di disabilitare la Protezione del Codice di Integrità Basata sulla Virtualizzazione da remoto utilizzando la Group Policy.
  • Not Configured (Non configurato): lascia l’impostazione della policy indefinita. La Group Policy non scrive l’impostazione della policy nel registro, quindi non ha alcun impatto su computer o utenti. Se c’è un’impostazione attuale nel registro, non verrà modificata.
  • Require UEFI Memory Attributes Table (Richiede tabella degli attributi di memoria UEFI): abilita la Protezione del Codice di Integrità Basata sulla Virtualizzazione solo su dispositivi con supporto firmware UEFI per la Tabella degli Attributi di Memoria. I dispositivi senza questa tabella potrebbero avere firmware incompatibili con questa protezione, il che potrebbe portare a crash, perdita di dati o incompatibilità con certe schede plug-in. Se non si imposta questa opzione, i dispositivi mirati dovrebbero essere testati per garantire la compatibilità.

Avviso: Tutti i driver nel sistema devono essere compatibili con questa funzione o il sistema potrebbe bloccarsi. Assicurarsi che questa impostazione di policy venga distribuita solo a computer noti per essere compatibili.

Credential Guard: Questa impostazione consente agli utenti di attivare Credential Guard con sicurezza basata sulla virtualizzazione per aiutare a proteggere le credenziali.

  • Disabled (Disabilitato): disattiva Credential Guard da remoto se era precedentemente attivato con l’opzione “Enabled without lock”.
  • Enabled with UEFI lock (Abilitato con blocco UEFI): garantisce che Credential Guard non possa essere disabilitato da remoto. Per disattivare la funzione, è necessario impostare la Group Policy su “Disabled” e rimuovere la funzionalità di sicurezza da ogni computer con un utente fisicamente presente, per cancellare la configurazione persista in UEFI.
  • Enabled without lock (Abilitato senza blocco): consente di disabilitare Credential Guard da remoto utilizzando la Group Policy. I dispositivi che utilizzano questa impostazione devono eseguire almeno Windows 10 (Versione 1511).
  • Not Configured (Non Configurato): lascia l’impostazione della policy indefinita. La Group Policy non scrive l’impostazione della policy nel registro, quindi non ha alcun impatto su computer o utenti. Se c’è un’impostazione attuale nel registro, non verrà modificata.

Secure Launch: Questa impostazione configura il Secure Launch per proteggere la catena di avvio.

  • Not Configured (Non Configurato): è l’impostazione predefinita e consente la configurazione della funzione da parte degli utenti amministrativi.
  • Enabled (Abilitato): attiva Secure Launch su hardware supportato.

Figura 1: Abilitazione della Virtualization-based Security

Windows Defender Application Control

Windows Defender Application Control (WDAC) è una delle principali funzionalità di sicurezza di Windows che permette di controllare quali applicazioni e driver possono essere eseguiti su un dispositivo. WDAC è progettato per proteggere il sistema operativo da software non autorizzato e potenzialmente dannoso, migliorando così la sicurezza complessiva del dispositivo. Permette agli amministratori di creare criteri che specificano quali applicazioni e script sono autorizzati a essere eseguiti. Questo aiuta a prevenire l’esecuzione di codice non autorizzato o dannoso.

WDAC si integra con altre funzionalità di sicurezza di Windows, come Windows Defender Antivirus e Windows Defender Exploit Guard, per offrire una protezione completa. A proposito di Defender, ma avete già letto la mia guida Si fa presto a dire “Defender”! Facciamo un po’ di chiarezza – ICT Power?

NOTA: Microsoft ha effettuato una riorganizzazione del proprio portfolio di funzionalità di sicurezza e ha smesso di utilizzare il marchio Device Guard. Ora utilizza il marchio Windows Defender Application Control (WDAC) per riferirsi a molte delle funzionalità che erano originariamente parte di Device Guard.

NOTA 2: Windows Defender Application Control (WDAC) è disponibile in Windows 10 e Windows 11 Pro, ma alcune delle funzionalità avanzate di WDAC sono riservate alle edizioni Enterprise ed Education.

Per abilitare Windows Defender Application Control è sufficiente utilizzare le Group Policy. In Computer Configuration > Administrative Templates > System > Device Guard scegliete Deploy Windows Defender Application Control. Questa impostazione di policy permette di distribuire una Policy di Integrità del Codice su una macchina per controllare ciò che è consentito eseguire su quella macchina.

Se distribuite una Code Integrity Policy Windows limiterà ciò che può essere eseguito sia in modalità kernel sia sul desktop di Windows in base alla policy. Per abilitare questa policy, la macchina deve essere riavviata.

Il percorso del file deve essere un percorso UNC (ad esempio, \\NomeServer\NomeCondivisione\SIPolicy.p7b), oppure un percorso valido localmente (ad esempio, C:\NomeCartella\SIPolicy.p7b). L’account della macchina locale (LOCAL SYSTEM) deve avere i permessi di accesso al file della policy.

Un file SIPolicy.p7b è un file di Code Integrity Policy usato da Windows Defender Application Control (WDAC) per specificare quali applicazioni e driver possono essere eseguiti su un sistema. Questo file può essere creato usando strumenti come New-CIPolicy e ConvertFrom-CIPolicy utilizzando il modulo PowerShell per Device Guard.

  • Attributi dei certificati di firma del codice usati per firmare un’app e i relativi file binari
  • Attributi dei file binari dell’app che provengono dai metadati firmati per i file, ad esempio Nome file originale e versione, o hash del file
  • La reputazione dell’app come determinata dalla sicurezza intelligente di Microsoft Graph
  • Identità del processo che ha avviato l’installazione dell’app e dei relativi file binari
  • Percorso da cui viene avviata l’app o il file (a partire Windows 10 1903)
  • Processo che ha avviato l’app o il file binario

Di seguito è riportato un esempio di come potrebbe apparire una semplice policy di integrità del codice in formato XML, che può essere poi convertita in un file SIPolicy.p7b:

I criteri WDAC possono essere creati in qualsiasi edizione client di Windows 10 build 1903+, Windows 11 o in Windows Server 2016 e versioni successive. Per la distribuzione die criteri si veda a pagina Distribuzione di criteri WDAC (Application Control) Windows Defender – Windows Security | Microsoft Learn

Figura 2: Deploy Windows Defender Application Control

Ci sono delle controindicazioni ad abilitare la Virtualization-based Security e Windows Defender Application Control?

Abilitare la Virtualization-based Security e Windows Defender Application Control può avere alcune controindicazioni che è importante considerare prima di implementarle. Queste controindicazioni includono possibili problemi di compatibilità, impatti sulle prestazioni e requisiti hardware specifici:

  • Compatibilità del software e dei driver: Alcuni software e driver potrebbero non essere compatibili con VBS e Device Guard, poiché queste funzionalità richiedono che tutto il codice sia firmato digitalmente e verificato. Applicazioni legacy o non firmate digitalmente potrebbero non funzionare correttamente, causando interruzioni nei flussi di lavoro o nei servizi critici.
  • Impatto sulle prestazioni: L’abilitazione di queste funzionalità può comportare un sovraccarico aggiuntivo sul sistema, poiché vengono utilizzate funzionalità di virtualizzazione per isolare le operazioni di sicurezza. Potrebbe verificarsi un degrado delle prestazioni, soprattutto su hardware meno potente o su sistemi già fortemente utilizzati.
  • Requisiti hardware specifici: VBS e WDAC richiedono processori con supporto per la virtualizzazione hardware (come Intel VT-x o AMD-V) e TPM 2.0.

È fondamentale considerare attentamente le potenziali controindicazioni. Problemi di compatibilità del software e dei driver, impatti sulle prestazioni, requisiti hardware specifici e l’aumento della complessità della gestione IT sono fattori importanti da valutare. Pianificare e testare accuratamente prima dell’implementazione può aiutare a mitigare questi rischi e a garantire una transizione più fluida verso un ambiente più sicuro.

Sebbene l’abilitazione di VBS possa introdurre un rallentamento nelle prestazioni delle VM, i benefici in termini di sicurezza spesso superano gli svantaggi, specialmente in ambienti ad alto rischio o sensibili. Con una pianificazione e una configurazione adeguata, l’impatto sulle prestazioni può essere mitigato, garantendo che le VM rimangano sicure senza compromettere significativamente l’efficienza operativa.

 

Considerazioni sull’uso di Windows Defender Application Control nei domain controller

L’abilitazione di Windows Defender Credential Guard (che può essere scelta al momento dell’abilitazione della VBS, come abbiamo visto prima) nei controller di dominio NON è consigliata perché non fornisce alcuna sicurezza aggiuntiva ai controller di dominio e può causare problemi di compatibilità delle applicazioni eseguite nei controller di dominio. WDAC non fornisce protezioni per il database di Active Directory o per Security Accounts Manager (SAM). Le credenziali protette da Kerberos e NTLM quando WDAC è abilitato si trovano anche nel database di Active Directory (nei controller di dominio) e in SAM (per gli account locali).

 

Virtualization-based Security in Windows 11

In Windows 11 alcune funzionalità di Virtualization-Based Security (VBS) sono abilitate per impostazione predefinita su nuovi dispositivi che eseguono Windows 11, mentre su dispositivi aggiornati a Windows 11 potrebbero non essere abilitate di default.

Per verificare l’abilitazione potete utilizzare l’applicazione msinfo32.exe, come mostrato nella figura sotto:

Figura 3: Verifica dell’abilitazione di VBS in Windows 11

Per attivare o disattivare questa funzionalità in Windows 11 vi basterà cercare Core Isolation (Isolamento Core) nella barra di ricerca di WIndows e portare su Disattivato l’interruttore posizionato in corrispondenza della voce Integrità della memoria. Questa operazione richiede il riavvio di Windows.

Figura 4: Modifica della Memory integrity in Windows 11

Conclusioni

La Virtualization-Based Security (VBS) e il Windows Defender Application Control (WDAC) rappresentano significativi avanzamenti nell’approccio di Microsoft alla sicurezza dei sistemi Windows. Utilizzando la virtualizzazione hardware, VBS offre un robusto livello di protezione che isola le funzioni di sicurezza critiche, rendendo molto più difficile per gli attori malevoli compromettere il sistema. WDAC, d’altra parte, offre un controllo granulare su quali applicazioni e script possono essere eseguiti, assicurando che venga eseguito solo software affidabile.

Questi strumenti offrono diversi benefici chiave. Innanzitutto, VBS e WDAC migliorano notevolmente la sicurezza del sistema implementando tecniche di isolamento rigorose e politiche di controllo delle applicazioni stringenti, aiutando così a mitigare una vasta gamma di minacce, dal malware all’esecuzione non autorizzata di codice. Inoltre, riducono la superficie di attacco controllando l’esecuzione delle applicazioni e isolando le operazioni sensibili, diminuendo così i potenziali punti di ingresso per gli attaccanti e riducendo il rischio di exploit riusciti. Il WDAC aiuta le organizzazioni a mantenere la conformità con gli standard normativi garantendo che vengano eseguite solo le applicazioni approvate, un aspetto cruciale per i settori con requisiti di sicurezza stringenti.

Tuttavia, ci sono alcune considerazioni importanti da tenere a mente. Implementare queste tecnologie richiede una valutazione attenta della compatibilità delle applicazioni e dei driver. Le organizzazioni devono testare accuratamente il proprio software per garantire un funzionamento fluido in un ambiente con VBS e WDAC abilitati. Sebbene i benefici in termini di sicurezza siano sostanziali, può esserci un impatto percepibile sulle prestazioni del sistema. È quindi essenziale disporre di un supporto hardware adeguato e ottimizzare le risorse per minimizzare questo impatto. Inoltre, il dispiegamento e la gestione di VBS e WDAC aggiungono un livello di complessità alle operazioni IT. Gli amministratori devono essere ben preparati nella configurazione e manutenzione di queste funzionalità di sicurezza per sfruttarne appieno i benefici.

Guardando al futuro, con l’evolversi delle minacce informatiche, tecnologie come VBS e WDAC sono cruciali per mantenere robuste posture di sicurezza. La loro capacità di fornire una sicurezza profonda attraverso l’isolamento basato su hardware e il controllo rigoroso delle applicazioni le rende strumenti preziosi nella lotta contro attacchi sempre più sofisticati.

In conclusione, l’adozione di VBS e WDAC rappresenta un passo proattivo verso il rafforzamento dei sistemi Windows contro le minacce moderne. Sebbene portino con sé una maggiore complessità e possibili considerazioni sulle prestazioni, i significativi miglioramenti in termini di sicurezza che offrono li rendono componenti essenziali di una strategia di sicurezza completa. Le organizzazioni che cercano di potenziare le proprie difese troveranno in queste tecnologie strumenti indispensabili per proteggere i loro asset e dati critici.