Applicazione di script con Windows Defender controllo applicazione (WDAC)

Nota

Alcune funzionalità di controllo delle applicazioni Windows Defender sono disponibili solo in versioni specifiche di Windows. Altre informazioni sulla disponibilità delle funzionalità di Controllo applicazioni.

Importante

Opzione 11 Disabilitato: l'imposizione degli script non è supportata in Windows Server 2016 o in Windows 10 1607 LTSB e non deve essere usata in tali piattaforme. In questo modo si verificheranno comportamenti imprevisti di imposizione dello script.

Panoramica dell'imposizione degli script

Per impostazione predefinita, l'imposizione degli script è abilitata per tutti i criteri WDAC, a meno che l'opzione 11 Disabled:Script Enforcement non sia impostata nei criteri. L'imposizione di script WDAC comporta un handshake tra un host di script con riconoscimento automatico, ad esempio PowerShell e WDAC. Tuttavia, l'host di script gestisce il comportamento effettivo di imposizione. Alcuni host di script, ad esempio Microsoft HTML Application Host (mshta.exe), bloccano l'esecuzione di tutto il codice se sono attivi criteri UMCI WDAC. La maggior parte degli host di script chiede innanzitutto a WDAC se è necessario consentire l'esecuzione di uno script in base ai criteri WDAC attualmente attivi. L'host di script blocca, consente o modifica la modalità di esecuzione dello script per proteggere al meglio l'utente e il dispositivo.

La convalida per gli script firmati viene eseguita usando l'API WinVerifyTrust. Per passare la convalida, la radice della firma deve essere presente nell'archivio radice attendibile nel dispositivo e i criteri WDAC devono consentirla. Questo comportamento è diverso dalla convalida WDAC per i file eseguibili, che non richiede l'installazione del certificato radice.

WDAC condivide il registro eventi AppLocker - MSI e Script per tutti gli eventi di imposizione degli script. Ogni volta che un host di script chiede a WDAC se uno script deve essere consentito, viene registrato un evento con la risposta WDAC restituita all'host dello script. Per altre informazioni sugli eventi di imposizione degli script WDAC, vedere Informazioni sugli eventi di controllo delle applicazioni.

Nota

Quando viene eseguito uno script non consentito dai criteri, WDAC genera un evento che indica che lo script è stato "bloccato". Tuttavia, il comportamento effettivo di imposizione dello script viene gestito dall'host dello script e potrebbe non bloccare completamente l'esecuzione del file.

Tenere anche presente che alcuni host di script possono modificare il comportamento anche se un criterio WDAC è in modalità di controllo. È consigliabile esaminare le informazioni specifiche dell'host di script in questo articolo e testare accuratamente l'ambiente per assicurarsi che gli script da eseguire funzionino correttamente.

Host script con riconoscimento automatico che fanno parte di Windows

PowerShell

I criteri WDAC devono consentire l'esecuzione di tutti gli script di PowerShell (.ps1), dei moduli (con estensione psm1) e dei manifesti (con estensione psd1) con diritti di linguaggio completo.

I criteri WDAC devono inoltre consentire tutti i moduli dipendenti caricati da un modulo consentito e le funzioni del modulo devono essere esportate in modo esplicito in base al nome quando viene applicato WDAC. I moduli che non specificano alcuna funzione esportata (nessun elenco di nomi di esportazione) vengono ancora caricati, ma non sono accessibili funzioni del modulo. I moduli che usano caratteri jolly (*) nel nome non verranno caricati.

Qualsiasi script di PowerShell non consentito dai criteri WDAC viene ancora eseguito, ma solo in modalità linguaggio vincolato.

Il dot-sourcing di PowerShell non è consigliato. Gli script devono invece usare i moduli di PowerShell per fornire funzionalità comuni. Se un file di script consentito tenta di eseguire file di script di origine dot, anche tali file di script devono passare i criteri.

WDAC inserisce PowerShell interattivo in modalità linguaggio vincolato se vengono applicati criteri WDAC UMCI e qualsiasi criterio WDAC attivo consente l'imposizione dello script, anche se tale criterio è in modalità di controllo. Per eseguire PowerShell interattivo con diritti di linguaggio completo, è necessario disabilitare l'imposizione degli script per tutti i criteri.

Per altre informazioni, vedere Informazioni sulle modalità del linguaggio e la modalità del linguaggio vincolato.

VBscript, cscript e jscript

I criteri WDAC devono consentire l'esecuzione di tutti gli script usando l'host script basato su Windows (wscript.exe) o l'host script basato su microsoft console (cscript.exe). In caso contrario, lo script è bloccato.

Microsoft HTML Application Host (MSHTA) e MSXML

Tutta l'esecuzione del codice tramite MSHTA o MSXML viene bloccata se sono attivi criteri WDAC con imposizione dello script, anche se tale criterio è in modalità di controllo.

Oggetti COM

WDAC applica inoltre un elenco di elementi consentiti con restrizioni per gli oggetti COM che i criteri WDAC possono espandere o limitare ulteriormente. L'imposizione degli oggetti COM non è influenzata dall'opzione 11 Disabled:Script Enforcement. Per altre informazioni su come consentire o negare oggetti COM, vedere Consentire la registrazione di oggetti COM.

Script che non sono controllati direttamente da WDAC

WDAC non controlla direttamente l'esecuzione del codice tramite il processore dei comandi di Windows (cmd.exe), inclusi .batfile di script /.cmd. Tuttavia, tutto ciò che uno script batch di questo tipo tenta di eseguire è soggetto al controllo WDAC. Se non è necessario eseguire cmd.exe, è consigliabile bloccarlo in modo definitivo o consentirlo solo in base all'eccezione in base al processo chiamante. Vedere Usare un criterio di controllo delle applicazioni Windows Defender per controllare plug-in, componenti aggiuntivi e moduli specifici.

WDAC non controlla gli script eseguiti tramite un host di script non illuminato, ad esempio molti motori Java o Python di terze parti. Se i criteri WDAC consentono l'esecuzione di un host di script non illuminato, è possibile consentire in modo implicito l'esecuzione di tutti gli script attraverso tale host. Per gli host di script non Microsoft, è necessario verificare con il fornitore del software se gli host di script sono abilitati per i criteri WDAC.