1、 僵尸网络检测研究 龙人杰重庆邮电大学移动互联网技术研究所研究生赵国峰重庆邮电大学移动互联网技术研究所教授李亚兵重庆邮电大学移动互联网技术研究所研究生摘要:僵尸网络是一种严重威胁网络安全的攻击平台。文章先给出僵尸网络的定义,然后分析其工作机制,命令与控制机制。针对当前主流的僵尸网络检测方法,按照不同的行为特征进行分类,根据僵尸网络的静态特征、动态特征以及混合特征,对当前的主要检测方法进行了归纳、分析和总结。并在文章最后提出,建立一个完备的僵尸网络检测模型需要将僵尸网络的动态特征检测模型与静态特征检测模型相互结合,而这才是僵尸网络检测模型未来发展的重点。关键字:网络安全,僵尸网络,僵尸网络检测僵
2、尸网络( botnet)是由传统恶意代码形态,如计算机病毒、木马以及后门工具等发展而来的新型攻击方式,它为攻击者提供了一个全新的攻击平台。攻击者通过一对多的命令与控制信息,控制其所攻占的计算机并组成僵尸网络,以发动各式各样的网络攻击行为。由于僵尸网络具有攻击节点数量大、群组协作攻击,以及控制者隐藏度较高的特点,受到了众多黑客的青睐。僵尸网络已经是当今威胁互联网安全的一个严重问题。利用大规模的僵尸网络,黑客们能够轻松地对网络中的受害站点发动DDoS攻击、海量垃圾邮件、信息窃取等形式的攻击以牟取利益。根据赛门铁克公司的监测报告,我国僵尸计算机的数量已占世界僵尸计算机总数的20%以上,其数量已在美国
3、之上。并且在国内僵尸网络也早已成为黑客产业中一个不可或缺的项目,在一些黑客所使用的交流网络中就有人公然叫卖僵尸网络。由于僵尸网络日趋活跃,对网络安全的威胁日趋严重,现已成为国内外网络信息安全领域研究者共同关注的研究热点,越来越多的学者、科研机构和信息安全公司投入到僵尸网络的检测与防御研究工作中。1僵尸网络及其定义僵尸网络发展了多年,国内外学者在僵尸网络发展的本课题获得国家自然科学基金( No.60873097)与重庆市自然科学重点基金(NoCSTC2009BA2089)资助。同时也在对其进行着相应的研究,但是对僵尸网络的定义则各自不同。McCarty在参考文献中将其定义为:僵尸程序是攻击者为了
4、链接IRC信道并且能被远程控制的客户端程序,而僵尸网络是由僵尸程序通过IRC协议所组成的网络;Bacher等人在参考文献lsI中提出一个较有通用性的定义:僵尸网络是能够被攻击者远程控制的、被攻陷计算机所组成的网络。诸葛建伟等人在参考文献提出了一个相对于上述描述更加完备的定义:僵尸网络是攻击者出于恶意目的,传播僵尸程序来控制大量的计算机,并通过一对多的命令与控制信道所组成的网络。考虑到该定义的完备性,本文也将借用此定义。2僵尸网络的工作机制在明白了僵尸网络的定义之后,那么僵尸网络到底是如何工作呢?有无什么规律可循呢?Barford等人在参考文献I7|中将僵尸网络的工作机制分为七个方面:僵尸网络的
5、控制机制、主机控制机制、传播机制、新肉鸡发现机制、散播机制、混淆和欺骗机制。Wei Lu等人则在参考文献fsl中给出了IRC僵尸网络的工作机制。本文在综合前人的基础上,给出了一个更通用的IRC僵尸网络工作机制的描述,分为三个阶段,如图l所示。首先,攻击者通过在网上散播蠕虫、木马等方式来攻陷多台普通的计算机(即肉鸡),并且建立一个能够被其完全控制的命令发布节点,即图l所示的IRC服务器中对应的由黑客所建立的特定1RC频道,以便对感染来自www.lW5u.coM了僵尸程序(bot)的计算机由该频道发布命令与控制信令(C2信息)。然后,被感染的计算机会受僵尸程序所控制而成为僵尸主机,并自动加入该IR
6、C频道。由于该频道与正常IRC聊天频道不同,主要目的是用来传输C2信息,所以将其称之为命令与控制信道。当僵尸主机加入该频道之后,就开始监听控制者所发布的各种指令,并且实时的回应控制者的信息,以及发送自身的信息以便控制者了解。最后,当控制者发布要求攻击的指令后,僵尸主机接收到控制者发出的命令,立即就会对被指定的目标发动DDoS攻击,信息窃取等攻击行为。3僵尸网络命令与控制机制对于所有的僵尸网络而言,都具有命令与控制信道即C2信道(command and control channel)。通过该信道,控制者能够对被他所控制的计算机发送C2信息,即对僵尸主机进行实时控制,而僵尸主机的各种信息(所在地
7、、在线与否、主机型号和所用操作系统版本等)都将通过该C2信道传送给控制者。Strayer在参考文献提出通过寻找网络流量中的命令与控制信息来查找僵尸网络,该方法的主要思想是:由于C2信息不同于一般的IRC聊天信息,所以可以根据某种特征来识别它们,比如信息长度,所携带信息量的大小,各种标志位,以及多条信息之间的相似度以及信息间的相关性。对于IRC僵尸网络而言,由于其严格遵循IRC协议,由参考文献110-12可知,使用该协议进行通信的计算机都将建立一个频道,并且在登入该频道进行通信时,会使用昵称以区别不同用户。如图2所示,botmaster为僵尸网络的控制者,C2 server为被控制的IRC僵尸网
8、络服务器,用于转发僵尸网络的C2信息,Z表示僵尸主机。对于IRC僵尸网络,botmascer首先建立一个IRC通信频道以传输C2信息。每一个C2信息的转发节点C2 server,都将拷贝botmaster发送的C2信息以便将其发送至每个僵尸主机Z中。而对于僵尸主机而言,由于僵尸主机安装有僵尸程序(bot),它们在加入由bot指定的C2信道之后bot会根据其固有的算法为僵尸主机取一个昵称,即被赋予各自不同且又相似的昵称,因此这些昵称具有某种相似性,如图2中的Zl、22和23等。最后,当botmaster发送C2信息时,C2服务器会根据C2信道中的呢称列表,将C2信息依次转发送给各个僵尸主机,每个
9、僵尸主机都会收到相同的信息,只是每一个C2数据包到达目的僵尸主机的时间会有不同。当然上述情况是因为这些僵尸主机都受控于同一个控制者中,并且所收到C2信息指令是同一个版本。4僵尸网络检测技术及其分类国内外学者在对僵尸网络的研究过程中,提出了各自的僵尸网络检测方法,虽然他们各自的侧重点不同,但是大体上都是通过如下一些僵尸网络所表现的特征进行检测的:僵尸网络的通信流量特征,感染各个僵尸的bot代码,僵尸网络中传播的命令与控制信息,各个僵尸的昵称命名行为,以及僵尸网络的攻击行为等。下面我们将对这些方法进行一个分类,归纳总结各种检测方法并分析其优缺点。参考文献纳了一些僵尸网络的主要行为特征,如长时间发呆
10、(平均回话时长3.5 h)、昵称的规律性、各僵尸主机在C2信道中通信行为较为一致、各僵尸主机发送数据报大小的均值小于100 Bytes、频繁的扫描行为以及大量的陌生DNS查询等行为特征。张冰等人在参考文献l中提出采集控制端的开设频道数、可列出频道数、所有用户数、不可见用户数以及和链接的服务器数作为僵尸网络的内部属性,以这些属性组成信息性向量组,以此来判断僵尸网络,参考文献也提出分析僵尸网络以及其所属僵尸主机的行为习惯来检测僵尸网络,但是在文献li41中并没有具体说明如何度量这些特征。为了更好地量化和监测僵尸网络所表现出的一些行为特征,我们将这些特征分为动态特征和静态特征两大类。所谓动态特征,指
11、在某一时间段内会随着时间以及网络环境而变化的特征,如C2数据报的有效载荷、频道内在线僵尸主机数和各僵尸主机的通信频率等;而静态特征则指在某一时间段内变化较小或者几乎没有变化的特征,如C2频道名、僵尸主机昵称、所使用的通信协议和端口号等。这些动态和静态特征是一个僵尸网络呈现出的、规律性的、能够被统计的、量化的行为特征。在监测僵尸网络行为的过程中,往往会根据动态特征或者静态特征中的一种行为特征进行监控以及量化、分析和判断。然而有些检测方法则需要结合动态特征与静态特征,即在其检测过程中,需要监测并且量化的既有动态特征又有静态特征,我们将其称为混合特征检测。4.1僵尸网络静态特征检测技术采用静态特征检
12、测僵尸网络,能够准确的找到符合该行为特征的僵尸计算机群,由于具有先验性判别条件,所以其检测速度、检测效率以及其准确度都比较高。使用静态特征来检测僵尸网络的方法主要有蜜网和行为特征匹配方式。采用静态特征检测僵尸网络需要充分解析IRC僵尸网络的工作机制以及其命令与控制机制。为了解僵尸网络的工作机制,国内外学者都有着各自不同的方法,其中的佼佼者便是蜜网技术,而最早开始使用蜜网技术分析追踪僵尸网络的有德国的蜜网项目组BacherII61。而在我国,这方面技术比较领先的是中国蜜网项目组(详细情况可以登录中国蜜网项目组的门户网站查询,网址蜜网技术的主要工作机制是将未打补丁且未安装防护软件的计算机放入网络中
13、,使得攻击者利用各种各样的木马,蠕虫病毒等将该计算机感染并控制,这样该计算机即获得了当前网络中所存在的bot。由于bot是僵尸网络的客户端程序,其主要作用是加人命令与控制信道,接受黑客的C2信息。因此在获得了该bot后,就能通过逆向工程以获得僵尸网络的命令与控制信道信息、登录该信道的密钥、C2信息的具体形式、僵尸响应C2信息的方式以及僵尸的昵称生成算法等。由于这些信息都已在bot中编译设置好,所以在检测的过程中,这些特征不会变化,即呈现静态特征形式。基于僵尸网络特征进行模式匹配来检测僵尸网络也是一种主要方法。王威等人17根据各个僵尸计算机昵称的相似性来进行僵尸检测和判别。其基本思想是:在同一僵
14、尸网络下的主机,尤其是加入同一频道的僵尸主机上bot为同一版本,因此其命名昵称是同一算法生成的,因此昵称便具有高相似性的特点。利用静态特征检测僵尸网络是非常行之有效的方法,并且能够获得需要监控的僵尸网络信息,如C2频道,登陆C2频道的密钥以及具体的命令与控制方式。这些行为特征是僵尸网络所特有的,是正常网络用户所不具有的特征,因此当使用这些行为特征来检测僵尸网络的时候,准确率较高。但是利用静态特征对僵尸网络进行检测也有不足之处,例如使用蜜网技术所获得的bot只是网络中所流传的大量bot版本之一,而且极有可能分析出该bot的命令与控制机制之后,控制者已经改变了行为(这些行为主要有:控制者的命令形式
15、,bot的命令相应形式,bot的命名模式等等);如参考文献l18l中所阐述的,僵尸网络的控制者会根据其需要而改变其所控制的僵尸网络的行为习惯。此外还可能发生误判,比如正常网络用户的行为,也有可能与僵尸网络的行为相似,如僵尸的呢称,有可能正常用户也正好使用了与僵尸程序相似的呢称命名方法。因而静态特征检测技术会产生较高的误报率,所以在检测技术中做到实时监控僵尸网络以及整个网络状况是非常必要的,利用动态特征检测僵尸网络能够在某些方面很好地解决这些问题。4.2僵尸网络动态特征检测技术使用动态特征检测僵尸网络,需要实时监控僵尸网络的行为,而在检测过程中,所监测的参数会随着网络环境及时间而变化,所以这给我
16、们技术工作者提高了难度。那么现在市面上采用动态特征检测僵尸网络的主要有:流量特征匹配、异常行为检测、通信特征检测和IP地址聚集特性检测等方法。Strayer等人采用流量特征匹配和机器自学习的方法来分析检测僵尸网络19-20。该方法工作机制是:捕获网络数据流,由于僵尸网络发出的命令与控制数据流相对正常流量非常少,因此设置过滤器来过滤掉正常数据流,留下可疑的数据流,并对其进行相关性分析、分类处理以及特征匹配。其中分类处理时记录了lP地址以及时间戳等信息,利用了朴素贝叶斯算法,归类出具有高相关性的数据流,并对这些高相关的数据流进行特征匹配,抽取里面的动态特征与静态特征。静态特征主要是报头中的信息,而
17、动态特征主要是报文有效载荷里变化的信息。对于僵尸网络的命令与控制信息而言,承载该信息的数据报有效载荷是实时变化的,但是对于收到该命令的僵尸计算机,由于控制者发送的所有C2命令都具有相关性,因而能够据此特征进行匹配检测。在参考文献21-22中,Binkley等人基于异常行为检测的方法来检测僵尸网络。由于僵尸网络不同于正常网络,其网络行为以及IRC通信行为皆异于正常网络。在上述文献中,他们提出了一些明显的异常行为特征:每个频道的主机lP数、IRC服务器所发送的IRC消息、频道内的突发式链接主机数增多、每个频道内的PINC/PONG命令计数。根据这些异常行为,提出了TCP扫描权重(TCP workw
18、eight)的异常检测算法来检测僵尸网络的C2信息。该算法的主要思想是:大量僵尸主机链接于同- IRC频道,并接受C2信息,进行大规模的TCP SYN扫描。其中被记录的参量有:SYN和SYN-ACK包数、FIN包数、RESET包数以及全部TCP包数。李润恒在参考文献23中提出利用僵尸网络的通信行为,以及在bot联网时,由于动态lP地址的映射而形成的映射空间聚集性这两个动态特征来检测僵尸网络的算法。由于随着时间以及网络环境的变化,僵尸主机的通信行为,比如一天中在线僵尸主机数会随时间变化,每一个僵尸主机发送的信息量以及其通信的频率也是变化的,每个僵尸计算机的通信来自wW行为可以用同一条相似函数来描
19、述;并且由于国内大部分计算机使用ADSL上网,所以其lP地址是动态的,僵尸主机在登录时都会有一个固定的IP地址映射集合,因此会产生动态IP地址聚集的现象。加上此特征,可以更加准确地检测僵尸网络。利用动态特征检测僵尸网络需要对采集的网络数据进行实时分析,鉴别其与正常用户所产生的网络行为之间的差异。基于动态特征能够检测僵尸网络的新行为模式,但是同样也会误判一些正常的用户行为。该类方法需要长时间的网络行为监控,同时也要有效地减少数据量的处理,以提高检测效率。由于通常需要处理的数据量非常大,并且对所采集数据的量化计算及分析过程较为复杂,很多僵尸网络检测方法会采用混合特征检测的方式,即分析的行为特征中既
20、有动态特征又有静态特征,以便解决上述问题。4.3僵尸网络混合特征检测技术采用混合特征检测僵尸网络,要求既要采集到僵尸网络中不易变化的静态特征,又要对动态特征进行实时监控。基于终端行为特征的IRC僵尸网络检测方法中,其主要检测对象是各个僵尸的呢称,昵称是僵尸网络中不易变化的行为特征,由于正常用户会使用与僵尸相似的昵称而可能造成错误的判断,为此在该方法中还设置了一个僵尸网络IRC命令序列的相似性检测,而IRC命令序列正是一种动态行为特征,正常用户几乎不会有此行为。在参考文献24-25中,Wei Lu等人分析僵尸网络中C2信息的动态特征,但是也同样加入了静态特征的检测。其工作机制如下:首先过滤掉与僵
21、尸网络无关的数据流;然后分析相关协议端口信息这些静态特征,找到可能与僵尸网络有关的数据集,对其数据报内有效载荷的多种特征建立N维特征向量组,而这些特征向量组多属于动态特征;最后根据交互式特征相关性,分析该数据是否为同一僵尸网络C2频道上转发的,以检测僵尸网络。而在参考文献26中,Satoshi Kondo等人结合了蜜网与流量特征匹配这两种检测技术的优势,通过捕获网络中流行的僵尸程序,从分析该程序的代码人手,模拟网络环境,对僵尸程序所发送的C2信息进行捕获并分析,进行行为匹配以找到C2频道。由于捕获的僵尸网络特征矢量较少,采用SVM算法进行行为特征矢量的相似性分析。5结语僵尸网络引发的网络安全问
22、题越来越严重,检测僵尸网络的方法也层出不穷。本文通过介绍僵尸网络的定义,总结其工作机制以及内部命令与控制机制,提出将僵尸网络的行为特征分为动态特征和静态特征两类,然后对当前的僵尸网络检测方法进行了归类分析。对于使用静态特征检测的方法而言,缺陷是误报率高,即将正常用户误报为僵尸主机。而对于动态特征检测僵尸网络,其缺乏先验性以及检测基准点,存在监控时间长,处理数据量大,以及量化计算及分析复杂等缺点,因此有必要将这两种类型的检测方法有机结合起来。结合动态特征与静态特征的混合式僵尸网络检测,能够减少数据处理量,降低处理复杂度,提高检测的准确率。然而采用混合特征的检测方式,要求提供的检测模型更加完备,对僵尸网络的具体工作及行为模式理解更加透彻。 -全文完-