此外,在64位系统中,有些减灾措施至适用于32位进程。详细信息请参阅下表。
表 5:应用程序减灾措施兼容性矩阵
EMET可以安装在虚拟机器上使用,但不支持虚拟化的应用程序,如微软的App-V或VMware ThinApp™。
该证书信任功能仅适用于IE浏览器,但它可以以试验性设置的形式为其他浏览器进行配置。关于这个功能适用于InternetExplorer的哪些版本,请参阅下表:
表 6:证书信任的应用程序兼容性
1.5.2 软件要求
EMET 4.1要求Microsoft.NET Framework 4。此外,为了使EMET在Windows 8和Windows Server 2012中适当运行,必须安装Microsoft KB 2790907 – Compatibility update is availablefor Windows 8 and Windows Server 2012。
2 EMET配置
EMET必须在安装后进行配置,从而启用安全减灾措施。要配置EMET,必须指定以下设置:
- 应该启用哪些系统减灾措施。
- 哪些应用程序需要保护,用什么减灾措施保护。
- 采用哪些SSL / TLS证书锁定规则。
系统和应用程序减灾措施都可以通过EMET图形用户界面或EMET命令行工具来配置。针对SSL / TLS连接的证书信任功能只能通过EMET图形用户界面进行配置。参见本指南的第2.2和2.3节来了解如何使用这些工具来进行配置。
也可以使用Group Policy来配置系统和应用程序的减灾措施 。第3.2节介绍了Group Policy支持。
配置EMET的另一种方法是使用Protection Profiles。EMET 4.1的安装进程将用Popular Software Profile和Certificate Trust Profile来配置EMET。欲了解Protection Profiles包含的内容,请参考第2.1节。
配置EMET的另一种方法是使用配置向导。在安装结束时,配置向导将推荐一套适用的设置。当选择手动配置时,可以忽略配置向导。有关配置向导的详细信息,请参阅第2.2.1节。
EMET配置保存于注册表子项HKLM\SOFTWARE\Microsoft\EMETand some limited user-specific settings are saved also inHKCU\SOFTWARE\Microsoft\EMET。
2.1 EMET Protection Profiles
EMET带有两个默认的程序ProtectionProfile和一个证书信任ProtectionProfile。Protection Profiles是包含预配置EMET设置(针对常见的微软和第三方应用程序)的XML文件。在EMET安装目录中,这些文件位于Deployment\Protection Profiles文件夹。它们可以被启用、修改或用于创建新的保护配置文件。
EMET所包含的配置文件:
Recommended Software.xml:为支持的微软Internet Explorer、写字板、微软Office组件、Adobe Acrobat8-11、Adobe Reader 8-11、Oracle Java6和7启用减灾措施。
Popular Software.xml:为常见的应用程序,包括微软 Internet Explorer和微软Office组件启用减灾措施。
CertTrust.xml:为微软帐户、微软Office365、Skype的登录服务;以及其他流行在线服务(如Twitter、Facebook和雅虎)的登陆启用证书锁定规则。
请注意:EMET Protection Profiles已通过优化配置更新,同时考虑到了一些软件的有限兼容性问题。EMET的证书信任规则都配置了特定的有效日期,即在被保护的SSL证书到期之前,每天都会有一条规则失效。
我们看下Popular Software.xml的一些规则。
上述规则很简单。它告诉EMET用默认的减灾设定保护IE浏览器。默认情况下,在保护配置文件中,所有减灾措施都会被启用。这点可以通过编辑配置文件中的DefaultConfig节点进行更改。总之,这条规则要求EMET为Internet Explorer启用所有减灾措施。
有了这个规则,我们为Windows Media Player启用所有的减灾措施(强制性ASLR、EAF和SEHOP除外)。另一个重要的信息是路径,例如“*\Windows MediaPlayer\wmplayer.exe”。该路径是EMET用来为应用程序注册减灾措施的,它需要匹配目标应用程序的路径,只有这样减灾措施才会有效。
到应用程序的完整路径名必须是指定的。也可以使用通配符,如*或?。另一种选择是只使用可执行文件的名称而不使用路径,如wmplayer.exe。
请注意,通配符只在路径部分有效,在可执行映像名称本身中是无效的。例如“wmplayer.exe”或“*\ wmplayer.exe”是有效的路径,而“* player. exe”或“* wmplayer.exe”则无效。这是由于Windows系统中应用程序兼容性框架的限制,而EMET依赖于这种兼容性。
保护文件被很好的注释。阅读这些文件可以更好地了解这项功能。ProtectionProfiles可以通过EMET的图形用户界面、EMET命令行工具或Group Policy来启用。
2.2 EMET图形用户界面
与EMET交互的一种方法是通过图形用户界面(GUI)。它可以通过EMET安装过程中创建的开始菜单/窗口图标来启动。本节将介绍GUI的各种窗口和部分。
当EMET的GUI启动后,将出现下列窗口。
图 10:EMET图形用户界面的主窗口
EMET的GUI被分成三个部分。从顶部至底部依次是:
功能区
文件:该组允许“导入”(Ctrl+ Shift + I)或“导出”(Ctrl + Shift +E)EMET的配置,并允许运行EMET配置向导(Ctrl + Shift + W)。请参考第2.2.1节--配置向导来了解更多信息。
配置:该组允许通过点击“应用程序”(CTRL + SHIFT + A)来访问“应用程序配置”窗口,通过点击“信任”(Ctrl + Shift + T)来访问“证书信任配置”窗口。请参见第2.2.3节—为应用程序配置减灾措施和第2.2.4节--配置证书信任(锁定规则)来了解更多信息。
系统设置:该组允许为系统申请一个QuickProfile,以及为EMET GUI 选择皮肤。请参见第2.2.2节--配置系统范围的设置和第2.2.6节--配置外观来了解更多信息。
上报:该组允许切换上报选项。请参见第2.2.5节--配置上报来了解更多信息。
帮助: 该组允许访问帮助资源,如支持论坛和用户指南(Ctrl + Shift + F1),以及访问EMET隐私声明。
系统状态:该部分显示系统减灾措施(DEP、SEHOP和ASLR)和证书信任功能的当前状态。这些设定值可以在该部分直接更改。
正在运行的进程: 该部分显示当前运行的应用程序,以及被EMET保护的应用程序。应用程序列表每30秒刷新一次,并且可以通过点击“刷新”按钮手动刷新。此外,在键盘​​组合CTRL + F可用于搜索列表中的特定应用程序。
2.2.1 配置向导
该配置向导将在EMET安装结束时显示。如果初次安装EMET,它将允许应用推荐设置或手动配置EMET。若从以前版本的EMET升级,则将显示保留现有设置的选项。
配置向导将自动检测系统是否已经有一些EMET设置,并将提供相应的不同选择。
我们强烈建议您采用推荐设置,之后根据需要切换EMET配置。
2.2.1.1 升级之前版本的EMET其他配置减灾
可以对EMET减灾措施配置其他设置。这些设置可从“应用程序配置”窗口更改。
“默认操作”功能区定义了当发现漏洞利用时EMET会采取的操作:
终止攻击: EMET会上报攻击企图并终止进程。
只进行审核: EMET会上报攻击企图,但不会终止进程。这种模式并不适用于所有的减灾措施,因为当一些减灾措施被检测到攻击时,该进程已经处于无法恢复的状态了。
支持审核模式的减灾措施是:
EAF
ROP减灾: LoadLib、MemProt、Caller、StackPivot 、SimExecFlow
SEHOP仅支持Windows XP和Vista
2.2.4 配置证书信任(锁定规则)
在桌面模式下运行时,此功能仅适用于Internet Explorer。它不适用于Windows 8中的Modern Internet Explorer应用程序。要启用此功能,“证书信任(锁定)”必须启用,如第2.2.2节所述;iexplore.exe进程必须添加到受保护的应用程序列表中,如第2.2.3节所述。不需要启用其它减灾措施。
可以通过点击EMET GUI主窗口的“配置”功能区中的“信任”(Ctrl + Shift + T)按钮来配置SSL / TLS证书锁定规则。从“证书信任配置”窗口中,可以添加或列举受保护的网站(其SSL证书的名称),并为每个网站分配一个现有规则。点击“添加/删除”功能区中的“添加网站”(Ctrl + Add)按钮后,键入SSL证书中所示的网站的完全合格域名(请注意:通配符或其他符号是不能接受的,名称必须是唯一的)。
图 11:login.live.com的证书信任链
下一步是为网站分配一个“锁定规则”。如果没有规则,请点击“锁定规则”选项卡,会出现可用规则列表的窗口。
在这个窗口中可以定义可分配给网站的证书锁定规则。要生成一个新的规则,请点击“添加/删除”功能区中的“增加规则”(Ctrl + Add)按钮,并至少用适当的值填写表中的前三个参数:
名称:是唯一的规则标识符,之后可从“受保护的网站”选项卡访问。
证书:将打开一个窗口,该窗口允许从用户证书商店(certmgr.msc)的受信根证书颁发机构文件夹中定义并导入一组受信证书颁发机构。可以从这个名单中选择一个或多个受信根证书颁发机构。如果受信根证书颁发机构不存在于列表中,将需要提前导入。
规则有效期:将建立规则的到期时间。当规则过期后,它将被忽略。EMET Agent会写入一个日志事件来通知该规则已过期。
也可以定义四个额外的检查,以允许验证异常,即网站和其锁定规则不匹配(如果定义的可选检查满足,则非锁定根CA将被视为有效):
最小密钥: 如果Root CA证书的密钥等于或大于选定值,即使Root CA与定义的不同,证书也将被视为有效。
允许的国家:如果Root CA证书的发行国家与字段中指定的一致,即使Root CA与定义的不同,证书也将被视为有效。
阻止的哈希:如果Root CA证书的哈希算法不是出自该字段,即使Root CA与定义的不同,证书也将被视为有效。
公钥匹配:当选择此选项时,EMET将只验证锁定规则中Root CA的公钥组件,而不匹配名称和序列号。
请注意:这些可选的检查旨在防止误报,并为符合特定标准的Root CA启用一些自动的异常处理;锁定规则的最严格的配置禁用所有可选检查(N/A或不检查)。当非锁定Root CA通过上述前三个异常情况之一验证后,EMET Agent不会显示警告,但会记录该事件并跟踪这个特殊的验证。
一旦定义了规则,请点击“受保护的网站”选项卡,并将该规则分配给所需的网站。一个网站只能有一个锁定规则,而一个锁定规则可以分配给多个网站。
“受保护的网站”和“锁定规则”项可以通过点击表中需要删除项、然后点击“添加/ 删除功能区的“删除网站”或“删除规则”(Ctrl + Substract)来删除。锁定规则只能在不被任何网页使用的情况下被删除。对特定“受保护的网站”的保护可以通过取消选中“激活”列来暂时停用。
配置完成后,如果浏览网站时一条规则被触发,EMET将检测SSL证书与配置规则不匹配,并根据上报设置(预警上报机制不适用于该证书信任功能)进行响应。
EMET的图形用户界面(EMET_GUI.exe)提供配置“证书信任”项的界面。但是,也可以利用EMET_GUI或EMET_CONF导入以前导出的锁定规则配置。通过Group Policy的配置不支持此功能。
如何创建证书信任锁定规则?请参见安全研究和防御博客的帖子。
2.2.5 配置上报
可以配置EMET的上报提醒。当EMET检测到攻击企图或违反锁定规则的SSL证书后,EMET Agent将执行一个操作。这个操作可以被定义为写入Windows事件日志、显示警告、或两者兼而有之。该预警方案仅适用于攻击检测,且不适用于WindowsXP。
可以配置当直接从EMET GUI主窗口检测到攻击时EMET采取的操作。该“上报”功能区包含三个项目:Windows事件日志、托盘图标和预警。
如果“Windows事件日志”被选中,EMET将写入Windows事件日志。
如果“托盘图标”被选中, EMET Agent将弹出一个窗口来警告用户,窗口包含攻击的详细信息。
如果“预警”被选中,EMET会生成与攻击有关的信息,包括内存转储和用来检测和阻止攻击的减灾措施类型,并通过标准的Microsoft错误上报渠道将此信息上报到微软。当预警被激活后,用户将有机会在发送给微软之前审查信息。
请注意:请参阅第4 章--高级选项,以便更好地了解自定义“托盘图标”消息的高级配置。
2.2.6 配置外观
EMET可以配置EMET GUI的外观,以及EMET GUI和EMET Agent的各种图形组件的外观。EMET的主题可以通过EMET GUI的主窗口更改,点击“系统设置”功能区的“皮肤”按钮。
2.2.7 可访问性
EMET的图形用户界面提供了可访问性功能,使之能够与Windows提供的访问功能更加兼容:
全键盘导航功能支持
高对比度支持
针对不同的文字大小,比默认值高200%的全面支持
部分说明支持
2.3 EMET的命令行工具
配置EMET的一种替代方法是使用EMET_Conf.exe。此命令行工具可以在安装EMET的位置找到。
不带任何参数运行EMET命令行工具将显示一个屏幕,屏幕中包括目前所有针对应用程序和系统的特定减灾措施。
以下是EMET命令行工具支持的与配置有关的选项。
添加应用程序到EMET:
<path to executable>可以是完整路径名。也可以使用通配符,即*或?。
另一种选择是只使用可执行文件名,不带路径,如wmplayer.exe。
请注意,通配符只在路径部分有效,在可执行映像名称本身中是无效的。例如“wmplayer.exe”或“*\ wmplayer.exe”是有效的路径,而“* player. exe”或“* wmplayer.exe”则无效。这是由于Windows系统中应用程序兼容性框架的限制,而EMET依赖于这种兼容性。
-- force选项用于向为目前未安装在系统上的应用程序配置EMET。
用法示例:
EMET已启用的应用程序列表
显示所有的EMET应用程序减灾设置,首先显示本地配置的设置(EMET_GUI或EMET_CONF),其次显示通过Group Policy配置的设置。
EMET已启用的系统减灾列表
显示所有的EMET应用程序减灾设置,首先显示本地配置的设置(EMET_GUI或EMET_CONF),其次显示通过Group Policy配置的设置。
EMET已启用的应用程序列表
显示所有的EMET应用程序减灾设置,首先显示本地配置的设置(EMET_GUI或EMET_CONF),其次显示通过Group Policy配置的设置。
证书信任配置列表
<path to executable>可以是一个完整的路径,使用通配符的路径,或仅仅是可执行文件的名称。它应该匹配用于向EMET添加应用程序的<path to executable>。
从EMET中删除所有应用程序
这将删除所有EMET应用程序减灾设置。请注意,这不会删除通过Group Policy配置的应用程序的减灾设置。
删除所有证书信任配置
这将从EMET中删除所有的证书信任配置
删除所有EMET配置
这将删除所有EMET应用程序减灾设置和证书信任配置。
它等同于同时运行“--delete_apps”和“-- delete_certtrust”
修改系统减灾
--force选项将减灾措施设定为不安全状态。更多信息请参阅第4 章--高级选项。默认情况下,不安全选项是是不会通过命令行工具或用户界面显示的。
从XML文件导入/导出应用程序设置
导入以前导出的设置。该命令也可以用于导入和启用Protection Profile或证书信任功能的整个配置,如EMET_Conf --import “Deployment\Protection Profiles\PopularSoftware.xml”。
将当前配置导出到指定的xml文件。
配置上报设置
此开关配置上报发生的方式。可以使用此命令进行切换的设置如下:
事件日志:该关键词将开启或关闭Windows系统事件的攻击记录。
托盘图标:该关键词将开启或关闭用户视觉通知。
遥测:该关键词将开启或关闭预警方案系统。
以下是如何使用此命令的一个例子:
配置攻击设置
此开关配置当攻击发生时EMET应该如何行动:
审核:不终止进程,只记录攻击企图
终止:当检测到攻击企图后终止程序
3 部署EMET
企业可以利用其现有的管理基础结构来大规模地部署和配置EMET。在本节中,我们来谈谈如何使用系统中心配置管理器和Group Policy在企业网络中部署和管理EMET 。
3.1 微软系统中心配置管理器
EMET很容易集成到微软系统中心配置管理器,并用于部署和配置的目的。
3.1.1 创建程序将EMET部署到客户端
部署EMET的第一步是下载EMET 4.1 MSI。一旦获得了MSI软件包,必须遵循以下步骤。在本例中,我们将参照在ConfigurationManager 2012中创建应用程序的方法,也可以使用ConfigurationManager 2007来完成包、程序和广告的创建。
1. 从“软件库|应用管理|应用程序”中选择创建应用程序。
2. 保持默认类型为Windows安装程序(本地),然后浏览源UNC路径,寻找先前下载了(*)EMET设置MST文件。
3. 该应用程序的详细信息将自动从MSI导出,MSI产品代码也会同时导出 (在导入信息页上)。
4. 在主要信息页面,可以向该应用程序添加任何额外的信息,预先安装命令将在安装程序旁边显示。编辑安装行来读取msiexec /i "EMET Setup.msi" /qn /norestart。
5. 更改安装行为,安装系统。
6. 完成向导。
7. 从刚刚创建的应用程序中选择部署。
8. 浏览各个目标。
9. 在内容页中,选择分布点。
10. 在部署设置页面,选择预定的安装设置(很可能是必须的,除非这只是一个测试部署)。
11. 配置计划的部署、用户体验和警报,然后完成向导。
12. 将EMET部署到所有目标客户端的过程已经开始。其进展可以通过监控|部署来监控。
3.1.2 创建软件包和程序来配置EMET
EMET部署完成后必须进行配置,以保护应用程序。如果没有配置EMET,基本客户端不会单独采取任何保护应用程序的措施。在这里,我们将创建上报EMET的客户端,并针对那些具有配置包的客户端。
3.1.3 创建EMET配置目标集合
1. 从“资产及合规性|设备集合”中选择创建设备集合。
2. 命名设备集合(安装EMET的客户端),并选择有限集合。
3. 在成员资格规则页面,点击添加规则,并选择一个查询规则。
4. 命名查询,并选择编辑查询语句。
5. 在标准选项卡上,单击黄色星。
6. 在条件属性中,保留类型为简单值,然后选择。
7. 选择安装的应用程序为属性类。
8. 选择显示名称为属性。
9. 点击确定后,点击值按钮。
10. 从值列表中选择EMET。请注意:至少一个系统必须向EMET客户端上报其硬件清单,以便完成安装。如果该数值不在列表中,只需键入该值。
11. 完成查询规则后,选择评价该集合的频率。我们将针EMET配置,所以需要尽可能多地对其进行评估。此外,必须牢记,只有当来自客户端(EMET已安装)的清单信息被发送到服务器后,该集合才会被填充。默认情况下,清单的发送时间间隔为7天。
3.1.4 创建EMET配置软件包和程序
1. 将下列4个文件放置于将被用作源EMET配置包的源目录中。这些文件可以从EMET(EMET已经安装在系统上)客户端的源目录中收集。注意:如果所有的文件都没有,则EMET配置将不起作用。
a. Popular Software.XML(applications folder\EMET\Deployment\Protection Profiles
b. EMET_Conf.exe (applications folder \EMET )
c. HelperLib.dll (applications folder \EMET)
d. MitigationInterface.dll (applications folder \EMET)
e. PKIPinningSubsystem.dll (applications folder \EMET)
f. SdbHelper.dll (applications folder \EMET)
2. 从“软件库|软件包”中选择创建软件包。
3. 命名软件包,并选择包含源文件的软件包。提供步骤1中介绍的四个文件的路径。
4. 选择标准程序。
5. 命名程序,将命令行设置为EMET_Conf.exe--import “Popular Software.xml”。请注意:这仅仅是一个例子,使用由EMET团队提供的“PopularSoftware”保护配置文件。可以修改这个配置文件或使用EMET所提供的其他保护配置文件之一。要导入的文件需要被引用并包含在EMET配置包中。
6. 将程序设置为隐藏运行以及用户是否登录。
7. 完成向导。
8. 完成软件包和程序后,选择部署。
9. 将刚刚创建的集合作为目标集合,并用所需配置完成向导。
(*)的更多信息和可下载的配置管理包可以在配置管理团队博客中找到。
3.2 GroupPolicy
EMET自带GroupPolicy支持。当安装EMET后,EMET.admx和EMET.adml文件也安装到“Deployment\GroupPolicy Files”文件夹。这些文件必须被复制到\\Windows\PolicyDefinitions和\Windows\PolicyDefinitions\en-US文件夹。一旦完成,EMET系统和应用程序的减灾设置可以通过Group Policy来配置。
EMET公开了三组策略。下面对每组策略进行介绍。更多信息可参考每个策略的策略编辑器。
1. 系统减灾措施:命名的系统ASLR、DEP系统和系统SEHOP,这些策略用于配置系统减灾措施。请注意,修改系统减灾设置可能需要重启才能生效。
2. 默认保护:有三种:Internet Explorer、推荐的软件和常用软件。ProtectionProfiles是预配置EMET设置,面向普通家庭和企业软件。采用这些策略来启用它们。
3. 应用程序配置:这导致了自由形式的编辑器(其中可以配置不属于默认的保护内容的应用程序)。句法形式是:应用程序可执行文件名,后面是不需要启用的可选减灾措施列表。如果没有指定减灾措施,则所有EMET应用程序减灾措施都将被启用。
4. 默认操作和减灾设置:这些设置都涉及到了ROP减灾措施(如第1.2.9节所述)和检测到攻击时默认操作(只审核或终止)的高级设置。
5. EMET Agent可见性:此设置允许在任务栏托盘区自动隐藏EMET Agent图标。
6. EMET Agent自定义消息: 此项目允许自定义EMET检测到攻击时显示的警报消息。托盘图标上报设置必须打开,以显示此消息。
7. 上报:此项目允许切换Windows事件日志、任务栏图标以及预警方案的上报配置。
一旦EMET GroupPolicy被启用,它们将被写入到注册表HKLM\SOFTWARE\Policies\Microsoft\EMET。为了使它们在EMET中有效,必须执行以下命令:
请注意,当应用Group Policy时,在 Group Policy写入注册表之前往往会有短暂的延迟。
该命令可以单独运行,例如,在系统启动时、登录时或者随计划任务运行。
要查看Group Policy控制的EMET设置,请使用EMET命令行工具运行以下命令。
需要注意的是通过Group Policy配置的设置优先于使用EMET GUI或EMET命令行工具本地配置的设置。此外,Group Policy控制的设置只能通过GroupPolicy修改或删除。例如,运行的
只会清除通过EMETGUI或EMET_Conf定义的减灾设置和SSL证书锁定规则。通过GPO定义的减缓设置和SSL证书锁定规则将是完整的。
3.3 其他选项
如果使用不依赖于系统中心配置管理器或Group Polic的管理解决方案,建议利用第2.1节中介绍的Protection Profiles功能。
4 高级选项
4.1.1.1 启用不安全的配置
默认情况下, EMET隐藏被认为不安全的配置选项。这些选项在常用的场景下已经被证实会导致系统不稳定。也可以通过重写注册表项来配置这些选项。重写之后, EMET会显示不安全的选项,用户只要选择其中之一时也会发出警告。
该重写可以在注册表HKEY_LOCAL_MACHINE \ SOFTWARE \MICROSOFT \ EMET中找到。如果该表项不存在,则运行EMETGUI并刷新注册表。注册表项里有一个名为EnableUnsafeSettings的DWORD值。默认情况下它的值为0 。通过将该值设置为1并重新启动EMET的图形用户界面,就可以选择不安全的选项了。
EMET目前有一个不安全的选项:系统ASLR的“始终开启”设置。根据操作系统的配置,设置系统ASLR为“始终开启”会使操作系统启动时出现崩溃。修复这一问题需要在安全模式下启动系统,将系统ASLR设置为“选择性启用”(推荐)或“禁用”。
4.1.1.2 为上报配置自定义消息
当检测到攻击时,可以配置自定义消息并进行上报。对于EMET来说,该设置可以通过Group Policy或通过创建注册表项进行配置。
在注册表单元HKEY_LOCAL_MACHINE \ SOFTWARE \ MICROSOFT \ EMET中创建一个新的“字符串值”,命名为TrayIconMsg 。如果EMET检测到并终止了攻击,这个指定的字符串将显示给用户而非向其显示默认的通知。
4.1.1.3 为第三方浏览器配置证书信任功能
高级用户可以配置第三方浏览器,从而受益于证书信任功能提供的减灾措施。该浏览器需要使用WindowsCryptoAPI并支持CAPI扩展。此外,第三方浏览器必须被添加到受保护应用程序(即使没有任何减灾措施)列表中 。最后,第三方浏览器的可执行文件名必须附加到注册表配置单元HKEY_LOCAL_MACHINE\ SOFTWARE \ MICROSOFT \ EMET 中的注册表值“EMET_CE”中,用“;”隔开,例如“iexplore.exe; thirdpartybrowser.exe”。
请注意:此场景是不支持的,属于试验性场景。从技术上说,将微软CryptoAPI用于SSL信任链验证的任何程序都可以写入该注册表值,使其可与EMET的证书信任功能协作。
5 减灾注意事项
配置EMET的各种减灾措施时,需要考虑几点注意事项。在下面的章节中,我们讨论了系统设置和应用程序设置的注意事项。
5.1 系统设置
DEP
1.为DEP配置系统设置改变了Windows的引导选项。对于使用BitLocker的系统来说,这将导致BitLocker检测到“系统引导信息已更改”,并需要输入恢复密钥进行重启。强烈建议在使用BitLocker的系统上配置DEP设置之前,先配置好恢复密钥。
2.并非所有的系统(包括虚拟机)都支持DEP。然而,即使EMET运行于不支持它的机器上,此选项将仍然是可用的。在这些系统上设置该选项不会有任何效果。需要注意配置DEP时的系统局限性。
SEHOP
1.在Windows 7和更高版本中,SEHOP(系统和应用程序)是由操作系统实现的。出于这个原因,当此减灾措施启用和被检测到时, EMET将无法及时通知用户检测到了SEHOP。相反,操作系统将终止该进程,并将该事件写入应用程序事件日志。
ASLR
2.ASLR有一个不安全的设置选项称为“始终开启”。此设置将强制不特别支持它的二进制文件进行地址空间随机化。由于存在导致系统不稳定的风险,所以此设置在默认情况下不可见。
在我们的测试中,我们遇到了一些问题,即在一个常用应用场景中将ASLR设置为“始终开启”将导致系统开机过程中出现蓝屏。发生这种情况的原因是某些第三方视频驱动程序的地址空间被随机化了。这些驱动程序并不支持这种随机化,因此会崩溃,从而导致整个系统崩溃。解决该问题需要在安全模式下启动,并将系统ASLR设置为“选择性启用”或“禁用” 。
更多有关如何开启不安全ASLR设置的问题,请参阅第4章--高级选项。
5.2 应用程序设置
DEP
1.并非所有的系统(包括虚拟机)都支持DEP。然而,即使EMET运行于不支持它的机器上,此选项将仍然是可用的。在这些系统上设置该选项不会有任何效果。需要注意配置DEP时的系统局限性。
SEHOP
1.在WindowsVista和以上版本中的各种应用并不与EMET的SEHOP兼容,在这种情况下,最好是禁用EMET的SEHOP并使用系统减灾措施的SEHOP。将系统减灾SEHOP配置为选择性关闭。
空页
无
堆喷雾
无
自下而上的随机化
无
EAF
1.用/调试启动选项配置的系统在运行EAF程序时需要连接调试器。如果/调试启动选项被启用且调试器未连接,这时如果EAF程序启动,则系统将停止响应。这是因为EAF减灾措施依赖于调试寄存器。如果Windows已经被配置为使用内核调试器, 则几个内存地址中的一个被访问后,Windows将尝试通知调试器。之后,Windows将等待来自调试器的响应。如果调试器不响应,系统会停止响应。
2.一些虚拟机不支持调试寄存器(因而也不支持EAF)。然而,即使EMET运行于不支持它的机器上,此选项将仍然是可用的。在这些系统上设置该选项不会有任何效果。需要注意配置EAF时的系统局限性。
3.EAF减灾措施不应用于:使用压缩器的受保护的程序和库、由反调试代码的DRM或软件、调试器和安全软件,如杀毒软件、沙箱、防火墙等。
强制性ASLR
1.只有当核心进程的地址空间和静态依赖建立后,EMET的减灾措施才会变得活跃。强制性ASLR并不强制地址空间随机化。强制性ASLR的重点是保护动态链接模块,如插件。
2.Windows XP和Windows Server 2003不支持随机化。由于强制行ASLR不保护核心进程或静态导入(参见上述第1点),所以它们将永远位于可预见的地址。因此,强制性ASLR无法对这些平台提供任何有意义的保护,所以被禁用。对于哪些平台支持减灾措施,请参阅第1.5节--支持的操作系统和软件要求。
加载库检查
无
内存保护检查
无
Caller 检查
无
模拟执行流程
无
Stack pivot
无
6 常见问题解答
6.1 生命周期策略
EMET 4.1的生命周期策略是怎样的?
EMET 4.1遵循与EMET 4.0相同的生命周期策略。在下一版本的EMET (EMET 5)发布之前,它将运行12个月。
是否仍然支持旧版本(即EMET1.x)?
由于发布了EMET 4.1, 我们不再支持EMET 1.x或EMET 2.x。直到2014年6月(即EMET 4.0发布12个月),我们将继续支持EMET 3.0 。
6.2 EMET 3.0的问题
EMET 3.0的配置是否与EMET 4.1兼容?
是的,EMET 3.0设置和导出设置文件与EMET 4.1兼容。
我已经EMET安装了EMET 3.0,安装新版本前是否需要将其卸载?
安装EMET 4.1之前,您不需要卸载EMET 3.0。EMET 4.1对EMET 3.0的安全设置进行了升级。
6.3 主要减灾问题
在Process Explorer中,即使EMET配置为可使用某程序,该进程的ASLR列仍然是空白的。
EMET不利用ASLR的操作系统实现。即使被开启,它也不会出现于Process Explorer,这是因为Process Explorer只查询ASLR的操作系统实现。
6.4 减灾措施的故障排除
我已经修改了DEP系统设置并进行了重启。BitLocker要求提供恢复密钥。这是为什么,该如何处理?
修改DEP的系统设置改变了操作系统的引导选项。BitLocker无法防止攻击者篡改这些选项,而是监视它们的变化。当它们更改时,BitLocker会要求提供恢复密钥,以确保所做的更改是合法的。
为了防止BitLocker不断要求您提供恢复密钥,您需要暂停BitLocker,应用更改并重启计算机。重启后,您可以恢复BitLocker。这将导致BitLocker记录新的启动选项。
如果导出地址过滤(EAF)减灾启用,我的系统会挂起。
这通常出现于当系统运行在调试模式(/调试引导选项)时。EAF减灾措施(包括调试寄存器和单步事件)的性质引发了挂起,这是因为系统继续执行程序前等待调试器的响应。
为了防止这种情况发生,您可以执行下列操作之一:
a)删除/调试引导选项并重启系统
b)连接调试器,并用它响应系统。
我配置EMET来保护应用程序后,程序启动时总是崩溃。
这通常是因为应用程序与EMET的某个减灾措施不兼容。找出该减灾措施的方法是将所有的减灾措施一个一个地启用和禁用,直到您的应用程序能够正常启动。一旦确定了问题减灾措施,您可以将其禁用,仍然启用其他减灾措施。
请注意问题中粗体字“总是”。如果应用程序来自您认为可信的厂商,且不管用户输入什么内容,100%出现崩溃,那么更可能是应用程序的兼容性问题。
不适出现的崩溃、基于外部输入出现的崩溃(例如用读卡器打开特定文件时)、或可能来自不受信来源的应用程序崩溃需要区别对待。对于这些应用程序,在找出崩溃的根本原因之前,不应该刻意禁用EMET减灾措施,以避免出现安全事故。
启用EAF后,一个应用程序总是崩溃。
这个问题与前一个类似,有些应用程序可能无法与EAF兼容。这通常是由应用程序正在实施保护知识产权的防御造成的。我们有时会在视频播放器、转换器、VOIP程序等中看到这种方法。如果您发现EMET的EAF启用时,您的应用程序100%会崩溃,那么您可以将EAF禁用,同时启用其他减灾措施。
6.5 主要问题
尝试启动图形用户界面时出现错误“应用程序正常初始化失败”。怎样解决?
图形用户界面要求系统上安装.NET 4.0。如果您从另一台机器复制二进制文件后出现了此错误,请尝试在本地计算机上运行安装程序。它将引导您下载.NET 4.0。
EMET是否运行于64位应用程序?它安装在32位程序文件目录中。
是的,EMET支持64位应用程序。安装程序能够运行于64位和32位系统。这方面的一个副作用是,二进制文件都放在32位的目录下。
但是,请注意,可能会有一些减灾措施不适用于64位应用程序。参见第1.5节-- 支持的操作系统和软件要求。
我安装了旧版本的EMET,如何升级到EMET4.1?
我们建议您先通过Windows控制面板卸载旧版本的EMET,然后手动删除HKLM\Software\Microsoft\EMET 和 HKLM\Software\Policies\Microsoft\EMET密钥,之后运行EMET 4.1安装程序。
怎样才能知道我的应用程序是否与EMET兼容?
测试只针对包含在Protection Profiles中的应用程序。对于任何其他应用程序,建议在上载环境中彻底进行测试,然后在该系统中部署这些应用程序的EMET保护措施。
请问保护应用程序时插件会得到保护么?
是的,减灾措施适用于加载到EMET保护进程的插件,例如ActiveX控件或其他第三方加载项。
我的反病毒程序警告EMET的GUI。
EMET的GUI查询所有的进程以获得它们的DEP状态。我们知道,在很少的情况下,当杀毒软件在自己进程中该查询行为时,会标记该行为。
EMET并不试图执行任何有害的行为, 您可以允许其继续运作。
7 支持信息
具有高级或专业技术支持的客户可以利用这些渠道获得EMET 4.1的支持信息。
用户可以发送电子邮件至emet_feedback@microsoft.com 提出反馈和建议。请不要发送邮件提出支持请求,请使用TechNet论坛或官方的支持渠道来代替。
A. 附录:EMET的兼容性
考虑EMET的兼容性是部署过程的重要组成部分。在这种情况下,兼容性是指“能够在启用所有EMET减灾措施时运行程序,且不造成任何功能损失”。
EMET不会执行任何有害行为, 也避免执行导致不兼容的操作。这意味着,大多数应用程序将与之兼容。但是我们强烈建议您在部署EMET之前测试程序的兼容性。
在EMET的情况下,兼容性测试在所有微软和第三方应用程序中进行。这些应用程序和确定的兼容性问题可参见下表。
请注意,当没有指定版本时,通常指最新版本。
(1)仅适用于Windows7/Server2008 R2和更高版本。该SEHOP适用于Windows XP/ Server 2003,而WindowsVista/ Server 2008与此软件不兼容。
当发现不兼容之后,下一步是确定哪些减灾措施导致了不兼容。这可以通过启用所有EMET减灾措施,同时运行程序,重现该问题来进行确定。之后应该一个一个地删除相关的减灾措施,直到问题不再出现。一旦测试过程中发现了有问题的减灾措施,我们建议您仍然部署没问题的减灾措施,以充分利用EMET的保护功能。