MSXML: Fix it before fixing it
昨天,微软发布了安全公告2719615,涉及Microsoft XML Core Services中的一个漏洞。我们希望分享更多关于该问题的细节,并解释可用的额外缓解措施,以帮助您保护计算机。
关于漏洞的信息
Microsoft XML Core Services 3.0、4.0、5.0和6.0中存在一个漏洞,如果用户使用Internet Explorer查看特制网页,该漏洞可能被利用。当MSXML尝试访问内存中未初始化的对象时触发此问题,可能以攻击者可以在登录用户上下文中执行任意代码的方式损坏内存。通过在无效指针解引用之前用攻击者控制的数据准备堆栈和堆内存,可以利用此类漏洞。
应应用哪些缓解措施?
在基于Web的攻击场景中,攻击者必须托管包含特制网页的网站。该漏洞只能通过使用Active Scripting触发,因此以下标准缓解措施仍然适用:
- 将Internet和本地Intranet安全区域设置设置为“高”,以在这些区域中运行ActiveX控件和Active Scripting之前提示。
- 将网站限制为您信任的网站。
我们认为这些措施以及禁用MSXML ActiveX控件对Internet Explorer浏览体验的干扰太大,无法广泛采用。同时,我们知道此漏洞在野外被积极利用进行针对性攻击。在这种情况下,我们在安全公告中提供指导和缓解措施,以便在准备必要的安全更新时尽可能全面地保护客户。
为了确保客户在此期间的安全,我们创建了一个新的缓解措施,形式为Microsoft“Fix it”包,使用Windows应用程序兼容性工具包在每次加载Internet Explorer时对msxml3.dll、msxml4.dll或msxml6.dll中的任何一个进行运行时的小更改。此更改导致Internet Explorer初始化先前未初始化的变量,这是漏洞的根源。
您可以通过从以下链接运行Microsoft Fix it 50897来应用此缓解措施。对于企业部署,请参阅知识库文章2719615的“跨多台计算机部署应用程序兼容性数据库”部分。
- 应用 Microsoft Fix it 50897
- 卸载 Microsoft Fix it 50898
缓解措施在修改内存中的msxml?.dll(?可以是3、4、6)之前执行以下所有检查:
- msxml?.dll的文件版本符合预期
- msxml?.dll的校验和符合预期
- 所有修补的指令完全符合预期
这确保它不会应用于错误版本的msxml?.dll,并且更改的结果是缓解措施预期的。如果某个msxml?.dll未通过所有这些检查,它将不会被修改。
应用此缓解措施不会干扰最终解决此问题的安全更新的安装。但是,应用缓解措施会对Internet Explorer的启动时间产生轻微影响。因此,在应用最终安全更新时,您应卸载缓解措施,因为它不再需要。我们认为此缓解措施不会引起任何应用程序兼容性问题,但同时建议在部署之前与任何内部业务线应用程序一起测试。最终解决此问题的安全更新将经过全面测试并准备好广泛部署。
注意: 您可能已经注意到msxml5.dll不在先前的缓解措施范围内。MSXML5不在预批准控件列表中,不应在任何网页上使用。每次网站尝试使用它时,Internet Explorer都会弹出安全栏。
EMET
作为安全公告2719615的一部分,我们还推荐EMET作为可能利用此漏洞的攻击的潜在缓解措施。增强缓解体验工具包(EMET)是一个实用程序,通过将DEP等内置缓解措施应用于EMET中配置的应用程序,帮助防止软件中的漏洞被成功利用。我们建议客户在大规模部署之前在测试环境中进行彻底评估。
致谢
向Fermin Serna和Google安全团队分享他们的发现表示感谢;向奇虎360安全中心报告漏洞表示感谢。还要感谢Bruce Dang、Elia Florio和Matt Miller的不懈建议。
- Cristian Craioveanu, MSRC Engineering