Application de scripts avec Windows Defender Contrôle d’application (WDAC)

Remarque

Certaines fonctionnalités de Windows Defender Contrôle d’application ne sont disponibles que sur des versions spécifiques de Windows. En savoir plus sur la disponibilité des fonctionnalités de contrôle d’application.

Important

L’option 11 Disabled :Script Enforcement n’est pas prise en charge sur Windows Server 2016 ou sur Windows 10 1607 LTSB et ne doit pas être utilisée sur ces plateformes. Cela entraîne des comportements d’application de script inattendus.

Vue d’ensemble de l’application des scripts

Par défaut, l’application des scripts est activée pour toutes les stratégies WDAC, sauf si l’option 11 Disabled :Script Enforcement est définie dans la stratégie. L’application de script WDAC implique une liaison entre un hôte de script compatible, tel que PowerShell, et WDAC. Toutefois, l’hôte de script gère le comportement d’application réel. Certains hôtes de script, comme l’hôte d’application HTML Microsoft (mshta.exe), bloquent toute l’exécution du code si une stratégie UMCI WDAC est active. La plupart des hôtes de script demandent d’abord à WDAC si un script doit être autorisé à s’exécuter en fonction des stratégies WDAC actuellement actives. L’hôte de script bloque, autorise ou modifie la façon dont le script est exécuté pour protéger au mieux l’utilisateur et l’appareil.

La validation des scripts signés est effectuée à l’aide de l’API WinVerifyTrust. Pour réussir la validation, la racine de signature doit être présente dans le magasin racine approuvé sur l’appareil et votre stratégie WDAC doit l’autoriser. Ce comportement est différent de la validation WDAC pour les fichiers exécutables, qui ne nécessite pas l’installation du certificat racine.

WDAC partage le journal des événements AppLocker - MSI et Script pour tous les événements d’application de script. Chaque fois qu’un hôte de script demande à WDAC si un script doit être autorisé, un événement est journalisé avec la réponse WDAC renvoyée à l’hôte de script. Pour plus d’informations sur les événements d’application de script WDAC, consultez Présentation des événements De contrôle d’application.

Remarque

Lorsqu’un script s’exécute qui n’est pas autorisé par la stratégie, WDAC déclenche un événement indiquant que le script a été « bloqué ». Toutefois, le comportement d’application de script réel est géré par l’hôte de script et peut ne pas bloquer complètement l’exécution du fichier.

Sachez également que certains hôtes de script peuvent modifier leur comportement même si une stratégie WDAC est en mode audit uniquement. Vous devez passer en revue les informations spécifiques de l’hôte de script dans cet article et effectuer des tests approfondis dans votre environnement pour vous assurer que les scripts que vous devez exécuter fonctionnent correctement.

Hôtes de script éclairés qui font partie de Windows

PowerShell

Vos stratégies WDAC doivent autoriser l’exécution de tous les scripts PowerShell (.ps1), modules (.psm1) et manifestes (.psd1) avec des droits de langage complet.

Vos stratégies WDAC doivent également autoriser tous les modules dépendants chargés par un module autorisé, et les fonctions de module doivent être exportées explicitement par nom lorsque WDAC est appliqué. Les modules qui ne spécifient aucune fonction exportée (aucune liste de noms d’exportation) se chargent toujours, mais aucune fonction de module n’est accessible. Le chargement des modules qui utilisent des caractères génériques (*) dans leur nom échoue.

Tout script PowerShell qui n’est pas autorisé par la stratégie WDAC s’exécute toujours, mais uniquement en mode de langage limité.

L’approvisionnement en points PowerShell n’est pas recommandé. Au lieu de cela, les scripts doivent utiliser des modules PowerShell pour fournir des fonctionnalités courantes. Si un fichier de script autorisé tente d’exécuter des fichiers de script d’origine dot, ces fichiers de script doivent également passer la stratégie.

WDAC place PowerShell interactif en mode de langage limité si une stratégie UMCI WDAC est appliquée et qu’une stratégie WDAC active active active l’application des scripts, même si cette stratégie est en mode audit. Pour exécuter PowerShell interactif avec des droits de langage complet, vous devez désactiver l’application des scripts pour toutes les stratégies.

Pour plus d’informations, consultez À propos des modes de langage et du mode de langage limité.

VBscript, cscript et jscript

Vos stratégies WDAC doivent autoriser l’exécution de tous les scripts à l’aide de l’hôte de script windows (wscript.exe) ou de l’hôte de script basé sur la console Microsoft (cscript.exe). Si ce n’est pas le cas, le script est bloqué.

Microsoft HTML Application Host (MSHTA) et MSXML

Toute l’exécution du code à l’aide de MSHTA ou MSXML est bloquée si une stratégie WDAC avec application de script est active, même si cette stratégie est en mode audit.

Objets COM

WDAC applique également une liste d’autorisation restreinte pour les objets COM que votre stratégie WDAC peut développer ou restreindre davantage. L’application de l’objet COM n’est pas affectée par l’option 11 Disabled :Script Enforcement. Pour plus d’informations sur la façon d’autoriser ou de refuser des objets COM, consultez Autoriser l’inscription d’objets COM.

Scripts qui ne sont pas directement contrôlés par WDAC

WDAC ne contrôle pas directement l’exécution du code via le processeur de commandes Windows (cmd.exe), y compris .batfichiers de script /.cmd. Toutefois, tout ce qu’un tel script de traitement par lots tente d’exécuter est soumis au contrôle WDAC. Si vous n’avez pas besoin d’exécuter cmd.exe, il est recommandé de la bloquer ou de l’autoriser uniquement par exception en fonction du processus d’appel. Consultez Utiliser une stratégie de contrôle d’application Windows Defender pour contrôler des plug-ins, des compléments et des modules spécifiques.

WDAC ne contrôle pas les scripts exécutés via un hôte de script non allumé, comme de nombreux moteurs Java ou Python tiers. Si votre stratégie WDAC autorise l’exécution d’un hôte de script non allumé, vous autorisez implicitement l’exécution de tous les scripts via cet hôte. Pour les hôtes de script non-Microsoft, vous devez case activée avec le fournisseur de logiciels si leurs hôtes de script sont compatibles avec la stratégie WDAC.