首页 > Web安全, 电子取证, 网络犯罪 > 在线攻击的幕后场景:对利用Web漏洞行为的分析

在线攻击的幕后场景:对利用Web漏洞行为的分析

2015年4月28日 发表评论 阅读评论 6,382次浏览    

原文:http://www.internetsociety.org/doc/behind-scenes-online-attacks-analysis-exploitation-behaviors-web

翻译:赵阳

摘要:现如今Web攻击已经成为了互联网安全的一个主要威胁,人们对它进行了很多研究,特别详细地分析了攻击是如何进行,如何传播的。但是,对于当Web被攻陷时的攻击者的典型行为研究却很少。本文描述了一个设计、执行、配置有500个完整功能的蜜罐技术网站,从而可以提供多种不同服务,目的就是要吸引攻击者,采集攻击者在攻击过程中和攻击后的行为信息。在100天的实验过程中,我们的系统自动采集、处理和规整了85000个在大概6000次攻击后留下的文件,并把攻击者的攻击路线标记成了不同类别,以区分它们在每次利用Web应用漏洞过程中的行为。

一、引言

Web攻击是对人们经济和知识财产造成破坏的主要原因之一。去年,这种攻击的数量不断在增长,复杂程度也在增加,并且目标多是政府和高利润的公司,窃取个人信息的同时造成了数百万欧元的经济损失。使用台式机、笔记本和智能手机上网的人数的不断增加,这就有了很吸引人的攻击目标,从而使他们走上了犯罪的道路。

这种趋势也已经成为了学术研究之一。事实上,快速的看下前些年发表的论文,会发现与Web攻击和防守相关的文章很多。这些研究大多数关注于一些普通的与Web应用、Web服务器或是浏览器相关的漏洞,通过这些漏洞来拿下目标。其余的剖析了针对内部构件的特殊攻击活动[5,13,17],或是提出新的保护机制来减少现有的攻击。

结果就是几乎所有的Web攻击场景都被详细的研究了:攻击者是怎么扫描Web和使用Google dorks发现可以应用的漏洞的,他们是怎样进行自动攻击的,以及他们是怎样给最终用户传递恶意内容的。然而,这些工作还是留下了很多的谜题。实际上,没有一篇学术文章提到一般的攻击者在完成攻击过程中以及之后的详尽活动。有时候,攻击者只是为了要得到存储在服务器上的信息,例如通过使用SQL注入来盗取用户的证书。然而,在大多数情况下,攻击者想要维持这些机器的访问并把它们作为更大的恶意设备的一部分(例如制造僵尸网络或是给访问这个网页的用户传递恶意文件)。

但是现在的文献大多关注的是如何使人上当的主题,如路过式下载和黑帽式SEO,而这些只是冰山一角。现实生活中,互联网每天都在发生着大量的恶意行为,这些吸引媒体眼球和安全企业注意的高利润网络犯罪的目的亦各不相同。

基于以上方向的研究之所以没有完成是因为几乎所有项目中的蜜罐中所使用的都是虚假或伪造的应用。这就意味着没有真实的攻击被完整执行,通常情况下,攻击者在漏洞“消失”前往往都会完成所有的攻击步骤。

为了了解不同类型攻击者的动机,杀毒软件公司大多是依靠他们客户报告的信息。如最近由Commtouch和StopBadware组织的调查,就是由600个被攻陷的网站的所有者填写的问卷完成,问卷内容是关于攻击者拿下网站做了什么。结果非常有意思,但是调查过程不是自动的,且很难重复进行,且无法保证用户(多数时候是非安全行业)能够成功地识别攻击类型。

本文第一次全面地分析了Web攻击者的行为,我们把分析的重点放在两个方面:1)渗透攻击阶段,我们主要研究在应用程序被攻下前攻击者的表现;2)后渗透攻击阶段,我们测试攻击者在拿下目标后会做什么。第一阶段是分析攻击Web应用的方法和技术(即:怎么做),然而第二阶段是来推断这些攻击的原因和目的(即:为什么)。

因此,本文中我们没有分析一般的SQL注入攻击或是跨站点脚本漏洞。我们的蜜罐技术被应用于吸引和监控那些要控制Web应用的行为。我们的结果有个有意思的趋势是大部分攻击者的表现都很狂野,例如我们鉴定了4个不同的时期以及13个攻击者梦寐以求的目标。我们也提供了一些在蜜罐行为甄别中发现的有趣的攻击场景详情

本文的其他内容如下:在第2节,我们探索了当前Web蜜罐技术的现状和Web攻击的检测与分析。第3节,描述了我们配置的蜜罐服务的网络架构。第4节,详细的介绍了系统的配置和在实验过程中收集数据的方法。最后,第5和第6节总结了我们在渗透攻击阶段和后渗透攻击阶段中攻击者行为的研究结果。第7节,总结全文和对未来这个方向的展望。

二、相关工作

目前,蜜罐作为检测Web攻击和可疑行为的工具,他们被分成两类:客户端蜜罐,它主要是通过主动访问网站或是执行文件来检测漏洞。服务器端蜜罐,使用一个或是更多的漏洞服务来吸引攻击者。

在这个研究中,我们主要关心第2类,因为我们的目的就是要研究攻击者在拿下站点后的行为。过去的几年里几个服务器端蜜罐已经被建议使用,使用蜜罐来提供真实和可能的服务。其实我们可以将蜜罐分为两类:低交互蜜罐和高交互蜜罐。第一种蜜罐提供模拟服务,所以能观察攻击但是不能被攻击者利用。这种蜜罐的能力是有限的,但是能够收集关于Web探针信息和自动攻击行为。相关研究有honeyd[21],Leurre.com[20]和SGNET[16],能够仿真运行系统和服务。另一方面,高交互蜜罐[19]为攻击者提供了一个能被利用的全功能环境。蜜罐技术可以更好地用来洞察攻击者的手法,但是这需要更高要求的设备及维护费用。由于可以利用用虚拟机配置高交互蜜罐,所以在被攻击后可以恢复到初始状态。

对于Web应用的攻击常常是通过配置Web蜜罐。Google Hack Honeypot[3]作为低交互Web蜜罐的一种(设计成用来吸引通过搜索引擎来发现Web漏洞的攻击者),Glastopf[24]和DShieldWeb Honeypot project[4]通过使用模板来仿制Web攻击应用。John等[14]人使用了另外一种低交互的Web蜜罐,使用辅助搜索引擎日志,这个系统能够通过搜索标准来观察和鉴定来自攻击者的恶意查询并配置蜜罐页面。不幸的是使用低交互方法采集结果时,限制了爬虫和自动脚本的访问。任何手动注入都会被错过,因为人们能够快速辨别出系统是一个陷阱,不是一个具有真实功能的应用。除此之外,这个研究收集了一些有意思的关于自动攻击的详情[14]。例如使用引擎蜘蛛爬过后,作者发现蜜罐页面被攻击的平均时间是12天,本地文件泄漏的漏洞在攻击后很容易看到,剩余40%的恶意请求是通过请求蜜罐接收的。其他很常见的攻击模式包括试图访问特定文件(例如:Web安装脚本),寻找有漏洞的远程文件。所有的模式的共同特点是都适用于自动攻击,因为它们只需要接触一些特定的路径或是在URL查询的字符串中注入计算好的数据。作者也提出了适合本文的设备,但这些设备没有被使用,因为他们关注的是攻击者使用攻击后的蜜罐服务器作为其他攻击跳板。我们将在3.1处解释如何处理这些。

如果对研究攻击者的真正活动感兴趣,就要基于高交互蜜罐并采用不同的方式。在这方面的最初的尝试是使用HIAT工具[18]。不幸的是在对这个工具进行评估时没有什么有意思的发现,因为它只运行了几天时间,这个蜜罐仅受到了8000次点击,大多数还是通过良性爬虫。据我们所知,这是第一次大规模评估后渗透攻击阶段攻击者Web行为的研究。

然而,一些类似的工作如根据交互性shell在运行SSH[19,23]高交互蜜罐上的攻击者行为划分已经有人做了。这个研究中的一些有意思的发现是攻击者关注他们的机器,因为特别的任务(例如在机器上运行的扫描和SSH暴力破解攻击和他们通常用的攻击是不同的)。并且他们中的很多人不是很懂攻击,仅使用很简单的攻击方法和一系列的命令,这意味着大多数的攻击者仅仅是按照入门级教程上的攻击步骤来进行操作的。于此同时,在SSH蜜罐上使用的命令需要针对软件配置进行,并尝试安装恶意软件,例如僵尸脚本。我们会在第6节进行。

最后我们的研究关注的是把分类的文件上传到蜜罐,一些已经发表的关于如何侦测相似源代码文件的的文章,特别是抄袭检测的[6,26]。其他一些相似的框架也被提出来,用来检测图片和其他多媒体格式,也是为了达到相同的目的。不幸的是我们看到了一堆文件上传到蜜罐,并且他们大多数存在源代码、二进制数据或是文档混淆的现象(就体现了大多数的抄袭检测是无效的)。而且很多抄袭检测工具和算法对资源的要求很高,很难应用到大的数据库上。这些原因使得抄袭检测不能满足我们的需求,任何类似指纹文件及分类问题,在取证领域都得到了研究。特别是基于上面想法的很多相似的文章在过去的几年中也得到了发表[15,25]。这个方法被证实是有效、快速的,在侦测这类相似性问题上,这些是基于字节流来表示数据的。我们选择使用这种方式,在我们的研究过程中使用的是在文献[15,25]中提到的两种工具。

三、HoneyProxy

我们的蜜罐系统由很多的网站组成(我们的实验中是500),每一个都包含5种最常见或是众所周知有漏洞的内容管理系统。17个预装了PHPWebshell,还有一个是静态网站。

我们解决了在我们的设备上托管的所有Web应用大规模独立安装管理的问题。7台隔离的虚拟机使用的是VMWare服务器。在主机提供商那里,我们只安装了一个ad-hoc代理脚本(HoneyProxy)来将所有接收到的流量传到我们服务器上的VM上。这就能够让我们集中采集数据,而且还能够区分来自主机的不同响应。图1展示了系统的高阶预览。

PHP代理加入两个自定义头到每个访问者的请求中:

  • X-Forwarded-For:这是用于代理的标准头文件,用来设置客户端的真实IP地址。如果客户端的头文件已经设置,最后X-Forwarded-For会列出所有以前看到的IP,并且维持和追踪所有客户通过的代理。

  • X-Server-Path:这个自定义头是通过PHP代理来设置,以让我们能够在分析虚拟机上的请求日志时了解请求域名的来源。例如:X-Server-Path: http://sub1.site.com/。

这两个头文件只在主机提供者的网站和蜜罐的虚拟服务器上追踪目标,对于蜜罐的使用者并不可见。

3.1、容器

每台虚拟机都需要进行合理的配置,以容纳攻击者攻击的同时避免被攻击者对蜜罐造成损害。尤其是,我们阻断了对外连接(否则可能会导致外部主机被被攻击),修补了有漏洞的博客和论坛程序源代码,从而隐藏垃圾邮件发送者发布的邮件(可能导致的恶意广告链接),并且调整了文件系统的权限让攻击者能够攻击他们,但无法控制机器或是改变每个应用程序的主要源代码。尽管如此,攻击者上传的恶意文件仍然存在着危险,我们通过在固定的时间间隔内还原每个虚拟机到原始状态来处理这一问题。

下面,我们简要的介绍在蜜罐机上可能进行的滥用行为,并展示我们自己的阻止或缓解方法。

honeyproxy 01

图1、系统的高阶结构分布

  • 获得机器最高权限。我们使用安装了更新软件和安全补丁的虚拟机来处理这个问题。在每台虚拟机上,Web服务和所有对外服务均使用非特权用户身份来运行。当然,这个解决方案无法阻止0-day攻击,但是我们会尽量来限制攻击面,在仅有3个服务(apache、sshd、mysqld)的机器上运行,其中只有Web服务器暴露在互联网下。我们考虑了利用0-day远程对apache进行攻击的可能性,也可能成为现实,届时绝大多数互联网应用皆会受其影响。

  • 使用蜜罐作为垫脚石来发动攻击和邮件活动。这可能是在配置一个功能齐全的蜜罐之前要部署最为重要的部分。在我们的例子中,我们常常使用iptables规则来阻止(和记录)除了已经建立的连接以外的虚拟机的出站流量。IRC端口(6667)的规则是个例外,在第4和第6节会有详细的介绍。

  • 托管和发布非法内容(如:钓鱼页面)。在有远程文件上传漏洞时,威胁是很难避免的。然而,通过限制上传目录内容的权利,通过防止改变所有现有的HTML和PHP文件,这些能够降低发布非法内容的风险。此外,我们也可以检测到每个VM文件系统的改变,当检测到了一个文件改变,系统就会储存下这个快照。然后虚拟机以规定的时间间隔来恢复到原始状态,从而防止潜在内容传给受害人或是被搜索引擎收录。

  • 推销非法产品和服务(如:垃圾邮件链接)。另一个问题是由应用程序引发的,作为它们基本工作的一部分,允许用户编写并发表评论。任何的博客和论坛CMS都存在这个问题。这些应用很容易成为垃圾邮件的目标,我们会在5.3.1节中进行说明,此外托管蜜罐时确保由机器人发出的链接和帖子不会被任何最终用户访问或被搜索引擎检索是很重要的。我们通过修改包括论坛应用的源代码来解决这个问题(也就是Wordpress和Simple Machines Forum),注释掉负责显示帖子内容的代码。利用这个改进,攻击者仍然有发布消息的可能(用来采集这些消息),但是导航的帖子和评论只能显示空白消息。

这些措施限制了我们从蜜罐上采集的信息(例如,攻击者上传的反向连接脚本会被我们的防火墙阻止),但是我们认为这是防止我们的设备被恶意利用的必要手段。

3.2、数据采集和分析

我们使用两个信息来研究攻击行为:来自HTTP请求的日志,和攻击者获取受害主机权限后修改或是生成的文件。

我们开发了一些分析HTTP请求日志的工具,使我们能够识别出已知的良性爬虫,对我们的Web应用进行的已知攻击,同时获得详细统计数据(接受请求数量和类型、User-Agent、IP地址、每个访问者的地理信息、Referer头的分析,和请求间时间间隔的分析)。我们的分析工具也能够把相对应时区攻击者的时间标准化,检测攻击中可能存在的联系(例如一个自动脚本感染后的Web应用程序上传了一个文件,紧接着另一个IP地址访问了这个上传文件)。我们也开发了一个对于最常见的使用PHP Webshell的HTTP请求日志的解析器,使我们能够提取请求命令并了解攻击者在我们系统上的所作所为。

我们采用两种方式检测上传和修改文件:Web服务日志和来自监控的文件快照。Web服务日志上有上传文件的记录,每个通过我们蜜罐上传文件的过程都会在apache的mod_secruity记录上。在虚拟机的监控目录的文件快照是修改或生产的原文件以及系统上的被解压的压缩文档或加密文件记录的主要来源。我们能够从这些原中提取的文件有85567个,其中的34259个文件是唯一的。

由于我们收集了大量的唯一文件,手动文件分析变得不太可行。因此,为了减轻分析所采集数据的压力,我们首先根据它们的类型归到一起,来看下它们和其他文件有什么事实上的不同。这就需要我们进行类似地下产业那样相同的做法,例如在改变用户名、登录凭证、或是植入后门后,重新进行相同的攻击或是钓鱼攻击。

首先,我们使用Linux file工具对文件进行分类,把他们放到10个宏观的类里:源代码、图片、可执行文件、数据、文档、文本、HTML文件、链接、多媒体等。

然后我们对同一类型诸多文件进行查看,这些文件只是少数字节不同(由于剪切和粘贴会产生空白)或是源代码注释中存在不同。因此,要提高我们的对比结果,我们要提前处理每个文件并把它转成规范形式。作为规整化的一部分,我们删除所有的双空格、制表符、换行符以及所有的注释(C类型和bash类型),最后进行标准化处理新行,并在代码中分离出电子邮箱地址。对于HTML文件,我们使用html2text工具来分离出所有的HTML标签。

PHP文件使用了一个附加前处理的步骤。我们发现大量的PHP文件上传到我们的蜜罐上,导致了与Web应用的混淆。这种形式的文件即使是使用自动工具也很难检测到用不同方式编码的相似文件的相同之处。为了克服这个问题,我们建立了一个基于evalhook PHP[10]扩展的PHP自动反混淆工具,包含动态代码评估功能的模块,来实现一步一步对PHP代码的反混淆。我们在没有Web应用的时候在虚拟机上部署了我们的工具(避免发生远程计算机攻击或是扫描,因为一些混淆的脚本可能会实现远程连接或是攻击),同时对每个文件进行至少一级的反混淆操作(例如,嵌套调用eval()),并保存反混淆代码。

我们的方法可以让我们反混淆几乎所有已混淆的PHP文件(例如,gzip和base64编码和解码,使用eval()函数的动态评估)。我们唯一不能反混淆的PHP文件是带有错误终止(往往是因为语法错误)以及使用专门的商业编码工具的文件,如Zend Optimizer或是ionCube PHP Encoder。但是我们观察到仅有3个样本使用了这些工具进行编码。

总的来说,我们成功的反混淆了1217个截然不同的文件,占到我们收集的源代码的24%。有意思的是,每个文件都被正常的编码多次,需要平均9次反混淆操作还原PHP代码(有些样本需要惊人的101次)。

3.2.1、相似性归类

一旦规整化步骤完成,就可以计算在相同类型文件中两两之间的相似性,我们使用了2种进行相似性检测的标准化工具ssdeep[15]和sdhash[25]。然后,我们使用简单的分类算法对所有的文件进行分类,相似值大于0.5的被分到同一个组中。

在我们不能找到类似的元素时,就会放弃该文件。对于其余的部分,我们进行手动分析,根据他们的不同目的分成不同的类别。因为文件已经根据相似性进行分组,对每个组的文件进行分析就成必须(如打开和检查内容)。在这个阶段里,我们能够定义多个文件类别,能够让我们更好地了解攻击者的意图。另外,这一步让我们对有趣的攻击有了新的见解,其中的一些会在下面的部分通过深入的例子进行介绍。

四、配置系统

500个蜜罐代理部署到了共享主机计划上,这些主机选用了8个国际上最流行的互联网虚拟主机提供商的主机(来自美国、法国、德国和荷兰)。为了让蜜罐代理能够正常工作,每个供应商必须支持通过PHP使用cURL库,同时支持除了80和443端口以外的其他端口对外连接。

为了能使用户登录我们的蜜罐网页,我们在GoDaddy.com上购买了100域名,同时带有隐私保护。这些域名被平均分配在.COM、.ORG和.net顶级域名中,并均匀地分配给提供商主机。对于每个提供商,我们为每个域名配置了4个附加的子域名,这样就有了5个不同的网站(为保证蜜罐的匿名性,我们叫它们www.site.com、sub1.site.com、sub2.site.com、sub3.site.com和sub4.site.com),最后,我们在首页上公布这500个域名,在研究小组的网站上以透明的方式进行连接,这种方法已经由MUTER[18]等出于类似目的提出。

我们使用修改后的ftp-deploy脚本[11]分批上传我们给500个网站定制的PHP代理。这就简化了发布和更新PHP代理的操作,并统一了上传文件到服务器上的操作。由于与.htaccess、ModRewrite以及cURL的结合,我们可以把用户的请求透明地转发到对应虚拟机的适当URL上。任何尝试读取一个不存在的资源,或是访问代理页面都会显示空白页面给用户。在不考虑账户的时间线攻击或是入侵主机提供商服务器前提下,访问者无法知道他们访问的是代理。

安装在每个网站上的蜜罐系统都是由索引文件、PHP代理脚本和配置文件组成的。索引文件是网站的主页,它会连接到存在漏洞的Web应用上或是其他蜜罐网站,这些是根据配置文件的内容来定的。

每个子域名的连接结构是不同的,如图1(a)中所示。实际上,同一个域名下的每个子域最多和其他2个不同的子域名连接。我们建立的连接图就是为了检测来自系统的可能导致自动连接和执行自动攻击或扫描的流量。

4.1、安装Web应用

我们在7台虚拟机上总共安装了5个有漏洞的CMS,这些CMS是最知名的内容管理系统,同时在我们开始部署时就具有漏洞。对于每个CMS我们都选择了一个有大量漏洞的版本,或者至少有一个能让攻击者完全控制的应用程序漏洞。我们也限制选择发布时间不超过5年的CMS版本,来保证我们网站可以吸引攻击者。

我们这样选择的目的是出于攻击者选择低门槛目标的想法。另一方面,我们的蜜罐可能会错过精致而不落俗套的攻击,这些攻击主要针对著名机构或是知名网站。然而,这些攻击不容易通过蜜罐来研究,因此不在我们研究的范围内。

表1描述了安装在7台虚拟机上的应用漏洞、发布的时间、应用特点以及存在的漏洞。我们已经安装了WordPress 2.8的两个实例,一个使用CAPCHA来保护评论,另一个没有使用CAPCHA保护,这是为查看是否有攻击者会手动注册虚假账号,还是系统自动解决CAPCHA。但似乎没有这种情况,因为我们没有接收到任何被CAPTCHA保护的博客上的评论。因此我们不会讨论在文章其余部分讨论的这部分内容。

4.2、收集数据

从2011年12月23日开始,我们收集了运行了100天虚拟机上的日志。所有的结果出自这7台机器的日志。

总的来说,我们收集了9.5千兆的原始HTTP请求,由大概11.0M的GET和1.9M的POST。我们的蜜罐被超过了73000个不同的IP地址访问过,这些IP地址跨越了178个国家和超过11,000的用户代理。这要比之前John等人在低交互蜜罐上[14]观察到的幅值上大一倍。此外,我们还提取超过85,000个在攻击我们的网址过程中上传或是修改的文件。

有两种不同的方式来处理我们收集的数据:一是通过看Web日志来确定和研究攻击;另一种是通过分析攻击者上传和修改的文件来尽量和目标建立关联。接下来的两节会从这两个视角进行描述。

五、渗透攻击和后渗透攻击行为

为了能单纯的使用蜜罐来更好的分析攻击者的行为,我们决定把攻击分为4个不同的阶段:发现、侦察、渗透攻击和后渗透攻击。发现阶段描述攻击者如何找到他们的目标,例如通过搜索引擎查询或是通过简单的IP地址扫描。侦察阶段包括被访问网页的相关信息,如使用自动爬虫或是手动接入一个匿名的代理。在渗透攻击阶段,我们描述了对我们的Web应用程序进行攻击的数量和类型。有些攻击达到了他们的最终目标(如使一个网页重新指向一个恶意网站),但是一些只是进行了上传操作。在这种情况下,上传的文件通常是Webshell,攻击者利用该文件稍后进行手动登入被攻击系统并继续进行攻击行为。我们把这之后的阶段叫做后渗透攻击阶段。

表1简要说明安装到蜜罐虚拟机上的应用程序特点和可以利用的漏洞列表。

honeyproxy 02

表1、蜜罐虚拟机上安装的应用程序

要呈现所有可能行为的组合是很难的。并不是每一次攻击都会出现这几个阶段(如侦察和渗透攻击可能在一个阶段中执行),而一些访问并不会导致任何实质性的攻击,有时甚至不能将来自不同IP地址的同一个攻击者的不同行为关联在一起。但是,通过在每个阶段中收集的数据中提炼常见模式,我们能够在我们的实验观察中识别出“典型的攻击形态”。这些信息可以进行如下概括:

1、69.8%的攻击者使用搜索机器人来访问页面。这样的搜索经常试图隐藏User-Agent,或是伪装成合法的浏览器或是搜索引擎爬虫。

2、当侦察鉴定这是攻击目标后的几秒钟,第二阶段的自动系统会访问该页面并执行真正的渗透攻击。这通常是单独的一个不能伪造用户代理的脚本,因此,常常出现例如libwww/perl的字符串。

3、如何漏洞允许攻击者上传文件,在这种情况下,46%的渗透攻击机器人会上传Webshell。此外,大多数的攻击者会成幂次方的上传相同的文件(平均9,有时多达30),大致可以肯定攻击是成功的。

4、平均在3小时26分钟后,攻击者通过之前上传的shell登录机器。这个和攻击者进行交互的平均登录时间是5分37秒。

虽然这代表了从我们数据库中提取的最常见的行为,但我们也观察到了很多其他行为组合,我们会在其余的章节中进行描述。最后,要提的是攻击者行为会随着应用和利用漏洞的不同而发生改变。因此,我们应该说之前的描述总结了针对osCommerce 2.2的最常见攻击行为(迄今为止在我们蜜罐上遭受攻击次数最多的Web应用)。

图2对每个阶段的特征进行了快速的总结。在余下的章节中有更多的信息和统计数据。然后,根据在渗透攻击或后渗透攻击时期上传和修改文件的分析,我们在第6节将会根据实验观察来努力总结不同的攻击目标和动机。

honeyproxy 03 图2、攻击的四个阶段honeyproxy 04图3、研究过程中蜜罐系统接收到的HTTP请求量

honeyproxy 05图4、来自各国的请求数量

5.1、发现阶段

第一次HTTP请求进入我们的蜜罐代理是在我们配置好蜜罐后的10分钟里,来自Google机器人。第一次直接请求我们的虚拟机(在8002端口)是在搭建后的1小时50分钟。

在最初的几天里,多数流量是由良性Web爬虫造成,因此我们设计了一个简单的解决方法,在余下的流量里筛选出良性爬虫产生的流量。因为单独的HTTP头文件是不可信的(如攻击者常常在他们所用的脚本里使用“Googlebot”的User-Agent),我们收集了机器人的公开信息,我们把这些信息与日志中提取的信息结合并在WHOIS结果中进行确认,以鉴别来自已知公司的爬虫。通过结合User-Agent字符串和关联到已知企业范围的IP地址,我们可以鉴定14种来自1965个不同的IP地址的不同爬虫。尽管这不并非完整的爬虫列表(如约翰等人[14]使用了一个更复杂的技术来鉴定16种Web爬虫),但足够成功过滤由爬虫产生的流量。

在图3中显示了关于请求的统计学数据。良性爬虫的请求相对稳定,但是随着时间的流逝,蜜罐会被搜索引擎索引并被连接到黑客论坛或是连接到链接养殖场上,恶意僵尸或是爬虫的请求数量同时也呈线性增加。

当绘制这些统计数据时,我们在访问模式上也确定了一些可疑的流量,在一些情况下,短短的几个小时我们的应用就被一些特别的IP地址访问(和每天平均192次相比),这清晰地表明一个僵尸网络正在扫描我们的网站。

有趣的是,在系统搭建好后的2小时10分钟,当论坛开始接受一些自动注册时我们就观察到了第一个可疑行为。然而,论坛上的第一个帖子出现在4天后的12月27号。更令人惊奇的事实是,从爬虫的第一次访问恰好带来了第一次攻击:在我们的蜜罐配置好后的4小时30分钟。在波兰的浏览器访问了我们的osCommerce应用程序并通过文件上传漏洞上传了恶意PHP脚本到蜜罐。图4总结了我们的蜜罐收到的访问(良性爬虫除外),并通过地理地址将它们进行了划分。

5.1.1、Referer分析

分析HTTP头中的Referer(无论何时都可用)可以帮助我们确定访问者是怎么在Web上发现蜜罐的。根据结果我们可以区分两类主要的用户:使用搜索引擎来寻找应用程序漏洞的攻击者,和通过邮件或是公共论坛上发帖来进行钓鱼的受害者(我们将在6.8节介绍这个现象)。

Referer集中共有66449人次访问了我们的蜜罐页面。出现的最频繁的是搜索引擎,其次是是Web邮件和公共论坛。其中来自Google的记录有17156条,攻击者用来寻找我们网站时所使用的其他搜索引擎有Yandex(1016条)、Bing(263条)、Yahoo(98条)。最后,其他的15746次请求来自几个公共的Web论坛,部分论坛属于黑客组织,部分来源是垃圾邮件机器人。

最后我们通过从网页搜索引擎上的Referer集提取了搜索查询(当用于恶意目的时也叫做“dorks”)。我们的分析表明攻击者使用的搜索条件高度依赖于部署在蜜罐上的应用。例如,访问Joomla应用最常用的dork包含有‘joomla allows you’字样,同时Simple Machines Forum可以通过搜索‘powered by SMF’来查到。我们的机器包含的公开Webshell也可以通过类似‘inurl:c99.php’、‘[cyber anarchy shell]’甚至是‘[ftp buteforcer][security info][processes][mysql][php-code][encoder][backdoor][back-connection][home][enumerate][md5-lookup][word-lists][milw0rm it!][search] [selfkill][about]’来搜索到。后面的查询尽管很长,但仍然有超过150次的Web shell访问来自于它。更可能的搜索来源是通过‘intitle’:因为脚本的名字和标题常会被攻击者自定义,相比搜索固定的url类型或是网页主题,搜索它们的文字内容更可能返回更多结果。一些专用的搜索引擎也有被用到,如devilfinder.com,有141次访问Web shell是通过该搜索引擎。这个搜索引擎声称和一般的搜索引擎比会显示更多低排名的结果,且不会储存任何搜索数据,相同的Web页面最多可以返回多达300条记录,这就很适合攻击者寻找dorks和长长的漏洞网站列表。

5.2、侦察阶段

在移除良性爬虫流量后,我们的蜜罐接收到的大部分流量都来源不明,其中许多是源于自动的HTTP请求。在研究过程中,我们发现这些请求大部分是针对我们蜜罐的攻击或垃圾邮件。

然而,区分攻击者是手动访问还是自动访问还是很难的。我们把下面的三个准则作为自动请求的标志:

  • 间隔时间。如果请求来自相同的IP地址,到达的频率高于某个阀值。我们就会认为流量来源于一个可能的恶意机器。

  • 图片请求。自动化系统特别需要优化其请求速度,几乎从来不会要求来自系统的图像或是演示相关的内容。扫描访问者的Web日志,那些从来没有请求图像或是CSS内容是自动扫描的一个简单特点。

  • 子域名访问模式。如第4节中说,我们配置的每个网站都包含很多根据预定的模式相互连接的子域名。如果在很短的时间里有相同的IP访问,根据我们的模式,那么这很有可能是一个自动化的爬虫。

例如,在移除良性爬虫流量之后,系统在不接收图片请求的情况总共接收到了9.5M的访问量,与之相比,系统被请求图片和演示内容时才接收到1.8M访问量。相反,只有641个IP地址(对于13.4K的访问量)是按照精确的访问连接访问网站的,其中60%的访问遵循广度优先的原则。

85%自动化请求是针对我们的论坛应用程序,都是注册虚假用户信息和发布垃圾邮件的请求。余下的1.4M请求直接指向剩余的6个蜜罐应用程序,95K是模仿已知搜索引擎User-Agent的流量,还有264K的流量是在多个User-Agent相互切换访问的结果。余下的请求不包含任何可疑的用户代理字符串,没有按照域名路径,也不请求图片,所以我们把它们归类为机器人请求。

5.3、渗透攻击阶段

首要的工作是通过解析、搜索日志文件中的攻击痕迹来检查渗透攻击企图。幸运的是在已经知晓Web应用程序漏洞的情况下,我们可以通过一系列正则表达式在日志中快速、稳定的检索攻击信息。

总体而言,我们记录了444种不同的渗透攻击会话。一个有趣发现是其中的310种使用了两个或是多个User-Agent字符串,正如第5节所说,这种情况在使用侦察机器人和自动攻击脚本来提高攻击速度并快速寻找目标时便会发生。特别是,我们所观察的三分之二(294个)的渗透攻击会话所使用的User-Agent与LibWWW Perl库(libwww/perl)相关。

在这样的一些渗透攻击会话中,攻击者试图掩饰他使用的良性机器人工具和浏览器。在渗透攻击会话中常被使用的一些爬虫User-Agent字符串是:FreeWebMonitoring、Gigabot/3.0、gsa-crawler、IlTrovatore-Setaccio/1.2、bingbot/2.0和Googlebot/2.1。

每个渗透攻击会话最显著的副作用是上传或修改受害主机上的文件。特别奇怪的是,我们注意到渗透攻击会话中上传文件时平均会上传9.75次。这种奇怪的现象可以用这样的事实来解释,大多数渗透攻击工具都是自动执行的,攻击者无法实时查看攻击是否成功,多次上传相同的文件可以增加文件上传成功的几率。

honeyproxy 06

图5、攻击会话的时间分布

使用3.2节所介绍的方法,我们将上传到蜜罐的文件自动归类为漏洞利用服务的结果。然后,我们把渗透攻击会话信息和收集文件的分类结果进行关联,这个阶段的分析结果显示攻击会话所上传文件的构成:45.75%的文件是Webshell,17.25%的文件是钓鱼文件(简单的HTML页面或是完整的钓鱼攻击包),1.75%的文件是自动下载和远程URL执行文件,1.5%的文件是本地信息搜集文件。最终,32.75%的上传文件无法用我们的系统进行归类,因为它们与我们所观察的其他文件没有相似之处,或者是与我们研究无关的多媒体文件和图片(例如,用于篡改页面的图片或音乐)。

图5显示了我们的蜜罐遭受攻击的规整时间,该值是计算机根据IP地址所在地理位置的时区调整后的数值。同样,这些数值无法反应攻击者在代理情况下使用不同IP地址进行攻击的正确数值。然而,该图显示了在渗透攻击和后渗透攻击阶段在白天进行的明显趋势。尤其是我们观察到的交互会话中只有很少发生在凌晨4点到上午10点,可能是因为攻击者也需要休息的缘故。有趣的是在渗透攻击阶段绝大多数自动化攻击的时间分布上也显示了类似的趋势(尽管不清晰)。这可能受感染的僵尸主机进行扫描的结果,而这些主机在晚上便会被用户关掉。

搜索我们攻击日志来得到关于直接访问我们虚拟机的攻击者信息,这些攻击者没有通过蜜罐代理访问,我们发现这种攻击数量不多,但仍然有相当数量的攻击是直接攻击蜜罐的IP:PORT。特别是,我们发现这种攻击中的25次是针对蜜罐上的电子商务应用,19次是针对主机上的webshell和静态网站。在这两种情况下,攻击者可以使用之前的漏洞来提取我们机器的IP地址(保存在被许多攻击者经常下载的osCommerce配置文件中,或是通过交互shell来检查机器),并在之后的攻击中用到这些信息。

5.3.1、发帖

在第一天的运行后,我们的论坛应用程序收到大量的访问流量,大部分流量是虚假注册和垃圾邮件机器人发出的。我们分析了机器数据库的每一个快照,目的是提取论坛帖子和嵌入其中的每一条URL信息。这让我们鉴别和分类了几种垃圾邮件和链接养殖场,同时发现了一些恶意出售论坛账号的行为。

在我们的研究中,共有68201条唯一信息被发布,这些信息来自15753个用户使用的3144唯一IP地址。每天论坛的数据体现出高流量留言板是典型的媒介:平均每天发帖604条(最高达3085条),在高峰时刻平均有232个用户在线(最多达403个)。

更让人吃惊的是论坛注册者的数量要比发帖的数量大的多:平均每天1907次注册,在2012年3月23日达到最大的14400次。这种现象非常常见,在我们论坛上进行操作的33.8%IP地址都至少创建了一个虚假账户,但是从来不发帖,这表明对于犯罪者来说或许有完成自动注册的某种激励,或许这比垃圾邮件活动更能获得价值。我们设想这些虚假论坛账号可以在黑市上进行出售。我们确实发现了1260个账号是由同一个IP地址创建的,几天之后使用其他的IP来发布消息,这不一定能证实我们的推论,但是至少说明论坛垃圾信息已经成为一种复杂的生态体系,且在一次垃圾信息或链接养殖场的幕后找出其中某个人员现如今是非常难的。

进一步查看注册用户和发布垃圾信息的IP地址发现,这些IP大部分来自于美国或东欧国家(主要是俄罗斯、乌克兰、波兰、拉脱维亚、罗马尼亚)。在我们的论坛上活跃着6687个不同的IP地址(至少发了一个帖子或是注册了一个或是多个账号),其中,36.8%来自美国,24.6%来自东欧。如果只考虑至少在论坛上发一次帖子的IP地址,那么国家的覆盖率就会彻底不同,这种情况下,来自美国的IP地址占了62.3%(东欧的IP地址占21.2%)。

最后,我们把论坛上的所有帖子根据关键字进行了简单分类。这样就可以让我们快速鉴别常见的垃圾邮件主题和活动。通过这种方法,我们能够自动分类63763条信息(占总数的93.5%)。

我们提取出来的主题信息趋势说明最常见的主题类型是药品(占分类消息的55%,最高每天有2000条信息),其次是搜索引擎优化(SEO)和电子产品(11%)、成人内容(8%)、卫生保健和家庭安全(6%)。

我们使用了两种自动的分析工具来对所有帖子中的链接进行一个深入分析来检测恶意网页,即Google安全浏览器[22]和Wepawet[8]。这两种工具的检测结果说明我们从论坛上提取的221423个URL中只是很少的一部分(2248条,大概1%)包含恶意或是可能有害的链接。

5.4、后渗透攻击阶段

后渗透攻击阶段主要是分析攻击者和被感染的机器之间的联系。在我们的实验中,是通过在渗透攻击阶段安装Webshell,或是通过访问预先安装到我们的虚拟机上的公开Web shell增加收集的数据。

后渗透攻击阶段分析中值得特别关注,因为在交互会话中攻击者可以发出任意指令。然而,这些Webshell不会有任何会话概念:它们仅仅是无状态条件下通过HTTP请求接收命令并提供响应而已。

在我们的实验中,我们总共接收到了74497次shell命令。这些命令从简单文件系统中衍变而来对文件进行检查和编辑,以及复杂到上传新文件和执行Web扫描等任务。

为了更好的理解这个数字代表了什么,我们决定将每次接收的来自同一个IP地址的独立命令在虚拟“交互会话”中组合起来,同时连续命令之间的时间间隔少于5分钟。

根据这个定义,我们注册了232个交互会话作为渗透攻击的结果,我们预装了8268个shell,平均每个会话持续5分37秒,然而,其中我们注册的9个会话用时都在一个小时以上。依据系统命令的响应,最长的会话来自沙特阿拉伯,该会话向shell发送了663条命令,包括几个文件的手动编辑。

有趣的是,在攻击过程中最常见的一个行为是上传自定义的shell,即使攻击者攻入系统时使用的是在系统上已经存在的shell。因为攻击者知道使用其他人安装的shell含有后门并泄露他们信息的可能性更高。除了我们工具所提供的17个shell,我们还定义了HTTP模式来匹配攻击者上传的常见自定义shell,由此我们可以分析他们发出的命令。

在83%的情况下,攻击者试图使用至少一个主动命令(上传或是编辑文件、更改文件权限、创建文件或是目录、扫描主机、关闭进程、连接数据库、发送邮件等)。其余的会话纯粹是被动行为,攻击者仅仅是浏览我们的系统、下载源码和配置文件。

最后,在61%的会话中攻击者会上传一个新文件,50%的会话会试图修改机器上已存在的文件(其中的13%是页面篡改)。对于这些独立命令,最常用的是读取和列出文件和目录,随后是在系统上编辑文件、上传文件、运行命令、列出运行中进程以及下载文件。

六、攻击目标

在本节中,我们把关心的重点从攻击方法转向攻击动机。换句话说,我们会试图去了解攻击者在拿下网站后会做什么。他们是否会安装僵尸服务,他们是否会试图获取主机的管理员权限,他们是否会在应用程序中插入代码、植入后门或是恶意的iFrame。

honeyproxy 07

表2、分类结果

honeyproxy 08

图6、基于特殊文件上传的攻击行为

为了回答这些问题,我们分析了在渗透攻击阶段上传的文件,和在后渗透攻击时期创建和修改的文件。正如我们在第3节中提到的我们对每个文件的内容进行了规整,根据它们的相似性进行了归类。最后,我们手动标记了每个类型,以区分这些文件的目的。表2总结了归类的结果,我们的蜜罐收集了86.4%的单一文件。关于这些文件,图6展示了文件目的的类别。例如,在实验中我们观察到的1.7%文件是用来升级在感染的机器上提升权限,这不同于说1.7%的攻击者要提升机器权限。不幸的是,我们并不是总能将这些文件和攻击者的攻击行为对应起来。因此,我们通过鉴别在攻击期间上传特定文件的每个特定IP地址所完成的特定行为对攻击者行为进行评估。仅仅通过攻击者的IP地址来鉴别攻击者并不总是正确,但是这还是提供了一个近似的合理性。因此如果我们说某一类攻击的预计攻击概率有20%,这就意味着一个攻击者在他/她的操作中所上传的5个文件中至少有一个文件属于这类攻击。

只有14%的攻击者上传了至少属于两个不同类别的多个文件。这就意味着大多数的攻击者都有一个精确的目标,或是攻击者在常常的改变他们的IP地址,使我们很难跟踪他们。

在本节的其余部分我们将简要介绍这13个攻击类别。

6.1、收集信息

唯一文件比率:1.8%

预计攻击者比率:2.2%

这些文件主要包含在分析受攻击系统的自动脚本中,常用于手动攻击的第一个阶段,其中在使用恶意操作之前,攻击者试图收集被攻击系统的信息。一般情况下,我们观察到有一些攻击者使用脚本来搜索、存档和下载一些系统配置文件。

例如,在2012年4月7号一名攻击者便使用这种工具来攻击我们的蜜罐。攻击者使用普通浏览器和马来西亚IP地址,上传一个叫allsoft.pl的脚本。一旦脚本被执行,它会扫描包含CMS(如Wordpress、Joomla、WHM、phpBB、vBulletin)配置文件列表的系统,创建了一个能够找到的包含所有文件的tar归档,同时给攻击者返回一个指向所创建的文档文件的链接,这样很容易进行下载。这个脚本在用户和系统上的多个主目录之间迭代运行,以尽可能多的在受攻击机器上收集账户信息。

6.2、路过式下载

唯一文件比率:1.2%

预计攻击者比率:1.1%

我们目击到了一些创建Web下载的攻击,通过在我们的蜜罐服务上插入自定义的漏洞HTML代码,上传含有已知浏览器漏洞的文件,这种行为是为了对访问网站的用户机器进行渗透攻击,将用户机器变为攻击者的僵尸机器,之后用于大范围的非法活动。

这种攻击方式的一个例子是在2012年2月28日上传到我们蜜罐的intu.html文件。当网页被打开后,页面显示“正在交易,载入您的订单,请稍等”。后台恶意的avaScript加载iFrame同时指向托管在twistedtarts.net的文档。该文档是恶意程序且含有两个漏洞,CVE-2010-0188和CVE-2010-1885。Wepawet[8]在这个页面上传到我们蜜罐服务器的同一天将这个文档报告为了恶意软件。

6.3、第二阶段

唯一文件比率:37.2%

预计攻击者比率:49.4%

这种类型攻击包括下载者(设计用来下载同时执行其他文件的程序)、上传者(能够实现远程上传文件的网页)、Webshell和搭载后门的文档。这些是供攻击者选择完成基于Web方式攻击的工具,因为这些工具允许上传任何文件到受害者机器,或者在攻击者登录服务器终端后执行任意命令。大多数登录我们蜜罐的攻击采用混合Webshell和自定义脚本的方式来试图破解机器并在上面安装恶意软件。

这种行为的一个例子是在2012年1月1号6点50,一个来自美国科罗拉多州恩格尔伍德市的IP地址,其User-Agent设置为“blackberry8520_ver1_subvodafone”,该IP地址直接连接到运行着osCommerce的蜜罐上来,并利用文件上传漏洞上传了几种不同的PHP脚本,它们中大多数启动IRC机器人连接到不同的IRC服务器上。同一个人也上传了PHP shell来下载机器上的CMS配置文件。

事实上,攻击者并没有通过我们蜜罐代理进行连接,而是直接连接到了我们不常用的IP地址,从而引起了我们的关注。在我们的攻击日志上进行后向搜索,我们发现在不到24小时前,一个使用科罗拉多州恩格尔伍德市的另一个IP地址且用户代理设置为“bingbot/2.0”的自动系统连接到了我们的网站,并利用漏洞下载了osCommerce配置文件,该文件中包含了运行osCommerce虚拟机的真实IP地址。

6.4、提升权限

唯一文件比率:1.7%

预计攻击者比率:2.2%

权限提升在计算机安全史上是一种最古老的漏洞,但是它仍然很受人们的喜欢,因为它允许攻击者获得管理员权限并控制完整的机器。在共享Web托管环境的服务器中成功利用权限提升漏洞能够使攻击者修改在服务器上托管的每个站点的文件,如此可能让数百甚至上千个网站同时遭受攻击。

这类攻击的实例发生在2012年2月9日。一个使用匈牙利IP地址的攻击者在一台托管有Webshell的主机上上传了一个名为mempodipper.c的文件,并使用其中一个shell来尝试用gcc来编译它的源码。本机没有可用的编译器,因此,在5分钟后,攻击者上传了一个预编译的名为mempodipper的二进制ELF文件,同时试图通过使用shell来执行它。我们发现这个漏洞利用程序利用了一个使用了近来才被披露的漏洞——在这个攻击发生不到20天前发布的CVE-2012-0056。在攻击时这个漏洞利用程序通过已经被公开可用[27]的SUID /proc/PID/mem Write来提升Linux的本地权限。然而,我们虚拟机的内核并没有该漏洞。

6.5、扫描器

唯一文件比例:2.3%

预计攻击者比率:2.8%

这中活动的进行是为了能发现其他地方或是有远程漏洞的可以被攻击者利用的目标网站。如FTP扫描,使用“dorks”的查寻扫描,或是试图列出所有的在管理机上属于这个分类的域名称。

一个具体的例子是trdomain.php页面,该文件在12月16日上传到我们蜜罐,其IP地址来自土耳其。它包含一个本地域名称扫描器,从本地配置文件(如named.conf)拉取域名称配置信息,并从Google获得PageRank,以及文件根目录、用户名,并返回一个包含这些信息列的网页。页面的标题是“Domain ve User ListeLiyici —— by W£ßRooT”。截至目前,在网上搜索这些标题仍有许多结果,说明这种攻击很普通并被广泛传播。

6.6、页面篡改

唯一文件比率:28.1%

预计攻击者比率:27.7%

这种攻击在我们的蜜罐上是最常见的。在这种攻击中,攻击者修改蜜罐上存在的页面或是上传新的页面用于声明网站遭受攻击由他们负责。通常,但是不总是,声明和宗教或是政治宣传有关,或是为了搞笑或是令人震惊的画面。很多执行这些攻击的攻击者甚至连接到他们的个人网站或是Facebook页面上,在这里我们可以看到这些人主要是青少年在追求出名和在朋友面前吹嘘。

一次页面篡改的攻击发生在格林威治标准时间3月6日晚上8点,有人使用德国的IP地址连接后发现在我们机器管理的一个静态网页上藏着shell,并用它编辑了机器上的静态HTML页面。这个页面代码是使用复制和粘贴来使用Webshell上传。这个被篡改的页面包括一个来自作者的简短口号,使用JavaScript动画文本缓缓拉开的葡萄牙引语,和一组链接到黑客成员中每个人的Twitter页面,其中一些人的账户有超过1000个tweet和几百名跟随者。快速浏览下这些内容,我们会发现所有成员都在个人网站上贴出他们篡改的网页。显然,他们这样就是了为了建立一些声誉。这些都是从他们的个人Twitter的URL确定的——一个来自zone-h.org网站页面——报告他们之前篡改的页面统计。这些数据让人印象相当深刻,从2011年7月20日到现在写下了所有成员已经篡改的41600个网站,其中500是享有盛名的重要网站(政府网站,大学,或是跨国公司等)。

由于像这样的攻击,我们发现这是很常见的攻击做法,公开展示页面篡改的成果来宣传他们攻击的网站,就像在zone-h.org网站上展现的那些站点。似乎有些人是真正为了竞争在黑客网站上炫耀他们的技术,我们的蜜罐域名经常被他们作为战利品进行报道。

6.7、僵尸服务

唯一文件比率:28.1%

预计攻击者比率:27.7%

一些攻击者在利用我们的蜜罐后,通过上传专用PHP或是Perl脚本使我们的服务器加入到IRC僵尸网络中。

两个蜜罐虚拟机有这些最严重的服务漏洞,可以让攻击者在服务器上上传并运行任意文件,并允许通过6667端口建立对外连接。我们这么做是为了监听从我们机器发起攻击的IRC僵尸网络活动。我们只允许在6667端口上进行连接,让僵尸服务运行在标准IRC端口上连接到他们管理的聊天室。为了避免被僵尸牧人追查,每个连接到IRC端口的通道都通过私有保护的VPN来匿名我们的真实IP地址。之所以不允许本机有其他的出站连接,是为了避免我们的机器对其他主机发起攻击或被其他主机扫描。

我们的预测被证明是正确的,我们确实发现我们的两台机器连接到了IRC命令与控制服务器。对这些包的分析显示出了一些有趣信息。

起初,我们认为IRC僵尸网络是很少见的,相比在黑市中流通的大量基于Web的渗透攻击包。然而,上传到我们蜜罐上的文件的分析呈现相反的趋势,约200个不同的脚本启动了IRC僵尸主机。

另一个有意思的现象是IRC日志可以得知这些IRC僵尸网络都是被青少年操控的。一些僵尸牧人甚至放置链接到他们的Facebook或是Twitter账号资料中来向他们的朋友进行炫耀。虽然被青少年操作,但是我们大多数的日志显示IRC容纳了成百上千的僵尸主机(我们观察到的最大的僵尸网络由11900个僵尸主机组成)。

一些日志显示一些僵尸主机的控制者攻击了在其他IRC服务器上的对手(我们认为这是典型的脚本小子的做法),同时我们很关心这些年轻人是怎么处理钱的,且他们能够使用(而且可能由他们自己开发)自动化工具在搜索引擎上搜索并利用漏洞。我们收到了一些执行Dos攻击的命令,使用dorks进行引擎搜索,自动化渗透攻击,并根据指令报告用户名和密码,以及从攻陷的网站中窃取的信用卡凭证。

最后的一个有意思的发现是,根据IRC日志中所用的语言以及上传IRC脚本的IP地址分析,大多数僵尸主机都来自东南亚的国家(主要是马来西亚和印度尼西亚)。

6.8、钓鱼攻击

唯一文件比率:7.3%

预计攻击者比率:6.3%

钓鱼攻击是当前Web犯罪最危险的活动。我们发现了很多尝试在我们的蜜罐上安装钓鱼网页或是钓鱼网页攻击的证据。这些行为都是利益相关的,大多数的钓鱼网站都是网上银行副本,但是我们也收集到了一些网上电子邮件门户网站的钓鱼例子,甚至有极少数的网页冒充互联网服务供应商和航空公司的网页。

在蜜罐运行的100天里,我们的蜜罐总共收集了470个钓鱼网页相关的文件,其中129是完整的钓鱼攻击包(文档中常含有一个完整的Web钓鱼网站安装文件,包含图片、CSS文件,以及Web钓鱼脚本)。尼日利亚是这个攻击最活跃的国家,我们的蜜罐记录的来自尼日利亚的攻击中有45%是钓鱼攻击。

在我们的蜜罐上一个有趣的事件记录开始于3月27日。通过分析我们的蜜罐所接受的请求来源头,我们发现了来自1762个不同的IP地址的4776个请求,访问我们网页的请求来源设置的是sfr.fr的邮件服务器,一个法国主要的ISP之一。检查Web服务日志,我们发现所有的HTTP请求来源中都包含有来自sfr.fr请求的两个PNG图片文件。在3月24日这两个文件就上传到了我们的蜜罐,当来自SFR的第一波访问达到时,虚拟机已经被清理好几次了,但是我们还是在上传文件的快照中发现了图片的原始版本。奇怪的是,这些图片显示一条类似与SFR客户服务定期沟通的信息。所有请求来源为sfr.fr的用户在访问我们的蜜罐之后都会收到一条包含连接到那两个png文件的钓鱼邮件,而他们的Web客户端只是试图下载和显示这些邮件的内容。

6.9、垃圾邮件和消息洪水攻击

唯一文件比率:7.8%

预计攻击者比率:9.3%

很多用户似乎还在使用垃圾邮件这一技术在互联网上获利。我们发现的一些脚本确实是邮件程序,即用自动化方式使用脚本将垃圾邮件发送量给众多收件人。其他的一些脚本是来自邮件或是短信洪水发送者,从而代替发动Dos攻击。

我们的蜜罐收集到了大概600个这样的脚本。如在2月21日,一个叫做a1.php的脚本通过尼日利亚的IP地址上传到我们蜜罐,这个脚本是一个高度自定义的邮件发送程序,并允许给一个纯文本或是HTML格式列表的收件人发送垃圾邮件,并且该程序具有很多选项。它也能够被配置用来登录远程的SMTP服务器,目的是为了通过身份验证来发送邮件,在达到发送邮件的一个特定的阀值时能断开和重新连接到服务器,还有可能是为了避免被阻止。

6.10、链接养殖场 & 黑帽SEO

唯一文件比率:2.7%

预计攻击者比率:1.0%

链接养殖场是一个相互连接的网站集合,通常是一个有密集链接结构的网页,它的目标是提升网站群在搜索引擎的排名。相比之下,黑帽SEO是指使用非法或不道德的技术,如伪装,提升在搜索引擎的排名,或是处理搜索引擎及其爬虫查看和分类一个网页的方式。如果我们排除在论坛Web应用上自动发帖——一种通过高比率发帖连接到链接养殖场的行为,这种行为在我们的蜜罐上并没有被频繁观察到。

在3月19日,一个在我们的蜜罐上创建了很多网页的有趣攻击出现了。有人安装了完整功能的CMS,生成了数以百计的的静态HTML页面。所有生成的页面都安装在我们电子商务Web应用的子目录images/rf/下,包含俄文文本,以及用来展现的相关图像、CSS和JavaScript文件。这个网页结构是通过博客或是CMS引擎创建的,因为所有的网页都有着稠密的连接结构并指向另一个使用绝对链接(已经定制和包含我们蜜罐站点的域名)。我们认为这是连接到链接养殖场的一部分,或是一些仿制品的市场营销活动,因为我们分析的大多数网页上都有销售手表的广告。

最后,在小规模范围内,我们也看到了一些攻击者创建的带有广告的页面或是在合作者的网站上传页面内插入连接。这样做的目的是要获得超出广告的利润,或是改善他们的伙伴在搜索引擎上的排名。

6.11、代理和流量重定向

唯一文件比率:0.6%

预计攻击者比率:0.6%

Web犯罪分子总是寻找可靠的方式来隐藏他们的踪迹,随着时间的推移,只是通过开放的代理服务、TOR、开放重定向网页来进行恶意活动变的很难。事实上,这些服务通常都有超负荷的(恶意)流量,同时其平均表现也很糟糕,很有可能被有关当局监控着。在这种情况下,通过受攻击主机进行隧道通信就变得难能可贵,因为很容易把一个Web服务变成一个代理,而且通常运行Web服务的主机提供商都有着高带宽保证,从而使这些主机成为很有价值的目标。我们发现有些攻击者在蜜罐上上传代理脚本或是使用流量重定向系统,从而实现流量匿名的重定位或是将用户重定向到恶意来源或相关网站。

一个例子是,在2012年2月22日,一个蜜罐系统被上传了一个504KB的文档。这个文档里包含一个名为VPSProxy的代理工具,可以在http://wonted.ru/programms/vpsproxy/上获得,这是一个通过GUI客户端进行完全控制的PHP代理。就它具有的功能而言,如果被安装到多台服务器上,该工具会很容易被用于对接两个不同的连接。我们相信这样的工具可以帮助犯罪分子隐藏他们在互联网上的痕迹。

6.12、定制化攻击

唯一文件比率:1.9%

预计攻击者比率:2.6%

这种类型的攻击或是利用特定的服务漏洞或是利用其他无相匹配的类型服务的漏洞。例如,这一类攻击包括在服务器上扫描和利用Web服务漏洞的程序,如在4月9日上传到我们服务器一个Web网站的config.php脚本。这个PHP脚本提供了一个发现和攻击9个最知名管理系统的面板:即使被机器发现了,攻击者还能够自动修改它的配置。这个工具也包含其他脚本来利用本地和远程漏洞。

6.13、DOS & 暴力破解工具

唯一文件比率:4.6%

预计攻击者比率:2.9%

这一类型包含拒绝服务程序或是针对特定应用和服务的暴力破解攻击(如暴力破解工具、UDP和TCP洪水脚本)。

这一行为的有趣例子是在2012年4月7日上传到我们蜜罐上的暴力破解Web邮件的脚本。一个来自阿塞拜疆的IP使用Webshell上传了一个名为n.php的文件和一个名为WORD.TXT的1508个字词库。这个n.php文件一旦被执行,它就会使用cURL PHP库连接到box.az邮件接口,同时使用这个词典来暴力破解在程序里使用硬件编码的用户名的密码。我们的蜜罐实际上被登录后在三个不同的域名上传了多次n.php。攻击者试图多次执行脚本(在16分钟内进行了10次),并对其进行编辑(4次),像是在代码中寻找错误。实际上脚本的流量被我们的防火墙进行了简单地阻止。

七、结论

在本文中,我们介绍了基于多种有漏洞的真实Web应用的蜜罐服务实施和配置。通过采集的数据,我们研究了攻击者在拿下目标前、攻击过程中以及攻击之后的行为。

我们研究的结果给人们提供了一个在Web上当前状态下利用漏洞行为的有趣见解。一方面,我们能够证实某个类型攻击的趋势,如东欧国家垃圾评论的活动,同时有很多的骗局和钓鱼Web活动在非洲进行着[12]。药品广告似乎是垃圾邮件和垃圾评论中中最常见的主题,正如最近的研究发现的那样[9]

另一方面,我们也能够观察和研究大量的人工攻击,以及把感染目标从Web服务变成IRC僵尸服务。这说明通常认为已经过时的攻击行为还仍然很流行(特别在年轻的犯罪者中)且占据了站点攻击绝大部分比例。

我们当前的工作正朝着一个完全自动的、实时监控的蜜罐进行,以能够识别、分类每一次攻击,并用可视化方式显示攻击趋势和被攻击的目标。

参考文献

[1] IP Addresses of Search Engine Spiders. http://www.iplists.com/.

[2] Robots IP Address Ranges. http://chceme.info/ips/.

[3] Google Hack Honeypot. http://ghh.sourceforge.net/, 2005.

[4] Dshield web honeypot project. https://sites.Google.com/site/webhoneypotsite/, 2009.

[5] J. Caballero, C. Grier, C. Kreibich, and V. Paxson. Measuringpay-per-install: The commoditization of malware distribution.In Proceedings of the USENIX Security Symposium,2011.

[6] X. Chen, B. Francia, M. Li, B. Mckinnon, and A. Seker.Shared information and program plagiarism detection. InformationTheory, IEEE Transactions on, 50(7):1545–1551,2004.

[7] s. Commtouch. Compromised Websites: An Owner’s Perspective. ttp://stopbadware.org/pdfs/compromised-websites-an-ownersperspective.pdf, february 2012.

[8] M. Cova, C. Kruegel, and G. Vigna. Detection and Analysis of Drive-by-Download Attacks and Malicious JavaScript Code. In Proceedings of the International World Wide Web Conference (WWW), 2010.

[9] Cyberoam Technologies and Commtouch. Internet Threats Trend Report October 2012. http://www.cyberoam.com/downloads/ThreatReports/Q32012InternetThreats.pdf,october 2012.

[10] S. Esser. evalhook. http://www.php-security.org/downloads/evalhook-0.1.tar.gz, may 2010.

[11] M. Hofer and S. Hofer. ftp-deploy. http://bitgarten.ch/projects/ftp-deploy/, 2007.

[12] Imperva Inc. Imperva’s Web Application Attack Report.http://www.imperva.com/docs/HII_Web_

Application_Attack_Report_Ed2.pdf, january 2012.

[13] J. P. John, F. Yu, Y. Xie, A. Krishnamurthy, and M. Abadi.deSEO: Combating Search-Result Poisoning. In Proceedings of the USENIX Security Symposium, 2011.

[14] J. P. John, F. Yu, Y. Xie, A. Krishnamurthy, and M. Abadi.Heat-seeking honeypots: design and experience. In Proceedings of the International World Wide Web Conference (WWW), 2011.

[15] J. Kornblum. Identifying almost identical files using context triggered piecewise hashing. Digital Investigation, 3,Supplement(0):91 – 97, 2006.

[16] C. Leita and M. Dacier. Sgnet: A worldwide deployable framework to support the analysis of malware threat models.In Dependable Computing Conference, 2008. EDCC 2008.Seventh European, may 2008.

[17] T. Moore and R. Clayton. Evil searching: Compromise and recompromise of internet hosts for phishing. In Financial Cryptography, pages 256–272, 2009.

[18] M. M¨uter, F. Freiling, T. Holz, and J. Matthews. A generic toolkit for converting web applications into high-interaction honeypots, 2007.

[19] V. Nicomette, M. Kaˆaniche, E. Alata, and M. Herrb. Set-up and deployment of a high-interaction honeypot: experiment and lessons learned. Journal in Computer Virology, june 2010.

[20] F. Pouget, M. Dacier, and V. H. Pham. V.h.: Leurre.com: on the advantages of deploying a large scale distributed honeypot platform. In In: ECCE 2005, E-Crime and Computer Conference, pages 29–30, 2005.

[21] N. Provos. A virtual honeypot framework. In Proceedings of the USENIX Security Symposium, pages 1–14, 2004.

[22] N. Provos, P. Mavrommatis, M. A. Rajab, and F. Monrose.All Your iFrames Point to Us. In Proceedings of the USENIX Security Symposium, 2008.

(全文完)

版权声明:自由转载-非商用-非衍生-保持署名 | Creative Commons BY-NC-ND 3.0
  1. 本文目前尚无任何评论.