查看: 21140|回复: 45
收起左侧

[技术探讨] 姗姗来迟的EMET 4

  [复制链接]
red_sc
发表于 2013-6-24 01:22:50 | 显示全部楼层 |阅读模式
本帖最后由 red_sc 于 2013-6-24 01:22 编辑

在经历了两次跳票后,EMET v4正式版终于姗姗来迟。去年发布的v3开始支持XML格式的配置导入导出,使得配置EMET更加容易。这次的v4正式版当然又加入了新功能,并且有许多改进,其中的一些已经在v3.5技术预览版和v4测试版中出现,而且v4正式版比起v4测试版依旧有所改进。相对v3,v4主要加入了以下新功能:证书信任(Certificate Trust),强化防护(Mitigations Improvement Hardening),提前预警(Early Warning Program),审计模式(Audit Mode)。主要的改进:新的UI,新的设置向导,和其他程序更好的兼容性,新的组策略配置文件,新的Reporting报告程序,支持保护非exe后缀的进程。就冲这次改进的UI中有加入我喜欢的Ribbon,这次跳票,我还是能接受的。

关于EMET的介绍可以参见防御0Day漏洞的真正利器————EMET一文。还没有试过EMET的同学,不要错过这么好个工具,现在就可以下载安装了。
EMET v4 下载地址 http://www.microsoft.com/en-us/download/details.aspx?id=38761

系统要求
EMET v4要求.NET Framework 4。如果系统是Windows 8和Windows Server 2012,微软  KB 2790907中的兼容性更新必须安装。

安装
之前安装了v3.5技术预览版和v4测试版的,先导出配置,然后卸载并且删除注册表HKLM\Software\Microsoft\EMET和 HKLM\Software\Policies\Microsoft\EMET(如果存在)。接下来就可以全新安装v4正式版。之前安装v3正式版的,官方指南说可以不用卸载v3直接安装v4正式版。但是我测试下来,v3不会被卸载。所以我建议也先导出配置,然后卸载并且删除注册表HKLM\Software\Microsoft\EMET和 HKLM\Software\Policies\Microsoft\EMET(如果存在)。接着全新安装v4正式版。
安装过程没有任何难度,全部下一步,到最后时,会弹出新的设置向导。这个向导非常好用,这里直接选择建议设定(Use Recommended Settings)。设置向导会自动在程序设定中添加对IE,WordPad, Microsoft Office,Adobe Acrobat and Reader和Oracle Java的保护;在证书信任中添加微软,skype,yahoo,twitter和facebook的规则;开启所有报告功能。

图1
如果选择以后手动设置(Configure Manually Later),设置向导不会做任何设定。
这个设置向导以后还能随时呼出,留到设置篇再讲。

主界面
安装完成后,EMET会在任务栏有个状态栏图标。右击图标选择Open EMET就能打开EMET的主界面。我在XP下会遇到v4测试版就存在的的一个bug,EMET有时会弹出一个“EMET Agent Status: not running”的警告框,但是EMET_Agent进程实际运行着,直接确定即可。Windows 7下没有遇到这个bug。这个bug不影响设置,但会影响EMET的报告功能和证书信任功能。解决方法是重启电脑,其他有效的解决方法我暂时没有找到。下图是在Windows 7下的主界面,不同的系统主界面稍有不同。

图2 界面比起之前漂亮了很多,甚至还能更换皮肤
现在整个主界面分成了三部分。上部分显示Ribbon功能区,所有的配置和操作都移到Ribbon来了,可以整个隐藏。Ribbon又按功能从左到右划成了四组。依次是文件区,这里能够进行配置的导入导出,呼出设置向导。配置区,这里能对特定程序和证书信任进行设定。系统设定区,这里能够切换预设的系统设定配置文件和更换皮肤。报告区,这里可以设定当EMET检测到exploitation企图或者不符合固定规则的SSL证书,EMET能够采取的通知动作。信息区,这里能够快速访问论坛,显示隐私声明,帮助等等。不同系统显示的选项会有差别,比如提前预警(Early Warning)在XP下不可用,XP就看不到这个选项。中间显示系统状态,可以看到比v3多了证书信任(Certificate Trust(Pinning))的状态显示,而且现在能够直接在这个界面进行设定。下部分显示进程状态,现在Windows 7下也看不到进程的DEP状态栏了,这栏在v4中被砍掉。

设置
如果安装了EMET而没有设置它,那么安装它完全没有意义。EMET的设置现在主要就三块,系统全局设定,特定程序设定,证书信任设定,都能很方便的通过图形界面进行设置。当然,还有其他设置的方法,比如命令行,组策略,XML模板以及设置向导。命令行和组策略的方式不能对证书固定规则进行设定。我仅介绍通过图形界面、XML模板以及设置向导进行设置的方法。在主界面上点击Ribbon文件区的Import能够导入XML模板。在主界面上点击Ribbon文件区的Wizard能够呼出设置向导,见图3。需要注意的是如果你自己添加了特定程序的保护或者证书固定规则,不要选择建议设定(Use Recommended Settings),否则EMET会重置所有的设定。

图3

系统全局设定
DEP、SEHOP与ASLR的选项这次不再赘述,参见我以前的文章EMET设置指南
图4、图5是对各个系统的支持,可以看到XP和Server 2003下SEHOP和ASLR不可用。

图4

图5
Certificate Trust (Pinning)
Certificate Trust (Pinning)有Enabled与Disabled 2个选项,是证书信任的系统全局开关。证书信任是这次新加入的功能,当每次IE访问HTTPS的网站,EMET都会根据用户设定的固定规则来验证最终实体证书和根CA证书。如果检测到异常,EMET并不会断开当前连接,会根据报告程序的设定弹出消息气泡或写入事件日志。要开启这个功能,除了Certificate Trust (Pinning)必须是Enabled外,还要在特定程序保护中添加对IE的保护。另外需要注意的是这个功能目前只支持桌面模式的IE,也就是说它还不支持Windows 8的Modern Internet Explorer。

图6

建议设置
Data Execution Prevention (DEP): Application Opt In
Structured Exception Handler Overwrite Protection (SEHOP): Application Opt In
Address Space Layout Randomization (ASLR): Application Opt In
Certificate Trust (Pinning): Enabled

特定程序设定
主界面上点击Ribbon配置区的Apps就能进入特定程序设定。不同系统显示会略有不同,XP和Server 2003下Mandatory ASLR不可用,不会看到这个选项。

图7
从图7可以看到EMET v4把特定程序进行了分组,分为Memroy,ROP和Other。Memroy和Other中的不再介绍,在之前版本就有,现在只是分了下组而已。ROP是为了绕过DEP而发明的一种新技术。在出现ROP后,微软也在EMETv3.5技术预览版中相应地新增了ROP防护,而v4中则进一步加强了ROP防护,并且改进了兼容性和性能问题。现在的ROP防护有Load library checks、Memory protection checks、Caller checks、Simulate execution flow、Stack pivot。Caller checks与Simulate execution flow可能会与部分程序有不兼容现象,排错时候优先排除。需要注意的是ROP防护只支持32位程序,不支持64位程序。见下图。

图8
v4还特别对ROP防护提供了高级保护:Deep hooks、Anti detours、Banned functions。只要程序开启至少一项ROP防护,就能受到额外的高级保护。除了Deep hooks外另两项都是默认开启的,建议把Deep hooks也开启。
Ribbon的默认动作区(Default Action)可以选择当检测到exploit时采取的动作。Stop on exploit会报告并终止进程。Audit only就是审计模式,仅会报告不会终止进程。审计模式只支持 EAF、 LoadLib、MemProt、Caller、StackPivot、SimExecFlow与XP和Vista下的SEHOP。
v4在操作上有了不少改进。提供了搜索框,能够搜索被保护的程序,注意不支持通配符。选中程序名字(App Name)右键可以启用或者禁用全部防护。另外没记错的话v3不支持多选,现在v4开始支持多选,可以多选后导出配置或者删除。

建议设置
建议默认动作选择Stop on exploit。高级保护选项Deep hooks、Anti detours、Banned functions全部勾选。导入Deployment\Protection Profiles目录下的Popular Software.xml,里面已经包含了国外常见的Office软件、浏览器、即时通讯工具、播放器等。然后自行添加常用的但不在Popular Software.xml中的Office软件、邮箱客户端、浏览器、即时通讯工具、播放器。当然你也可以把你常用的软件都添加进去。

证书信任设定
主界面上点击Ribbon配置区的Trust就能进入证书信任设定。

图9
证书信任设定包含两部分:受保护的网站和固定规则。用户可以指定SSL证书中主题与一系列受信任的根证书间的固定关系。EMET支持创建一对一的固定规则(一个域名固定一个指定的根CA证书)或者一对多的固定规则(一个域名固定一系列指定的根CA证书),而且固定规则还能够定义例外。
证书信任的设定非常简单,就以支付宝网站为例。
首先要创建固定规则。
IE打开支付宝网站https://www.alipay.com,查看根证书的详细信息,记下证书名字和微缩图。这里证书名字为VeriSign Class 3 Public Primary Certification Authority - G5,微缩图为4e b6 d5 78 49 9b 1c cf 5f 58 1e ad 56 be 3d 9b 67 44 a5 e5。

图10
图9证书信任设定界面中点Pinning Rules切换到固定规则,然后点击添加规则(Add Rule)增加一条固定规则,名字任意,这里取AlipayCA。接着在证书(Certificates)栏点选下拉Import会弹出导入证书窗口。

图11
这里也能进行搜索,输入verisign,出现所有匹配versign关键字的证书。可以看到第一个证书的名字和我们要找的证书名字一样,再核对微缩图(Thumbprint)一栏的值,也完全一致,就是它了。可以直接双击或者点击下方的Mark按钮选中证书。选中的证书会变暗,但我个人感觉还是不够明显,完全可以利用左侧的空间做个标记之类的,会更加显眼。选中后点Import导入。整个固定规则的创建就完成了。

图12
接下来指定支付宝网站使用这条固定规则。
IE打开支付宝网站,查看证书的详细信息,记下主题的CN值。这里主题的CN值为www.alipay.com

图13
图11点Protected Websites切换回受保护的网站,然后点击添加网站(Add Website)增加要保护的网站。网站名(Website)填刚才记下的主题CN值www.alipay.com,固定规则下拉选择先前创建的AlipayCA。对支付宝网站的证书信任设定就完成了,是不是非常简单。

图14
还记得图11固定规则窗口中有好多栏吗。规则过期时间(Rule Expiration),如果规则过期了,那么会忽略该规则,EMET代{过}{滤}理会写入一条规则过期的日志。
Minimum Key Size、Allowed Country、Blocked Hashes、PublicKey Match这四项是用来定义例外情况的。
最小密钥长度(Minimum Key Size):如果根CA证书的密钥长度等于或者大于最小密钥长度,那么即使这个证书与固定规则中的根CA不一致,也被认为是有效的。
允许的国家(Allowed Country):如果根CA的发行者国家和这个值一致,那么即使这个证书与固定规则中的根CA不一致,也被认为是有效的。
阻止的哈希算法(Blocked Hashes):如果根CA的签名算法不是这个值中的一个,那么即使这个证书与固定规则中的根CA不一致,也被认为是有效的。
公钥匹配(PublicKey Match):当这个选项勾选时,EMET不再验证主题和序列号,只会验证固定规则中的证书的公钥部分。
如果满足这四项中的任一项,即使不是固定规则中的根CA也会被认为是有效的。
最严格的设定就是不设置这四项(N/A或者不勾选)。需要注意如果有满足Minimum Key Size、Allowed Country、Blocked Hashes例外的根CA被认为有效,EMET代{过}{滤}理不会显示任何警告,仅会写入日志。

开启对第三方浏览器的实验性支持
v4正式版其实加入了对第三方浏览器的实验性支持,我在v4测试版时没见到这个设置。但是这个功能在使用上有所限制,只支持那些使用Windows CryptoAP的浏览器,并且可能会不稳定。这样,主流的第三方浏览器中只有内核是WebKit的浏览器,比如Chrome、Safari以及新的测试版Opera等才可以开启证书信任功能。要开启对第三方浏览器的证书信任功能,首先第三方浏览器必须被加到受保护程序中。最后编辑注册表HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\EMET下的EMET_CE值,在iexplore.exe后面添加要的第三方浏览器,以英文分号分割。比如“iexplore.exe;thirdpartybrowser.exe”。需要注意的是,对第三方浏览器的证书信任还是实验性的,是否开启自行斟酌。

建议设置
建议按照之前的流程把你常用的邮箱、社交网站、云存储、网银网站都保护起来。

报告(Reporting)
报告功能是v4用来取代和增强v3通知功能的,通过EMET代{过}{滤}理组件来提供报告功能。在主界面Ribbon报告区可以设置报告功能,有三个选项Windows Event Log、Tray Icon、Early Warning。XP下Early Warning不可用,只能看到前两个选项。
Windows Event Log:EMET会写入Windows的事件日志应用程序日志中。
Tray Icon:EMET会弹出气泡来警告用户,气泡内容包含了攻击的细节。
Early Warning:EMET会生成攻击相关的信息,里面包含内存转储和检测到的mitigation类型,这些信息会发送给微软。
顺带说下EMET代{过}{滤}理,进程是EMET_Agent.exe,开机会自启动,不要关闭开机启动。这个代{过}{滤}理在v4非常关键。除了Reporting的功能都要通过它实现外,EMET代{过}{滤}理还有个作用是进行证书信任的验证工作。

建议设置
建议开启报告功能的全部选项。

最后说说我对新版的印象,v4正式版才发布没多久,我也刚安装上,好在测试版一出来我就有安装,而且v4正式版相对v4测试版的变化主要是UI,设置向导以及Certificate Trust的改进,两者之间主要差别不大。
1.v4在易用性上是下了一番功夫的,对新手更加的友好。新的设置向导让你安装完成后几乎不用再额外设定,重新设计的UI也非常合理,比起之前更加漂亮。还有许多细节上的改进,比如任务栏状态栏图标现在能够直接右键打开EMET来进行设定,特定程序设定和证书信任设定时能进行搜索,特定程序设定时能够多选等等,前文都有提到。但是还有不合理的地方,比如证书标记的时候不够明显,希望下个版本改善。
2.几个新引入的功能,证书信任是个人最喜欢的。这个功能是用来防范中间人攻击的,以后即使再发生伊朗黑客伪造Comodo证书这类事件你也不用担心了。只是这个功能现在还很弱,即便是IE也只支持桌面模式的IE。对第三方浏览器的实验性支持,我稍微测试了下chrome,能正常弹出警告。希望微软尽早在后续的版本提供对桌面模式的IE以及第三方浏览器的完美支持。强化防护,EMET的主打就是Mitigations,这次是ROP防护,相信以后的版本也会有新的防护功能出现。提前预警对企业用户更有用一些。至于审计模式我想我一般不会开启,除非以后版本能对每个受保护的程序单独设置。
3.v4对程序兼容性真的有很大改善,在用v3的时候chrome经常假死,最后我只能在程序设定中关闭对chrome的所有保护,而v4我只关闭了对chrome的SEHOP和EAF防护。
4.v4测试版中烦人的bug “EMET Agent Status: not running”看来还是没有在正式版完全解决。

后记
EMET的使用其实并不难,也许是英文让很多人止步。周五晚开始动笔写,加上周末的两个晚上终于完成这篇文章,希望能让大家对上手EMET有所帮助。写文还是挺花时间和精力的,一直想写篇某软件的个人使用心得,限于时间精力,暂时遥遥无期吧。
------------------------------------------------------------------------------------------------------------------------------
本文首发卡饭,如果转载请著名出处。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?快速注册

x

评分

参与人数 5经验 +20 人气 +5 收起 理由
ELOHIM + 1 根据版规,加1分以示鼓励!!
追梦空间 + 20 版区有你更精彩: )
WEI.ER + 1 看得我眼花缭乱的。
360Tencent + 2
bbs2811125 + 1 版区有你更精彩: )

查看全部评分

liyangfr
发表于 2013-6-24 03:05:26 | 显示全部楼层
本帖最后由 liyangfr 于 2013-6-23 20:13 编辑

LZ 求说明如何设置

另外,这个卡不卡系统

我安装全部系统补丁,装这个还有不有意义?

另外这个可以防注入么?比如说保护了 explorer.exe 就不会被锁屏了?
brisklee
发表于 2013-6-24 05:53:08 | 显示全部楼层
好复杂,学习了,感谢楼主原创
chankh
发表于 2013-6-24 07:50:13 | 显示全部楼层
頭都大埋.辛苦
as188672207
发表于 2013-6-24 10:25:45 | 显示全部楼层
这个不懂  对电脑有什么影响吗
LisaLan
发表于 2013-6-24 11:11:23 | 显示全部楼层
这个软件自身都有0day漏洞,更别说来防护0day了
as188672207
发表于 2013-6-24 12:05:04 | 显示全部楼层
下载地址可以的么 我怎么下载不了
星风烈日
发表于 2013-6-24 12:40:19 | 显示全部楼层
神器求 汉化
bbs2811125
发表于 2013-6-24 12:42:16 | 显示全部楼层
貌似不错的样子,回头有时间装来玩玩
292559548
头像被屏蔽
发表于 2013-6-24 13:06:19 | 显示全部楼层
好复杂。。。慢慢看
您需要登录后才可以回帖 登录 | 快速注册

本版积分规则

手机版|杀毒软件|软件论坛| 卡饭论坛

Copyright © KaFan  KaFan.cn All Rights Reserved.

Powered by Discuz! X3.4( 沪ICP备2020031077号-2 ) GMT+8, 2024-11-24 09:18 , Processed in 0.134979 second(s), 18 queries .

卡饭网所发布的一切软件、样本、工具、文章等仅限用于学习和研究,不得将上述内容用于商业或者其他非法用途,否则产生的一切后果自负,本站信息来自网络,版权争议问题与本站无关,您必须在下载后的24小时之内从您的电脑中彻底删除上述信息,如有问题请通过邮件与我们联系。

快速回复 客服 返回顶部 返回列表