本文章是 Microsoft Security 博客“What You Should Know About Drive-By Download Attacks - Part 1”(2011年12月9日发布)的翻译版本。
在之前的博客(英文信息)中,我们详细解释了 Java 漏洞利用,并强调了保持所有解决方案最新的必要性。在那篇文章发布后,我们收到了一些客户的询问,他们希望详细了解攻击者如何利用漏洞来入侵系统。因此,我们决定在这个由两部分组成的博客中,深入探讨驱动下载攻击,这是攻击者利用未更新软件的常见手段。这些文章引用了 Microsoft 安全情报报告中多次发布的数据和分析。
驱动下载攻击有几种变体。漏洞利用通常通过网页以及电子邮件或即时消息(IM)服务进行分发。这里,我们仅关注网页变体,以保持简洁。
驱动下载站点是指托管一个或多个针对 Web 浏览器或浏览器插件中特定漏洞的漏洞利用的网站。分发恶意软件的攻击者使用各种技术将互联网用户引导到受感染的网站或故意托管恶意代码的网站。使用存在漏洞的计算机的用户,即使没有意图下载任何内容,也可能在访问此类网站时不知不觉地感染恶意软件。
通常,这种技术通过入侵访问网站或在安全性较低的 Web 表单(如博客评论部分)中发布恶意代码,将漏洞利用代码发布到合法网站。大多数情况下,漏洞利用代码本身托管在另一个网站上,并通过恶意脚本代码或内嵌框架(IFrame)中的 URL 等技术从受感染的网页中公开。IFrame 是嵌入在另一个 HTML 文档中的 HTML 文档。
在驱动下载攻击中,IFrame 通常用于将另一个 HTML 页面加载到当前页面的窗口中。IFrame 可能只有一像素大小,因此肉眼无法检测。由于 IFrame 加载另一个网页,犯罪分子利用它将恶意 HTML 内容(如下载和安装恶意软件的脚本)放置到受信任网站托管的合法 HTML 页面中。
攻击者通常利用 Web 浏览器的漏洞或浏览器环境中常见的媒体内容显示组件(如 ActiveX 控件)等浏览器插件的漏洞。这些插件可能在销售前由计算机制造商预安装。用户可能不使用这些有漏洞的插件,或者可能不知道它们已安装。这些软件大多没有更新功能,因此即使软件供应商发布了修复漏洞的更新,用户也可能不知道更新已发布或如何获取,从而导致漏洞持续存在。
大多数恶意网站使用包含多个漏洞利用的“漏洞利用工具包”。漏洞利用工具包的创建者持续更新工具包,删除效果较差的漏洞利用并替换为新的漏洞利用。通常,漏洞利用工具包中包含的漏洞利用针对多个不同的平台、浏览器和不同软件供应商的插件,以攻击尽可能多的系统。攻击者对工具包中包含的漏洞利用数量有不同的策略。例如,曾发现一个包含23种漏洞利用的工具包。我称之为“抽奖策略”,因为攻击者通过利用一个工具包中的多个漏洞利用,最大限度地提高遇到未修复漏洞的机会。另一方面,有些攻击者只在工具包中包含两三个能够可靠利用常见漏洞的漏洞利用。可能这些攻击者已经获得了足够的投资回报,认为没有必要在工具包中包含额外的漏洞利用。
Microsoft 安全情报报告第8版包含了2009年下半年频繁成为目标的特定浏览器漏洞的数据。从这些数据中,可以读出攻击者在驱动下载攻击中针对的软件类型。
图:2009年下半年各月所有漏洞利用中排名前10的浏览器漏洞利用
驱动下载攻击托管的网页和恶意软件托管网站在全球各地以不同的分布被发现。各地区的驱动下载托管站点数量变化剧烈,波动很大。以下数据来自 Microsoft 安全情报报告第11版。值得注意的是,大多数托管驱动下载的系统恶意软件托管站点是受感染的系统,这些系统的所有者不知道他们的系统被用于攻击其他互联网用户。
左图:2011年第二季度各国/地区所有 URL 中驱动下载页面的比例。右图:2011年第二季度全球每1000台互联网主机中恶意软件分发站点的比例
左表:2011年第一季度(1Q11)和2011年第二季度(2Q11)所有 URL 中驱动下载页面比例最高的地区和全球平均值。右表:2011年第一季度(1Q11)和2011年第二季度(2Q11)每1000台互联网主机中恶意软件分发站点的地区比例和全球平均值
在这个由两部分组成的博客的下一篇文章中,我们将介绍一些保护系统免受驱动下载攻击的指南。
Trustworthy Computing(可信计算)部门 总监 Tim Rains(蒂姆·雷恩斯)