Skip to content

Commit 286163c

Browse files
authored
Merge pull request #1911 from YongRhee-MSFT/docs-editor/enable-exploit-protection-1731692849
Update enable-exploit-protection.md
2 parents cceb4fd + e143bcf commit 286163c

File tree

1 file changed

+56
-24
lines changed

1 file changed

+56
-24
lines changed

defender-endpoint/enable-exploit-protection.md

Lines changed: 56 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ ms.collection:
1414
- m365-security
1515
- tier3
1616
- mde-asr
17-
ms.date: 05/03/2023
17+
ms.date: 11/15/2024
1818
search.appverid: met150
1919
---
2020

@@ -35,6 +35,31 @@ search.appverid: met150
3535
3636
Many features from the Enhanced Mitigation Experience Toolkit (EMET) are included in exploit protection.
3737

38+
## Prerequisites
39+
40+
This section includes recommendations for you to be successful with deploying exploit protection.
41+
42+
- Set up monitoring for application crashes ([Event ID 1000 and/or Event ID 1001](/troubleshoot/windows-server/performance/troubleshoot-application-service-crashing-behavior)) and/or hangs (Event ID 1002)
43+
44+
- Enable [full user mode dump](/windows/win32/wer/collecting-user-mode-dumps) collection
45+
46+
- Check to see which applications are already compiled with "[Control Flow Guard](/windows/win32/secbp/control-flow-guard)" (CFG) which primarily focus on mitigating memory corruption vulnerabilities. Use dumpbin tool to see if it's compiled w/ [CFG](/windows/win32/secbp/control-flow-guard). For these applications, you could skip enabling enforcement for DEP, ASRL, SEHOP, and ACG.
47+
48+
- Use safe deployment practices.
49+
50+
> [!WARNING]
51+
> If you do not test and do not go thru safe deployment practices, you could contribute to end-user productivity outages.
52+
53+
### Safe deployment practices
54+
55+
Safe deployment practices (SDP): Safe deployment processes and procedures define how to safely make and deploy changes to your workload. Implementing SDP requires you to think about deployments through the lens of managing risk. You can minimize the risk of end-user productivity outages in your deployments and limit the effects of problematic deployments on your users by implementing SDP.
56+
57+
Start out with a small set (for example, 10 to 50) of Windows devices and use that as your test environment to see which of the 21 mitigations, are incompatible with exploit protection. Remove the mitigations that aren't compatible with the application. Reiterate with the applications that you're targeting. Once you feel that the policy is ready for production.
58+
59+
Start out by pushing first to User Acceptance Testing (UAT) comprised of the IT administrators, Security administrators and help desk personnel. Then to 1%, 5%, 10%, 25%, 50%, 75%, and finally to 100% of your environment.
60+
61+
## Enabling exploit protection mitigations
62+
3863
You can enable each mitigation separately by using any of these methods:
3964

4065
- [Windows Security app](#windows-security-app)
@@ -55,23 +80,25 @@ You can also set mitigations to [audit mode](evaluate-exploit-protection.md). Au
5580
2. Select the **App & browser control** tile (or the app icon on the left menu bar) and then select **Exploit protection settings**.
5681

5782
3. Go to **Program settings** and choose the app you want to apply mitigations to.
58-
- If the app you want to configure is already listed, select it, and then select **Edit**.
59-
- If the app isn't listed, at the top of the list select **Add program to customize** and then choose how you want to add the app.
60-
- Use **Add by program name** to have the mitigation applied to any running process with that name. Specify a file with its extension. You can enter a full path to limit the mitigation to only the app with that name in that location.
61-
- Use **Choose exact file path** to use a standard Windows Explorer file picker window to find and select the file you want.
6283

63-
4. After selecting the app, you'll see a list of all the mitigations that can be applied. Choosing **Audit** will apply the mitigation in audit mode only. You're notified if you need to restart the process or app, or if you need to restart Windows.
84+
- If the app you want to configure is already listed, select it, and then select **Edit**.
85+
- If the app isn't listed, at the top of the list select **Add program to customize** and then choose how you want to add the app.
86+
- Use **Add by program name** to have the mitigation applied to any running process with that name. Specify a file with its extension. You can enter a full path to limit the mitigation to only the app with that name in that location.
87+
- Use **Choose exact file path** to use a standard Windows Explorer file picker window to find and select the file you want.
88+
89+
4. After selecting the app, you'll see a list of all the mitigations that can be applied. Choosing **Audit** applies the mitigation in audit mode only. You're notified if you need to restart the process or app, or if you need to restart Windows.
6490

6591
5. Repeat steps 3-4 for all the apps and mitigations you want to configure.
6692

6793
6. Under the **System settings** section, find the mitigation you want to configure and then specify one of the following settings. Apps that aren't configured individually in the **Program settings** section use the settings that are configured here.
68-
- **On by default**: The mitigation is *enabled* for apps that don't have this mitigation set in the app-specific **Program settings** section
69-
- **Off by default**: The mitigation is *disabled* for apps that don't have this mitigation set in the app-specific **Program settings** section
70-
- **Use default**: The mitigation is either enabled or disabled, depending on the default configuration that is set up by Windows 10 or Windows 11 installation; the default value (**On** or **Off**) is always specified next to the **Use default** label for each mitigation
94+
95+
- **On by default**: The mitigation is *enabled* for apps that don't have this mitigation set in the app-specific **Program settings** section
96+
- **Off by default**: The mitigation is *disabled* for apps that don't have this mitigation set in the app-specific **Program settings** section
97+
- **Use default**: The mitigation is either enabled or disabled, depending on the default configuration that is set up by Windows 10 or Windows 11 installation; the default value (**On** or **Off**) is always specified next to the **Use default** label for each mitigation
7198

7299
7. Repeat step 6 for all the system-level mitigations you want to configure. Select **Apply** when you're done setting up your configuration.
73100

74-
If you add an app to the **Program settings** section and configure individual mitigation settings there, they'll be honored above the configuration for the same mitigations specified in the **System settings** section. The following matrix and examples help to illustrate how defaults work:
101+
If you add an app to the **Program settings** section and configure individual mitigation settings there, they are honored above the configuration for the same mitigations specified in the **System settings** section. The following matrix and examples help to illustrate how defaults work:
75102

76103
|Enabled in **Program settings**|Enabled in **System settings**|Behavior|
77104
|:---|:---|:---|
@@ -98,13 +125,14 @@ The result is that DEP is enabled for *test.exe*. DEP won't be enabled for any o
98125

99126
2. Select the **App & browser control** tile (or the app icon on the left menu bar) and then select **Exploit protection**.
100127

101-
3. Go to **Program settings** and choose the app you want to apply mitigations to.<br/>
102-
- If the app you want to configure is already listed, select it, and then select **Edit**.
103-
- If the app isn't listed, at the top of the list select **Add program to customize** and then choose how you want to add the app.<br/>
128+
3. Go to **Program settings** and choose the app you want to apply mitigations to.
129+
130+
- If the app you want to configure is already listed, select it, and then select **Edit**.
131+
- If the app isn't listed, at the top of the list select **Add program to customize** and then choose how you want to add the app.<br/>
104132
- Use **Add by program name** to have the mitigation applied to any running process with that name. Specify a file with an extension. You can enter a full path to limit the mitigation to only the app with that name in that location.
105133
- Use **Choose exact file path** to use a standard Windows Explorer file picker window to find and select the file you want.
106134

107-
4. After selecting the app, you'll see a list of all the mitigations that can be applied. Choosing **Audit** will apply the mitigation in audit mode only. You'll be notified if you need to restart the process or app, or if you need to restart Windows.
135+
4. After selecting the app, you'll see a list of all the mitigations that can be applied. Choosing **Audit** applies the mitigation in audit mode only. You're notified if you need to restart the process or app, or if you need to restart Windows.
108136

109137
5. Repeat steps 3-4 for all the apps and mitigations you want to configure. Select **Apply** when you're done setting up your configuration.
110138

@@ -164,7 +192,7 @@ Use the [./Vendor/MSFT/Policy/Config/ExploitGuard/ExploitProtectionSettings](/wi
164192

165193
## Group Policy
166194

167-
1. On your Group Policy management device, open the [Group Policy Management Console](/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc731212(v=ws.11)), right-click the Group Policy Object you want to configure and click **Edit**.
195+
1. On your Group Policy management device, open the [Group Policy Management Console](/previous-versions/windows/it-pro/windows-server-2008-R2-and-2008/cc731212(v=ws.11)). Right-click the Group Policy Object you want to configure and select **Edit**.
168196

169197
2. In the **Group Policy Management Editor**, go to **Computer configuration** and select **Administrative templates**.
170198

@@ -174,15 +202,14 @@ Use the [./Vendor/MSFT/Policy/Config/ExploitGuard/ExploitProtectionSettings](/wi
174202

175203
## PowerShell
176204

177-
You can use the PowerShell verb `Get` or `Set` with the cmdlet `ProcessMitigation`. Using `Get` will list the current configuration status of any mitigations that have been enabled on the device - add the `-Name` cmdlet and app exe to see mitigations for just that app:
205+
You can use the PowerShell verb `Get` or `Set` with the cmdlet `ProcessMitigation`. Using `Get` lists the current configuration status of any mitigations that are enabled on the device. Add the `-Name` cmdlet and app exe to see mitigations for just that app:
178206

179207
```PowerShell
180208
Get-ProcessMitigation -Name processName.exe
181209
```
182210

183211
> [!IMPORTANT]
184212
> System-level mitigations that have not been configured will show a status of `NOTSET`.
185-
>
186213
> - For system-level settings, `NOTSET` indicates the default setting for that mitigation has been applied.
187214
> - For app-level settings, `NOTSET` indicates the system-level setting for the mitigation will be applied.
188215
> The default setting for each system-level mitigation can be seen in the Windows Security.
@@ -245,29 +272,34 @@ The following table lists the individual **Mitigations** (and **Audits**, when a
245272
|Disable extension points|App-level only|`ExtensionPoint`|Audit not available|
246273
|Disable Win32k system calls|App-level only|`DisableWin32kSystemCalls`|`AuditSystemCall`|
247274
|Don't allow child processes|App-level only|`DisallowChildProcessCreation`|`AuditChildProcess`|
248-
|Export address filtering (EAF)|App-level only|`EnableExportAddressFilterPlus`, `EnableExportAddressFilter` <a href="#r1" id="t1">\[1\]</a>|Audit not available <a href="#r2" id="t2">\[2\]</a>|
249-
|Import address filtering (IAF)|App-level only|`EnableImportAddressFilter`|Audit not available <a href="#r2" id="t2">\[2\]</a>|
250-
|Simulate execution (SimExec)|App-level only|`EnableRopSimExec`|Audit not available <a href="#r2" id="t2">\[2\]</a>|
251-
|Validate API invocation (CallerCheck)|App-level only|`EnableRopCallerCheck`|Audit not available <a href="#r2" id="t2">\[2\]</a>|
275+
|Export address filtering (EAF)|App-level only|`EnableExportAddressFilterPlus`, `EnableExportAddressFilter` <a href="#r1" id="t1">[1]</a>|Audit not available <a href="#r2" id="t2">[2]</a>|
276+
|Import address filtering (IAF)|App-level only|`EnableImportAddressFilter`|Audit not available <a href="#r2" id="t2">[2]</a>|
277+
|Simulate execution (SimExec)|App-level only|`EnableRopSimExec`|Audit not available <a href="#r2" id="t2">[2]</a>|
278+
|Validate API invocation (CallerCheck)|App-level only|`EnableRopCallerCheck`|Audit not available <a href="#r2" id="t2">[2]</a>|
252279
|Validate handle usage|App-level only|`StrictHandle`|Audit not available|
253280
|Validate image dependency integrity|App-level only|`EnforceModuleDepencySigning`|Audit not available|
254-
|Validate stack integrity (StackPivot)|App-level only|`EnableRopStackPivot`|Audit not available <a href="#r2" id="t2">\[2\]</a>|
281+
|Validate stack integrity (StackPivot)|App-level only|`EnableRopStackPivot`|Audit not available <a href="#r2" id="t2">[2]</a>|
255282

256-
<a href="#t1" id="r1">\[1\]</a>: Use the following format to enable EAF modules for DLLs for a process:
283+
<a href="#t1" id="r1">[1]</a>: Use the following format to enable EAF modules for DLLs for a process:
257284

258285
```PowerShell
259286
Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll,dllName2.dll
260287
```
261288

262-
<a href="#t2" id="r2">\[2\]</a>: Audit for this mitigation isn't available via PowerShell cmdlets.
289+
<a href="#t2" id="r2">[2]</a>: Audit for this mitigation isn't available via PowerShell cmdlets.
263290

264291
## Customize the notification
265292

266293
For information about customizing the notification when a rule is triggered and an app or file is blocked, see [Windows Security](/windows/security/threat-protection/windows-defender-security-center/windows-defender-security-center).
267294

295+
## Removing the exploit protection mitigations
296+
297+
To reset (undo or remove) the exploit protection mitigations, see the [Exploit protection reference](/defender-endpoint/exploit-protection-reference).
298+
268299
## See also
269300

270301
- [Evaluate exploit protection](evaluate-exploit-protection.md)
271302
- [Configure and audit exploit protection mitigations](customize-exploit-protection.md)
272303
- [Import, export, and deploy exploit protection configurations](import-export-exploit-protection-emet-xml.md)
304+
273305
[!INCLUDE [Microsoft Defender for Endpoint Tech Community](../includes/defender-mde-techcommunity.md)]

0 commit comments

Comments
 (0)