关于 Office 网络组件的 ActiveX 控件漏洞的更多信息 (Advisory 973472) [转译]

<<本文章转译自 Security Research & Defense 博客文章 "More information about the Office Web Components ActiveX vulnerability ">>

我们获悉了 Internet 上的一轮公开的攻击,该攻击利用了 Office 网络组件表单的 ActiveX 控件(OWC10 和 OWC11)。我们已经发布了 安全通报973472 来为用户提供指导。这篇文章将提供更多细节来帮助大家理解这个问题。

攻击媒介是什么?

这个漏洞允许攻击者以“浏览和获得权限”的方式执行远程代码。这个过程需要用户交互,即需要用户访问包含攻击代码的恶意链接。

什么样的配置有危险?

OWC10 和 OWC11 在任何 Windows 版本上都不是默认安装的。但是,它会伴随如下产品一起安装:

OWC10

OWC11

Office XP

Yes

Office 2003

Yes

Yes

Office 2007

Opt

BizTalk

Yes

ISA Server

Yes

Office Accounting and Business Contact Manager

Yes

Manually installed from Microsoft Download Center

Yes

Yes

Yes = 默认安装(受影响); Opt = 可选安装(可能受影响)

请注意,以下几种情况和配置可以避免攻击:

  • Outlook 和 Outlook Express 不会受影响,因为它们只在 ActiveX 受限区域打开 HTML 邮件。但是,如果用户点击邮件中的链接进入一个恶意网站,攻击者还是可能攻击成功。
  • 在 Windows Server 2003 和 Windows Server 2008 中,由于存在增强的安全配置(Enhanced Security Configuration),默认情况下 ActiveX 控件就不会被加载到 Internet 上。
  • 如果机器上没有安装 OWC,用户访问含有攻击代码的网页时,IE7 和 IE8 会显示黄色的拦截提醒,来请求允许安装 ActiveX。

如何确认是否存在危险?

用户可以使用 ClassId.cs 工具来检查工作站是否会因此受到攻击,这个工具可以从我们 以前的文章 中找到。

默认情况下,这个控件安装后会被实例化,使用 ClassId.cs 工具就会看到如下输出:

C:\>ClassId.exe {0002E541-0000-0000-C000-000000000046} (*)

Clsid: {0002E541-0000-0000-C000-000000000046}

Progid: OWC10.Spreadsheet.10

Binary Path: C:\PROGRA~1\COMMON~1\MICROS~1\WEBCOM~1\10\OWC10.DLL

Implements IObjectSafety: True

Safe For Initialization (IObjectSafety): True --- IE will allow loading

Safe For Scripting (IObjectSafety): True --- IE will allow scripting

Safe For Initialization (Registry): False

Safe For Scripting (Registry): False

Kill-bitted: False --- It is not Kill-bitted

(*) 这个例子使用了 OWC10 classid。

对 OWC11 classid:{0002E559-0000-0000-C000-000000000046} 同样适用。

我怎样保护自己?

可以为上述两个 classid 设置 Kill-bit 来保护系统,具体方法是在注册表中设置键值,步骤如下:

1) 打开注册表编辑器,找到如下两个双字键值:

HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{0002E541-0000-0000-C000-000000000046}
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\ActiveX Compatibility\{0002E559-0000-0000-C000-000000000046}

2) 将上述键值改为 0x00000400

设置 Kill-bit 后可以再次使用 ClassId.cs 工具来查看效果:

C:\>ClassId.exe {0002E541-0000-0000-C000-000000000046} (*)

Clsid: {0002E541-0000-0000-C000-000000000046}

Progid: OWC10.Spreadsheet.10

Binary Path: C:\PROGRA~1\COMMON~1\MICROS~1\WEBCOM~1\10\OWC10.DLL

Implements IObjectSafety: True

Safe For Initialization (IObjectSafety): True

Safe For Scripting (IObjectSafety): True

Safe For Initialization (Registry): False

Safe For Scripting (Registry): False

Kill-bitted: True --- Since the kilbit has been applied, IE will refuse to load the control

(*) 这个例子使用了 OWC10 classid。

对 OWC11 classid:{0002E559-0000-0000-C000-000000000046} 同样适用。

这样大家在 IE 中就不会受到这种威胁了。

在通报中还提到,我们还提供了一种自动应用此方案的办法。用户可以点击下面的按钮来设置针对此控件的 Kill-bit。

Fermin J. Serna, MSRC

*帖子内容是“按目前情况”,不作任何保证,且不赋予任何权利*