摘 要:僵尸网络是当前互联网中重大安全威胁之一,黑客通过在互联网中传播僵尸病毒,将大量计算机变成自己可控制的僵尸计算机,从而实现攻击。本文以僵尸网络中最常见的IRC僵尸网络为例,分析了IRC僵尸网络的工作原理,提出利用聚类分析技术中的马氏距离算法和欧氏距离算法对IRC僵尸网络进行检测。
关键词:僵尸网络;IRC;聚类分析
中图分类号:TP309.5
学术界自2003年开始关注僵尸网络这一新型的网络安全威胁,和以往的病毒、蠕虫等威胁不同,僵尸网络是一种从传统恶意代码形态进化而来的新型攻击方式,控制者在成功完成攻击后,在受攻击的系统上植入一个具有远程控制功能的小程序(bot),并将这些攻陷的机器(僵尸计算机)组成了一个具备一定规模的网络,由一台或多台控制端控制[1]。僵尸网络为攻击者提供了较为隐匿、并且灵活、高效的一对多命令与控制的机制,可以控制大量的僵尸计算机以达到窃取信息、分布式拒绝服务攻击(DDos)和垃圾邮件发送等攻击的目的。
僵尸网络主要分为三类:IRC僵尸网络、HTTP僵尸网络和P2P僵尸网络。IRC僵尸网络是最早产生的,由于IRC网络结构简单、灵活、容易控制,因此直到现在仍然是僵尸网络的主流类型。IRC僵尸网络是基于互联网在线聊天协议IRC,IRC协议是一种常用的实时网络聊天协议,应用很广泛,目前大部分聊天软件都使用的是IRC协议,而这也为黑客带来了可乘之机,他们以IRC协议为基础建立了他们可控制的IRC僵尸网络。如何鉴别网络中的计算机是否感染僵尸病毒是网络安全的重要任务之一,本文通过分析研究IRC僵尸网络通信数据的特征,提出使用聚类分析的技术来对IRC僵尸网络进行检测。
1 IRC僵尸网络的工作原理
IRC僵尸网络主要是利用IRC协议的形式,以一对多的命令和控制的信道来构建其控制服务器,继而控制IRC服务器,转发指令给僵尸计算机,最常见的有AGOBOT,GT-BOTS等。
IRC僵尸网络的基本原理是:黑客通过控制IRC服务器传播僵尸病毒到正常计算机,然后创建他们特殊的通信频道,被感染了僵尸病毒的计算机会根据病毒程序所设定好的配置登录到黑客指定的通信频道,黑客本身并不直接登录IRC服务器,而是通过网络中的某一台主机发送各种控制指令,僵尸收到指令后开始实施攻击,进而对僵尸网络实施控制。其工作原理如图1所示。
IRC僵尸网络从传播到发起攻击主要经历了僵尸病毒的传播、僵尸网络的控制、攻击目标三个步骤,其中命令控制僵尸网络是其整个工作机制的核心部分。
1.1 僵尸病毒的传播
僵尸网络主要是通过在主机上植入僵尸程序来构建的,传播的方式主要是通过远程漏洞扫描、弱口令扫描、邮件附件、恶意文档、文件共享等。对于IRC网络来说,黑客通过找到IRC服务器的漏洞,将僵尸病毒上传到IRC服务器上,使得登录IRC服务器的用户在安装聊天软件时被植入僵尸病毒,成为僵尸计算机。黑客一般使用动态域名服务将僵尸程序连接的域名映射到他所控制的多台IRC服务器上,以避免由于单一服务器被摧毁后导致整个僵尸网络瘫痪。
1.2 僵尸网络的控制
黑客会将僵尸程序加入其私有的IRC命令与控制信道中,当黑客和已被其植入僵尸病毒程序的僵尸计算机,登录到其控制的IRC服务器上时,黑客会用一些常用的口令如login、!login、!auth等来验证僵尸计算机。
1.3 攻击目标
当黑客的控制权限被僵尸计算机认证通过后,这些僵尸计算机就会即可执行由黑客发出的各种指令。目前黑客对僵尸网络的攻击主要还是分布式拒绝服务、垃圾邮件、网络钓鱼、点击欺诈、信息窃取等,虽然没有新的攻击形式,但其攻击的能力逐渐增强,可以让大面积的服务发生故障。
通过IRC僵尸网络的工作原理,我们可以知道在僵尸计算机登录IRC服务器时,其登录的昵称的命名规则会被僵尸病毒所记录,因为很多僵尸计算机可能登录的是同一台IRC服务器,因此昵称会有相似性,对于登录同一台IRC服务器的僵尸计算机还会具备集群性。在黑客攻击指令发送时,僵尸计算机接受到的是同一指令,这样又具有了一致性。因此,总结下来IRC僵尸网络的行为具有相似性,集群性和一致性的特征,而正常的计算机在通信过程中表现出的则是随机性、离散性及模糊性等特点,介于这两种计算机的不同特征,我们可以利用聚类分析的方法找出计算机在通信时数据的不同来区分IRC僵尸网络和正常网络。
2 聚类分析技术在IRC僵尸网络检测中的应用
2.1 聚类分析技术
由于在同一个僵尸网络中,所有的僵尸计算机都会被植入同一类型的僵尸病毒,因此这些僵尸计算机会显现出一些相似的特征。我们可以将这些表现出来的各种特征通过聚类分析的技术来检测僵尸网络。
聚类分析是指将物理或抽象对象的集合分组成为由类似的对象组成的多个类的分析过程[2]。聚类分析可以从大量数据中自动归纳出这些数据的相似性,同时将不同特征的数据进行分类。目前在数学、计算机、统计学、经济学等领域都运用到了大量的聚类分析技术,并取得了良好的成效。本文对于IRC僵尸网络的检测,也将采用聚类分析的方法,对僵尸网络中的各个节点的行为特征的数据进行分析。
2.2 僵尸病毒分析
在上面的IRC僵尸网络的工作原理中,我们了解到正常计算机在通信过程中的数据的特点是随机性、离散性及模糊性,而在僵尸计算机中,其在通信过程中的数据的特点是相似性、单向性和聚集性,并且结构简单,不够灵活。因此,我们可以通过找出正常计算机和僵尸计算机的昵称命名规则、通信端口号、应答次数、数据包流量、数据包的数据信息等来进行僵尸病毒的分析。
在模拟的IRC僵尸网络的环境中,我们发现僵尸计算机的登录名称信息表现出了高度的相似性。通过分析,可以归纳出以下几点规律:
(1)僵尸计算机通常使用的昵称是比较有规律的,一般由字母、数字和符号组成;
(2)僵尸计算机一般用比较固定的IP地址连接到IRC服务器;
(3)僵尸计算机主要是接收数据信息;
(4)僵尸计算机的任务管理器中会出现异常进程,例如:sdbot.exe等;
(5)僵尸计算机产生的IRC协议数据包总是处于一个比较低的比例。
2.3 聚类分析技术在IRC僵尸网络检测算法中的应用
由于IRC网络的应用广泛,使得IRC网络中的僵尸病毒品种繁多,经常变异,很难获取到合适的比对样本,针对此类情况,本文将采用聚类分析技术对僵尸网络的昵称特征和异常行为特征进行分析检测。
聚类分析的常用算法有马氏距离算法(MABC)和欧氏距离算法(ONF),前者可以排除数据包总量及产生字节数等大数量级向量特征所造成的数据计算偏差[3],后者能够在计算昵称字符串长度等数量级较小的向量属性的距离系数时发挥出更好的性能[4],因此,对昵称特征的聚类分析应用欧氏距离算法,对异常行为特征的聚类分析应用马氏距离算法并加以改进。
首先,我们将现有网络进行设置,拓扑图如图2所示:
(1)基于MABC的异常行为特征检测算法
马氏距离(MABC)是由印度统计学家马哈拉诺比斯(P.C.Mahalanobis)提出的,表示数据的协方差距离,是计算两个未知样本集的相似度的方法。由于在同一个僵尸网络中的僵尸计算机在与控制端进行相互通信的过程中所表现出来的特点是一个包含多个要素的复杂特征向量,且存在某些要素属性的数值的数量级要明显大于其他属性的数量级的情况。为了能够更好地利用僵尸计算机的通信特征差异值非常小的特点,选用了基于MABC的算法来计算各个检测点之间的距离系数。
MABC算法的主要步骤设计如下:
1)从IRC服务器的通信数据中提取特征向量,设为x;
2)将提取到的特征向量与预定的特征向量维度(设为y)进行比较,如果x>y,则建立特征向量矩阵;反之则表示特征向量值处于正常状态,继续提取特征向量;
3)将建立好的特征向量矩阵运用算法,计算出距离系数,判断是否在预定的阙值范围里,如果在阙值范围的则表明是受到僵尸病毒感染的,反之则是正常计算机。
(2)基于ONF的昵称特征检测算法
欧氏距离算法,是求两个数据项间的差是每个变量值差的平方和再平方根,最终要计算其间的整体距离即不相似性。僵尸计算机在与控制端联系过程中所表现出的昵称命名规则可以用欧氏距离的算法进行检测。
ONF算法的主要步骤设计如下:
1)从IRC服务器的通信数据中提取特征向量;
2)对提取的特征向量计算其距离系数,并求出其最大距离系数(设为a)和最小距离系数(设为b);
3)采集在{(b-a)/2,(a-b)/2}范围内的数据,如在这范围内的数据在预定的阙值范围里,则判断为僵尸计算机,反之则为正常计算机。
针对以上两种检测算法的特点,我们可以将两种算法进行整合,对IRC僵尸网络进行检测,主要步骤如下:
1)首先,搭建IRC僵尸网络的实验环境,将环境中的计算机分为两部分,一部分为正常用户,另一部分为僵尸计算机,同时设置一台IRC服务器;
2)然后,选择一段时间,让正常计算机和僵尸计算机随机产生通信数据;
3)将正常计算机和僵尸计算机产生的通信数据进行提取,记录在实验环境中的异常通信行为和僵尸计算机的昵称特征;
4)根据昵称特征算法,对提取到的昵称特征数据计算其特征向量,求出距离系数;根据异常行为特征算法,对提取到的异常行为数据计算其特征向量,求出距离系数;
5)根据计算得出的距离系数,分别建立昵称特征向量集和异常行为特征向量集,然后判断这些集合是否大于预定的特征向量维度值;
6)最后根据获得的结果进行对比,区分网络中的计算机哪些是僵尸计算机,哪些是正常计算机,一般情况下两种结果都命中的即为僵尸计算机。
3 总结
僵尸网络已经成为安全领域共同关注的热点,其破坏力是非常惊人的,而且僵尸网络的数量增长快速,对僵尸网络检测的方法和工具还不是很完备,仍然是以特征的对比检测以及流量的检测为主,本文以IRC僵尸网络为研究对象,借助聚类分析的两种算法,即MABC算法和ONF算法对僵尸计算机的昵称特征和异常行为特征进行检测,从而区分僵尸计算机和正常计算机。
参考文献:
[1]诸葛建伟,韩心慧,叶志远.僵尸网络的发现与跟踪[C].中国网络与信息安全技术研讨会论文集,2005:183-189.
[2]吕新荣,陆世伟.基于聚类技术的僵尸网络检测方案[J].计算机工程,2011,37(7):166-170.
[3]张翔,王士同.一种基于马氏距离的可能性聚类方法[J].数据采集与处理,2011,26(1):101-105.
[4]Xiangyang Li,Cluster and classification algorithm for computer intrusion detection[J],Arizona State University,2009.
[5]王威,方滨兴,崔翔.基于终端行为特征的IRC僵尸网络检测[J].计算机学报,2009,32(10):1980-1988.
[6]孙吉贵,刘杰,赵连宇.聚类算法研究[J].软件学报,2008,19(1):51-52.
[7]孙彦东,李东.僵尸网络综述[J].计算机应用,2006,26(7):1628-1630.
[8]谢静,谭良.半分布式P2P僵尸网络的伪蜜罐检测方法[J].计算机工程,2010,36(14):111-116.
[9]董开坤,刘扬,郭栗等.P2P僵尸网络检测技术[J].信息安全与通信保密,2008,(4):34-36.
[10]应凌云,冯登国,苏璞睿.基于P2P的僵尸网络及其防御[J].电子学报,2009,31(1):31-37.
作者简介:倪懿(1978-),女,硕士,苏州农业职业技术学院,研究方向:计算机网络、数据挖掘。