ATL Killbit 绕过漏洞:微软安全响应中心深度解析

本文详细分析了微软Active Template Library(ATL)中的安全漏洞,探讨了影响范围、检测难点及修复协调过程,并预告了Black Hat USA关于软件互操作性层攻击面的技术演讲。

Black Hat USA Spotlight: ATL Killbit Bypass

距离Black Hat USA仅剩几天时间,我们与其他演讲者一样,正在最后冲刺阶段,以确保所有材料在演讲前准备就绪。今年的演讲主题为“信任的语言”,涵盖了大量与攻击软件互操作性层相关的内容,并以Web浏览器作为案例研究。我们将披露的一些漏洞影响了微软软件,并促使微软在7月28日发布了一个带外更新。此次更新包含的修复是我们与微软(尤其是MSRC的Steve Adegbite、David Midturi和Dustin Childs)长期且大部分成功合作的结果。微软承担了处理这些问题修复相关事务的艰巨任务,并努力及时完成。我们决定撰写这篇博客文章,讨论为确保此次更新及时发布所需应对的问题,并宣传我们即将在Black Hat上的演讲。

更新解决了我们在微软Active Template Library(ATL)中发现的一些问题。ATL于1997年发布,实际上作为Visual Studio的源代码分发,旨在简化开发人员的各种编程任务。它提供了大多数ActiveX组件所使用的辅助功能,而这些功能正是我们披露的漏洞所在。过去十二年中,任何在其ActiveX控件中使用相关ATL代码的开发人员可能无意中将这些漏洞引入到自己的产品中。微软因修补视频控件漏洞所需时间较长而受到大量批评;然而,问题比最初看起来要严重得多,这一事实以及检测为何如此困难将在我们的演讲中进一步讨论。

ATL漏洞需要处理一些独特的问题。第一个问题是高效枚举易受攻击的应用程序。当你将ATL中的问题与应用程序代码中的问题进行对比时,一些差异变得明显。通常,应用程序代码中的问题局限于单个源文件,并且需要重新编译单个程序。然而,对于ATL中的问题,任何包含ATL代码的应用程序都可能易受攻击。此外,成功检测易受攻击的ATL代码使用是一个复杂且容易出错的过程,并且难以通过标准静态分析工具实现。检测困难的原因在我们讨论漏洞细节的演讲后将更加清晰。

第二个需要解决的问题是供应商协调。如前所述,其他在其ActiveX控件中使用ATL代码的供应商也可能易受攻击。因此,微软承担了追踪尽可能多潜在易受攻击供应商并与他们协调的艰巨任务。协调工作包括解释潜在问题、如何确定给定控件是否易受攻击以及可以采取的缓解步骤来修复已识别的问题控件。这显然是一个需要时间和精力的过程,微软一直在与多家供应商全天候合作,以尽量减少最终用户的风险。

因此,缓解工作已完成,更新已发布,演讲按计划进行!我们想利用博客的剩余部分毫不掩饰地宣传这次演讲,其内容远不止绕过kill bits,并简要介绍我们将讨论的一些问题。我们的演讲主要旨在解决三个问题:

  1. 软件中的互操作性层在幕后完成大量复杂工作,并提供了一个广阔且大部分未被探索的攻击面。
  2. 在研究过程中,我们发现由于封送代码必须执行的专业任务,存在独特的错误类别。我们打算在演讲中揭示这些错误类别。我们将展示两种主流浏览器架构中用于封送的各种数据结构和API如何容易被误用,从而产生攻击者可能针对的微妙漏洞。我们将为我们已识别为易受攻击的代码结构提供实际示例。
  3. 当两个不同的组件被赋予直接通信通道时,信任被隐式扩展到这两个组件之间。这种信任关系对于希望绕过一个组件中各种安全特性的攻击者来说可能有用,通过滥用另一个组件的特性。

我们希望这些信息对开发人员和安全专业人员都有用,并期待在那里见到大家!我们的Black Hat演讲定于太平洋夏令时间7月29日星期三下午3:15在Augustus Ballroom 5-6举行。

-Ryan Smith, Mark Dowd, David Dewey

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