Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Exploit Protection applique automatiquement de nombreuses 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.
Cet article explique également comment activer ou configurer les mesures d’atténuation à l’aide de Sécurité Windows, de PowerShell et des fournisseurs de services de configuration (CSP) de la gestion des appareils mobiles (MDM). La configuration des paramètres exploit protection sur un seul appareil est la première étape de la création d’une configuration que vous pouvez déployer sur votre réseau. Pour déployer cette configuration sur plusieurs appareils, consultez Importer, exporter et déployer des configurations exploit protection.
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 les attaques dans tous les scénarios d’utilisation cible en utilisant le mode d’audit exploit protection avant de déployer la configuration dans un environnement de production ou 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 mesures d’atténuation comme activée, désactivée ou sur sa valeur par défaut. Certaines atténuations ont d’autres options 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 « On ».
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 donc modifier la configuration par rapport aux valeurs par défaut.
Pour connaître les applets de commande PowerShell associées pour chaque atténuation, consultez les applets de commande PowerShell pour les atténuations contre les attaques 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 de code depuis des pages mémoire contenant uniquement des données, 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 activer en option l'émulation de thunk ATL. | Au niveau du système et de l’application | Non |
| Forcer la randomisation des images (ASLR obligatoire) | Déplace de force les images non compilées avec /DYNAMICBASE. Peut, en option, ne pas charger les images qui ne contiennent pas d’informations de relocalisation. | Au niveau du système et de l’application | Non |
| Rendre aléatoires les allocations mémoire (ASLR de bas en haut) | Rend aléatoires les emplacements pour les allocations de mémoire virtuelle. Il comprend les tas des structures système, les piles, les TEB et les PEB. 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 pendant les distributions d'exceptions. Configurable uniquement pour les applications 32 bits (x86). | Au niveau du système et de l’application | Non |
| Valider l'intégrité du tas | Met fin à un processus lorsque l'endommagement du tas est détecté. | Au niveau du système et de l’application | Non |
| Arbitrary Code Guard (ACG) | Empêche l’introduction de code exécutable non adossé à une image et empêche la modification des pages de code. 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 de niveau supérieur. Peut autoriser de manière facultative les images signées du Microsoft Store. | 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 les processus enfants | Empêche une application de créer des processus enfants. | Au niveau de l’application uniquement | Oui |
| Filtrage d’adresses d’exportation (EAF) | Détecte les opérations dangereuses qui sont 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 |
| Filtrage des adresses importées (IAF) | Détecte les opérations dangereuses qui sont résolues par un code malveillant. | Au niveau de l’application uniquement | Oui |
| Simuler l’exécution (SimExec) | Garantit que les appels aux API sensibles reviennent 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 appelants légitimes appellent des API sensibles. 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 |
| Vérification de l’intégrité des dépendances d’image | Impose la signature du code pour le chargement des dépendances d’une 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 seront 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 client Windows Server/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
Pour configurer les atténuations de protection contre les attaques au niveau du système et au niveau de l’application sur un appareil individuel, utilisez l’application Sécurité Windows :
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.
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.
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 le redémarrage de l’appareil.
Répétez ces étapes de configuration pour toutes les atténuations au niveau du système que vous souhaitez configurer.
Accédez à la section Paramètres du programme et choisissez l’application à laquelle vous souhaitez appliquer les atténuations :
- Si l’application que vous souhaitez configurer est déjà répertoriée, sélectionnez-la, puis sélectionnez Modifier
- 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 saisir un chemin d’accès complet pour limiter la mesure d’atténuation à la seule application portant ce nom et située à 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é.
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. Choisir Audit appliquera 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.
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 désormais exporter la configuration exploit protection en tant que fichier XML ou continuer à 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. Étant donné que la configuration la plus récente est toujours appliquée, si vous utilisez l’application pour configurer une atténuation, utilisez PowerShell pour configurer la même atténuation, l’application sera mise à 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>:
-
-Namepour indiquer que les atténuations doivent être appliquées à une application spécifique. Spécifiez le fichier exécutable de l'application après cet indicateur. -
-Systempour indiquer que l’atténuation doit être appliquée au niveau du système
-
-
<Action> :
-
-Enablepour activer l’atténuation -
-Disabledésactiver la mesure d’atténuation
-
-
<Atténuation :>
- L'applet de commande d'atténuation, telle que définie dans le tableau des applets de commande d'atténuation de la protection contre les exploits ci-dessous, ainsi que toutes les sous-options éventuelles (entourées d'espaces). Chaque atténuation est séparée par une virgule.
Par exemple, pour activer la mesure d’atténuation DEP (Prévention de l’exécution des données) avec émulation de thunk ATL 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 utiliserez 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.
Pour appliquer une atténuation au niveau du système au lieu d’une application spécifique, utilisez l’étendue -System . Par exemple, pour activer DEP pour tous les processus sur l’appareil, vous utiliserez 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 une atténuation au niveau de l’application vers la valeur par défaut du système, vous devez également inclure l’applet -Remove de commande. L’exemple suivant supprime le remplacement DEP spécifique à l’application pour test.exe afin qu’il hérite de la valeur par défaut du système :
Set-Processmitigation -Name test.exe -Remove -Disable DEP
Vous pouvez également définir certaines atténuations en mode audit. Au lieu d’utiliser la cmdlet PowerShell pour l’atténuation, utilisez la cmdlet Audit mode, comme indiqué dans le tableau des cmdlets de la fonctionnalité de protection contre les exploits ci-dessous.
Par exemple, la commande suivante active la surveillance en mode audit uniquement pour l'atténuation Arbitrary Code Guard (ACG) pour testing.exe, utilisé précédemment, ce qui consigne les violations de stratégie sans bloquer l'exécution :
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 de 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 (ASLR obligatoire) | Au niveau du système et de l’application | ForceRelocateImages | Audit non disponible |
| Rendre aléatoires les allocations mémoire (ASLR 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 tas | Au niveau du système et de l’application | TerminateOnError | Audit non disponible |
| Arbitrary Code Guard (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 | Bloquer les images distantes | 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 | MicrosoftSignedOnly, AllowStoreSignedBinaries | 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 |
| Filtrage d’adresses d’exportation (EAF) | Au niveau de l’application uniquement | EnableExportAddressFilterPlus, EnableExportAddressFilter [1] | Audit non disponible[2] |
| Filtrage des adresses importées (IAF) | Au niveau de l’application uniquement | Activer le filtre d’adresses d’importation | 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 |
| Vérification de 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] : Pour activer le filtrage d’adresses d’exportation plus (EAF+) pour un processus et le restreindre à des modules DLL spécifiques, utilisez le format suivant :
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 les notifications exploit protection
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.