现在许多Windows系统里还保留着一个可被Internet Explorer访问到的无用ActiveX控件,它原先是用于接收MPEG2视频流的,因为流媒体通常都是以MPEG2的格式从服务器传过来。MPEG2现在也还在用,但是包括IE 8在内的新浏览器都已经有了合适的插件来处理它,比如Windows Media Player,还有苹果公司的quicktime。
但这一ActiveX控件却没有被及时移除,而是继续残存在系统里,被黑客用来发动攻击。今天早些时候,微软确认了SANS网络风暴中心(SANS Internet Storm Center)的一篇报道,报道指出在一家中文网站上,有人已经发布了针对这一失效功能的利用工具。Sophos公司的Graham Cluley及其它安全专家称,显然已经有恶意用户正在使用该漏洞发起“路过式“攻击(drive-by attack),这种攻击几乎能下载并运行任何恶意程序。
今天上午,微软的安全工程师褚诚云指出,如果一个恶意网站想要利用这一漏洞发起攻击,首先它必须得引诱用户点击链接到该网站的链接。因此,outlook用户只要不点击Email里标有“点此查看“字样的恶意链接,就基本不会遭受这种攻击。换句话说,恶意代码并不能通过微软的电子邮件客户端程序自动触发并运行。
虽然Cluley和其他安全专家正在批评微软没有及时推出补丁,但事实上,可能我们并不需要补丁。在今天上午发布的安全公告里,微软正面承认了他们的现有的技术团队忽略了ActiveX。公告里说道:“我们的分析表明,Internet Explorer里已经包含了msvidctl.dll的所有类标识符(Class Identifier ),而msvidctl.dll就是ActiveX控件的宿主。对于Windows XP和Windows Server 2003的用户,我们的建议是在Internet Explorer里直接去除该ActiveX控件“。
同时,微软还建议用户自己完成这一操作。对于以前使用过注册表的用户,这个过程非常简单。只是会有一点繁锁-- 单是这一个控件可能就有多达45个类标识符(CLSID),(可见当初这个控件的操作过程有多不合理) 。微软的安全公告里已经列出了所有的这些类标识符,但我们可以不用按他说的那样把类标识符一个一个地复制粘贴到记事本里(实际上根本不需要这么麻烦)
我们有更好的替代办法来确保你的Windows变得安全,步骤如下:
打开972890号安全公告 向下滚动到 General Information 这一节。展开 Workarounds 前的Suggested Actions 这一层 ,并向下滚动 , 直至看到一个标着Class Identifier的很长的列表,那就是类标识符的列表了。
启动Windows注册表编辑器(REGDIT)。在Vista下,你可能要在UAC的弹出窗口里点击Continue。
3.在左窗格中,点击展开 HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet ExplorerActiveX Compatibility 对应的文件夹。有一点方便之处就是,在微软警告名单和注册表里的所有CLSID,都是按十六进制数值排列的,所以你不用从上到下去搜索它。
4.扫描注册表,看看是否有CLSID与微软指出的那45条注册表项对应。有时候可能会有多个对应项出现。如果没有找到,那说明你已经解除了这个漏洞的威胁了。我们Betanews的XP和Vista系统里现在已经找不到这45个条目里的任何一条了,当然,我们也不希望在Windows 7里找到。
5.如果你找到了这种CLSID,暂时先不要急着删除它。直接删除它没有任何效果,信不信由你。你必须得在左边的窗格里先选定这个条目。
6.这时,检查右窗格中名为 Compatibility Flags 这一项的值。如果它尚不存在,那首先你必须创建它。在右窗格中右键单击空白处,从弹出菜单中,选择 New , Binary Value 。这样就会生成一个新的条目,它还需要你对其进行重命名操作。输入 Compatibility Flags 并回车。
7.在Compatibility Flags 上 右键单击 , 从弹出菜单中选择 Modify 。在 Edit Dword Value 对话框中的 Value data 处,键入 400 ,保留 Base 设置 为十六进制值 ,然后点击 确定 。对微软名单里列出的其它CLSID也都重复这一过程。
这样做实际上是设置了控件的删除位(kill bit)。它还是被注册的(还占用着你的硬盘空间,只是什么都不做),但是至少它已经被我们成功禁用了,无法再用来发起攻击了。