MS08-050:将ActiveX控件锁定到特定应用程序的技术解析

本文详细解析了MS08-050安全更新中针对ActiveX控件漏洞的修复方案,包括Kill-Bit机制、进程检查逻辑和注册表白名单实现,确保远程协助功能正常的同时防止恶意脚本窃取用户邮箱等个人信息。

MS08-050:将ActiveX控件锁定到特定应用程序

MS08-050涉及一个可被恶意脚本利用的ActiveX控件,该控件可能导致个人信息(如电子邮件地址)泄露。

由于该控件无需具备此行为,因此为其设置Kill-Bit似乎是正确的处理方式。然而,在每次安全更新进行的广泛测试过程中,我们发现Kill-Bit并非理想方案,因为它部分破坏了远程协助应用程序的功能。

那么,我们如何既禁用该控件,又保持远程协助功能,同时保护我们的客户呢?

首先,原始控件必须接收Kill-Bit,以防止该控件被强加给用户。

其次,对该控件进行了修改,使其在初始化时首先检查其所运行的进程。如果尝试调用该控件的进程是远程协助(1),或者调用方位于注册表中找到的应用程序白名单(2)中,则允许加载该控件。否则,它将不会加载。

最后,我们发布了一个Phoenix-Bit(AlternateCLSID),以便远程协助可以继续使用旧的ClassID。

  1. “%SystemRoot%\pchealth\helpctr\binaries\helpctr.exe”
  2. “HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\ImageName\” 其中ImageName是要添加到列表中的可执行文件的名称(例如foo.exe),具有类型为DWORD且数据集为1的“AllowMessengerExecHandleFailure”值
  • 安全漏洞研究与防御博客团队
    文章按“原样”提供,不提供任何担保,也不授予任何权利。
comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计