综合特征行为的P2P僵尸网络的检测算法
2012-04-13樊郁徽徐宁
樊郁徽,徐宁
(淮南师范学院,安徽 淮南 232038)
综合特征行为的P2P僵尸网络的检测算法
樊郁徽,徐宁
(淮南师范学院,安徽 淮南 232038)
通过对基于P2P协议的僵尸主机的运行机制的研究,将其生存周期划分为三个特征阶段,综合每个阶段P2P僵尸主机所表现出的不同特征行为,提出综合特征行为的P2P僵尸网络的检测算法。通过对捕获的网络出口流量采取离线检测与在线检测相结合的方法,逐层分步对P2P僵尸主机进行筛检并定位,能够有效降低误报率,并将处于攻击阶段的P2P僵尸主机进行及时隔离,降低P2P僵尸网络的危害。
P2P;僵尸网络;特征行为
1 引言
中国上网用户数已经达到4.5亿,但中国国家计算机网络应急技术处理协调中心(CNCERT)发布的《2010年中国互联网网络安全报告》称2010年僵尸网络控制服务器IP总数为13782个。其中,境内僵尸网络控制服务器IP数量为7251个,境外僵尸网络控制服务器IP数量为 6531个。2010年僵尸网络受控主机IP总数为5622023个。其中,境内僵尸网络受控主机IP数量为470120个,境外僵尸网络受控主机IP数量为5151903个[1]。由僵尸网络而引发的在网络上窃密、发动DDoS攻击和发送大量的垃圾邮件等方面,对政府部门、商业机构以及普通用户造成了严重危害,成为影响互联网安全的重要因素。
2 相关研究
构成僵尸网络的命令与通信机制大概分为三种形式:(1)传统的基于IRC协议的僵尸网络;(2)基于HTTP协议的僵尸网络;(3)基于P2P协议的僵尸网络。基于IRC协议的僵尸网络使用的端口由于容易受到防火墙的过滤而导致其无法正常通信,基于HTTP协议的僵尸网络的控制与通信流量虽然能够轻易地穿透防火墙,但也存在弱点,即控制者在发布控制命令后,控制命令被发送到服务器的网页上,僵尸主机并不能马上接收到该命令,而只有当僵尸主机按照预先的设定定期或者周期性地去访问服务器的相关网页时,才能获取该命令,因此这种僵尸网络在可控性和实时性方面相对较弱。相对基于IRC和基于HTTP的僵尸网络的命令与控制机制,基于P2P的僵尸网络的命令与控制机制具有较强的抗打击性和隐蔽性,当僵尸网络中的部分几个僵尸主机被破获并不会对整个僵尸网络带来毁灭性打击。
僵尸网络发展到现阶段,相关技术己经比较成熟。不同的僵尸网络可以选择不同控制与命令架构,采用多种不同的协议来进行通信,可以是公开协议或自制的私有协议;此外由于攻击的目标不同,僵尸网络在设计时选用的攻击模块也呈现多样性的发展。相应地,现在针对僵尸网络的检测方法也非常多。根据检测方法的不同特点,可以从多方面对已有的僵尸网络检测方法进行分类。最早的僵尸网络是基于公开的IRC协议构造的,随之就出现了一些对这一类僵尸的检测方法;基于HTTP协议以及P2P协议的僵尸网络的出现,检测方法也逐渐变成与协议无关。
目前针对P2P的僵尸网络的检测还没有一种适用面较广、通用性较强的检测方法,这主要是由于不同的P2P僵尸网络表现出了较强的个性化差异。面对这类的僵尸网络的快速发展,如何进行有效的检测成为现阶段僵尸网络研究的一个重要方向。
3 P2P僵尸网络特征行为分析
根据研究发现感染了P2P僵尸病毒的主机在其生存的不同时期内的呈现出不同的流量特征,据此可以将P2P僵尸网络分为初始阶段、发呆阶段和攻击阶段[2]。在初始阶段中主机感染P2P僵尸网络程序后,通过网络搜索并加入到该P2P僵尸的网络中,经历了注入、感染、加入僵尸网络、下载二进制僵尸升级程序等过程。在这一阶段P2P僵尸网络会产生大量具有明显特征的网络数据,如连接数很多、连接成功率低等特点,可以针对这些网络特征进行检测。发呆阶段的僵尸主机在接入其僵尸网络后开始与其对等结点进行连接,与所在的僵尸网络只保持了简单的通信和连接,而不发生其他行为。发呆阶段在僵尸网络的生存周期中存在的时间最长,由于该阶段僵尸主机并没有产生过多的具有特征行为的流量数据,所以检测起来具有一定的难度,而且发生误报的比例也较大。当僵尸主机处于攻击阶段时,会接收到P2P僵尸网络控制者的指令,然后开始进行网络攻击或破坏活动,如对指定目标进行DDOS攻击、窃取当前主机的资料、大量发送垃圾电子邮件等行为,其中DDOS攻击和发送垃圾电子邮件的行为具有明显的流量特征,检测起来也相对较容易。
通过以上分析发现P2P僵尸主机在不同的阶段存在着以下特点:
(1)ICMP报文异常。当感染P2P僵尸程序的主机在接入本地网络后,会随机地向该P2P僵尸网络中的节点进行连接,请求加入到该僵尸网络中,由于大量的目的节点可能不可达,因此会出现大量的找不到目的地址的异常的ICMP报文错误。(初始阶段)
(2)ARP异常请求。由于P2P僵尸程序内部存在有多个固定连接节点地址,僵尸主机在初始阶段会向这些节点的IP地址发送ARP请求报文,导致网络中出现大量的ARP协议报文。(初始阶段)
(3)主机端口连接建立速率。由于P2P僵尸主机在初始阶段时,会同时向很多的对等节点发起连接,但与其中大量的对等节点的连接并不成功,因此通过检测主机间连接成功率也可以作为发现僵尸主机的方法。(初始阶段)
(4)特定时间段内的数据包大小相似。感染同一P2P僵尸病毒的主机在同一时段表现出的行为特征也基本一致,因为当僵尸程序在后台自动运行后,会主动与其他僵尸主机进行通信,而不受该主机的使用者控制,所有这些主机之间的数据通信在一段时间内所产生数据包应该大小相似。(发呆阶段)
(5)内外网相同连接。通过检测发现,内网感染P2P僵尸网络的主机之间的通信连接呈现出聚集的特征。内网中感染了同一僵尸病毒的部分主机与外网对等的控制结点的通信连接呈现出聚集的特征,对于内网中感染不同僵尸病毒的主机,在内网和外网都有与之对等的控制结点的情况与上述的情况类似。(发呆阶段或者攻击阶段)
(6)SMTP报文和DDos攻击。一些僵尸主机在收到控制者的攻击指令后会在短时间内建立大量的SMTP连接并且发送大量垃圾电子邮件,还有一些僵尸主机会对指定的目标地址发送DDos攻击,根据这些网络行为特点可以检测出相应P2P僵尸主机。(攻击阶段)
综合上文的分析,并从中选取僵尸主机在各个阶段的明显的行为特征,可以得到如下结论:
(1)初始阶段:僵尸主机产生大量ICMP错误报文,且连接成功率低。
(2)发呆阶段:僵尸主机与大量连接节点发生大小相似的通信量。
(3)攻击阶段:僵尸主机产生大量SMTP数据包或产生大量TCP SYN的数据包。
4 基于综合行为特征的检测算法设计
4.1 算法设计思路
根据上文中得出的僵尸主机的特征行为,对网络中的流量进行采样,按照僵尸主机的生存周期分步分析,逐层筛检,最后确定僵尸主机。采用这种算法进行僵尸主机的检测,在很大程度上能降低检测的误报率。
算法的设计分为两步:离线检测阶段和在线检测阶段。离线检测阶段定时捕获出口流量数据,并根据僵尸主机的初始阶段和发呆阶段的行为特征进行离线分析,以连接成功率低和与大量连接节点产生相似通信量作为两个阶段的行为特征进行检测,获得疑似僵尸主机的黑名单,但考虑到误报原因,并不对其中的主机进行隔离处理。在线检测阶段主要针对僵尸主机的攻击行为进行检测,这也是僵尸主机产生危害的阶段,主要行为表现为产生大量SMTP连接发送垃圾邮件,或产生大量TCP SYN数据包进行DDos攻击,在这一阶段检测出的主机若存在于疑似黑名单中则可确定其为僵尸主机,将其地址加入到确诊黑名单,并可对其进行隔离处理。
在线检测阶段检出的处于攻击阶段的僵尸主机可能并没有出现在疑似黑名单中,但通过长期、定时的离线、在线检测,就可以弥补这一缺陷。对于疑似黑名单和确诊黑名单中的主机地址需要定期重置或及时清理,以避免出现误报情况。
4.2 具体步骤
按照设计思路,将整个流程分为2个步骤来进行:离线检测阶段获得疑似僵尸主机黑名单;在线检测阶段将确诊僵尸主机黑名单并将处于攻击阶段的僵尸主机隔离。4.2.1离线检测阶段
(1)定义采集流量数据的周期T,将采集的流量数据进行离线分析。
(2)将采集到的流量数据,按照源地址(Srcip)、目的地址(Dstip)、协议类型(Protocol)、数据包发送时间(Times)和数据包字节数(Bytes)建立数据流集合。
(3)定义滑动时间窗口(Time=100s),将数据流集合中的数据按滑动时间窗口分割,并以源地址为筛选依据建立源地址连接子集。
(4)比照疑似黑名单中的源IP地址,若源IP地址已存在,则转到下一条连接子集。
(5)计算该源地址收到的连接成功数据包数量与发送的请求连接数据包数量之比,即连接成功率,若该值处于较低的水平(在0~0.1之间)[3],则反应出该源地址与外部目的地址连接成功率不高,存在疑似僵尸主机行为,并且该地址的主机可能处于僵尸网络活动周期的初始阶段。
(6)在该数据采集周期内,延时一个滑动时间窗口,对该源地址成功建立的连接进行会话量统计,若存在大量通信量大小类似的连接,则可进一步判断该源地址的主机可能处于僵尸网络活动周期的发呆阶段,并将该主机的IP地址及MAC地址加入到疑似黑名单中进行观察。
(7)重复执行第(4)—(6)步,获取疑似僵尸网络的源IP地址和源MAC地址黑名单。
4.2.2 在线检测阶段
(1)对出口流量中的SMTP数据包和TCP SYN数据包进行筛检,将采集的流量数据分成两个数据流集合。
(2)定义滑动时间窗口,将数据流集合中的数据分别按照时间窗口分割,并分别以源IP地址为筛选依据建立两个连接子集。
(3)分别计算两个子集中的SMTP连接数和TCP SYN数据包数量,以源IP地址作为筛选依据。若其一值超过许可范围 (SMTP连接数大于 10,TCP SYN请求数大于50),则将该源IP地址与疑似僵尸网络黑名单比对,若存在,则判定为僵尸主机并加入确诊黑名单。
(4)重复执行步骤(3)。
5 结论
通过上述算法的设计,在检测P2P僵尸网络主机时利用离线检测和在线检测相结合的办法,可以大为减轻检测平台的负载。离线检测阶段可以按时间周期分步实施,从而获取到疑似僵尸主机的黑名单,而在线检测阶段只需抓取SMTP和SYN数据流量并分析,这一部分的协议流量在整个网络出口处所占比重很小,因此执行效果较好,特别是在出口流量很大的网络中,实施难度较小。根据该算法获得的僵尸主机都必须在攻击阶段被确诊,因此可能有大量的僵尸主机并没有处在攻击阶段而被漏报,但考虑到僵尸主机产生的危害主要是处在攻击阶段,如果能在攻击阶段将其检出并隔离,对降低僵尸网络的危害是有很大好处的。
[1]国家计算机网络应急技术处理协调中心.2010年网络安全状况综述[EB/OL].http://www.cert.org.cn/UserFiles/File/2010annual%20report1.pdf
[2]柴胜,胡亮,梁波.一种p2p Botnet在线检测方法研究[J].电子学报,2010,(4):906-912
[3]刘建波.基于流量分析的P2P僵尸网络检测[J].计算机与数字工程,2011,(3):90-91
TP393
A
1009-9530(2012)03-0033-03
2011-11-10
安徽省高校自然科学基金资助项目(KJ2012Z363);淮南师范学院自然科学项目(2010LK17)
樊郁徽(1976-),男,淮南师范学院网络信息中心讲师,研究方向:计算机网络。