当前位置:首页 期刊杂志

基于P2P僵尸主机网络行为的检测与监控方案设计

时间:2024-09-03

樊郁徽,徐 宁

中国上网用户数已经达到4.5亿.中国国家计算机网络应急技术处理协调中心(CNCERT)发布的《2012年中国互联网网络安全报告》称,2012年我国共有1 419.7万多台主机被感染僵尸网络,并受控于境外的约7.3万个木马或僵尸网络控制服务器,较上一年度分别增长了59.6﹪和56.9﹪[1].由僵尸网络而引发的在网络失窃、发动拒绝服务式攻击和发送大量的垃圾邮件等方面,对政府部门、商业机构以及普通用户造成了严重危害,甚至给国家信息安全带来极大的威胁,目前已成为影响互联网安全的重要因素.

1 相关研究

僵尸网络的命令与通信机制通过多年的演变逐渐形成了3种形式:(1)基于IRC协议的僵尸网络;(2)基于HTTP、DNS协议的僵尸网络;(3)基于P2P协议的僵尸网络.

基于IRC协议和HTTP协议的僵尸网络在命令与控制机制方面具有集中控制点,通过对僵尸程序进行分析就能轻易获得僵尸网络控制器所在位置.对于这种基于客户端—服务器架构的僵尸网络来说,容易被跟踪、检测和反制,当该僵尸网络的网络控制器被关闭,则该僵尸网络带来的威胁也就会被消除.而当前很多新型的僵尸程序开始使用P2P协议来构建网络,如图1所示,基于P2P协议的僵尸网络的控制节点分布在整个僵尸网络的多个位置,当其中的一个或几个节点被破坏,并不会对整个僵尸网络造成实质上的破坏,因此基于P2P协议的僵尸网络较前两种僵尸网络更具隐蔽性和抗打击性.

图1 基于P2P协议的僵尸网络模型

目前针对基于P2P协议僵尸网络的检测方法主要有两种形式:一种采用离线检测方式,通过先抓取一段时间内的网络流量数据,再借助于各种分析算法对离线数据进行检测;另一种采用在线检测方式,通过实时在线监控的方式对网络数据流进行分析并检测,然后分离出疑似的僵尸主机.前一种方法在检测过程中只能发现存在的僵尸网络而难以及时采取控制措施,后一种方法虽然实时性较好,但面临海量网络数据时往往力不从心.因此,对P2P僵尸网络的检测、发现与控制是当前僵尸网络研究中的重要方面.

2 P2P僵尸网络的生存状态及特征行为分析

现有的一些P2P僵尸网络检测方法主要针对P2P僵尸网络产生的特征网络流量进行分析[2-7],从而将其从众多P2P应用中区分出来,并进行判断分析,找出感染P2P僵尸网络控制程序的主机,通常采用离线检测和在线检测两种方法.本文从P2P僵尸网络在其生存的各个不同时期所表现出的特征行为出发,进行综合判断,从而准确获得P2P僵尸主机信息,但对于其中的一些不活跃或者没有进行危害行为的僵尸主机只是进行持续监测,而对于处在攻击阶段的P2P僵尸主机才会采取相应措施,阻断其与僵尸网络控制节点的联系.

2.1 P2P僵尸网络的生存周期

Wang[2]等人根据僵尸程序的执行顺序将P2P僵尸网络分为3个阶段:成员选择、组建网络和等待指令.成员选择阶段的主要表现形式为利用各种病毒传播的方式感染大量主机,组建网络阶段即通过僵尸程序中的内置指令将被感染的主机通过P2P协议组建成一个僵尸网络,等待指令阶段即构成僵尸网络的被感染主机保持静默状态等待来自于僵尸网络控制者发布的指令.文献[3]从网络数据流检测的角度将P2P僵尸网络分为初始阶段、发呆阶段和攻击阶段.在初始阶段,P2P僵尸网络会产生大量具有明显特征的网络数据,如连接数很多、连接成功率低等特点,可以针对这些网络特征进行检测.发呆阶段的僵尸主机在接入其僵尸网络后开始与其对等结点进行连接,与所在的僵尸网络只保持了简单的通信和连接,而不发生其他行为.处在发呆阶段的P2P僵尸主机存在会话数据流多、通信量相似和通信量较小等特征.当僵尸主机处于攻击阶段时,会接收到P2P僵尸网络控制者的指令,然后开始进行网络攻击或破坏活动,如对指定目标进行DDOS攻击、窃取当前主机的资料、大量发送垃圾电子邮件等行为,其中发送垃圾电子邮件的行为具有明显的流量特征,检测起来也相对较容易.

2.2 P2P僵尸网络的重要特征

通过上面的分析发现,按照文献[3]的生存阶段分类标准,P2P僵尸网络在其生存的各个阶段都存在一些可供分析和检测的典型特征,可以作为制定检测方案的重要依据.其主要特点如下:

(1)僵尸主机产生大量ICMP错误报文,且连接成功率低.(初始阶段)

(2)僵尸主机与大量连接节点的发生大小相似的通信量.(发呆阶段)

(3)僵尸主机产生大量SMTP连接和目的地址相同的SMTP数据包.(攻击阶段)

综合上述特征,对于(1)、(2)两个特征行为可以通过离线分析的方法进行提炼,得到P2P僵尸主机的地址信息,并对这些主机进行在线监测,如果发现其存在(3)中的行为,则可以进行阻断.

3 基于僵尸主机网络行为的检测方案设计

3.1 设计思路

考虑到P2P僵尸主机在其生存周期的大部分时间中都处在初始阶段和发呆阶段,并不产生任何危害行为,当僵尸主机接收到僵尸网络控制者的指令后开始进行攻击行为(包括发送垃圾邮件和进行DDOS攻击),才会对网络上其他用户产生影响.现阶段,P2P僵尸网络的检测方法多是依据P2P僵尸网络在初始阶段和发呆阶段的相应网络特征行为进行检测[4],往往会与网络中的正常P2P业务发生混淆,出现误报的情况.

为了将P2P僵尸主机对网络中正常用户的影响降到最低,本文设计了一种对P2P僵尸主机进行离线检测和在线监控相结合的方法,如图2所示.

图2 离线检测和在线监控P2P僵尸主机的方案

3.2 离线检测设计

通过流量采集的方法从网络出口处获得一段较长时间的网络流量数据,以连接成功率低和大量连接节点产生相似通信量作为两个阶段的行为特征进行连续检测,将符合上述两个条件的源主机地址从中分离出来作为可疑P2P僵尸主机地址列表.

(1)连接成功率检测

当内网中的P2P僵尸主机开始连接P2P僵尸网络节点时,由于受到防火墙阻挡、网络地址转换或主机不在线等多种因素影响,导致连接成功率很低,网络上会出现大量的“目的地址不可达”ICMP包和TCP重置包,与主机的正常网络通信存在明显差异,因此计算该源地址收到的连接成功数据包数量与发送的请求连接数据包数量之比,即连接成功率,就可以初步判断该主机存在异常网络行为.若连接成功率值处于较低的水平(在0~0.1之间)[4-5],则反映出该源地址与外部目的地址连接成功率不高,存在疑似僵尸主机行为.

定义检测数据周期为T为60 s,并将采集到的流量数据,按照源地址(Srcip)、目的地址(Dstip)、协议类型(Protocol)、数据包发送时间(Times)、数据包字节数(Bytes)、源端口(Sport)和目的端口(Dport)建立七元数据流集合.

定义本地可疑主机集合G{Srcip 1,Srcip 2,…,Srcip n}

统计数据流源地址收到的连接成功数据包数量与发送的请求连接数据包数量之比V,若V<0.1,则将该地址加入集合G中.

基于连接成功率的检测可以获得存在异常网络行为的内网主机,但仅通过这一手段进行判断,会出现大量误报情况,需要在此基础上进一步分析,从而获得更为准确的P2P僵尸主机信息.

(2)通信量相似性检测

由于P2P僵尸主机在与僵尸网络节点建立连接后,会持续保持连接,等待接收控制指令;而P2P僵尸主机在其生存周期的大部分时间内都处于该阶段,即发呆阶段.处于这一阶段的P2P僵尸主机的网络行为特征表现为存在与大量节点的连接、节点间通信量相似且通信量较少.

文献[6]中提出的一种基于多相通信流模型(Multi-Phased Flow Model)的P2P僵尸网络检测方法设计检测方案:

定义采样周期为T1=T+1,即完成连接成功率检测后下移一个采样周期.

定义采样时间Time=60 s,获取采样流量的七元数据流集合.

通过对前一项检测获得的本地可疑主机集合,以其中的源IP地址为筛选依据,获得单一源地址在60 s内的七元数据流集合.

使用马尔可夫链计算数据流在各状态值之间的变化情况,并将结果与正常网络数据流进行比较,以此来判断是否存在P2P僵尸主机.

将符合条件的源IP地址进行重新统计,形成集合Y.集合Y中包含经过进一步筛检的疑似P2P僵尸主机的源IP地址.

(3)离线检测的可行性

由于通信量相似性检测是在完成连接成功率检测之后,因此检测范围大大缩小,提高了检测速度,降低了检测的误报率,但由于这两项检测的结果只是建立在2个采样时间周期内,因此漏报的可能性很高.为了解决这个问题,可以设定一个采样时间间隔,重复采样并进行检测.当然,采样间隔越小,获得的可疑病毒主机数量越多,降低了漏报的几率,但采样过密会大大影响计算的速度.因此,本文通过使用离线检测的方法完成上述两项检测,对获取到的集合Y中的本地主机IP地址则作为在线监控的对象.

3.3 在线监控设计

通过离线检测的方法获得了本地网络中疑似P2P僵尸主机的地址集合Y.该集合中的主机都是处于P2P僵尸主机生存周期的初始阶段和发呆阶段,并没有对正常主机及网络产生危害行为,若简单判断为P2P僵尸主机的话,会出现一定程度的误报.因此本文提出继续采用在线监控的方法对上述主机进行持续监控,当其出现危害行为时再采取阻断策略,从而更加准确地定位P2P僵尸主机并降低其危害.

由于P2P僵尸主机进行感染节点、信息窃取和监听网络流量的工作往往在本地网络内部完成,在出口路由器端难以检测,进行DDOS攻击的行为也只在P2P僵尸主机生存周期中占极小的一部分时间,而发送垃圾邮件是僵尸网络的控制者的主要获利行为[7],其网络特征行为也更为显著,更利于进行检测.

(1)监控方案设计

P2P僵尸主机在接收到控制者发送垃圾邮件的指令后,会建立大量与邮件服务器间的SMTP连接,而属于同一僵尸网络的P2P僵尸主机会产生相同地址的SMTP的报文.因此,本方案的设计基于以上两点:大量SMTP连接和相同目的地址的SMTP报文.

根据文献[8]中设计的方案,定义采样周期To,To为60 min.每个T2周期内采集SMTP协议数据流量,按照七元数据流建立集合,统计Y集合中的每个源地址产生的SMTP协议数据流条数,若数据流数量较大(100条以上),则可判断该主机正在发送垃圾邮件,将该源地址加入黑名单;同时统计所有SMTP数据流中相同的目的地址(Dstip)条数,若存在相同目的地址而其源地址不同的数据流数量较多(10条以上),则可判断这些源地址主机属于同一P2P僵尸网络,将这些源地址加入黑名单.

(2)确认P2P僵尸主机的控制

黑名单中的主机地址可确认为P2P僵尸网络成员,对这些属于本地网络中的主机可以直接在出口路由器端进行封堵,阻断其外网连接,从而切断与僵尸网络的连接,将其产生的风险降到最低.

(3)在线监控方案实现的可能性

由于上述的在线监控方案是在通过离线检测获得疑似P2P僵尸主机集合的前提下完成的,因此监控的实施更有针对性,获得的结果也更为准确,当然在实现的过程中,针对不以发送垃圾邮件为主要功能的P2P僵尸主机或产生一定的漏报,但误报的可能性会很低.

4 实验结果

4.1 实验设置

使用二台4G内存的联网PC机作为实验平台,在其中一台PC机A上安装Vmware软件,虚拟出4台 P2P僵尸主机,分别是 A1、A2、A3、A4,在另外一台PC机B上安装控制程序,用来向P2P僵尸主机发送控制指令.将上述主机组成一个小型网络,如图3所示.

图3 实验环境

在A1-A4上部署Peacomm P2P僵尸病毒,并分别采集各虚拟机中的通信流量,以1 min为时间间隔,连续采集2 min,获取P2P僵尸主机在初始阶段和发呆阶段的网络特征流量数据.第一次实验将采样的数据混入来自于网络出口的正常网络的网络流量中,采用离线检测的手段对混合数据进行检测,获得疑似P2P僵尸主机地址.第二次实验将获得的网络特征流量数据复制3遍,并混入正常的网络流量中进行检测,获得疑似P2P僵尸主机地址.

通过B上的控制程序向各僵尸主机下达发送垃圾邮件指令,并对各主机产生的通信流量进行采集,并将采集的网络特征流量混入正常的网络流量中.采用在线监控的手段分别对2次离线检测实验获得的疑似P2P僵尸主机地址进行监控,获得P2P僵尸主机黑名单.

4.2 实验结果

2次离线检测获得的疑似P2P僵尸主机的地址数量如表1所示.

表1 离线检测结果

从表1中可以发现,在第一次实验中,由于采样的样本较少,在检测过程中存在较高的误报率和漏报率.在第二次实验中,由于样本数量的增加,有效降低了漏报率.

2次在线监控获得的P2P僵尸主机黑名单如表2所示.

表2 在线监控结果

从表2的结果中可以发现:在线检测的结果主要依据离线检测获得的疑似僵尸主机名单,如果在离线检测过程中出现漏报,那么在线监控阶段也无法对漏报地址进行监控;而离线检测中的误报主机地址因为没有发送垃圾邮件行为,因此在在线监控阶段也不会被检测到,也就不存在误报的情况.

通过对实验结果的分析发现,提高离线检测的采样频率,能有效降低检测的漏报率,进而影响到整个方案的实施效果.

5 结语

通过上述方案的设计,在检测P2P僵尸网络主机时利用离线检测和在线检测相结合的办法,可以大为减轻检测平台的负载.离线检测阶段可以按时间周期分布实施,从而获取疑似僵尸主机的黑名单,而在线检测阶段只需抓取SMTP协议数据流量并分析,这一部分的协议流量在整个网络出口处所占比重很小,因此执行效果较好.特别是在出口流量很大的网络中,实施难度较小.根据该算法获得的僵尸主机都必须在攻击阶段被确诊,因此可能有一些僵尸主机并没有处在攻击阶段而被漏报,但考虑到僵尸主机产生的危害主要是发生在攻击阶段,如果能在攻击阶段将其检出并隔离,对降低僵尸网络的危害是有很大好处的.

[1]国家计算机网络应急技术处理协调中心.2012年中国互联网网络安全报告[R].北京:中国邮电出版社,2013:16-17.

[2]Wang Ping,Wu Lei,Aslam B,et al.A systematic study on peer-to-peer botnets[C].Computer Communications and Networks,ICCCN 2009.Proceedings of 18th International Conference on IEEE,2009:1-8.

[3]柴胜,胡亮,梁波.一种P2P Botnet在线检测方法研究[J].电子学报,2010(4):906-912.

[4]Schoof R,Koning R.Detecting peer-to-peer botnets[R].System and Network Engineering.University of Amsterdam,2007.

[5]刘建波.基于流量分析的P2P僵尸网络检测[J].计算机与数字工程,2011(3):90-91.

[6]Sang Kyun Noh,Joo Hyung Oh,Jae Seo Lee,et al.Detecting P2P botnets using a multi-phased flow model[A].The 3rd International Conference on Digital Society[C].Cancun:Computer Society,2009:247-253.

[7]Li Zhuang,John Dunagan,Daniel R Simon,et al.Cha racterizing botnets from Email spam records[J].LEET,2008(8):1-9.

[8]邓国强,李芝棠,李冬,等.基于邮件行为异常的垃圾邮件客户端检测[J].广西大学学报:自然科学版,2011,36(S1):100-104.

免责声明

我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!