Q&A Maximum Anti-Exploit protection settings for your program

SecurityNightmares

Level 33
Verified
Jan 9, 2020
2,287
Anyone play more with settings for Chromium-Edge ?

here also another good thread about:
 

SecurityNightmares

Level 33
Verified
Jan 9, 2020
2,287
This can now be saved in a settings.xml file and then imported by this powershell command:
Which needs admin rights! Unfortunately I forgot to write that.

After some time i play again with these settings and remove "Block untrusted fonts" because Dropping the "Untrusted Font Blocking" setting - Microsoft Tech Community

I also test these settings:
# Export address filtering (EAF): Detects dangerous operations being resolved by malicious code
with and without:
optionally validate access by modules commonly used by exploits enabled

# Import address filtering (IAF): Detects dangerous operations being resolved by malicious code.

# Validate stack integrity (StackPivot): Ensures that the stack hasn't been redirected for sensitive APIs. Not compatible with ACG

# Validate API invocation (CallerCheck): Ensures that sensitive APIs are invoked by legitimate callers. Only configurable for 32-bit (x86) applications. Not compatible with ACG

# Simulate execution (SimExec): Ensures that calls to sensitive APIs return to legitimate callers. Only configurable for 32-bit (x86) applications. Not compatible with ACG

None of them are compatible with AdGuard extension and sites are broken (maybe do to extension or because of configured encrypted DNS i don't know)
So no changes are required (y)

Edit: here also the XML file for maximum Edge settings with default OS settings (from 20H2 Windows build):
XML:
<?xml version="1.0" encoding="UTF-8"?>
<MitigationPolicy>
  <AppConfig Executable="ExtExport.exe">
    <ASLR ForceRelocateImages="true" RequireInfo="false" />
  </AppConfig>
  <AppConfig Executable="ie4uinit.exe">
    <ASLR ForceRelocateImages="true" RequireInfo="false" />
  </AppConfig>
  <AppConfig Executable="ieinstal.exe">
    <ASLR ForceRelocateImages="true" RequireInfo="false" />
  </AppConfig>
  <AppConfig Executable="ielowutil.exe">
    <ASLR ForceRelocateImages="true" RequireInfo="false" />
  </AppConfig>
  <AppConfig Executable="ieUnatt.exe">
    <ASLR ForceRelocateImages="true" RequireInfo="false" />
  </AppConfig>
  <AppConfig Executable="mscorsvw.exe">
    <ExtensionPoints DisableExtensionPoints="true" />
  </AppConfig>
  <AppConfig Executable="msedge.exe">
    <DEP Enable="true" EmulateAtlThunks="true" />
    <ASLR ForceRelocateImages="true" RequireInfo="true" BottomUp="true" HighEntropy="true" />
    <StrictHandle Enable="true" />
    <ExtensionPoints DisableExtensionPoints="true" />
    <ControlFlowGuard Enable="true" SuppressExports="false" />
    <SignedBinaries MicrosoftSignedOnly="true" AllowStoreSignedBinaries="true" Audit="false" AuditStoreSigned="false" EnforceModuleDependencySigning="true" />
    <ImageLoad BlockRemoteImageLoads="true" AuditRemoteImageLoads="false" BlockLowLabelImageLoads="true" AuditLowLabelImageLoads="false" />
    <SEHOP Enable="true" TelemetryOnly="false" />
    <Heap TerminateOnError="true" />
    <UserShadowStack UserShadowStack="true" UserShadowStackStrictMode="false" AuditUserShadowStack="false" />
  </AppConfig>
  <AppConfig Executable="msfeedssync.exe">
    <ASLR ForceRelocateImages="true" RequireInfo="false" />
  </AppConfig>
  <AppConfig Executable="mshta.exe">
    <ASLR ForceRelocateImages="true" RequireInfo="false" />
  </AppConfig>
  <AppConfig Executable="ngen.exe">
    <ExtensionPoints DisableExtensionPoints="true" />
  </AppConfig>
  <AppConfig Executable="ngentask.exe">
    <ExtensionPoints DisableExtensionPoints="true" />
  </AppConfig>
  <AppConfig Executable="PresentationHost.exe">
    <DEP Enable="true" EmulateAtlThunks="false" />
    <ASLR ForceRelocateImages="true" RequireInfo="false" BottomUp="true" HighEntropy="true" />
    <SEHOP Enable="true" TelemetryOnly="false" />
    <Heap TerminateOnError="true" />
  </AppConfig>
  <AppConfig Executable="PrintDialog.exe">
    <ExtensionPoints DisableExtensionPoints="true" />
  </AppConfig>
  <AppConfig Executable="runtimebroker.exe">
    <ExtensionPoints DisableExtensionPoints="true" />
  </AppConfig>
  <AppConfig Executable="SystemSettings.exe">
    <ExtensionPoints DisableExtensionPoints="true" />
  </AppConfig>
  <AppConfig Executable="C:\Windows\System32\vmcompute.exe">
    <ControlFlowGuard Enable="true" SuppressExports="true" StrictControlFlowGuard="true" />
  </AppConfig>
  <AppConfig Executable="C:\Windows\System32\vmwp.exe">
    <ControlFlowGuard Enable="true" SuppressExports="true" StrictControlFlowGuard="true" />
  </AppConfig>
</MitigationPolicy>
 
Last edited:

Andy Ful

Level 68
Verified
Trusted
Content Creator
Dec 23, 2014
5,730
Then I doubt anyone using their 3rd party security software for exploit protections would ever bother with this.
Yes, but there are many people who did not install a dedicated anti-exploit application. Windows built-in Exploit Protection is for people who do not want to use 3rd party applications intended for exploit protection (like MBAE, HPA). Many AVs have anti-exploit prevention modules but they are not intended to protect users against in-memory exploits. If the user has one vulnerable application (like any PDF viewer) then it would be not wise to install 3rd party anti-exploit application to cover in-memory exploits. The better idea is to spend 20 minutes to find the proper combination of Windows build-in exploit protection. Usually, one does not need to understand any of several possible mitigations, but simply try one after another and see if the application still works. If the configuration is too complex, then it is possible at any time to untick all mitigations for that application.
 
Last edited:

Nagisa

Level 7
Verified
Jul 19, 2018
325
I might be wrong but isn't the most important mitigations are already applied?

1608704162249.png
 

Andy Ful

Level 68
Verified
Trusted
Content Creator
Dec 23, 2014
5,730
Last edited:

SecurityNightmares

Level 33
Verified
Jan 9, 2020
2,287
Here is it!

Maximum protection settings for:
Edge
Adobe Reader Touch (from Windows Store)
Wordpad (Windows internal)
Bandizip
Thunderbird

XML:
<?xml version="1.0" encoding="UTF-8"?>
<MitigationPolicy>
  <AppConfig Executable="AcroRd32.exe">
    <DEP Enable="true" EmulateAtlThunks="true" />
    <ASLR ForceRelocateImages="true" RequireInfo="true" BottomUp="true" HighEntropy="false" />
    <StrictHandle Enable="true" />
    <ExtensionPoints DisableExtensionPoints="true" />
    <DynamicCode BlockDynamicCode="true" AllowThreadsToOptOut="false" Audit="false" />
    <ControlFlowGuard Enable="true" SuppressExports="false" />
    <SignedBinaries MicrosoftSignedOnly="true" AllowStoreSignedBinaries="true" Audit="false" AuditStoreSigned="false" EnforceModuleDependencySigning="true" />
    <Fonts DisableNonSystemFonts="true" AuditOnly="false" Audit="false" />
    <ImageLoad BlockRemoteImageLoads="true" AuditRemoteImageLoads="false" BlockLowLabelImageLoads="true" AuditLowLabelImageLoads="false" />
    <Payload EnableExportAddressFilter="true" AuditEnableExportAddressFilter="false" EnableExportAddressFilterPlus="true" AuditEnableExportAddressFilterPlus="false" EnableImportAddressFilter="true" AuditEnableImportAddressFilter="false" EnableRopStackPivot="true" AuditEnableRopStackPivot="false" EnableRopCallerCheck="true" AuditEnableRopCallerCheck="false" EnableRopSimExec="true" AuditEnableRopSimExec="false" />
    <SEHOP Enable="true" TelemetryOnly="false" />
    <Heap TerminateOnError="true" />
    <UserShadowStack UserShadowStack="true" UserShadowStackStrictMode="true" AuditUserShadowStack="false" />
  </AppConfig>
  <AppConfig Executable="Bandizip.exe">
    <DEP Enable="true" EmulateAtlThunks="true" />
    <ASLR ForceRelocateImages="true" RequireInfo="true" BottomUp="true" HighEntropy="false" />
    <StrictHandle Enable="true" />
    <ExtensionPoints DisableExtensionPoints="true" />
    <ControlFlowGuard Enable="true" SuppressExports="false" />
    <SignedBinaries EnforceModuleDependencySigning="true" />
    <Fonts DisableNonSystemFonts="true" AuditOnly="false" Audit="false" />
    <ImageLoad BlockRemoteImageLoads="true" AuditRemoteImageLoads="false" BlockLowLabelImageLoads="true" AuditLowLabelImageLoads="false" />
    <Payload EnableExportAddressFilter="true" AuditEnableExportAddressFilter="false" EnableExportAddressFilterPlus="true" AuditEnableExportAddressFilterPlus="false" EnableImportAddressFilter="true" AuditEnableImportAddressFilter="false" EnableRopStackPivot="true" AuditEnableRopStackPivot="false" EnableRopCallerCheck="true" AuditEnableRopCallerCheck="false" EnableRopSimExec="true" AuditEnableRopSimExec="false" />
    <SEHOP Enable="true" TelemetryOnly="false" />
    <Heap TerminateOnError="true" />
    <ChildProcess DisallowChildProcessCreation="true" Audit="false" />
    <UserShadowStack UserShadowStack="true" UserShadowStackStrictMode="true" AuditUserShadowStack="false" />
  </AppConfig>
  <AppConfig Executable="ExtExport.exe">
    <ASLR ForceRelocateImages="true" RequireInfo="false" />
  </AppConfig>
  <AppConfig Executable="ie4uinit.exe">
    <ASLR ForceRelocateImages="true" RequireInfo="false" />
  </AppConfig>
  <AppConfig Executable="ieinstal.exe">
    <ASLR ForceRelocateImages="true" RequireInfo="false" />
  </AppConfig>
  <AppConfig Executable="ielowutil.exe">
    <ASLR ForceRelocateImages="true" RequireInfo="false" />
  </AppConfig>
  <AppConfig Executable="ieUnatt.exe">
    <ASLR ForceRelocateImages="true" RequireInfo="false" />
  </AppConfig>
  <AppConfig Executable="mscorsvw.exe">
    <ExtensionPoints DisableExtensionPoints="true" />
  </AppConfig>
  <AppConfig Executable="msedge.exe">
    <DEP Enable="true" EmulateAtlThunks="true" />
    <ASLR ForceRelocateImages="true" RequireInfo="true" BottomUp="true" HighEntropy="false" />
    <StrictHandle Enable="true" />
    <ExtensionPoints DisableExtensionPoints="true" />
    <ControlFlowGuard Enable="true" SuppressExports="false" />
    <SignedBinaries MicrosoftSignedOnly="true" AllowStoreSignedBinaries="true" Audit="false" AuditStoreSigned="false" EnforceModuleDependencySigning="true" />
    <ImageLoad BlockRemoteImageLoads="true" AuditRemoteImageLoads="false" BlockLowLabelImageLoads="true" AuditLowLabelImageLoads="false" />
    <SEHOP Enable="true" TelemetryOnly="false" />
    <Heap TerminateOnError="true" />
    <UserShadowStack UserShadowStack="true" UserShadowStackStrictMode="false" AuditUserShadowStack="false" />
  </AppConfig>
  <AppConfig Executable="msfeedssync.exe">
    <ASLR ForceRelocateImages="true" RequireInfo="false" />
  </AppConfig>
  <AppConfig Executable="mshta.exe">
    <ASLR ForceRelocateImages="true" RequireInfo="false" />
  </AppConfig>
  <AppConfig Executable="ngen.exe">
    <ExtensionPoints DisableExtensionPoints="true" />
  </AppConfig>
  <AppConfig Executable="ngentask.exe">
    <ExtensionPoints DisableExtensionPoints="true" />
  </AppConfig>
  <AppConfig Executable="PresentationHost.exe">
    <DEP Enable="true" EmulateAtlThunks="false" />
    <ASLR ForceRelocateImages="true" RequireInfo="false" BottomUp="true" HighEntropy="true" />
    <SEHOP Enable="true" TelemetryOnly="false" />
    <Heap TerminateOnError="true" />
  </AppConfig>
  <AppConfig Executable="PrintDialog.exe">
    <ExtensionPoints DisableExtensionPoints="true" />
  </AppConfig>
  <AppConfig Executable="runtimebroker.exe">
    <ExtensionPoints DisableExtensionPoints="true" />
  </AppConfig>
  <AppConfig Executable="SystemSettings.exe">
    <ExtensionPoints DisableExtensionPoints="true" />
  </AppConfig>
  <AppConfig Executable="thunderbird.exe">
    <DEP Enable="true" EmulateAtlThunks="true" />
    <ASLR ForceRelocateImages="true" RequireInfo="true" BottomUp="true" HighEntropy="false" />
    <StrictHandle Enable="true" />
    <ExtensionPoints DisableExtensionPoints="true" />
    <ControlFlowGuard Enable="true" SuppressExports="false" StrictControlFlowGuard="true" />
    <SignedBinaries EnforceModuleDependencySigning="true" />
    <Fonts DisableNonSystemFonts="true" AuditOnly="false" Audit="false" />
    <ImageLoad BlockRemoteImageLoads="true" AuditRemoteImageLoads="false" BlockLowLabelImageLoads="true" AuditLowLabelImageLoads="false" />
    <Payload EnableExportAddressFilter="true" AuditEnableExportAddressFilter="false" EnableExportAddressFilterPlus="true" AuditEnableExportAddressFilterPlus="false" EnableImportAddressFilter="true" AuditEnableImportAddressFilter="false" EnableRopStackPivot="true" AuditEnableRopStackPivot="false" EnableRopCallerCheck="true" AuditEnableRopCallerCheck="false" EnableRopSimExec="true" AuditEnableRopSimExec="false" />
    <SEHOP Enable="true" TelemetryOnly="false" />
    <Heap TerminateOnError="true" />
    <ChildProcess DisallowChildProcessCreation="true" Audit="false" />
    <UserShadowStack UserShadowStack="true" UserShadowStackStrictMode="false" AuditUserShadowStack="false" />
  </AppConfig>
  <AppConfig Executable="C:\Windows\System32\vmcompute.exe">
    <ControlFlowGuard Enable="true" SuppressExports="true" StrictControlFlowGuard="true" />
  </AppConfig>
  <AppConfig Executable="C:\Windows\System32\vmwp.exe">
    <ControlFlowGuard Enable="true" SuppressExports="true" StrictControlFlowGuard="true" />
  </AppConfig>
  <AppConfig Executable="wordpad.exe">
    <DEP Enable="true" EmulateAtlThunks="true" />
    <ASLR ForceRelocateImages="true" RequireInfo="true" BottomUp="true" HighEntropy="false" />
    <StrictHandle Enable="true" />
    <ExtensionPoints DisableExtensionPoints="true" />
    <DynamicCode BlockDynamicCode="true" AllowThreadsToOptOut="true" Audit="false" />
    <ControlFlowGuard Enable="true" SuppressExports="false" StrictControlFlowGuard="true" />
    <SignedBinaries MicrosoftSignedOnly="true" AllowStoreSignedBinaries="false" Audit="false" AuditStoreSigned="false" EnforceModuleDependencySigning="true" />
    <Fonts DisableNonSystemFonts="true" AuditOnly="false" Audit="false" />
    <ImageLoad BlockRemoteImageLoads="true" AuditRemoteImageLoads="false" BlockLowLabelImageLoads="true" AuditLowLabelImageLoads="false" />
    <Payload EnableExportAddressFilter="true" AuditEnableExportAddressFilter="false" EnableExportAddressFilterPlus="true" AuditEnableExportAddressFilterPlus="false" EnableImportAddressFilter="true" AuditEnableImportAddressFilter="false" EnableRopStackPivot="true" AuditEnableRopStackPivot="false" EnableRopCallerCheck="true" AuditEnableRopCallerCheck="false" EnableRopSimExec="true" AuditEnableRopSimExec="false" />
    <SEHOP Enable="true" TelemetryOnly="false" />
    <Heap TerminateOnError="true" />
    <ChildProcess DisallowChildProcessCreation="true" Audit="false" />
    <UserShadowStack UserShadowStack="true" UserShadowStackStrictMode="true" AuditUserShadowStack="false" />
  </AppConfig>
</MitigationPolicy>

Change file back to xml
 

Attachments

  • Edge+AdobeTouch+Wordpad+Bandizip+Thunderbird.txt
    8.5 KB · Views: 84

Andy Ful

Level 68
Verified
Trusted
Content Creator
Dec 23, 2014
5,730
I might be wrong but isn't the most important mitigations are already applied?

View attachment 251701
Some Edge processes are protected (Renderer, GPU, Audio), but some are not. This means that malware (running outside Edge) can still install a malicious extension or inject the malicious DLL to Edge (edge.exe). If you will use the mitigations via Exploit Protection, then all edge.exe processes will be protected. For example, the mitigation "Do not allow child processes" (similar to BLOCK_NON_MICROSOFT_BINARIES) will prevent injecting malicious DLLs for all edge.exe processes (also not sandboxed).
 
Last edited:

SecurityNightmares

Level 33
Verified
Jan 9, 2020
2,287
Info about the Thunderbird config:
clicking on link inside Email doesn't work anymore because of:
XML:
<ChildProcess DisallowChildProcessCreation="true" Audit="false" />

If this is needed/ okay (e.g. in a secured setup), this line needs to be removed.
This need to be done for Bandizip too or the updater ("C:\Program Files\Bandizip\updater.exe) and "C:\Program Files\Bandizip\data\web32.exe" doesn't work.
 

ESecurity

Level 15
Nov 15, 2017
712
I was playing a little bit with these configurations which are a modification to the following configurations jdgregson/Windows-10-Exploit-Protection-Settings as a result I have the new edge that does not open the web pages, some of the applications were tested and they work fine.
Well here is my configuration:

Edited: Fix edge and added winrar.
 

Attachments

  • Settings.xml.txt
    51.4 KB · Views: 32
Last edited:

ESecurity

Level 15
Nov 15, 2017
712
No wonder. the repository has not been updated for 13 months.
Look at my Edge configuration above which works
I have modified some settings and added others.

Edit: I don't know why Edge doesn't load pages well with ublock origin enabled, with adguard it goes great.
 
Last edited:
Top