EMET 5.52 User Guide
EMET 5.52 User Guide
EMET 5.52 User Guide
www.microsoft.com/emet
Table of Contents
Introduction ...................................................................................................................................... 1
Capabilities ....................................................................................................................................... 2
Mitigations ........................................................................................................................................ 2
Structured Exception Handler Overwrite Protection (SEHOP) ....................................................................................... 2
Data Execution Prevention (DEP) ............................................................................................................................................... 4
Heapspray Allocations ................................................................................................................................................................... 5
Null page allocation ........................................................................................................................................................................ 6
Mandatory Address Space Layout Randomization (ASLR) .............................................................................................. 6
Export Address Table Access Filtering (EAF) ......................................................................................................................... 8
Export Address Table Access Filtering Plus (EAF+)............................................................................................................. 8
Bottom-up randomization ........................................................................................................................................................... 9
ROP mitigations ................................................................................................................................................................................ 9
Attack Surface Reduction (ASR) ................................................................................................................................................. 9
Advanced Mitigations for ROP ................................................................................................................................................... 9
Certificate Trust (configurable certificate pinning) ...........................................................................................................10
Untrusted font mitigation ...........................................................................................................................................................10
Reporting......................................................................................................................................... 11
Supported Operating Systems and software requirements .........................................................................................12
Support ............................................................................................................................................ 13
End of Life Statement ...................................................................................................................................................................13
Support ............................................................................................................................................ 35
Capabilities
EMET allows to both configure the system policy for mitigations as well as to configure mitigations on a
per executable basis. Furthermore, EMET offers the capability of validating SSL certificates against a set of
configurable “pinning” rules, and is able to detect fraudulent ones.
The system mitigation policies allow the user to set the defaults for system supported mitigations; for
instance choosing whether a mitigation should be enabled for all processes, enabled for only those that
chose to opt-in, or disabled completely.
The mitigations per executable option allows the user to enable an EMET supported mitigation on an
application. Any one of the supported mitigations can independently be turned on and off for any
application residing on the system. Next time one of the configured applications runs, the specified
mitigations will be applied to it. Combining this with the possibility to configure system mitigations give
the user a high degree of control over the mitigations available on a system and how they get used.
The Certificate Trust feature allows to configure a set of certificate pinning rules to validate digitally
signed certificates (SSL certifcates) while browsing. These rules are designed to bind specific domains’ SSL
certificates with the legitimate Root Certificate Authority (Root CA) that issued the certificate. When EMET
detects the variation of the issuing Root CA for a specific SSL certificate configured for a domain, it will
report this anomaly as potential symptom of an ongoing man-in-the-middle attack, and it allows users to
block the connection.
EMET mitigation module does not run as a service, or attaches to an application like a debugger. Instead,
behind the scenes, in order to enable mitigations for applications, EMET is leveraging an infrastructure in
Windows called the Application Compatibility Framework. A high-level overview of this infrastructure and
the toolkit that accompanies it can be found in this blog post.
NOTE: Before continuing, please be aware that some security mitigation technologies may have
compatibility issues with some applications while executed. It is important to thoroughly test EMET in all
target use scenarios before rolling it out to a production environment.
Mitigations
EMET supports multiple mitigation technologies. In this section, we will outline the different mitigations
and the protections they provide.
With EMET in place, before the OS calls any exception handlers, it will validate the exception record chain.
This involves checking if the final exception contains a predefined one. If the chain is corrupted, EMET will
terminate the process without calling any of the handlers. Figure 2 illustrates what this looks like.
Figure 2: EMET
stopping an exception
handler hijack
NOTE: With Windows 7 and newer versions of Windows, EMET configures the native SEHOP provided by
the operating system for the selected applications.
Turning EMET on will enable DEP for a process. Once this happens, the stack and heap will be marked as
non-executable and any attempt to execute malicious code from these regions will be denied at the
processor level.
Heapspray Allocations
When an exploit runs, it often cannot be sure of the address where its shellcode resides and must guess
when taking control of the instruction pointer. To increase the odds of success, most exploits now use
heapspray techniques to place copies of their shellcode at as many memory locations as possible. Figure 5
shows an illustration of what this looks like in a victim process.
Figure 5 Using
heapspray in an exploit
With EMET in place some commonly used pages are pre-allocated. Exploits that rely on controlling these
pages (and then jumping into them) will fail.
5 Enhanced Mitigation Experience Toolkit 5.52 User Guide
Figure 6: Blocking an
attack that uses
heapspray
Please note this is a pseudo mitigation designed to break current exploit techniques. It is not designed to
break future exploits as well. As exploit techniques continue to evolve, so will EMET.
With EMET in place, we force modules to be loaded at randomized addresses for a target process
regardless of the flags it was compiled with. Exploits using ROP and relying on predictable mappings will
fail.
Figure 8: A module
being forced to load at
a random address
NOTE: With Windows 8 and newer versions of Windows, EMET will not use this mitigation if the native
enforced ASLR provided by the operating system is already activated for an application.
protection.
This mitigation may have compatibility issues with software such as debuggers, software behaving like
debuggers, or that use anti-debugging techniques. Examples include protection mechanisms for
videogames, sandboxing solutions, DRM, debugging/tracing tools, and unpackers.
Please note this is a pseudo mitigation designed to break current exploit techniques. It is not designed to
break future exploits. As exploit techniques continue to evolve, so does EMET.
ROP mitigations
EMET offers several experimental anti Return Oriented Programming (ROP) mitigations that aim to block
any exploitation relying on this technique. ROP is an exploitation technique that facilitates the execution
of code when mitigations like the Data Execution Prevention are in place. In order to do that, the ROP
technique uses snippets of code that are already present in the memory region of the attacked
application.
Please note that all ROP mitigations are available and applicable to 32-bit, and some are available and
applicable to 64-bit processes.
The following is a high-level description of the available ROP mitigations:
Load library checks: EMET monitors all calls to the LoadLibrary API and prevents loading libraries from
UNC paths (i.e. \\evilsite\bad.dll). It is possible to disable this option if a program is known to legitimately
load DLLs from UNC paths or remote servers. This mitigation is available for 32 and 64 bit processes.
Memory protection checks: EMET disallows making the stack area executable. Such activity is usually
used by shellcode or ROP gadgets. This mitigation is available for 32 and 64 bit processes.
Caller checks: EMET makes sure that when a critical function is reached, it is reached via a CALL
instruction rather than a RET instruction. This is a very useful mitigation and breaks many ROP gadgets.
This mitigation may be incompatible with some applications. This mitigation is available for 32 bit
processes.
Simulate execution flow: This feature tries to detect ROP gadgets following a call to a critical function.
Like the “Caller checks”, this feature may not be compatible with some applications. This mitigation is
available for 32 bit processes.
Stack pivot: This mitigation is used to detect if the stack has been pivoted. This mitigation also validates
the stack register present in the context structure of certain APIs. It is compatible with most programs.
This mitigation is available for 32 and 64 bit processes.
Requires ROP Deep hooks: EMET protects critical APIs and the subsequent lower level APIs used
by the top level critical API. For example, EMET not only hooks and protects
kernel32!VirtualAlloc but also the related lower level functions,
kernelbase!VirtualAlloc and ntdll!NtAllocateVirtualMemory.
Anti detours: Some exploits attempt to evade the hooks by executing a copy of the
hooked function prologue and then jump to the function past the prologue. With
“Anti detours” option enabled, common shellcode using this technique are not
effective.
Banned functions: By enabling this option, EMET will be block calls to
ntdll!LdrHotPatchRoutine to mitigate potential exploits abusing this API.
Reporting
EMET has reporting capability provided through a Windows Service called “Microsoft EMET Service”. Once
EMET is installed, the service is set to automatically start with Windows. The EMET Service is responsible to
dispatch the EMET Agent, which will show up in the system tray area of the taskbar with an EMET icon.
The visibility of the EMET Agent icon in tray area can be configured via Group Policy or via the command
line tool).
The EMET Service performs the following tasks:
Write events in the Windows Event Log: EMET events are logged via the event source called EMET.
These logs can be found in the Application Log. There are 3 different levels of logging: Information,
Warning and Error. Information messages are used for logging usual operation such as the EMET Agent
starting. Warning messages are used when EMET settings change or to report Certificate Trust detections
of SSL certificates validated by an exception rule. Error messages are used for logging cases where an
untrusted SSL certificate is detected or where EMET stopped an exploit with one of its mitigations and this
means a possible active attack was prevented. The list of possible EventIDs associated with EMET
reporting is presented below; users should be also aware that some mitigations may not be fully logged
by EMET when they are configured as System mitigations and are natively provided by the operating
system.
Table 1: Event ID formats
Information 00 10 20 30 40
Warning 01 11 21 31 41
Error 02 12 22 32 42
Man DEP SEH EAF EAF+ Heap Bott Null Load Mem Sim Stack ASR
dator OP Spra om Page Libra Prot Exec Pivot
y y Up ry Flow
ASLR
Show important events via a tooltip in the taskbar notification area: Similar in severity to the error
messages written to the Windows Event Log, when EMET stops an exploit due to one of the mitigations or
detects an untrusted SSL certificate, a message is displayed for the user, stating which application is being
stopped and which mitigation has been used to stop the exploit. In case of a Certificate Trust violation, it
shows details about the untrusted SSL certificate on the current HTTPS connection.
Perform certificate trust validation tasks: SSL certificates, Root CA certificates and pinning rules are
enforced and validated only when the EMET Service is active and running.
Send reports for the Early Warning Program: EMET offers the “Early Warning Program” reporting
feature. When an exploitation attempt is detected and blocked by EMET, a set of information related to
the attack will be sent back to Microsoft through the standard Windows Error Reporting channel. This
information will help Microsoft to obtain information related to 0day exploits and will facilitate the
remediation of the issue before it becomes a large-scale threat. If the vulnerability is related to a software
from a third-party vendor, Microsoft will work with the affected vendor through the Microsoft
Vulnerability Research program to remediate the issue.
The Early Warning Program reporting feature also sends back to Microsoft information related to
suspicious SSL certificates related to Microsoft online services. Please refer to the “Privacy Statement.rtf”
file, available also through the “Help” ribbon in EMET GUI, or at http://aka.ms/EMETps, for more
information on the type of data that will be sent to Microsoft.
DEP
SEHOP
System-wide
ASLR
Untrusted fonts
DEP
SEHOP
NULL Page
Heap Spray
Application
Mandatory ASLR
EAF
EAF+
Bottom-up ASLR
13 Enhanced Mitigation Experience Toolkit 5.52 User Guide
Load library
Memory protection
Simulate execution
flow
Stack pivot
Caller checks
ASR
Untrusted fonts
Additionally, on 64 bit systems, some mitigations are only applicable with 32 bit processes. For details,
refer to the following table:
Table 5: application mitigations compatibility matrix
DEP
SEHOP
NULL Page
Heap Spray
Mandatory ASLR
EAF
EAF+
Bottom-up ASLR
Application
Load library
Memory protection
Simulate execution
flow
Stack pivot
Caller checks
ASR
Untrusted fonts
EMET can be installed and used in virtual machines, however virtualized applications such as Microsoft
App-V or VMware ThinApp™ are not supported.
The Certificate Trust feature is supported for Internet Explorer only, but it can be configured for other
browsers with an experimental setting. Please see the paragraph Configuring Certificate Trust feature for
third party browsers for more information.
Software requirements
EMET requires the Microsoft .NET Framework 4. In addition, in order for EMET to work properly on
Windows 8 and Windows Server 2012, Microsoft KB 2790907 – Compatibility update is available for
14 Enhanced Mitigation Experience Toolkit 5.52 User Guide
Windows 8 and Windows Server 2012 or a more recent version of the compatibility update must be
installed.
EMET Configuration
EMET must be configured after the EMET installation, for the security mitigations to be enabled. To
configure EMET, the following settings have to be specified:
Which system mitigations should be enabled.
Which applications should be protected with which mitigations.
What SSL/TLS certificate pinning rules to adopt.
Both system and application mitigations can be configured via the EMET Graphical User Interface or via
the EMET Command Line Tool. The Certificate Trust feature for SSL/TLS connections can be configured
only via the EMET Graphical User Interface. Refer to paragraphs EMET Graphical User Interface and EMET
Command Line Tool for further instructions on how to use these interfaces.
It is also possible to use Group Policy to configure system and application mitigations for EMET. Group
Policy support is explained in the Group Policy paragraph.
Another option for configuring EMET is using Protection Profiles. Refer to paragraph 2.1 for details on
what is contained in these Protection Profiles.
An additional, and the easiest, way to configure EMET is through the Configuration Wizard. At the end of
the installation, the Configuration Wizard will ask to apply a set of recommended settings. In case a
manual configuration is preferred, the Configuration Wizard can be ignored. For more information about
the Configuration Wizard see the paragraph Configuration Wizard.
Normal EMET configuration settings are saved in the registry sub-key HKLM\SOFTWARE\Microsoft\EMET
and some limited user-specific settings are saved also in HKCU\SOFTWARE\Microsoft\EMET. EMET settings
configured via Group Policies are saved in the registry sub-key HKLM\SOFTWARE\Policies\Microsoft\EMET.
Some per-application settings may also exist in the HKLM\SOFTWARE\Microsoft\Windows
NT\CurrentVersion\Image File Execution Options. Note that on 64-bit platforms, the settings may be
saved in the both 64-bit hives and their 32-bit counterparts in the registry (e.g. Wow6432Node).
The EMET GUI is divided in three sections. From the top to the bottom:
Ribbon:
File: This group allows to “Import” (Ctrl+Shift+I) or “Export” (Ctrl+Shift+E) EMET’s configuration,
and allows to run the EMET Configuration Wizard (Ctrl+Shift+W). See Configuration Wizard for
additional details. This group also enables you to configure settings through Group Policy instead
of through registry configuration. You must have Remote Server Administration Tools (RSAT)
installed to configure local or Active Directory Group Policy.
Configuration: This group allows to access the “Application Configuration” window by clicking
on “Apps” (Ctrl+Shift+A), and the “Certificate Trust Configuration” window by clicking on “Trust”
(Ctrl+Shift+T). See Configuring Mitigations for Applications and Configuring Certificate Trust
(pinning rules) for additional details.
System Settings: This group allows to apply a Quick Profile for the system, as well as select a Skin
for EMET GUI. See Configuring System-wide Settings for additional details.
Reporting: This group allows to toggle the Reporting options. See Configuring Reporting for
additional details.
Help: This group allows to access to help resources, such as the Support Forums, and the User
Guide (Ctrl+Shift+F1), and to access to the EMET Privacy Statement.
Configuration Wizard
The Configuration Wizard is displayed at the end of the EMET installation, and in case of a clean EMET
installation it allows to either apply the recommended settings or to configure EMET manually. In case of
an upgrade from a previous version of EMET, it allows to keep the previous EMET settings.
We strongly suggest to always apply the Recommended Settings for both new installation and upgrade
scenarios, and then toggle EMET’s configuration as needed.
Wizard options
Use Recommended Settings: This option deletes existing settings and apply the recommended settings:
Application Configuration:
o Adds protections for Internet Explorer, WordPad, Microsoft Office, Adobe Acrobat and
Reader, and Oracle Java.
o Configures EAF+ with Internet Explorer with the Microsoft Trident engine, the Adobe
Flash plugin, the Microsoft VML plugin, the Microsoft VBScript engine, and the Microsoft
JavaScript engine. Configures Adobe Acrobat and Adobe Reader with the Lotus Notes
Field Exchange Module for Adobe Acrobat, the Adobe Reader engine, and the Adobe
Acrobat Forms.
o Blocks the Adobe Flash plugin from running in Microsoft Excel, PowerPoint, and Word,
and blocks the Oracle Java, Microsoft VML, Microsoft MSXML 4.0, Windows Script Host
Runtime, and Microsoft Scripting Runtime plugins from running in Internet Explorer in
websites not belonging to the Trusted Sites or Intranet zones.
Certificate Trust: Adds rules for Microsoft and other 3rd party popular online services.
Reporting: Enables all Reporting mechanisms (Windows Event Log, Tray Icon, and Early Warning
Program).
(New installation) Configure Manually Later: This option does not configure EMET.
(Upgrade from previous version) Keep Existing Settings: This option keeps the existing EMET
configuration. Two optional settings, related to EMET’s new features, can be automatically configured:
Certificate Trust: Adds rules for Microsoft and other 3rd party popular online services.
Reporting: Enables the Early Warning Program.
The “Show All Settings” button in the “Options” ribbon allows to fine-tuning or to configure additional
mandatory aspects of some mitigations. Currently the mitigations that can be configured through this
panel are:
Heap Spray: allows to configure the memory addresses to pre-allocate for this mitigation.
Simulate Exec Flow: allows to define the number of simulated instructions to check.
The next step is to assign a “Pin Rule” to that website. If there are no rules, click on the “Pinning Rules”
tab. A window with the list of available rules will appear.
From this window it’s possible to define the certificate pinning rules that can be assigned to websites. To
generate a new rule, click on “Add Rule” (Ctrl+Shift + Plus) in the “Add / Remove” ribbon group and fill at
least the first three parameters in the table with the appropriate values:
Name: is the unique identifier for the rule, to be accessed later from the “Protected Websites” tab.
Certificates: will open a window that allows to define and import a set of trusted Certification Authorities
from the Trusted Root Certification Authorities folder in the User Certificate Store (certmgr.msc). It is
possible to select one or more trusted Root CAs from this list. If a Root CA is not present in the list it will
need to be imported in advance.
Rule Expiration: will establish when that rule will expire. When a rule is expired it will be ignored and a
log event will be written at EMET Agent startup to notify the expiration of the rule.
Blocking Rule: if enabled, EMET will stop the connection when a mismatch of that rule is detected.
Note that EMET no longer uses the Minimum Key Size, Allowed Country, Blocked Hashes, and PublicKey
Match attributes, even though they still appear in the EMET Certificate Trust Configuration dialog box.
Once the rule is defined, click on the “Protected Websites” tab and assign that rule to the desired
websites. A website can have only one Pinning Rule, while a Pinning Rule can be assigned to multiple
websites.
“Protected Websites” and “Pinning Rules” entries can be deleted by clicking on the entry in the table that
needs to be deleted, and by clicking on “Remove Website” or “Remove Rule” (Ctrl+Minus) in the “Add /
Remove” ribbon group afterwards. A pinning rule can be deleted only when not used by any website. The
Configuring Reporting
It is possible to configure the reporting of EMET alerts granularly. When EMET detects an exploitation
attempt or a SSL certificate that violates one of the pinning rules, the EMET Service can be configured to
perform one or more actions: writing to the Windows Event Log, display an alert to the user, and/or use
the Early Warning Program. The Early Warning Program is only available for exploits detection.
It is possible to configure what actions EMET will perform when detecting an attack directly from the
EMET GUI main window. The “Reporting” ribbon group contains three entries: Windows Event Log, Tray
Icon, and Early Warning.
Windows Event Log: EMET writes to the Windows Events Log.
Tray Icon: The EMET Agent displays a pop-up that contains the details of the attack (targeted process
and the mitigation used to detect and stop the attack).
Early Warning: EMET generates a set of information related to the attack, including a memory dump and
the type of mitigation that has been used to detect and stop the attack, and sends this information to
Microsoft through the standard Microsoft Error Reporting channel. Users have the opportunity to review
the information sent to Microsoft in advance before the transmission occurs.
NOTE: please refer to Advanced Options for the advanced configuration of custom “Tray Icon” messages.
Configuring Appearance
EMET offers the possibility to configure the look and feel of the EMET GUI and the various graphical
components of both the EMET GUI and the EMET Agent. EMET’s theme can be changed from the main
EMET GUI window, by clicking on “Skin:” in the “System Settings” ribbon group.
Accessibility
EMET GUI offers accessibility features that makes it more compliant with the ease of access features
provided by Windows:
Full keyboard navigation support
Full High-Contrast support
Full support for different text sizes, up to 200% larger than default
Partial Narrator support
Sub-options
They allow configuration of:
ASR modules and zones
EAF modules
ROP Simulate Execution Flow number of simulated instructions
Prefixes
Options can be prefixed by “-- “ (original EMET style), “-“ (Unix style) or “/” (Windows style). Different
prefixes can be used in the same command.
Get help
EMET_Conf --help
EMET_Conf /?
Display a usage screen including all currently supported application specific mitigations as well as the
supported system mitigations.
Running the EMET Command Line Tool without any arguments has the same effect than command help.
Example usage:
“EMET_Conf -help
Deploying EMET
With EMET enterprises can take advantage of their existing management infrastructure to deploy and
configure EMET at a large scale. In this section, we talk about how to use System Center Configuration
Manager and Group Policy to deploy and manage EMET across enterprise networks.
1
More information and the downloadable Configuration Manager packages can be found at the
Configuration Manager Team Blog here.
26 Enhanced Mitigation Experience Toolkit 5.52 User Guide
7. From the just created application, select Deploy.
8. Browse to the collection to target.
9. On the content page, choose the distribution points.
10. On the deployment settings page, choose the intended install settings (most likely this will be
required, unless it is just a test deployment).
11. Configure the deployment scheduled, user experience, and alerts, then complete the wizard.
12. The process of deploying the EMET client silently to all targeted clients has now started. Its
progress can be monitored in Monitoring | Deployments.
Group Policy
To deploy EMET installer through Group Policy, please follow the procedure described in Microsoft KB
Article 816102.
Group Policy administrators can configure EMET settings through Group Policy using the EMET GUI and
using standard Group Policy editing tools. The EMET GUI is easier to use, but both options are available.
Settings configured through Group Policy override settings configured in the local registry.
To use the EMET GUI to configure Group Policy, click the Group Policy button and select the policy store
to configure, or click New to create a new one. EMET will open the Group Policy EMET Configuration
dialog box, which is very similar to the main EMET GUI. The primary difference is that settings that you
configure are written to Group Policy Objects rather than to the local registry. Note that the Import and
Export buttons enable you to “transfer” configuration sets between Group Policy and regular registry
configuration through XML files. Also note that there are some features that can be configured through
Group Policy using Windows Group Policy editors that are not exposed through the EMET GUI’s Group
Policy configuration GUI.
Once EMET is deployed, Group Policy administrators can use the provided template files for configuration.
The EMET.admx and EMET.adml files are located in the “Deployment\Group Policy Files” folder. These files
must be copied onto \Windows\PolicyDefinitions and \Windows\PolicyDefinitions\en-US folders
respectively. Once this is done, EMET settings can be configured via Group Policy.
There are several sets of policies that EMET exposes. Below is a description of each. More information can
be found at the policy editor for each policy.
Other Options
If using a different management solution not relying on either System Center Configuration Manager or
Group Policy, it is recommended to leverage the Protection Profiles feature presented in the paragraph
EMET Protection Profiles.
Advanced Options
Enabling Unsafe Configurations
By default, EMET hides configuration options considered to be unsafe. These are options that have shown
to cause system instability in common use scenarios. It is still possible to configure these options by
overriding a registry key. After the override is applied, EMET will display the unsafe options, but will also
warn the user whenever one of them is selected.
The override can be found in registry at HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EMET. If this key is
not present, run the EMET GUI and refresh the view of the registry. Inside the key, there is a DWORD value
called EnableUnsafeSettings. By default it has a value of 0. By setting it to 1 and restarting the EMET GUI,
unsafe options can be selected.
With EMET, there is currently one unsafe option: the “Always On” setting for the system ASLR setting.
Depending on the operating system configuration, setting the system ASLR setting to “Always On” could
make the operating system to crash at boot time. Recovering from this will require booting the system in
safe mode and setting the system ASLR setting to either “Opt In” (recommended) or “Disabled”.
Mitigation Caveats
There are a few things to consider when configuring the various mitigations available through EMET. In
the following sections we discuss the caveats broken down by the system settings and application specific
settings.
System Settings
DEP
Not all systems, including virtual machines, support DEP. However, this option will still be available for
configuration even if EMET is being run on a machine that doesn’t support it. Setting this option on
those systems will have no effect. Be aware of the limitations of the system when configuring DEP.
ASLR
There is an unsafe option for the ASLR setting called “Always On”. This setting will force address space
randomization for binaries that do not specifically support it. This setting is not visible by default due
to the risk of introducing system instability.
In our tests we encountered issues in a common use scenario where having ASLR set to “Always On”
would cause a system to blue screen during boot. This occurred because the address space for certain
third party video drivers was being randomized. These drivers had not been built to support this
randomization and subsequently crashed, causing the whole system to crash as well. Recovering from
this issue requires booting into safe mode and switching the system ASLR setting to either “Opt in” or
“Disabled”.
For more information on how to turn on the unsafe ASLR setting, refer to the paragraph Advanced
Options.
DEP
Not all systems, including virtual machines, support DEP. However, this option will still be available for
configuration even if EMET is being run on a machine that doesn’t support it. Setting this option on
those systems will have no effect. Be aware of the limitations of the system when configuring DEP.
SEHOP
Various applications on Windows Vista and above are not compatible with EMET’s SEHOP, in this case
it is advisable to disable SEHOP from EMET and use the System Mitigation’s SEHOP. Configure the
system mitigation SEHOP to Applications Opt-Out
EAF
Systems configured with the /debug boot option need to have a debugger attached when running
EAF enabled applications. If the /debug boot option is enabled and a debugger is not attached, the
system will become unresponsive when an application with EAF enabled starts. This happens because
the EAF mitigation relies on debug registers. If Windows has been configured to use a kernel
debugger, Windows will try to inform the debugger whenever one of several memory addresses has
been accessed. Windows will then wait for a response from the debugger. If a debugger does not
respond, the system will appear unresponsive.
Some virtual machines do not support debug registers (and consequently EAF). However, the EAF
option will still be available for configuration even if EMET is being run on a machine that doesn’t
support debug registers. Setting this option on those machines will have no effect. Be aware of this
limitation when configuring EAF.
EAF mitigation should not be applied to: programs and libraries protected that use packers or
compressors, DRM or software with anti-debugging code, debuggers, and security software such as
antivirus, sandbox, firewalls, etc.
EMET 4 Questions
Are my configurations from EMET 4 and EMET 5.2 compatible with EMET 5.52?
No. In EMET 5.52, the registry has been refactored to make it easier to manage. To convert settings from
previous versions of EMET (including EMET 5.5 Beta), you must use the export feature to save your
settings from the previous version of EMET, and then import the settings back with the use of the
converter PowerShell script after EMET 5.52 is installed. Note that configurations from EMET 5.5 are
compatible with EMET 5.52.
I have EMET 4 installed. Should I uninstall it before installing the new version?
You don’t need to uninstall EMET 4 before installing EMET 5.52. The EMET 5.52 installer will automatically
uninstall EMET 4 and install EMET 5.52. When upgrading, in order to keep your current settings, you must
use the export feature to save your settings from the previous version of EMET, and then import the
settings back with the use of the converter PowerShell script after upgrading to the latest version.
In Process Explorer, the ASLR column for a process is blank even though EMET is configured
for use with that application.
EMET does not take advantage of the OS implementation of ASLR. It will not show up in Process Explorer
even when it is turned on because Process Explorer only queries the OS implementation of ASLR.
One of my applications always crashes when I launch it after I configure EMET to protect it.
This generally occurs because the application is not compatible with one of EMET’s mitigations. One way
to figure out which mitigation is causing this is to start with all the mitigations enabled and disable them
one by one until the application starts launching correctly without crashing. Once you determine the
offending mitigation, you can disable it and still have the rest of the mitigations enabled.
Please note the emphasis on “always” in the bold text above. A crash that happens 100% of the time no
matter the nature of the user input is more likely to be an application compatibility issue if the application
is coming from a vendor you consider to be trusted.
Crashes that happen every now and then or crashes that happen based on external input such as crashes
that happen only when opening a certain document with a reader or crashes that happen in applications
that may come from untrusted sources should be treated differently. For these applications, EMET
mitigations should not be deliberately disabled until the root cause of the crash is understood in order to
avoid a security incident.
One of my applications always crashes when I launch it after I enable the EAF mitigation.
Similar in vein to the previous question, some applications might not work with the EAF mitigation. This is
often caused by defenses that the application is implementing to protect intellectual property. We
sometimes see that approach in video players, converters, VOIP programs etc. If you see a crash 100% of
the time when the application is launching due to EMET’s EAF mitigation in such an application, you can
disable EAF mitigation and still have the remaining mitigations in place for that application.
General Questions
I get the error “app failed to initialize properly” when attempting to launch the graphical user
interface. How can I fix this?
The GUI requires that .NET 4.0 is installed on the system. If you get this error after copying the binaries
form another machine, try running the installer on the local machine. It will direct you to a location where
you can download the .NET 4.0 redistributable.
Does EMET work on 64 bits applications? It is installed in the 32bit program files directory.
Yes, EMET supports 64 bit applications. The installer is designed to work on both 64 bit systems and 32 bit
systems. A side effect of this is that the binaries are placed in the 32 bit directory.
However, please note there could be some mitigation that is not available or applicable to 64 bit
applications. Refer to the paragraph Supported Operating Systems and software requirements for more
details.
Support
Customers with a Premier or Professional support contract can leverage these channels to receive support.
EMET 5.51 is a minor update from EMET 5.5 focusing fixing some bugs and known adoption blockers.
Microsoft may have patents, patent applications, trademarks, copyrights, or other intellectual property rights
covering subject matter in this document. Except as expressly provided in any written license agreement from
Microsoft, the furnishing of this document does not give you any license to these patents, trademarks, copyrights,
or other intellectual property.
Microsoft, list Microsoft trademarks used in your white paper alphabetically are either registered trademarks or
trademarks of Microsoft Corporation in the United States and/or other countries.