按bot程序的种类分类
(1)Agobot/Phatbot/Forbot/XtremBot。这可能是最出名的僵尸工具。防病毒厂商Spphos 列出了超过500种已知的不同版本的Agobot(Sophos 病毒分析),这个数目也在稳步增长。僵尸工具本身使用跨平台的C++写成。Agobot 最新可获得的版本代码清晰并且有很好的抽象设计,以模块化的方式组合,添加命令或者其他漏洞的扫描器及攻击功能非常简单,并提供像文件和进程隐藏的Rootkit 能力在攻陷主机中隐藏自己。在获取该样本后对它进行逆向工程是比较困难的,因为它包含了监测调试器(Softice 和O11Dbg)和虚拟机(VMware 和Virtual PC)的功能。
(2)SDBot/RBot/UrBot/SpyBot/。这个家族的恶意软件目前是最活跃的bot程序软件,SDBot 由C语言写成。它提供了和Agobot 一样的功能特征,但是命令集没那么大,实现也没那么复杂。它是基于IRC协议的一类bot程序。
(3)GT-Bots。GT-Bots是基于当前比较流行的IRC客户端程序mIRC编写的,GT是(Global Threat)的缩写。这类僵尸工具用脚本和其他二进制文件开启一个mIRC聊天客户端, 但会隐藏原mIRC窗口。通过执行mIRC 脚本连接到指定的服务器频道上,等待恶意命令。这类bot程序由于捆绑了mIRC程序,所以体积会比较大,往往会大于1MB。
按Botnet的控制方式分类
(1)IRC Botnet。是指控制和通信方式为利用IRC协议的Botnet,形成这类Botnet的主要bot程序有spybot、GTbot和SDbot,目前绝大多数Botnet属于这一类别。
(2)AOL Botnet。与IRC Bot类似,AOL为美国在线提供的一种即时通信服务,这类Botnet是依托这种即时通信服务形成的网络而建立的,被感染主机登录到固定的服务器上接收控制命令。AIM-Canbot和Fizzer就采用了AOL Instant Messager实现对Bot的控制。
(3)P2P Botnet。这类Botnet中使用的bot程序本身包含了P2P的客户端,可以连入采用了Gnutella技术(一种开放源码的文件共享技术)的服务器,利用WASTE文件共享协议进行相互通信。由于这种协议分布式地进行连接,就使得每一个僵尸主机可以很方便地找到其他的僵尸主机并进行通信,而当有一些bot被查杀时,并不会影响到Botnet的生存,所以这类的Botnet具有不存在单点失效但实现相对复杂的特点。Agobot和Phatbot采用了P2P的方式。
Botnet的危害
Botnet构成了一个攻击平台,利用这个平台可以有效地发起各种各样的攻击行为,可以导致整个基础信息网络或者重要应用系统瘫痪,也可以导致大量机密或个人隐私泄漏,还可以用来从事网络欺诈等其他违法犯罪活动。下面是已经发现的利用Botnet发动的攻击行为。随着将来出现各种新的攻击类型,Botnet还可能被用来发起新的未知攻击。
(1)拒绝服务攻击。使用Botnet发动DDos攻击是当前最主要的威胁之一,攻击者可以向自己控制的所有bots发送指令,让它们在特定的时间同时开始连续访问特定的网络目标,从而达到DDos的目的。由于Botnet可以形成庞大规模,而且利用其进行DDos攻击可以做到更好地同步,所以在发布控制指令时,能够使得DDos的危害更大,防范更难。
(2)发送垃圾邮件。一些bots会设立sockv4、v5 代理,这样就可以利用Botnet发送大量的垃圾邮件,而且发送者可以很好地隐藏自身的IP信息。
(3)窃取秘密。Botnet的控制者可以从僵尸主机中窃取用户的各种敏感信息和其他秘密,例如个人帐号、机密数据等。同时bot程序能够使用sniffer观测感兴趣的网络数据,从而获得网络流量中的秘密。
(4)滥用资源。攻击者利用Botnet从事各种需要耗费网络资源的活动,从而使用户的网络性能受到影响,甚至带来经济损失。例如:种植广告软件,点击指定的网站;利用僵尸主机的资源存储大型数据和违法数据等,利用僵尸主机搭建假冒的银行网站从事网络钓鱼的非法活动。
可以看出,Botnet无论是对整个网络还是对用户自身,都造成了比较严重的危害,我们要采取有效的方法减少Botnet的危害。
Botnet的研究现状
对于Botnet的研究是最近几年才逐渐开始的,从反病毒公司到学术研究机构都做了相关的研究工作。最先研究和应对Botnet的是反病毒厂商。它们从bot程序的恶意性出发,将其视为一种由后门工具、蠕虫、Spyware 等技术结合的恶意软件而归入了病毒的查杀范围。著名的各大反病毒厂商都将几个重要的bot程序特征码写入到病毒库中。赛门铁克从2004 年开始,在其每半年发布一次的安全趋势分析报告中,以单独的章节给出对Botnet活动的观测结果。卡巴斯基也在恶意软件趋势分析报告中指出,僵尸程序的盛行是2004年病毒领域最重大的变化。
学术界在2003年开始关注Botnet的发展。国际上的一些蜜网项目组和蜜网研究联盟的一些成员使用蜜网分析技术对Botnet的活动进行深入跟踪和分析,如Azusa Pacific大学的Bill McCarty、法国蜜网项目组的Richard Clarke、华盛顿大学Dave Dittrich和德国蜜网项目组。特别是德国蜜网项目组在2004年11月到2005 年1月通过部署Win32蜜罐机发现并对近100个Botnet进行了跟踪,并发布了Botnet跟踪的技术报告。
Botnet的一个主要威胁是作为攻击平台对指定的目标发起DDos(分布式拒绝服务攻击)攻击,所以DDos的研究人员同样也做了对Botnet的研究工作。由国外DDosVax组织的“Detecting Bots in Internet Relay Chat Systems”项目中,分析了基于IRC协议的bot程序的行为特征,在网络流量中择选出对应关系,从而检测出Botnet的存在。该组织的这个研究方法通过在plantlab中搭建一个Botnet的实验环境来进行测试,通过对得到的数据进行统计分析,可以有效验证关于Botnet特征流量的分析结果,但存在着一定的误报率。
国内在2005年时开始对Botnet有初步的研究工作。北京大学计算机科学技术研究所在2005年1月开始实施用蜜网跟踪Botnet的项目,对收集到的恶意软件样本,采用了沙箱、蜜网这两种各有优势的技术对其进行分析,确认其是否为僵尸程序,并对僵尸程序所要连接的Botnet控制信道的信息进行提取,最终获得了60,000 多个僵尸程序样本分析报告,并对其中500多个仍然活跃的Botnet进行跟踪,统计出所属国分布、规模分布等信息。
国家应急响应中心通过863-917网络安全监测平台,在2005年共监测到的节点大于1000个的Botnet规模与数量统计如图4所示。
这些数据和活动情况都说明,我国国内网上的Botnet的威胁比较严重,需要引起网络用户的高度重视。
CCERT恶意代码研究项目组在2005年7月开始对Botnet的研究工作,通过对大量已经掌握的Botnet的实际跟踪与深入分析,对基于IRC协议的Botnet的服务器端的特征进行了分类提取,形成对于Botnet 服务器端的判断规则,从而可以对网络中的IRC Server进行性质辨别。设计并初步实现了Botnet自动识别系统,应用于中国教育和科研计算机网络环境中。
可以看出,从国内到国外,自2004年以来对Botnet的研究越来越多地受到网络安全研究人员的重视,研究工作已经大大加强。但是这些工作还远远不够,在检测和处置Botnet方面还有许多工作要做。
Botnet的研究方法
对于目前比较流行的基于IRC协议的Botnet的研究方法,主要使用蜜网技术、网络流量研究以及IRC Server识别技术。
(1)使用蜜网技术。蜜网技术是从bot程序出发的,可以深入跟踪和分析Botnet的性质和特征。主要的研究过程是,首先通过密罐等手段尽可能多地获得各种流传在网上的bot程序样本;当获得bot程序样本后,采用逆向工程等恶意代码分析手段,获得隐藏在代码中的登录Botnet所需要的属性,如Botnet服务器地址、服务端口、指定的恶意频道名称及登录密码,以及登录所使用到的用户名称,这些信息都为今后有效地跟踪Botnet和深入分析Botnet的特征提供了条件。在具备了这些条件之后,使用伪装的客户端登录到Botnet中去,当确认其确实为Botnet后,可以对该Botnet采取相应的措施。
(2)网络流量研究。网络流量的研究思路是通过分析基于IRC协议的Botnet中僵尸主机的行为特征,将僵尸主机分为两类:长时间发呆型和快速加入型。具体来说就是僵尸主机在Botnet中存在着三个比较明显的行为特征,一是通过蠕虫传播的僵尸程序,大量的被其感染计算机会在很短的时间内加入到同一个IRC Server中;二是僵尸计算机一般会长时间在线;三是僵尸计算机作为一个IRC聊天的用户,在聊天频道内长时间不发言,保持空闲。将第一种行为特征归纳为快速加入型,将第二、三种行为特征归纳为长期发呆型。
研究对应这两类僵尸计算机行为的网络流量变化,使用离线和在线的两种分析方法,就可以实现对Botnet的判断。
(3)IRC Server识别技术的研究。通过登录大量实际的基于IRC协议的Botnet的服务器端,可以看到,由于攻击者为了隐藏自身而在服务器端刻意隐藏了IRC服务器的部分属性。同时,通过对bot源代码的分析看到,当被感染主机加入到控制服务器时,在服务器端能够表现出许多具有规律性的特征。通过对这些特征的归纳总结,就形成了可以用来判断基于IRC协议的Botnet的服务器端的规则,这样就可以直接确定出Botnet的位置及其规模、分布等性质,为下一步采取应对措施提供有力的定位支持。
以上三种研究方法都是针对基于IRC协议的Botnet。对于P2P结构的Botnet的研究较少,原因是由于其实现比较复杂,在网络中并不占有太大比例,同时也因为其在控制方式上的分布性使得对它的研究比较困难。但随着Botnet的发展,对于P2P结构的Botnet的研究也将进一步深入。