回顾MS12-014:Indeo编解码器的安全修复与DLL预加载漏洞解析

本文详细解析了微软安全更新MS12-014,针对Indeo编解码器中的DLL预加载漏洞。文章回顾了Indeo的历史背景、攻击场景,并解释了微软通过部署“虚拟DLL”来有效缓解漏洞的独特方法。

MS12-014: Indeo,一段往事的回顾

今天,我们发布了安全更新MS12-014,以解决Indeo编解码器中的一个问题。通过这篇博客文章,我们希望提前回答研究人员在分析此安全更新时可能提出的一些常见问题。

Indeo:往事的回顾

Indeo是一种视频编解码器,最早于1992年开发,远早于阅读此博客文章的某些读者的出生时间。:) 在MPEG出现之前,以及youtube诞生十多年前,Indeo是首批允许在不使用硬件加速的情况下实现全速视频播放的视频编解码器之一。

然而,如今Indeo已成为过时的技术。事实上,Windows Vista及之后的所有Windows版本默认禁用了该编解码器。2009年,我们进一步减少了旧版本Windows的攻击面,发布了安全公告并推送更新,阻止Indeo在Internet Explorer或Windows Media Player中启动。该更新通过自动更新推送,移除了此代码最常见的远程攻击向量,同时仍允许游戏或其他遗留应用程序在本地利用编解码器并继续运行。

MS12-014:原因与方法

Windows现在阻止了Indeo的远程视频播放功能,但编解码器本身及其基础设施仍保留在系统中,以支持遗留应用程序。不幸的是,我们发现了一个利用Indeo的DLL预加载问题。在以下情况下,攻击者可以在系统上运行任意代码:

  • 如果攻击者诱骗受害者浏览到攻击者具有写权限的网络共享或WebDAV共享,并且
  • 如果攻击者诱骗受害者双击由Indeo处理或注册的内容文件类型,并且
  • 如果攻击者在共享上放置了特定命名的恶意DLL,
  • 那么Indeo在尝试打开受害者双击的内容文件时,会无意中加载恶意DLL。

由于修复Indeo的特殊挑战,我们这次采取了不寻常的方法。此安全更新在系统上放置了一个“虚拟DLL”,其文件名与攻击者恶意DLL需要利用漏洞的文件名相同。这有效地消除了漏洞,因为系统上已经存在该DLL,Indeo不会尝试从攻击者控制的共享加载恶意DLL。

希望这有助于解答您对此安全更新的疑问。

感谢MSRC运营团队的Josh Carlson对此的帮助。(并祝贺您发布了第一个公告)

  • Jonathan Ness,MSRC工程团队
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计