Skip to content

Commit 7e9a84f

Browse files
committed
Learn Editor: Update enable-exploit-protection.md
1 parent 1c4ebc3 commit 7e9a84f

File tree

1 file changed

+36
-7
lines changed

1 file changed

+36
-7
lines changed

defender-endpoint/enable-exploit-protection.md

Lines changed: 36 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
## Pre-requisites
39+
40+
Below are recommendations for you to be successful on deploying Exploit Protection.
41+
42+
- Setup 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 is 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+
- Go thru safe deployment practices (sdp)
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 (e.g. 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 are not compatible with the application. Reiterate with the applications that you are targeting. Once you feel that the policy is ready for production.
58+
59+
Start out by pushing first to User Acceptance Testing (UAT) usually 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)
@@ -245,26 +270,30 @@ The following table lists the individual **Mitigations** (and **Audits**, when a
245270
|Disable extension points|App-level only|`ExtensionPoint`|Audit not available|
246271
|Disable Win32k system calls|App-level only|`DisableWin32kSystemCalls`|`AuditSystemCall`|
247272
|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>|
273+
|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>|
274+
|Import address filtering (IAF)|App-level only|`EnableImportAddressFilter`|Audit not available <a href="#r2" id="t2">[2]</a>|
275+
|Simulate execution (SimExec)|App-level only|`EnableRopSimExec`|Audit not available <a href="#r2" id="t2">[2]</a>|
276+
|Validate API invocation (CallerCheck)|App-level only|`EnableRopCallerCheck`|Audit not available <a href="#r2" id="t2">[2]</a>|
252277
|Validate handle usage|App-level only|`StrictHandle`|Audit not available|
253278
|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>|
279+
|Validate stack integrity (StackPivot)|App-level only|`EnableRopStackPivot`|Audit not available <a href="#r2" id="t2">[2]</a>|
255280

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

258283
```PowerShell
259284
Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll,dllName2.dll
260285
```
261286

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

264289
## Customize the notification
265290

266291
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).
267292

293+
## Removing the exploit protection mitigations
294+
295+
To reset (undo or remove) the exploit protection mitigations, please review the [Exploit protection reference](/defender-endpoint/exploit-protection-reference).
296+
268297
## See also
269298

270299
- [Evaluate exploit protection](evaluate-exploit-protection.md)

0 commit comments

Comments
 (0)