什么是僵尸网络?
僵尸网络
僵尸网络(Botnet)是指通过一种或多种通信手段,用僵尸程序感染大量主机,在控制者和被感染主机之间形成的一对多的受控网络。
僵尸网络的概念有几个关键词。“bot程序”是robot的简称,指实现恶意控制功能的程序代码;“僵尸电脑”是植入了机器人的电脑;“控制服务器”是指用于控制和通信的中央服务器。在基于IRC(互联网中继聊天)协议控制的僵尸网络中,它是指提供IRC聊天服务的服务器。
僵尸网络
首先,它是一个可控的网络。这个网络不是指物理意义上的具有拓扑结构的网络,而是具有一定的分布。随着bot程序的不断传播,新地点的僵尸电脑不断加入这个网络。
其次,这个网络是通过一些恶意手段形成的,比如主动漏洞攻击、邮件病毒等传播病毒和蠕虫的手段,可以用来传播僵尸网络。从这个意义上说,恶意程序bot也是一种病毒或蠕虫。
最后一点,也是僵尸网络最重要的特点,就是可以一对多的进行同样的恶意行为,比如可以同时对一个目标网站进行分布式拒绝服务(DDos)攻击,发送大量垃圾邮件等。正是这种一对多的控制关系,使得攻击者能够以极低的成本高效地控制大量资源为其服务,这也是近年来僵尸网络攻击模式受到黑客青睐的根本原因。僵尸网络在实施恶意行为时充当攻击平台,这使得僵尸网络不同于简单的病毒和蠕虫,也不同于一般的特洛伊木马。
僵尸网络是互联网上黑客集中控制的一组计算机。它经常被黑客用来发起大规模的网络攻击,如分布式拒绝服务攻击(DDoS)和海量垃圾邮件。同时,这些被黑客控制的电脑所保存的信息,如银行账号密码、社保号码等,也可以被黑客随意“访问”。因此,僵尸网络对于网络的安全运行和保护用户数据安全是一个非常具有威胁性的隐患。因此,僵尸网络的威胁已经成为国际关注的问题。然而,发现僵尸网络是非常困难的,因为黑客通常会远程、隐蔽地控制分散在网络上的“僵尸主机”,而这些主机的用户往往并不知情。因此,僵尸网络是互联网上最受黑客欢迎的犯罪工具。
对于网民来说,非常容易感染“僵尸病毒”。在网上摆姿势的美女和各种有趣的游戏正吸引着网友们点击鼠标。但其实点了之后什么都没发生。原来一切都只是骗局,意在引诱网友下载有问题的软件。这种有毒软件一旦进入网民的电脑,远程主机就可以发号施令,控制电脑。
专家表示,平均每周新增数十万台僵尸电脑,它们在远程主机的指挥下,被允许进行各种非法活动。很多时候,僵尸电脑根本不知道自己被选中了,任由别人摆布。
僵尸网络的出现也是因为家里高速上网越来越普及。高速上网可以处理(或创造)更多的流量,但高速上网家庭习惯长时间开着电脑。只有在电脑开机的情况下,远程主机才能对僵尸电脑发号施令。
网络专家表示:“虽然重要硬件设施非常重视防病毒防黑客,但网络真正的安全漏洞来自家庭用户。这些个体户缺乏自我保护的知识,使得网络布满地雷,对其他用户造成威胁。”
僵尸网络的发展过程
僵尸网络是随着自动智能程序的应用而逐渐发展起来的。早期的IRC聊天网,有些服务是重复的,比如防止频道被滥用,管理权限,记录频道事件等一系列功能都可以由管理者编写的智能程序来完成。于是在1993年,IRC聊天网出现了一个bot工具——egg drop,这是第一个Bot程序,可以帮助用户方便地使用IRC聊天网。这个bot的功能是良性的,是以服务为目的的。但是这种设计思路被黑客利用了,他们编写了恶意的Bot工具,开始控制大量的受害者,利用他们的资源来达到恶意的目的。
90年代末,随着分布式拒绝服务攻击概念的成熟,出现了大量的分布式拒绝服务攻击工具,如TFN、TFN2K、Trinoo等。攻击者利用这些工具控制大量被感染的主机,发起分布式拒绝服务攻击。从某种意义上说,这些被控制的主机已经具备了僵尸网络的雏形。
1999年,在第八届DEFCON年会上发布的SubSeven 2.1开始使用IRC协议构建攻击者对僵尸主机的控制通道,成为第一个真正的bot程序。随后,大量基于IRC协议的bot程序出现,如GTBot、Sdbot等,使得基于IRC协议的僵尸网络成为主流。
2003年以后,随着蠕虫技术的不断成熟,bot的传播开始使用蠕虫的主动传播技术,从而快速构建大规模的僵尸网络。比较著名的是2004年爆发的Agobot/Gaobot和rBot/Spybot。同年出现的Phatbot,在Agobot的基础上开始使用P2P结构自主搭建控制通道。
从良性bot的出现到恶意bot的实现,从被动传播到利用蠕虫技术的主动传播,从使用简单的IRC协议到构建复杂多变的P2P结构的控制模式,僵尸网络逐渐发展成为规模庞大、功能多样、难以检测的恶意网络,给当前的网络安全带来了威胁。
僵尸网络的工作过程
僵尸网络的工作过程包括传播、加入和控制三个阶段。
僵尸网络首先需要的是具有一定规模的受控计算机,而这种规模是随着使用一种或几种通信手段的僵尸程序的传播而逐渐形成的。在这个沟通过程中,有以下几种方式:
(1)主动攻击漏洞。其原理是通过攻击系统的漏洞来获取访问权,在Shellcode中向bot程序注入代码,从而将被攻击的系统感染成僵尸主机。最基本的感染方式属于这种,就是攻击者手动使用一系列黑客工具和脚本进行攻击,获得权限后下载bot程序执行。攻击者还会将bot与蠕虫技术结合起来,让bot程序自动传播。著名的Bot样本AgoBot,实现了bot程序的自动传播。
(2)邮件病毒。僵尸程序还会通过发送大量邮件病毒进行自我传播,通常表现为在邮件附件中携带僵尸程序并在邮件内容中包含下载和执行僵尸程序的链接,通过一系列社会工程技能诱导收件人执行附件或点击链接,或者利用邮件客户端的漏洞自动执行,从而使收件人的主机被感染为僵尸主机。
(3)即时通讯软件。利用即时通讯软件向好友列表发送链接执行僵尸程序,并通过社会工程技能诱骗其点击,从而进行感染,如MSN性感鸡(蠕虫。MSNLoveme)于2005年初爆发。
(4)恶意网站脚本。攻击者将恶意脚本绑定到提供web服务的网站中的HTML页面,当访问者访问这些网站时,他们会执行恶意脚本,从而将bot程序下载到主机并自动执行。
⑤特洛伊马。伪装成有用的软件,在网站、FTP服务器和P2P网络中提供,诱骗用户下载并执行。
从上面的传播手段可以看出,在僵尸网络的形成过程中,传播方式与功能复杂的蠕虫、病毒、间谍软件非常相似。
在加入阶段,每一个被感染的主机都会随着隐藏在自身的BOT程序的爆发而加入僵尸网络,加入的方式根据控制方式和通信协议的不同而不同。在基于IRC协议的僵尸网络中,感染了僵尸程序的主机会登录到指定的服务器和通道,登录成功后在通道中等待控制器的恶意指令。图2显示了不断向实际僵尸网络添加新僵尸程序的行为。
在控制阶段,攻击者通过中心服务器发送预定义的控制指令,使被感染的主机执行恶意行为,如发起DDos攻击、窃取主机敏感信息、更新升级恶意程序等。图3显示了在控制阶段观察到的向内部网传播恶意程序的僵尸网络行为。
僵尸网络的分类
僵尸网络可以根据不同的分类标准进行多种分类。
根据bot程序的类型
(1)ago bot/phat bot/for bot/XtremBot .这大概是最著名的僵尸工具了。反病毒厂商Spphos列出了500多个已知版本的Agobot(Sophos病毒分析),而且这个数字还在稳步增长。机器人本身是用跨平台C++编写的。最新的可用版本Agobot代码清晰,抽象设计良好。它以模块化的方式组合,添加命令或其他漏洞的扫描器和攻击功能非常简单。它还提供Rootkit功能,如文件和进程隐藏,以隐藏自己在受损的主机。获取样本后很难进行逆向工程,因为其中包含了监控调试器(Softice和O11Dbg)和虚拟机(VMware和Virtual PC)的功能。
(2)SDBot/RBot/UrBot/SpyBot/.这个家族的恶意软件是目前最活跃的bot程序软件,SDBot是用C语言编写的。它提供了与Agobot相同的功能特性,但命令集没有那么大,实现也没有那么复杂。这是一个基于IRC协议的机器人程序。
(3)GT机器人.GT-Bots基于流行的IRC客户端程序mIRC,GT是(全球威胁)的缩写。这种机器人使用脚本和其他二进制文件来打开mIRC聊天客户端,但隐藏最初的mIRC窗口。通过执行mIRC脚本连接到指定的服务器通道,并等待恶意命令。因为这种bot程序是和mIRC程序捆绑在一起的,所以它的体积会比较大,往往超过1MB。
根据僵尸网络的控制方式。
(1)IRC僵尸网络.意味着控制和通信模式是使用IRC协议的僵尸网络。构成这类僵尸网络的主要bot程序有spybot、GTbot和SDbot。目前,大多数僵尸网络都属于这一类。
(2)美国在线僵尸网络.类似于IRC Bot,AOL为AOL提供即时消息服务。这种僵尸网络建立在这种即时通讯服务形成的网络上,被感染的主机登录到固定的服务器上接收控制命令。AIM-Canbot和Fizzer采用AOL即时消息来控制机器人。
(3)P2P僵尸网络。这种僵尸网络本身使用的Bot程序包括P2P客户端,这些客户端可以使用Gnutella技术(一种开源文件共享技术)连接到服务器,并使用垃圾文件共享协议相互通信。由于这种协议的分布式连接,每个僵尸主机可以很容易地找到其他僵尸主机并与之通信。当一些僵尸程序被查杀后,并不会影响僵尸网络的生存,所以这类僵尸网络具有无单点故障但实现相对复杂的特点。Agobot和Phatbot采用P2P模式。
僵尸网络的危害
僵尸网络构成了一个攻击平台,可以有效地发动各种攻击,使整个基础信息网络或重要应用系统瘫痪,泄露大量机密或个人隐私,还可以用来从事网络诈骗等其他违法犯罪活动。以下是使用僵尸网络发现的攻击。随着未来各种新的攻击类型的出现,僵尸网络也可能被用来发动新的未知攻击。
(1)拒绝服务攻击。利用僵尸网络发动DDos攻击是目前最重要的威胁之一。攻击者可以向其控制的所有僵尸程序发送指令,使其在特定时间开始持续访问特定的网络目标,从而达到DDos的目的。由于僵尸网络可以形成巨大的规模,利用它可以更好地同步DDos攻击,因此在发布控制指令时可以使DDos的危害更大,更难防范。
(2)发送垃圾邮件。有些僵尸工具会设置sockv4和v5代理,这样就可以利用僵尸网络发送大量垃圾邮件,发送者可以很好的隐藏自己的IP信息。
(3)窃取机密。僵尸网络控制者可以从僵尸主机中窃取用户的各种敏感信息和其他秘密,如个人账户和机密数据。同时,bot程序可以使用嗅探器观察感兴趣的网络数据,从而获取网络流量中的秘密。
(4)滥用资源。攻击者利用僵尸网络从事各种需要消耗网络资源的活动,从而影响用户的网络性能,甚至带来经济损失。比如:植入广告软件,点击指定网站;利用僵尸主机的资源存储大规模数据和非法数据,利用僵尸主机搭建虚假银行网站从事网络钓鱼非法活动。
由此可见,僵尸网络对整个网络和用户自身都造成了严重的危害,我们应该采取有效的措施来减少僵尸网络的危害。
僵尸网络的研究现状
僵尸网络的研究是近几年才逐渐开始的,从反病毒公司到学术研究机构都做了相关的研究工作。反病毒厂商最先研究和应对僵尸网络。他们从bot程序的恶意出发,将其视为一种融合了后门工具、蠕虫、间谍软件等技术,属于病毒查杀范围的恶意软件。著名的反病毒厂商已经将几个重要的bot程序特征码写入了病毒库。自2004年以来,赛门铁克在其半年度安全趋势分析报告中的单独一章中给出了僵尸网络活动的观察结果。卡巴斯基还在恶意软件趋势分析报告中指出,僵尸程序的盛行是2004年病毒领域最显著的变化。
学术界从2003年开始关注僵尸网络的发展。一些国际蜜网项目组和蜜网研究联盟的一些成员利用蜜网分析技术对僵尸网络活动进行深度跟踪和分析,如Azusa太平洋大学的Bill McCarty、法国蜜网项目组的Richard Clarke、华盛顿大学的Dave Dittrich和德国蜜网项目组。特别是德国蜜网项目组通过部署Win32蜜罐机,从2004年的11到2005年的1,发现并跟踪了近100个僵尸网络,并发布了僵尸网络跟踪技术报告。
僵尸网络的主要威胁之一是以指定目标为攻击平台发起DDos(分布式拒绝服务攻击)攻击,因此DDos研究人员也对僵尸网络做了研究工作。在国外DDosVax组织的“检测互联网中继聊天系统中的僵尸程序”项目中,分析了基于IRC协议的僵尸程序的行为特征,在网络流量中选择对应关系,从而检测出僵尸网络的存在。该组织的这种研究方法通过在plantlab中构建僵尸网络的实验环境进行了测试。通过对获得的数据进行统计分析,可以有效验证僵尸网络特征流量的分析结果,但存在一定的误报率。
2005年,国内就有了僵尸网络的初步研究工作。北京大学计算机科学技术研究所于2005年6月5438+10月开始实施用蜜网追踪僵尸网络的项目。对收集到的恶意软件样本进行沙箱和蜜网分析,确认是否为僵尸网络,提取僵尸网络连接的僵尸网络控制通道信息。最终获得了6万多份僵尸网络样本分析报告,其中500多份仍处于活跃状态。
国家应急中心通过863-917网络安全监测平台,对2005年超过1000个节点的僵尸网络进行了规模和数量统计,如图4所示。
这些数据和活动表明,僵尸网络在中国国内网络中的威胁更加严重,需要引起网络用户的重视。
CCERT恶意代码研究项目组于2005年7月开始僵尸网络的研究工作。通过对已掌握的大量僵尸网络的实际跟踪和深入分析,对基于IRC协议的僵尸网络服务器的特征进行分类提取,形成针对僵尸网络服务器的判断规则,从而区分网络中IRC服务器的性质。设计并初步实现了僵尸网络自动识别系统,应用于我国教育和科研的计算机网络环境。
可以看出,从国内到国外,对僵尸网络的研究从2004年开始越来越受到网络安全研究者的重视,研究工作得到了极大的加强。但是这些工作还远远不够,僵尸网络的检测和处置还有很多工作要做。
僵尸网络的研究方法
对于目前流行的基于IRC协议的僵尸网络的研究方法,主要采用了蜜网技术、网络流量研究和IRC服务器识别技术。
(1)使用蜜网技术。蜜网技术是基于僵尸程序的,可以深度跟踪和分析僵尸网络的属性和特征。主要研究过程如下:首先,通过密罐的方式,尽可能多地获取网上流传的各种bot程序样本;获取僵尸程序样本后,利用逆向工程等恶意代码分析手段,获取隐藏在登录僵尸网络代码中的属性,如僵尸网络服务器地址、服务端口、指定恶意通道名称和登录密码、登录使用的用户名等,为以后有效跟踪僵尸网络、深入分析僵尸网络特征提供了条件。满足这些条件后,使用伪装的客户端登录僵尸网络。当确认确实是僵尸网络时,可以针对这个僵尸网络采取相应的措施。
(2)网络流量的研究。网络流量的研究思路是基于IRC协议分析僵尸主机在僵尸网络中的行为特征,分为长期发呆型和快速加入型两种。具体来说,僵尸主机在僵尸网络中有三个明显的行为特征。第一,由于蠕虫传播的僵尸程序,短时间内会有大量被感染的电脑加入同一个IRC服务器。第二,僵尸电脑一般都是长时间在线;第三,僵尸电脑作为IRC聊天的用户,在聊天频道长时间不说话,保持闲置状态。第一种行为特征概括为快加入型,第二、三种行为特征概括为长期发呆型。
通过研究这两类僵尸程序的行为所对应的网络流量的变化,可以利用离线和在线的分析方法来判断僵尸网络。
(3)IRC服务器认证技术的研究。通过登录大量基于IRC协议的实际僵尸网络服务器,我们可以看到攻击者为了隐藏自己,在服务器端故意隐藏了IRC服务器的一些属性。同时,通过对bot源代码的分析,我们可以看到,当被感染的主机加入控制服务器后,可以在服务器端表现出许多规律性的特征。通过总结这些特征,形成可用于判断基于IRC协议的僵尸网络服务器端的规则,从而直接确定僵尸网络的位置、规模、分布等属性,为下一步采取对策提供有力的定位支持。
以上三种研究方法都是针对基于IRC协议的僵尸网络。对于P2P结构的僵尸网络的研究很少,因为其实现复杂且在网络中不占很大比重,又因为其分布在控制模式中,所以研究起来比较困难。但是,随着僵尸网络的发展,对P2P结构僵尸网络的研究将会进一步深入。