基于动态聚类算法的IRC僵尸网络检测

2011-06-08 03:35:22刘建波
关键词:僵尸数据流数据包

刘建波

(山东财政学院计算机网络中心,济南 250014)

僵尸网络已经成为互联网上一个巨大的安全威胁,是当前网络安全领域面临的主要问题之一,它具有一定的组织结构,蠕虫似的传播特征,木马似的后门特征,并往往采用变形、Rookie等病毒技术,是恶意代码技术的综合.目前流行的僵尸网络采用多种协议来实现控制,主要有IRC、HTTP和P2P,但由于IRC僵尸网络简单、灵活、易控等优点,IRC僵尸网络仍然是攻击者手中的重要手段[1].本文通过深入研究IRC僵尸网络运行机制,分析僵尸程序功能结构和交互过程的网络行为特征,提出了一种基于动态流量更新聚类算法的IRC僵尸网络检测方法,该方法基于网络流检测,主要3个过程:捕获流量数据并做预处理;基于改近的k-means聚类算法做动态数据项分析;得出僵尸网络检测结果.

1 数据捕获与预处理

1.1 数据包捕获

利用Cisco公司开发的NetFlow进行流量采集,NetFlow是以“流”为采集单位的数据统计方法.NetFlow协议的核心是对流缓存进行组织、管理,提供遵循某种汇聚方法而得到“流”的统计数据,检测中主要使用的NetFlow数据格式如表1.

表1 数据参数及含义

1.2 数据预处理

利用NetFlow统计方法分离出满足僵尸协议特征的网络流量群,以便缩小数据空间,为快速准确地检测僵尸网络打下基础.首先利用以太网协议类型过滤出IP流量,然后利用IP协议,过滤出TCP流量(IRC协议以TCP协议为基础).然后,用数据包的大小作为过滤条件,在通常情况下,使用IRC服务聊天所产生的数据包一般都不会太大,预先定义一个合理的包大小,作为过滤上限,过滤掉非常大的数据包[2].

基于以上数据流过滤之后,照协议类型、源地址、目的地址和目的端口将具有元素的相同数据流划分到一个集合,针对每个集合的得到IRC命令、包速率(单位时间内数据包个数)和包大小(平均包大小)[3],将其整合后作为该集合的三个向量用k-means算法进行聚类分析,将原本无序的网络流量划分为一个个小的类簇.

2 基于改进的k-means聚类算法

2.1 k-means算法细想及实现

首先从n个数据对象选择k个对象作为初始聚类中心;每个对象的初值作为一个簇的中心,剩下其它对象,根据它们与这些簇中心的距离,分别将它们加入与其最相似的(聚类中心所代表的)聚类;然后再计算每个新聚类的聚类中心(该聚类中所有对象的均值)[4];不断重复以上过程直到函数收敛为止.在算法实现过程中,大多采用均方差作为标准测度函数,而且在实现过程中药尽量保证各个聚类紧凑,各个聚类之间尽量分开.

方差标准测试函数定义:

其中:E为n个数据对象平均方差的和,p为选择的对象,mi是簇Ci的平均值.

在聚类之前对数据做预处理,从而实现数据流的平滑性,增加数据聚类的准确度,使得各个数据的取值在合理地范围内波动,可以利用平均绝对偏差方法来实现,具体如下:

其中:X1f,…,Xnf是特征 f的 n个特征值,mf是平均值,即:

数据流特征值计算公式:

基于以上处理方法,反复计算特征的平均值和方差,当平均值为0,方差为1时,可以利用公式(5)产生归一化结果:

2.2 基于平滑数据自适应的聚类算法

在局域网中,由于网络数据不断更新,为了提高僵尸网络检测的准确率,结合以上数据聚类算法,对聚类结果,采用数据自适应的聚类方法进行动态处理,主要思路如下:首先合理定义时间滑动窗口(比如以10 s为单位);对数据流进行聚类得到数据流分簇;变更时间滑动窗口,若聚类结果数据流稳定,保留当前的聚类结果;相反,若出现以下情况,必须重新处理得到的结果:①由于网络不稳定而形成的新数据流;②簇中一些数据流发生突变,产生噪声数据流,导致簇内数据流不再相似[5].

在聚类过程中,为了保证数据流的平滑,对以上不稳定数据流采用自适应处理,思路如下:尽量去除噪声数据流,添加新数据流;当数据流发生突变时候,对生成的簇进行合理拆分和合并.处理核心思路如下:将噪声数据流首先放入临时变量中,非噪声数据流根据各个簇的中心距离重新分配到其他不同簇中,当然,根据中心距离可能找不到该正常数据流的归属,此时可以将其构造一个新的独立簇,放入临时变量,最后根据簇间相似性再分别进行合并,以上过程反复处理,最后得到的分簇都相互独立[6].通过以上自适应处理方法,既有效处理了噪声数据流,又充分考虑了产生的新数据流,做到了数据处理的全面性,最终得到新的聚簇更加合理,其结果更加具有指导性.

3 实验及验证

3.1 实验环境搭建

利用网络实验室网络环境,用服务器端软件Unreal架设一台服务器,实验中正常的用户聊天使用的软件为MIRC,使用SDbot作为客户端的僵尸程序[7].定制两个正常聊天客户端,两个僵尸网络客户端,两个攻击客户端,所有客户端与服务器通过三层交换机链接,流量从该交换机镜像端口采集,其简单拓扑结构[8]如图 1.

图1 实验拓扑结构

从交换机的镜像端口中采集数据,定义时间滑动窗口为100 s,针对流量数据集处理后得到的3个向量集合基于以上方法聚类分析,得到聚类结果.

3.2 IRC命令聚类结果分析

通过表2 IRC命令聚类结果聚类结果分析可以得到,前两行PING/DONG命令所占的比例比较高,聊天命令PRIVMSG占的比例比较低;而后两行PING/DONG命令所占的比非常低,聊天命令PRIVMSG 比例比较高[9].

表2 IRC命令聚类结果

3.3 平均包聚类分析

为了进一步分析平均包的变化规律,实验中又对滑动时间窗口调整为10 s,对持续20min流量动态聚类分析得到走势图如图2.在图2中,平均包走势比较均衡,以一个中心点呈现一种类正弦图形,上下波动,突发流量比较少,分布比较均匀,说明聊天数据比较活跃.而图3中平均包数据量相对比较小且比较集中,存在瞬间突发流量现象,可以依次作为检测僵尸网络的一个主要依据:正常客户端聊天数据比较活跃,分布比较均匀,而僵尸主机虽然会长时间在线,但是聊天数据并不活跃,虽然其作为一个IRC聊天用户,但是在聊天频道内长时间不发言,保持空闲,主要发送PING/DONG数据包,而且存在突发流量现象,说明具有协同攻击现象[10-11].由此可以得出实验结论,主机 192.168.0.30可疑等级比较低,而主机192.168.0.10的可疑等级非常高.

图2 192.168.0.30 平均包聚类结果

图3 192.168.0.10 平均包聚类结果

4 结语

随着网络技术的快速发展,局域网中利用IRC僵尸网络进行协同攻击现象越来越频繁,严重者影响了网络的正常运行.网络管理者必须建立准确有效的自动化检测机制,及时发现并有效遏制其蔓延.本文提出了一种基于动态聚类算法的IRC僵尸网络检测算法,以分析IRC僵尸网络的协议命令和数据包特点为理论依据,利用改进的k-means聚类算法,建立滑动时间窗口机制,对流量集合所呈现的数据向量动态聚类分析,聚类结果的评测及实验结果表明,该方法是积极有效的,检测准确率比较高,在网络安全管理实践中,可以有效检测IRC僵尸网络,优化网络安全管理工作.

[1]王 威,方滨兴,崔 翔.基于终端行为特征的IRC僵尸网络检测[J].计算机学报,2009,32(10):1981-1982.

[2]王 涛,余顺争.中心式结构僵尸网络的检测方法研究[J].小型微型计算机系统,2010,31(3):512-514.

[3]诸葛 建伟,韩心慧,周勇林,等.僵尸网络研究[J].软件学报,2008,9(3):704-706.

[4]孙吉贵,刘 杰,赵连宇.聚类算法研究[J].软件学报,2008,19(1):51-52.

[5]丁 青,周留根,朱爱兵,等.基于k-means聚类算法的校园网用户行为分析研究[J].微计算机应用,2010,31(6):75-76.

[6]于晓聪,董晓梅,于 戈,等.僵尸网络在线检测技术研究[J].武汉大学学报:信息科学版,2010,35(5):579-580.

[7]孙彦东,李 东.僵尸网络综述[J].计算机应用,2006,26(7):1629-1630.

[8]刘旭勇.DDoS攻击及主动防御模型研究[J].计算机技术与发展,2008,18(7):144-145.

[9]李润恒,王明华,贾 焰.基于通信特征提取和IP聚集的僵尸网络相似性度量模型[J].计算机学报,2010,33(1):46-48.

[10]STRAYER W T,WALSH R.Detecting botnets with tight command and control[C]//Proceedings of the 31st IEEE Conference on Local Computer Networks,Tampa,FL,2006:200-202.

[11]GU G,PERDISCT R,ZHANG J,et al.BotMiner:Clusteringanalysis of network traffic for protocol-and structure-independent botnet detection[C]//Proceedings of the 17th USE-NIX Security Symposium(Security’08),San Jose,CA,2008:139-154.

猜你喜欢
僵尸数据流数据包
笔记本电脑“僵尸”
英语文摘(2020年2期)2020-08-13 07:26:22
汽车维修数据流基础(下)
SmartSniff
一种提高TCP与UDP数据流公平性的拥塞控制机制
你愿意当吸血鬼还是僵尸?
基于数据流聚类的多目标跟踪算法
App已死?80%的僵尸应用带来的困惑
新闻传播(2015年6期)2015-07-18 11:13:15
“僵尸肉”横行谁之过
北医三院 数据流疏通就诊量
中国卫生(2014年7期)2014-11-10 02:32:54
基于Libpcap的网络数据包捕获器的设计与实现