一种基于小流统计分析的对等僵尸主机识别方法
【专利摘要】本发明公开一种基于小流统计分析的对等僵尸主机识别方法,其特征在于分为两步:(1)小流过滤阶段:根据主机网络数据流的小流特性选择出可疑的主机数据流,该阶段往往能滤除网络中百分之九十以上的流量,以此来降低下一步处理的流量输入量和提升处理效率;(2)僵尸主机识别阶段:对可疑主机流依据时间序列上的统计相似性来识别僵尸主机,本方法输入为一段时间内的目标网络边界收集到的Netflow网络流数据,输出为目标网络中被识别为僵尸主机的IP地址列表。本发明是一种简单、高效的技术手段,来识别内网中的对等僵尸主机,并且具有很高的可实施性,同时具有易集成性。
【专利说明】—种基于小流统计分析的对等僵尸主机识别方法
【技术领域】
[0001]本发明涉及一种计算机网络安全技术,具体地说,涉及的是一种基于小流统计分析的对等僵尸主机识别方法。
【背景技术】
[0002]当前,僵尸网络已发展为当今计算机网络中最严重安全威胁之一,它融合了传统的恶意软件如计算机病毒、木马以及蠕虫等技术,成为一种能发动各种大规模恶意攻击、更新和散布各类恶意软件的综合攻击平台。不仅如此,采用对等网络模式来构建控制僵尸主机的通信通道,使得自身更具隐蔽性和健壮性。因而,感染僵尸程序的内网主机就成为了内网安全的一个威胁源,使企业的IT基础设施随时散失其可用性、信息资产处于暴露的危险,一旦爆发,将给企业带来无法估量的损失。
[0003]与传统的病毒、木马及蠕虫相比,僵尸发动的攻击具有如下特性僵尸程序更新周期短、使用最新隐藏技术躲避检测等,使得当前使用的恶意代码检测方法容易失效。例如,攻击者能够通过相关命令频繁地更新僵尸程序改变特征码,僵尸控制通道采用加密的私有协议,这些使得基于特征码匹配的检测方法容易失效;当前检测僵尸主机的方法一般是通过分析大规模网络中僵尸群组流量特征来检测,这类方法对内网中稀疏僵尸主机的识别效率较低。由此可见,有必要研究针对僵尸主机的新的识别方法,更别提这对对等僵尸主机了。
[0004]僵尸主机具有一些新特性:僵尸程序更新周期短、僵尸程序的活动存在群体性、使用最新隐藏技术躲避检测等。由于这些新的特性,将已有的恶意代码检测方法直接用于僵尸主机的识别将会造成较大的漏报;由于僵尸网络技术逐渐成熟,在其发展过程中也出现了利用僵尸网络的新特性来识别僵尸主机检测的新方法,但是还存在一些问题。具体如下:
[0005]?基于特征码匹配的方法极易失效
[0006]在僵尸网络高度可控环境下,攻击者能通过相关命令频繁地更新僵尸程序改变特征码,因此基于特征码匹配的检测方法容易失效。此外,基于特征码的主机层面的实时监控经常使得系统负载过重,所以此方法对于普通用户来说不合适。
[0007]?不能识别加密通信的僵尸主机
[0008]当前出现的识别方法主要采用的思路是解析相关通信协议,对异常通信行为进行挖掘和归类,找出僵尸主机。明显地,这类方法无法识别采用加密通信的僵尸,因为无法解析已知的协议,而获取通信密钥难度大且时效性不强,使得已有的方法效率低下。
[0009]?不能识别所监督网络中的单个僵尸节点
[0010]还有一类检查方法根据`同种僵尸主机命令与控制信道通信行为的相似性以及攻击行为的相似性,通过聚类和关联的方法来识别。但是这类基于僵尸群组活动的检测方法的前提是所监督网络内必须有多个同类型的僵尸存在,而在僵尸程序在感染监督网络中主机的初期阶段,并不能总是满足该条件,由此,这类方法不能识别所监督网络中的单个僵尸节点,扼杀僵尸于传播之初。
[0011]?专门针对对等僵尸主机识别方法少
[0012]采用P2P协议来构建僵尸网络的命令与控制是一个相对较新的技术,还没有专门针对这类僵尸的检测方法。
[0013]中国申请(专利)号为2011110098015.2、200810149039.4的发明专利,这两专利申请方法是一种基于数据包特码码检测的方法,无法检测控制协议加密通行的僵尸网络;主要是针对集中控制式的僵尸网络的检测;而本发明方法是以流行为特征分析为基础进行检测,可以检测加密通信的僵尸主机,主要是针对控制协议采用对等网络方式的僵尸主机的检测。同样的,申请(专利)号为 200910160680.2,200910218133.5,200910216889.6 的专利,也是主要是针对集中控制式的僵尸网络的检测。
[0014]申请(专利)号为200810225455.8,201010013660.5、201010109069.X 的发明专利,
这些专利主要是针对基于IRC控制协议的僵尸的检测,主要基于数据包信息来检测;而本发明主要是针对采用对等控制协议的僵尸检测,是基于网络流信息来检测。又如申请(专利)号为200910142292.1专利,该专利也是基于数据包信息来检测。
【发明内容】
[0015]本发明要解决的技术问题是提供一种简单、高效的技术手段,来识别内网中的对等僵尸主机,并且具有很高的可实施性,同时本产品容易作为一个模块集成到其余内网安全产品及其他网络安全产品中,具有易集成性。
[0016]为解决上述技术问题,本发明所述的一种基于小流统计分析的对等僵尸主机识别方法,分为两步:
[0017](I)小流过滤阶段:根据主机网络数据流的小流特性选择出可疑的主机数据流,该阶段往往能滤除网络中百分之九十以上的流量,以此来降低下一步处理的流量输入量和提升处理效率;
[0018]本发明在小流过滤阶段,根据特定(IP,Port)对上在检测数据集时段内的所有Netflow流的统计特征进行提取、分析和计算,以此提取可疑的(IP,Port)对,并保留与之相关的Netflow流,削减了大部分的网络流量。在该阶段,包含有(IP,Port)流集提取过程、小流过滤算法。
[0019]所述流集提取过程,其中所述流集是指一段时间内,某个(IP,Port)地址相关的所有Netflow流的集合;对于一个(IP, Port),有流入流集和流出流集之分,流入流集是指以给定(IP,Port)为目的地址的所有Netflow流的集合,记为Ci (IP,Port);流出流集是指以给定(IP,Port)为源地址的所有Netflow流的集合,记为Co(IP,Port);
[0020]流集提取过程是各个流入流集Ci (IP, Port)和流出流集Co (IP,Port)的提取过程,即给定Netflow流量文件,对于所监测网络内的所有(IP,Port),分别提取相应的Ci(IP, Port)和 Co (IP, Port),并存储。
[0021]所述小流过滤算法,是以所有的流入流集Ci (IP, Port)和流出流集Co (IP, Port)为输入,根据其流量统计特征来判断该流集是否为可疑僵尸交互流量,算法输出为可疑僵尸(IP,Port)列表;本算法中选用的特征如下:
[0022](I)流集的规模,即流集中Netflow流的条数,记为fc (flow counts);[0023](2)流集的平均包长,即流集中各条Netflow流的字节数之和除以各条Netflow流的数据包数之和,记为fal (flow average length);
[0024]所述小流即小型流集,满足流集规模小、流集平均包长小的特征。对等僵尸交互端口上的流入流集和流出流集均具有小流特性。
[0025]所述小流过滤算法,步骤如下:
[0026](I)确定具有较小规模的本地(IP,Port)的流出流集;
[0027](2)确定具有较小规模的本地(IP,Port)的流入流集;
[0028](3)计算(I)中各流出流集的平均包长,不超过阈值的流出流集对应的(IP,Port)加入可疑列表1 ;
[0029](4)计算(2)中各流出流集的平均包长,不超过阈值的流出流集对应的(IP,Port)加入可疑列表2 ;
[0030](5)即在可疑列表1中,又在可疑列表2中的(IP,Port)加入算法输出的可疑列表中。
[0031]其中,确定具有较小规模的流入流集的原理如下(流出流集的与之类似):实际流量中流集的规模统计分布呈现重尾分布,而可疑流集均处于长尾之处。采用基于最大信息熵的流集规模判断方法来确定小规模流集,引入分散程度阈值,避免使用流集规模绝对阈值,以此减少在网络繁忙和网络空闲时段因流集规模波动引起的误差。
[0032](2)僵尸主机识别阶段:对可疑主机流依据时间序列上的统计相似性来识别僵尸主机。本发明的输入为一段时 间内的目标网络边界收集到的Netflow流网络流数据,输出为目标网络中被识别为僵尸主机的IP地址列表。
[0033]本发明在僵尸主机识别阶段,对小流过滤阶段得出的每个(IP,Port),计算其在多个连续等长时窗内流集合的平均包长统计分布,并对分布间的差异进行量化,最终形成该(IP,Port)在检测时间段内分布相似率,若该相似率超过设定阈值,则被判定为对等僵尸主机。在该阶段,包含有相似率测定、僵尸判定算法等。
[0034]所述相似率测定算法是用来测定一个给定的通信地址(IP,Port)上的流集序列的在统计意义上的相似率,为区分其是否为僵尸节点的通信提供判断基础。
[0035]相似率的定义:对于给定的(IP,Port),在η个连续的时间窗口 T1, T2,…,Tlri, Tn的流集(包括流入和流出两个)分别为F1, F2,…,Flri, Fn,每个流集内单条Netflow流的平均包长(PPl)的分布依次记为P1, P2,...,Pn-!, Pn,设两个连续分布的“距离” D (Ph,Pi)的值为Cli,即D (Pb,Pi) =Cli, l〈i〈=n,如果Cli超过某个预设定的阈值d,即φ>(1,则称流簇在第Ti^1个窗口的起始时刻发生了一次变化,表示IV1和Ti不具备相似性。设在整个检测过程中,流簇发生变化的次数为R,则地址(IP,Port)上的流集的平均包长分布相似率SR定义为:SR =(1- (R/n))*100%。
[0036]已知两个离散的随机变量分布P和Q,则它们之间的“距离”公式为:
[0037]D (P, Q) =KLD (P,M) +KLD (Q, M)
[0038]其中:(1)分布M为卩、0的函数分布,]?=(?+0)/2 ;
[0039](2) KLD (P, M)代表分布 P、M 之间的 Kullback-Leibler 距离,KLD (Q, M)代表分布Q、M 之间的 Kullback-Leibler 距离;
[0040](3) Kullback-Leibler 距离的计算公式为:[0041 ] 设有分布X和Y,则
【权利要求】
1.一种基于小流统计分析的对等僵尸主机识别方法,其特征在于分为两步: (1)小流过滤阶段:根据主机网络数据流的小流特性选择出可疑的主机数据流,该阶段往往能滤除网络中百分之九十以上的流量,以此来降低下一步处理的流量输入量和提升处理效率; 在此阶段,根据特定(IP,Port)对上在检测数据集时段内的所有Netflow流的统计特征进行提取、分析和计算,以此提取可疑的(IP,Port)对,并保留与之相关的Netflow流,削减了大部分的网络流量; (2)僵尸主机识别阶段:对可疑主机流依据时间序列上的统计相似性来识别僵尸主机,本方法输入为一段时间内的目标网络边界收集到的Netflow流网络流数据,输出为目标网络中被识别为僵尸主机的IP地址列表; 在此阶段,对小流过滤阶段得出的每个(IP,Port),计算其在多个连续等长时窗内流集合的平均包长统计分布,并对分布间的差异进行量化,最终形成该(I P,Port)在检测时间段内分布相似率,若该相似率超过设定阈值,则被判定为对等僵尸主机。
2.根据权利要求1所述的基于小流统计分析的对等僵尸主机识别方法,其特征在于:所述小流过滤阶段通过流集提取过程实现Netflow流的统计特征提取;所述流集提取过程是各个流入流集Ci (IP,Port)和流出流集Co (IP,Port)的提取过程,即给定Netflow流量文件,对于所监测网络内的所有(IP,Port),分别提取相应的Ci (IP,Port)和Co (IP,Port),并存储;其中所述流集是指一段时间内,某个(IP,Port)地址相关的所有Netflow流的集合;对于一个(IP,Port),有流入流集和流出流集之分,流入流集是指以给定(IP,Port)为目的地址的所有Netflow流的集合,记为Ci (IP,Port);流出流集是指以给定(IP,Port)为源地址的所有Netflow流的集合,记为Co (IP, Port)。
3.根据权利要求2所述的基于小流统计分析的对等僵尸主机识别方法,其特征在于:所述小流过滤算法,是以所有的流入流集Ci (IP,Port)和流出流集Co (IP,Port)为输入,根据其流量统计特征来判断该流集是否为可疑僵尸交互流量,算法输出为可疑僵尸(IP,Port)列表;本算法中选用的流量统计特征如下: (1)流集的规模,即流集中Netflow流的条数,记为fc(flow counts); (2)流集的平均包长,即流集中各条Netflow流的字节数之和除以各条 Netflow 流的数据包数之和,记为 fal (flow average length); 所述小流即小型流集,满足流集规模小、流集平均包长小的特征,对等僵尸交互端口上的流入流集和流出流集均具有小流特性。
4.根据权利要求3所述的基于小流统计分析的对等僵尸主机识别方法,其特征在于:所述小流过滤算法,步骤如下: (1)确定具有较小规模的本地(IP,Port)的流出流集; (2)确定具有较小规模的本地(IP,Port)的流入流集; (3)计算(1)中各流出流集的平均包长,不超过阈值的流出流集对应的(IP,Port)加入可疑列表1 ; (4)计算(2)中各流出流集的平均包长,不超过阈值的流出流集对应的(IP,Port)加入可疑列表2 ; (5)既在可疑列表1中,又在可疑列表2中的(IP,Port)加入算法输出的可疑列表中。
5.根据权利要求4所述的基于小流统计分析的对等僵尸主机识别方法,其特征在于:确定具有较小规模的流入流集和流出流集具体如下:实际流量中流集的规模统计分布呈现重尾分布,而可疑流集均处于长尾之处,采用基于最大信息熵的流集规模判断方法来确定小规模流集,引入分散程度阈值,避免使用流集规模绝对阈值,以此减少在网络繁忙和网络空闲时段因流集规模波动引起的误差。
6.根据权利要求1-5任一项所述的基于小流统计分析的对等僵尸主机识别方法,其特征在于:所述僵尸主机识别阶段,其中相似率的定义为:对于给定的(IP,Port),在η个连续的时间窗口 T1, T2,…,Tlri, Tn的流集分别为F1, F2,…,Fn+ Fn,每个流集内单条Netflow流的平均包长PPl的分布依次记为P1, P2,…,Plri, Pn,设两个连续分布的“距离” D (Pi+ Pi)的值为Cli,即D (Pi^ Pi) =Cli, l〈i〈=n,如果(Ii超过某个预设定的阈值d,即dpd,则称流簇在第Ti^1个窗口的起始时刻发生了一次变化,表示IV1和Ti不具备相似性; 设在整个检测过程中,流簇发生变化的次数为R,则地址(IP,Port)上的流集的平均包长分布相似率SR定义为:SR = (1- (R/n)) *100% ; 已知两个离散的随机变量分布P和Q,则它们之间的“距离”公式为:
D (P, Q) =KLD (P, M) +KLD (Q, M) 其中:(I)分布M为P、Q的函数分布,M=(P+Q) /2 ; (2)KLD (P, Μ)代表分布 P、M 之间的 Kullback-Leibler 距离,KLD (Q, Μ)代表分布 Q、M之间的 Kullback-Leibler 距离; (3)Kullback-Leibler距离的计算公式为:` 设有分布 X 和 Y,则1^1^^)= Σ 1o^a'(/)'}/(/)),X ⑴,Y ⑴
i 为别为分布X、Y的各个可能取值的概率值。
7.根据权利要求6所述的基于小流统计分析的对等僵尸主机识别方法,其特征在于:对于一定时段内,某个(IP,Port)的相似率计算方法采用滑动窗口算法来计算,具体如下: (1)定义基准窗口bw和待检窗口 dw:bw是指对两个窗口内的指定变量分布进行比较时,时序靠前的那个窗口,相应地,dw是指在bw之后时间窗口,两个窗口具有相同长度,记为wL ; (2)对给定的(IP,Port),比较bw和dw内相应流集的ppL分布;如果这两个分布的距离大于预设定的阈值,变化次数R增1,bw向前滑动至当前dw窗口处,dw向前滑动一个时间长度,否则,bw窗口保持不变,只是将dw向前滑动一个时间单位;然后重新开始分布的比较,以上过程直至到达数据源结束; (3)最后统计变化率C,即l-R/η,其中η为dw窗口滑动的次数。
8.根据权利要求6所述的基于小流统计分析的对等僵尸主机识别方法,其特征在于:所述僵尸主机的判定,具体为:在提取可疑(IP,Port)列表后,在相似率计算结果基础上,判断相似率是否大于设定阈值来确认该(IP,Port)是僵尸的交互地址,进而判断该IP主机感染僵尸。
【文档编号】H04L29/06GK103685184SQ201210342471
【公开日】2014年3月26日 申请日期:2012年9月14日 优先权日:2012年9月14日
【发明者】王力, 王斌斌, 贾大智 申请人:上海宝信软件股份有限公司