Personnaliser la protection contre les codes malveillants exploitant une faille de sécurité

S’applique à :

Vous voulez découvrir Defender pour point de terminaison ? Inscrivez-vous pour bénéficier d’un essai gratuit.

Exploit Protection applique automatiquement un certain nombre de techniques d’atténuation des attaques sur les processus du système d’exploitation et sur les applications individuelles.

Configurez ces paramètres à l’aide de l’application Sécurité Windows sur un appareil individuel. Ensuite, exportez la configuration en tant que fichier XML afin de pouvoir la déployer sur d’autres appareils. Utilisez stratégie de groupe pour distribuer le fichier XML à plusieurs appareils à la fois. Vous pouvez également configurer les atténuations avec PowerShell.

Cet article répertorie chacune des atténuations disponibles dans exploit protection. Il indique si l’atténuation peut être appliquée à l’échelle du système ou à des applications individuelles, et fournit une brève description du fonctionnement de l’atténuation.

Il décrit également comment activer ou configurer les atténuations à l’aide de fournisseurs de services de configuration (CSP) Sécurité Windows, PowerShell et gestion des appareils mobiles (MDM). Il s’agit de la première étape de la création d’une configuration que vous pouvez déployer sur votre réseau. L’étape suivante implique la génération, l’exportation, l’importation et le déploiement de la configuration sur plusieurs appareils.

Avertissement

Certaines technologies d’atténuation en matière de sécurité peuvent présenter des problèmes de compatibilité avec certaines applications. Vous devez tester la protection contre le code malveillant exploitant une faille de sécurité dans tous les scénarios d’utilisation cibles en utilisant le mode audit avant de déployer la configuration dans un environnement de production ou sur le reste de votre réseau.

Atténuations de la protection contre l’exploitation

Toutes les atténuations peuvent être configurées pour des applications individuelles. Certaines atténuations peuvent également être appliquées au niveau du système d’exploitation.

Vous pouvez définir chacune des atténuations sur, désactivées ou sur leur valeur par défaut. Certaines atténuations ont des options supplémentaires qui sont indiquées dans la description du tableau.

Les valeurs par défaut sont toujours spécifiées entre crochets à l’option Utiliser par défaut pour chaque atténuation. Dans l’exemple suivant, la valeur par défaut pour la prévention de l’exécution des données est « Activé ».

La configuration Utiliser par défaut pour chacun des paramètres d’atténuation indique notre recommandation pour un niveau de protection de base pour l’utilisation quotidienne des utilisateurs à domicile. Les déploiements d’entreprise doivent prendre en compte la protection requise pour leurs besoins individuels et doivent peut-être modifier la configuration en dehors des valeurs par défaut.

Pour connaître les applets de commande PowerShell associées pour chaque atténuation, consultez le Tableau de référence PowerShell en bas de cet article.

Atténuation Description Peut être appliqué à Mode d’audit disponible
Protection du flux de contrôle (CFG) Garantit l’intégrité du flux de contrôle des appels indirects. Peut éventuellement supprimer les exportations et utiliser une CFG stricte. Au niveau du système et de l’application Non
Prévention de l’exécution des données (PED) Empêche l’exécution du code à partir de pages de mémoire de données uniquement, telles que le tas et les piles. Configurable uniquement pour les applications 32 bits (x86), activées définitivement pour toutes les autres architectures. Peut éventuellement activer l’émulation de thunk ATL. Au niveau du système et de l’application Non
Forcer la randomisation des images (randomisation du format d’espace d’adresse obligatoire) Déplace de force les images non compilées avec /DYNAMICBASE. Peut éventuellement échouer au chargement d’images qui n’ont pas d’informations de relocation. Au niveau du système et de l’application Non
Randomiser les allocations de mémoire (randomisation du format d’espace d’adresse de bas en haut) Rend aléatoires les emplacements pour les allocations de mémoire virtuelle. Il inclut les segments de structure système, les piles, les tebs et les pebs. Peut éventuellement utiliser une variance de randomisation plus large pour les processus 64 bits. Au niveau du système et de l’application Non
Valider les chaînes d’exception (SEHOP) Garantit l’intégrité d’une chaîne d’exceptions lors de la répartition des exceptions. Configurable uniquement pour les applications 32 bits (x86). Au niveau du système et de l’application Non
Valider l’intégrité du segment de mémoire Met fin à un processus lorsque l’endommagement du tas est détecté. Au niveau du système et de l’application Non
Protection du code arbitraire (ACG) Empêche l’introduction de code exécutable non-image et empêche la modification des pages de codes. Peut éventuellement permettre l'opt-out du fil et autoriser le downgrade à distance (configurable uniquement avec PowerShell). Au niveau de l’application uniquement Oui
Bloquer les images de faible intégrité Empêche le chargement d’images marquées avec une intégrité faible. Au niveau de l’application uniquement Oui
Bloquer les images distantes Empêche de charger des images provenant de périphériques distants. Au niveau de l’application uniquement Non
Bloquer les polices non approuvées Empêche le chargement des polices GDI non installées dans le répertoire des polices système, notamment les polices à partir du web. Au niveau de l’application uniquement Oui
Protection de l’intégrité du code Limite le chargement des images signées par Microsoft, WHQL ou une version ultérieure. Peut éventuellement autoriser Microsoft Store images signées. Au niveau de l’application uniquement Oui
Désactiver les points d’extension Désactive divers mécanismes d’extensibilité qui autorisent l’injection de DLL dans tous les processus, tels que les DLL AppInit, les crochets de fenêtre et les fournisseurs de services Winsock. Au niveau de l’application uniquement Non
Désactiver les appels système Win32k Empêche une application d’utiliser la table d’appels système Win32k. Au niveau de l’application uniquement Oui
Ne pas autoriser le blocage des processus enfants Empêche une application de créer des processus enfants. Au niveau de l’application uniquement Oui
Exporter le filtrage d’adresses (EAF) Détecte les opérations dangereuses résolues par du code malveillant. Peut éventuellement valider l’accès par les modules couramment utilisés par les exploits. Au niveau de l’application uniquement Oui
Importer le filtrage d’adresses (IAF) Détecte les opérations dangereuses résolues par du code malveillant. Au niveau de l’application uniquement Oui
Simuler l’exécution (SimExec) Garantit que les appels aux API sensibles retournent aux appelants légitimes. Configurable uniquement pour les applications 32 bits (x86). Non compatible avec ACG. Au niveau de l’application uniquement Oui
Valider l’invocation de l’API (CallerCheck) Garantit que les API sensibles sont appelées par des appelants légitimes. Configurable uniquement pour les applications 32 bits (x86). Non compatible avec ACG Au niveau de l’application uniquement Oui
Valider l’utilisation de la poignée Provoque le déclenchement d’une exception sur toutes les références de handle non valides. Au niveau de l’application uniquement Non
Valider l’intégrité des dépendances d’image Applique la signature de code pour le chargement des dépendances d’image Windows. Au niveau de l’application uniquement Non
Valider l’intégrité de la pile (StackPivot) Garantit que la pile n’a pas été redirigée pour les API sensibles. Non compatible avec ACG. Au niveau de l’application uniquement Oui

Importante

Si vous ajoutez une application à la section Paramètres du programme et que vous y configurez des paramètres d’atténuation individuels, ils sont respectés au-dessus de la configuration pour les mêmes atténuations spécifiées dans la section Paramètres système . La matrice et les exemples suivants illustrent le fonctionnement des valeurs par défaut :

Activé dans les paramètres du programme Activé dans les paramètres système Comportement
Oui Non Comme défini dans les paramètres du programme
Oui Oui Comme défini dans les paramètres du programme
Non Oui Comme défini dans les paramètres système
Non Non Valeur par défaut définie dans l’option Utiliser par défaut
  • Exemple 1 Mikael configure la prévention de l’exécution des données (DEP) dans la section Paramètres système pour qu’elle soit désactivée par défaut. Mikael ajoute ensuite l’application test.exe à la section Paramètres du programme . Dans les options de cette application, sous Prévention de l’exécution des données (DEP), il active l’option Remplacer les paramètres système et définit le commutateur sur Activé. Aucune autre application n’est répertoriée dans la section Paramètres du programme. Par conséquent, DEP sera activé uniquement pour test.exe. Le DEP n’est pas appliqué à toutes les autres applications.

  • Exemple 2 Josie configure la prévention de l’exécution des données (DEP) dans la section Paramètres système pour qu’elle soit désactivée par défaut. Josie ajoute ensuite l’application test.exe à la section Paramètres du programme . Dans les options de cette application, sous Prévention de l’exécution des données (DEP), elle active l’option Remplacer les paramètres système et définit le commutateur sur Activé. Josie ajoute également l’application miles.exe à la section Paramètres du programme et configure la CFG (Control Flow Guard) sur Activé. Elle n’active pas l’option Remplacer les paramètres système pour DEP ou toute autre atténuation pour cette application. Par conséquent, DEP sera activé pour test.exe. La DEP ne sera activé pour aucune autre application, y compris miles.exe. La CFG sera activé pour miles.exe.

Remarque

Si vous avez trouvé des problèmes dans cet article, vous pouvez le signaler directement à un partenaire Windows Server/Client Windows ou utiliser les numéros de support technique Microsoft pour votre pays/région.

Configurer des atténuations au niveau du système avec l’application Sécurité Windows

  1. Ouvrez l’application Sécurité Windows en sélectionnant l’icône de bouclier dans la barre des tâches ou en recherchant Sécurité Windows dans le menu Démarrer.

  2. Sélectionnez la vignette Contrôle Applications et navigateur (ou l’icône de l’application dans la barre de menus de gauche), puis sélectionnez Exploit Protection.

  3. Dans la section Paramètres système, recherchez l’atténuation que vous souhaitez configurer et sélectionnez l’une des options suivantes. Les applications qui ne sont pas configurées individuellement dans la section Paramètres du programme utilisent les paramètres configurés ici :

    • Activé par défaut - L’atténuation est activée pour les applications pour lesquelles cette atténuation n’est pas définie dans la section Paramètres du programme spécifique à l’application
    • Désactivé par défaut : l’atténuation est désactivée pour les applications pour lesquelles cette atténuation n’est pas définie dans la section Paramètres du programme spécifique à l’application
    • Utiliser la valeur par défaut : l’atténuation est activée ou désactivée, selon la configuration par défaut configurée par Windows 10 ou l’installation de Windows 11 ; la valeur par défaut (Activé ou Désactivé) est toujours spécifiée en regard de l’étiquette Utiliser par défaut pour chaque atténuation

    Remarque

    Vous pouvez voir une fenêtre contrôle de compte d’utilisateur lors de la modification de certains paramètres. Entrez les informations d’identification de l’administrateur pour appliquer le paramètre.

    La modification de certains paramètres peut nécessiter un redémarrage.

  4. Répétez cette opération pour toutes les atténuations au niveau du système que vous souhaitez configurer.

  5. Accédez à la section Paramètres du programme et choisissez l’application à laquelle vous souhaitez appliquer les atténuations :

    1. Si l’application que vous souhaitez configurer est déjà répertoriée, sélectionnez-la, puis sélectionnez Modifier
    2. Si l’application n’est pas répertoriée, en haut de la liste, sélectionnez Ajouter un programme à personnaliser, puis choisissez la façon dont vous souhaitez ajouter l’application :
      • Utilisez Ajouter par nom de programme pour appliquer l’atténuation à tout processus en cours d’exécution portant ce nom. Vous devez spécifier un fichier avec une extension. Vous pouvez entrer un chemin d’accès complet pour limiter l’atténuation uniquement à l’application portant ce nom à cet emplacement.
      • Utilisez Choisir le chemin exact du fichier pour utiliser une fenêtre standard de sélecteur de fichiers Explorateur Windows pour rechercher et sélectionner le fichier souhaité.
  6. Après avoir sélectionné l’application, vous verrez une liste de toutes les atténuations qui peuvent être appliquées. Pour activer l’atténuation, définissez la case à cocher sur Activer, puis activez le curseur. Sélectionnez toutes les options supplémentaires. Le choix de l’audit applique l’atténuation en mode audit uniquement. Vous serez averti si vous devez redémarrer le processus ou l’application, ou si vous devez redémarrer Windows.

  7. Répétez ces étapes pour toutes les applications et atténuations que vous souhaitez configurer. Sélectionnez Appliquer lorsque vous avez terminé de paramétrer votre configuration.

Vous pouvez maintenant exporter ces paramètres en tant que fichier XML ou continuer pour configurer des atténuations spécifiques à l’application.

L’exportation de la configuration en tant que fichier XML vous permet de copier la configuration d’un appareil sur d’autres appareils.

Informations de référence sur PowerShell

Vous pouvez utiliser l’application Sécurité Windows pour configurer Exploit Protection, ou vous pouvez utiliser des applets de commande PowerShell.

Les paramètres de configuration qui ont été modifiés le plus récemment seront toujours appliqués, que vous utilisiez PowerShell ou Sécurité Windows. Cela signifie que si vous utilisez l’application pour configurer une atténuation, puis utilisez PowerShell pour configurer la même atténuation, l’application se met à jour pour afficher les modifications que vous avez apportées avec PowerShell. Si vous deviez ensuite utiliser l’application pour modifier à nouveau l’atténuation, cette modification s’appliquerait.

Importante

Toutes les modifications qui sont déployées sur un appareil via stratégie de groupe remplacent la configuration locale. Lors de la configuration d’une configuration initiale, utilisez un appareil sur lequel aucune configuration stratégie de groupe n’est appliquée pour vous assurer que vos modifications ne sont pas remplacées.

Vous pouvez utiliser le verbe PowerShell Get ou Set avec l’applet de commande ProcessMitigation. L’utilisation de Get répertorie l’état de configuration actuel des atténuations qui ont été activées sur l’appareil. Ajoutez l’applet de commande -Name et l’exe de l’application pour voir les atténuations pour cette application uniquement :

Get-ProcessMitigation -Name processName.exe

Importante

Les atténuations au niveau du système qui n’ont pas été configurées affichent l’état de NOTSET.

Pour les paramètres au niveau du système, NOTSET indique que le paramètre par défaut pour cette atténuation a été appliqué.

Pour les paramètres au niveau de l’application, NOTSET indique que le paramètre au niveau du système pour l’atténuation sera appliqué.

Le paramètre par défaut de chaque atténuation au niveau du système peut être affiché dans la Sécurité Windows.

Utilisez Set pour configurer chaque atténuation au format suivant :

Set-ProcessMitigation -<scope> <app executable> -<action> <mitigation or options>,<mitigation or options>,<mitigation or options>

Où :

  • <Étendue> :
    • -Name pour indiquer que les atténuations doivent être appliquées à une application spécifique. Spécifiez l’exécutable de l’application après cet indicateur.
    • -System pour indiquer que l’atténuation doit être appliquée au niveau du système
  • <Action> :
    • -Enable pour activer l’atténuation
    • -Disable de désactiver l’atténuation
  • <Atténuation :>
    • L’applet de commande de l’atténuation telle que définie dans le tableau des applets de commande d’atténuation ci-dessous, ainsi que les sous-options (entourées d’espaces). Chaque atténuation est séparée par une virgule.

Par exemple, pour activer l’atténuation de prévention de l’exécution des données (DEP) avec émulation de thunk ATL et pour un exécutable appelé testing.exe dans le dossier C:\Apps\LOB\tests, et pour empêcher cet exécutable de créer des processus enfants, vous devez utiliser la commande suivante :

Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable DEP, EmulateAtlThunks, DisallowChildProcessCreation

Importante

Séparez chaque option d’atténuation par des virgules.

Si vous souhaitez appliquer le DEP au niveau du système, vous devez utiliser la commande suivante :

Set-Processmitigation -System -Enable DEP

Pour désactiver les atténuations, vous pouvez remplacer -Enable avec -Disable. Toutefois, pour les atténuations au niveau de l’application, cela force la désactivation de l’atténuation uniquement pour cette application.

Si vous devez restaurer l’atténuation sur la valeur par défaut du système, vous devez également inclure l’applet de commande -Remove , comme dans l’exemple suivant :

Set-Processmitigation -Name test.exe -Remove -Disable DEP

Vous pouvez également définir certaines atténuations en mode audit. Au lieu d’utiliser l’applet de commande PowerShell pour l’atténuation, utilisez l’applet de commande du mode Audit comme spécifié dans le tableau des applets de commande d’atténuation ci-dessous.

Par exemple, pour activer Arbitrary Code Guard (ACG) en mode audit pour le fichier testing.exe utilisé précédemment, vous devez utiliser la commande suivante :

Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable AuditDynamicCode

Vous pouvez désactiver le mode audit à l’aide de la même commande, mais en remplaçant -Enable par -Disable.

Table de référence PowerShell

Ce tableau répertorie les applets de commande PowerShell (et les applets de commande en mode audit associées) qui peuvent être utilisées pour configurer chaque atténuation.

Atténuation S’applique à Cmdlets PowerShell Cmdlet du mode Audit
Protection du flux de contrôle (CFG) Au niveau du système et de l’application CFG, StrictCFG, SuppressExports Audit non disponible
Prévention de l’exécution des données (PED) Au niveau du système et de l’application DEP, EmulateAtlThunks Audit non disponible
Forcer la randomisation des images (randomisation du format d’espace d’adresse obligatoire) Au niveau du système et de l’application ForceRelocateImages Audit non disponible
Randomiser les allocations de mémoire (randomisation du format d’espace d’adresse de bas en haut) Au niveau du système et de l’application BottomUp, HighEntropy Audit non disponible
Valider les chaînes d’exception (SEHOP) Au niveau du système et de l’application SEHOP, SEHOPTelemetry Audit non disponible
Valider l’intégrité du segment de mémoire Au niveau du système et de l’application TerminateOnError Audit non disponible
Protection du code arbitraire (ACG) Au niveau de l’application uniquement DynamicCode AuditDynamicCode
Bloquer les images de faible intégrité Au niveau de l’application uniquement BlockLowLabel AuditImageLoad
Bloquer les images distantes Au niveau de l’application uniquement BlockRemoteImages Audit non disponible
Bloquer les polices non approuvées Au niveau de l’application uniquement DisableNonSystemFonts AuditFont, FontAuditOnly
Protection de l’intégrité du code Au niveau de l’application uniquement BlockNonMicrosoftSigned, AllowStoreSigned AuditMicrosoftSigned, AuditStoreSigned
Désactiver les points d’extension Au niveau de l’application uniquement ExtensionPoint Audit non disponible
Désactiver les appels système Win32k Au niveau de l’application uniquement DisableWin32kSystemCalls AuditSystemCall
Ne pas autoriser les processus enfants Au niveau de l’application uniquement DisallowChildProcessCreation AuditChildProcess
Exporter le filtrage d’adresses (EAF) Au niveau de l’application uniquement EnableExportAddressFilterPlus, EnableExportAddressFilter [1] Audit non disponible[2]
Importer le filtrage d’adresses (IAF) Au niveau de l’application uniquement EnableImportAddressFilter Audit non disponible[2]
Simuler l’exécution (SimExec) Au niveau de l’application uniquement EnableRopSimExec Audit non disponible[2]
Valider l’invocation de l’API (CallerCheck) Au niveau de l’application uniquement EnableRopCallerCheck Audit non disponible[2]
Valider l’utilisation de la poignée Au niveau de l’application uniquement StrictHandle Audit non disponible
Valider l’intégrité des dépendances d’image Au niveau de l’application uniquement EnforceModuleDepencySigning Audit non disponible
Valider l’intégrité de la pile (StackPivot) Au niveau de l’application uniquement EnableRopStackPivot Audit non disponible[2]

[1] : Utilisez le format suivant pour activer les modules EAF pour les dll pour un processus :

Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll,dllName2.dll

[2] : L’audit de cette atténuation n’est pas disponible via les applets de commande PowerShell.

Personnaliser la notification

Pour plus d’informations sur la personnalisation de la notification lorsqu’une règle est déclenchée et bloque une application ou un fichier, consultez Sécurité Windows.

Voir aussi

Conseil

Voulez-vous en savoir plus ? Engage avec la communauté Microsoft Security dans notre communauté technique : Microsoft Defender pour point de terminaison Tech Community.