首页
社区
课程
招聘
360首席工程师独家抢先解读新Win10安全特性
发表于: 2015-1-27 22:26 2085

360首席工程师独家抢先解读新Win10安全特性

2015-1-27 22:26
2085
新闻链接:http://news.qudong.com/2015/0126/211685.shtml
新闻时间:http://news.qudong.com/2015/0126/211685.shtml
新闻正文:

北京时间2015年1月22日,微软公布了其新一代操作系统Win10(以下简称Win10)的新技术预览版,并在随后的北京时间1月24日向公众开放了该预览版本的下载(Build:9926)。在这个新的Win10预览版中,内核版本直接从6.4提升到了10.0,同时也带来了一些新的产品形态和用户体验上的诸多改进。

作为国际顶尖的安全厂商,360除了在第一时间为使用Win10新预览版的用户提供安全防护,也在同时关注新操作系统中引入的新安全特性。360首席工程师郑文彬(MJ0011)率先对Win10新技术预览版的安全改进及其实现和策略进行了深入的分析。

微软从Windows 8开始,就为其新的操作系统不断引入了很多新的安全特性,包括零页禁用、高熵随机化、执行流保护(Control Flow Guard , CFG)、管理模式执行保护(Superior Mode Execution Prevention, SMEP)等等,对Windows平台上的应用和内核漏洞利用明显地提高了门槛。这次Win10的新技术预览版又为操作系统加入了什么样新的保护呢?

郑文彬认为,Win10此次最引人注目的安全增强是对于字体的安全防护的两项增强,它引入了非系统字体禁用和隔离用户模式字体渲染引擎这两大安全改进:前者可以用于对安全要求较高的人环境,有可能彻底防御未知的字体远程内核漏洞。值得一提的1年前360设计XP盾甲防护措施时就使用了类似的方案;隔离的用户模式字体渲染引擎则把字体远程漏洞的能力和风险大大降低。

以下是郑文彬有关Win10新技术预览版的安全特性技术分析报告的节选,详细报告请参见360技术博客http://blogs.360.cn/blog/Win10_font_security_mitigations/。

  Windows内核字体引擎安全问题

由于诸多历史原因,Windows的内核模式字体引擎长期以来是Windows操作系统内核中典型的复杂程度高而代码安全质量并不高的组件。出于字体引擎性能的考虑,微软也不得不将其一直放在内核模式。因此,一旦Windows内核中的字体引擎出现安全漏洞,漏洞攻击代码就可以在用户浏览网页或文档中的远程字体文件时,直接在Windows内核中执行,可以完全绕过几乎所有的安全防护机制,杀伤力相当大。

历史上微软修复的内核字体漏洞并不少,但最出名的,也是打破了字体漏洞神秘感的,可能就要数2011年被安全厂商披露的感染伊朗等国家的震网二代”Duqu”病毒。

该病毒是利用Windows内核字体引擎中的一处漏洞(CVE-2011-3402),将利用该漏洞的、命名为嗜血法医Dexter的字体文件嵌入到word文档中,当用户打开word文档、触发字体加载,恶意代码就直接进入内核模式运行。

这应该是首次被公开披露的字体漏洞用于真实的APT攻击的案例。其后,该漏洞还被一些Exploit Kit改造为通过网页浏览器进行攻击的版本,开始大范围的传播和攻击。

在2014年的10月,国外安全公司Fireeye也披露了他们新发现的被用于真实的APT攻击的字体漏洞:(CVE-2014-4148)。这个漏洞攻击巧妙地利用字体引擎中一处整数符号问题,实现在浏览嵌入了字体的文档或网页时,直接从内核模式执行恶意代码,绕过系统中的安全防护机制,安装恶意程序。

无论是白帽子安全研究人员还是可能具备国家级背景的高级黑客,针对Windows字体引擎安全问题的深入挖掘,都将这一攻击面的危险状况更多地暴露出来。微软在修复漏洞的同时,也在计划着一些更通用的解决办法。

在2014年的8月补丁日,微软在针对字体引擎内核漏洞的补丁中,就引入了一项针对字体缓存机制的安全优化,来缓和通过字体缓存进行的某些字体漏洞攻击手法。这次Win10新预览版中的这两项改进,则是微软针对字体漏洞攻击缓和的另一次尝试。

 Win10字体安全防护1:非系统字体禁用策略

Win10的新技术预览版针对字体引擎的第一项重大安全改进,是引入了非系统字体禁用策略,根据不同的场景设置有拒绝非系统字体的加载的开关。从微软公开的Win10技术预览版来看,这项防护开关并没有对一些关键应用如Internet Explorer、内置的PDF浏览器等默认开启。

从目前的功能设计看来,该功能更像是为特定的企业用户提供的防止高级攻击的安全措施。尤其是针对字体加载的审计功能,可以帮助IT管理人员快速定位可能的高级威胁攻击。

值得一提的是,在360的XP盾甲的2.0中,我们就引入了同Win10本次更新加入的字体禁止策略类似的机制。通过XP盾甲的隔离引擎机制,我们将系统中的字体同沙箱隔离环境中的字体隔离开来,使得沙箱隔离环境中的字体无法加载到内核中,而隔离环境之外的字体在隔离环境内则不受影响,达到了和Win10这项防护类似的漏洞防御效果。

在XP盾甲4.0的产品中,360则引入了更强的内核字体引擎锁定机制,针对内核字体引擎的攻击防护强度又上了一个台阶。360一年前设计的XP盾甲防护机制同微软公布的新一代操作系统中的新防护措施的不谋而合,也从侧面印证了360在漏洞防护研究方面的探索。

  Win10字体安全防护2:隔离的用户模式字体引擎

在Win10的新技术预览版中,针对内核字体引擎的另一项引人注意的重大改进是“用户模式字体驱动”(User Mode Font Driver,UMFD)机制。

就像前面我们说到的,位于内核模式的字体引擎的一旦被突破,攻击者通过精巧的数据构造可以直接从远程获得内核代码执行的能力,危险极大。

同时,由于字体引擎在内核中运行,因此针对字体引擎的修改也必须非常谨慎,稍有不慎就可能引发大面积的蓝屏或应用程序异常。

关于修改内核字体引擎带来的副作用,眼前就有典型的案例:在2014年8月的补丁日中,微软的KB2982791补丁为了修复字体引擎中的安全漏洞,修改了内核字体缓存引擎。结果,这一改动中存在的兼容问题不幸引发了大面积的用户Windows系统启动即蓝屏的问题。该问题遭到了大量用户和媒体的指责,微软不得不宣布将该补丁撤回重发。

在这个Win10技术预览版中,微软首次建立了用户模式和内核模式的字体引擎交互机制,将内核字体引擎中的多个字体驱动引擎移植到用户模式,使得字体引擎能够部分在隔离的用户模式进程中运行,同时也保留了内核模式字体引擎驱动的机制,尽量将可能出现安全漏洞的渲染引擎放到用户模式,同时使用一些内核预先加载、内核/用户模式交互的方式,减少这种模式对于性能的损耗。

在这套机制应用后,如果相关的字体引擎代码出现安全漏洞,攻击者只能控制被隔离的用户模式字体驱动宿主,无法通过字体漏洞直接控制操作系统内核。而修复相关漏洞的成本和可能的风险,也将大大降低。

即使字体解析和渲染过程中存在安全漏洞,也被限制在受限的用户模式进程中,需要进一步利用其他安全漏洞才能最终完成攻击,无法再直接获得内核的最高权限,使得这类型漏洞的风险大大降低,也使限制、发现这类漏洞攻击更容易和更具备可能性。

  总结

本文所介绍的非系统字体禁用和用户模式字体驱动机制,都是微软在内核模式字体引擎漏洞攻击方面的缓和措施,分别通过安全策略、安全隔离的思想,提高内核模式字体引擎漏洞的利用难度,降低了相关漏洞的安全风险。在特定的环境下,甚至可能完全杜绝远程字体漏洞的攻击。这个安全措施称得上是继默认开启CFG后,Win10又一可圈可点的新安全特性。

如同CFG在Win10中默认开启后,逐步开放到Windows8.1 Update3的更新上,希望这个机制也能尽早磨练成熟,升级到后续的操作系统中,为更多用户提供更好的安全保障。

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (0)
游客
登录 | 注册 方可回帖
返回
//