深入解析IE零日漏洞风险与防护策略

本文详细分析了2010年Internet Explorer零日漏洞的技术细节,包括漏洞触发机制、不同系统版本的风险评估,以及通过DEP和禁用JavaScript等缓解措施的有效防护方案。

评估IE零日漏洞风险 | MSRC博客

安全研究与防御
作者:swiat / 2010年1月15日 / 4分钟阅读

昨日,MSRC发布了Microsoft安全公告979352,提醒客户注意针对Internet Explorer 6用户的有限且复杂的攻击。今天,该漏洞利用样本已公开。

在深入细节之前,我想明确一点:迄今为止我们观察到的攻击(包括公开的漏洞利用)仅影响使用Internet Explorer 6的客户。如安全公告所述,虽然新版本的Internet Explorer也受此漏洞影响,但存在缓解措施使利用难度大大增加。我们希望分享更多关于漏洞和已观察到的漏洞利用信息,以帮助您了解对组织的风险。

按平台划分的风险

由于下文博客中解释的平台缓解措施,新版本的Internet Explorer和较新的Windows版本对我们观察到的漏洞利用风险较低。(注意:服务器平台未包含在此表中,因为服务器上浏览的可能性较小。)

Windows 2000 Windows XP Windows Vista Windows 7
IE 6 可被利用 可被利用(当前漏洞利用可执行代码) 不适用(Vista预装IE7) 不适用(Windows 7预装IE 8)
IE 7 不适用(IE 7无法安装在Windows 2000) 可能被利用(当前漏洞利用因IE 7内存布局差异而无效) IE保护模式阻止当前漏洞利用 不适用(Windows 7预装IE 8)
IE 8 不适用(IE 8无法安装在Windows 2000) XP SP3默认启用DEP阻止漏洞利用 IE保护模式+默认启用DEP阻止漏洞利用 IE保护模式+默认启用DEP阻止漏洞利用

如您所见,当前面临风险的客户端配置是运行IE6的Windows XP。我们建议Windows XP上的IE6用户升级到新版本的Internet Explorer和/或启用DEP。其他平台的用户风险较低。我们还建议Windows XP用户升级到新版本的Windows。

关于漏洞的更多信息

该漏洞是Internet Explorer的内存损坏问题,由攻击者使用JavaScript复制、释放然后引用特定文档对象模型(DOM)元素触发。如果攻击者能够用攻击代码准备内存,对释放内存的随机位置的引用可能导致攻击者代码的执行。

阻止代码执行的方法

该漏洞存在于Internet Explorer 6、Internet Explorer 7和Internet Explorer 8中。所有版本在打开攻击代码后都可能崩溃。但是,有多种方法可以将攻击限制为IE崩溃并防止攻击者代码执行。

  1. 禁用JavaScript。Microsoft安全公告979352包含此解决方法,但我们理解此解决方法会显著影响许多网站的可用性。
  2. 禁用从释放内存的随机位置执行代码。数据执行保护(DEP)阻止从未明确标记为可执行的内存页执行代码。DEP是Windows XP Service Pack 2及更高版本、Windows Server 2003 Service Pack 2及更高版本以及所有版本的Windows Vista、Windows Server 2008和Windows 7的受支持功能。某些平台默认启用DEP(见下文)。您可以在此博客这里这里阅读更多关于DEP的信息。您可以通过单击下面的Microsoft Fix It按钮在Windows XP和Windows Vista上启用DEP。(对于在XP Service Pack 3、Windows Vista Service Pack 1及更高版本和Windows 7上运行的Internet Explorer 8,默认启用DEP,因此您不需要为这些配置使用“Microsoft Fix It”。)

关于在Windows Vista上启用DEP的说明

安全公告列出了为Internet Explorer 7启用DEP的步骤。要在Windows Vista上启用DEP,请确保以管理员身份运行Internet Explorer(右键单击,然后选择“以管理员身份运行”)。启用DEP后,关闭Internet Explorer会话并重新启动Internet Explorer以启用DEP浏览。如果您未以管理员身份运行Internet Explorer,该选项将显示为灰色。

如果您使用Microsoft Fix It在Windows Vista上启用DEP,您将不会看到Internet Explorer用户界面更改。但是,重新启动Internet Explorer后,您可以使用Process Explorer等工具验证DEP是否已启用。Internet Explorer用户界面显示注册表项的值,而Microsoft Fix It通过使用应用程序兼容性填充程序启用DEP。

致谢

非常感谢Chengyun Chu的漏洞利用分析和风险评估帮助。感谢Rob Hensing的DEP研究和FixIt4Me MSI帮助。感谢Fermin J. Serna的漏洞分析。Microsoft的许多人都为此努力,感谢大家。

  • Jonathan Ness, MSRC工程
    发布内容“按原样”提供,不提供任何保证,也不授予任何权利。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计