告别ASLR绕过:MS13-106安全更新解析

本文详细介绍了微软安全更新MS13-106如何修复一个ASLR绕过漏洞,该漏洞涉及Office 2007/2010中的HXDS.DLL库,攻击者可利用此漏洞结合其他远程代码执行漏洞进行攻击。文章还探讨了ASLR绕过技术的分类及防御策略。

MS13-106:告别另一个ASLR绕过

今天,我们发布了MS13-106安全更新,解决了一个安全功能绕过问题,该问题允许攻击者利用Microsoft Office 2007和2010中提供的特定DLL库(HXDS.DLL)来绕过地址空间布局随机化(ASLR)。ASLR绕过的存在本身并不直接允许代码执行,也不代表风险,因为这种绕过仍需与另一个允许远程代码执行的高严重性漏洞结合使用,才能为攻击者提供价值。ASLR是自Windows Vista以来支持的一项重要缓解措施,当与数据执行保护(DEP)结合使用时,可以更难以利用内存损坏漏洞。

由于ASLR是一种通用缓解措施,旨在阻止适用于许多漏洞的利用技术,攻击者非常有兴趣尝试找到新的绕过技术。这些绕过技术通常分为三类:

  1. 运行时存在未使用/DYNAMICBASE标志编译的DLL(因此在内存中的可预测位置加载)。
  2. 存在可预测的内存区域或指针,可用于执行代码或改变程序行为。
  3. 利用漏洞动态披露内存地址

MS13-106解决的ASLR绕过属于第一类。发现和使用ASLR绕过的难度因技术类别而异。通常更容易识别属于第一类的DLL模块(尤其是通过第三方浏览器插件和工具栏扩展搜索),而找到或创建其他两类绕过通常更困难且可重用性较低。例如,最近在定向攻击中使用的两个Internet Explorer漏洞(CVE-2013-3893和CVE-2013-3897)都依赖于相同的ASLR绕过,属于第一类——利用Office 2007/2010中的HXDS.DLL库,该库未使用/DYNAMICBASE编译。

增强ASLR的有效性有助于加强我们产品的安全性,这就是为什么MSRC继续发布工具和更新,以在Windows上更广泛地强制执行ASLR(例如KB2639308和EMET),并发布更新以关闭已知的ASLR绕过,作为我们深度防御策略的一部分(例如MS13-063用于CanSecWest 2013上提出的绕过)。今天,MS13-106关闭了另一个已知的绕过,攻击者将不再可用。

Elia Florio, MSRC Engineering

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计