本发明涉及对网络异常进行检测的技术领域,特别是一种基于流量特征分布的全网络异常流识别方法。
背景技术:
当前,因特网环境中经常会出现各种网络异常事件,如僵尸网络,僵尸网络构成一个攻击平台,利用这个平台可以有效地发起各种各样的攻击行为,可以导致整个基础信息网络或者重要应用系统瘫痪,还可以导致大量机密或个人隐私泄漏;如蠕虫病毒爆发,通过漏洞传播的蠕虫,往往会在爆发初期形成较为严重的危害,大量的攻击和网络探测,会严重影响网络的运行速度甚至造成网络瘫痪;又如网络拥塞,当网络发生拥塞时,一般会出现数据丢失、时延增加、吞吐量下降,严重时甚至会导致拥塞崩溃。
为解决这些问题,通常需要检测网络异常流,然后对其识别、分类,但是,现有技术中的许多网络异常流识别方法都只能针对单条链路的各条IP流进行分析,例如,现有技术中有一种方法是基于关联规则的异常流识别方法,以及采用非监督根源分析的方法提出的一种异常流识别和分类方法,这两种方法不适于布设在大规模的骨干网上,而对于ISP(Internet Service Provider,网络服务提供商),必须动态的监视网络流量变化,并需要对网络流量具有全局性的视野,而随着网络规模和数据传输量的快速增长,对于骨干网上的每条流进行监控是项极为困难的任务。
而目前,对于适合对全网络的每条流都进行监控的方法,许多研究都主要关注异常检测问题,而针对异常识别的研究却比较少,但是如何从海量的IP流中识别出异常流并进行异常分类往往比异常检测对解决网络问题更为重要。例如,现有技术中有一种方法是将一部分流聚集起来,采用流聚合模型进行异常检测,虽然这种方法可以发现异常,但是流量聚集后却难以保留网络流量数据的许多关键信息,如IP地址、端口号等,由于信息的缺失,网络管理者虽然能检测到异常,但是却无法确定异常流的IP地址、端口号等流量特征值,也不能对异常流集进行分类,所以无法进行异常原因的分析,结果并不能解决检测到的网络问题。
基于上述原因,有必要提供一种基于流量特征分布的全网络异常流识别方法。
技术实现要素:
本发明主要解决的技术问题是提供一种基于流量特征分布的全网络异常流识别方法,解决现有技术中难以对全网络进行网络异常流检测、不能对全网络中的异常流进行识别,以及不能确定造成网络异常的原因的问题。
为解决上述技术问题,本发明采用的一个技术方案是:提供一种基于流量特征分布的全网络异常流识别方法,该方法包括:
步骤S1,对全网络中的网络数据流进行粗粒度的异常识别,从该全网络中提取出存在异常流量的节点对,并确定该异常流量的特征类别;
步骤S2,基于该步骤S1提取的异常节点对以及所确定的异常流量特征类别进行细粒度的异常识别,确定该异常节点对中的异常流量的特征值。
在本发明基于流量特征分布的全网络异常流识别方法的另一个实施例中,还包括步骤S3,该步骤S3基于该步骤S2确定的异常流量特征值从该步骤S1确定的异常节点对采集异常流集,并根据流量特征信息对该异常流集中的异常流进行分类。
在本发明基于流量特征分布的全网络异常流识别方法的另一个实施例中,该步骤S1包括以下步骤:
步骤S101,从该全网络中测量任意两个节点之间的测度为流量特征熵的流量值,由该流量特征熵建立多维流量特征熵矩阵;
步骤S102,根据该多维流量特征熵矩阵检测并提取出异常节点对,并识别该异常节点对中异常流量的特征类别。
在本发明基于流量特征分布的全网络异常流识别方法的另一个实施例中,该步骤S101中测量的流量特征熵包括网络数据流的源IP地址、目的IP地址、源端口号和目的端口号这四种流量特征的流量特征熵;
该多维流量特征熵矩阵中包括源IP地址的熵的矩阵、目的IP地址的熵的矩阵、源端口号的熵的矩阵和目的端口号的熵的矩阵,并对该多维流量特征熵矩阵降维及归一化处理,具体包括:将该多维流量特征熵矩阵中的源IP地址的熵的矩阵、目的IP地址的熵的矩阵、源端口号的熵的矩阵和目的端口号的熵的矩阵这4个特征子矩阵依次排列合并成一个多元矩阵,该多元矩阵的一个行向量作为一个样本;然后对该多元矩阵中的该4个特征子矩阵分别进行归一化处理。
在本发明基于流量特征分布的全网络异常流识别方法的另一个实施例中,采用多属性联合异常识别的方法在该归一化处理后的多元矩阵中检测并确定异常流量的特征类别以及该异常流量所对应的异常节点对,该多属性联合异常识别的方法具体包括如下步骤:
步骤D1,建立用于计算该多元矩阵中的一个样本的马氏距离的常态模型;
步骤D2,利用该常态模型从该多元矩阵中识别出异常样本;
步骤D3,采用重构分析的方法从该异常样本中识别出异常流量特征类别和对应的异常节点对。
在本发明基于流量特征分布的全网络异常流识别方法的另一个实施例中,该步骤D2中识别出该异常样本的方法具体包括以下步骤:
步骤D201,计算该多元矩阵中所有样本的马氏距离的均值;
步骤D202,依次将该多元矩阵中的样本的马氏距离与该均值进行比对,从该多元矩阵中识别出所有的异常样本。
在本发明基于流量特征分布的全网络异常流识别方法的另一个实施例中,该步骤D3中重构分析的方法包括以下步骤:
步骤D301,将异常样本中的任一元素修改;
步骤D302,计算重构误差,即计算该异常样本中的元素被修改前后该异常样本的马氏距离与该均值的差值,通过该差值判断该被替换的元素是否为异常流量特征熵,并抽取出该异常样本中的异常流量特征熵;
步骤D303,对该异常样本中的元素依次修改,按照该步骤D302的方法迭代的进行运算,不断抽取出该异常样本中的异常流量特征熵,直至该异常样本的马氏距离小于异常判别的阈值;
步骤D304,根据抽取出的该异常流量特征熵在该多元矩阵中对应的位置识别出该异常流量特征熵的流量特征类别,以及该异常流量特征熵对应的节点对。
在本发明基于流量特征分布的全网络异常流识别方法的另一个实施例中,该步骤S2包括以下步骤:
步骤S201,根据该异常流量特征类别从对应的异常节点对之间采集一个固定时间段内的网络数据流的流量特征值,该固定时间段作为一个周期,该固定时间段内采集的网络数据流的流量特征值作为一个样本;
步骤S202,根据该步骤S201的方法采集多个样本建立流量特征分布矩阵,每个样本作为该流量特征分布矩阵的一个行向量,并从该流量特征分布矩阵中识别出异常流量特征值。
在本发明基于流量特征分布的全网络异常流识别方法的另一个实施例中,该步骤S202中从确定异常流量特征值的方法具体包括以下步骤:
步骤F1,将该流量特征分布矩阵中的每个样本中的一个元素替换为相邻的前一个样本的对应位置的元素,计算该元素被替换前后对应的样本的马氏距离的差值;
步骤F2,判读该被替换的元素是否异常;
步骤F3,迭代的计算抽取出该流量特征分布矩阵中的一个样本中的异常流量特征值;
步骤F4,通过该步骤F1、步骤F2和步骤F3对该流量特征分布矩阵中的所有样本中的元素进行判断,抽取出该流量特征分布矩阵中所有的该异常流量特征值。
在本发明基于流量特征分布的全网络异常流识别方法的另一个实施例中,
该步骤S3中具体通过采用流量特征图法对该异常流集中的异常流进行分类,该流量特征图法包括:
步骤一,将用于代表异常流的流量特征信息的标示符用线段连接起来建立数学模型;
步骤二,通过该数学模型对该异常流集中的异常流的流量特征信息进行统计和显示,该线段采用两种不同的颜色代表具有该线段两端流量特征信息的异常流的增加和减少,且该线段的粗细表示网络异常发生时具有该线段两端流量特征信息的异常流的变化量;
步骤三,通过对该数学模型进行分析,推断造成网络异常的原因。
本发明的有益效果是:本发明基于流量特征分布的全网络异常流识别方法首先对全网络中的网络数据流进行粗粒度的异常识别,从全网络中提取出存在异常流量的节点对,并确定异常流量的特征类别,然后基于提取的异常节点对进行细粒度的异常识别,确定异常流量特征值,最后再基于前述确定的异常流量特征值从异常节点对采集异常流集。本发明采用分层次的方法对全网络中的网络数据流进行异常流识别,即先进行粗粒度的识别,然后再进行细粒度的识别,既提高了准确率,又不会带来巨大的测量和计算的工作量;精确的对全网络中的异常节点对进行定位,以及获取该异常节点对中异常流量的IP地址、端口号等流量特征值。本方法还可基于流量特征图法对采集的异常流集进行分类,并确定造成网络异常的原因,为解决网络异常问题提供支持。
附图说明
图1是本发明基于流量特征分布的全网络异常流识别方法实施例1的流程图;
图2是本发明实施例1提供的步骤S1的具体的流程图;
图3是本发明实施例1利用仿真平台建立的的网络拓扑配置示意图;
图4是本发明实施例1提供的步骤S101中的多维流量特征熵矩阵的示意图;
图5是本发明实施例1中的采用的多属性联合异常识别的方法具体流程图;
图6是本发明实施例1中仿真平台上的异常检测结果;
图7是本发明实施例1中仿真平台上多属性联合异常识别结果;
图8是本发明实施例1提供的步骤S202中确定异常流量特征值的方法的具体流程图;
图9是本发明实施例1中目的端口号这一流量特征分布的马氏距离的一阶差分的时间序列;
图10是本发明实施例1中对网络异常流进行分类的流量特征图。
具体实施方式
为了便于理解本发明,下面结合附图和具体实施例,对本发明进行更详细的说明。附图中给出了本发明的较佳的实施例。但是,本发明可以以许多不同的形式来实现,并不限于本说明书所描述的实施例。相反地,提供这些实施例的目的是使对本发明的公开内容的理解更加透彻全面。
需要说明的是,除非另有定义,本说明书所使用的所有的技术和科学术语与属于本发明的技术领域的技术人员通常理解的含义相同。在本发明的说明书中所使用的术语只是为了描述具体的实施例的目的,不是用于限制本发明。下面结合附图和具体实施例对本发明进行详细描述。
实施例1
请参阅图1,图1是本发明基于流量特征分布的全网络异常流识别方法实施例1的流程图,如图1所示,该方法包括:
步骤S1,对全网络中的网络数据流进行粗粒度的异常识别,从全网络中提取出存在异常流量的节点对,并确定异常流量的特征类别。
一个ISP(Internet Service Provider,网络服务提供商)的全网络包括骨干网以及与该骨干网相连接的局域网,网络范围大且流量数据多,要想直接识别出异常流量以及确定该异常流量的特征值,需要采集的数据量会十分庞大,且如何从如此庞大的数据量中识别出异常流量和异常流量的特征值也是一个难以攻克的问题。
通信传送网络中的节点,是指信号的交叉连接点,包括业务分插交汇点、网络管理系统的切入点、信号功率的放大点以及传输中的数字信号的再生点等等。异常节点对是指两个节点,但是该两个节点之间存在异常流量的传输。
本发明提供的方法首先从全网络中识别出异常流量的特征类别,同时识别出该异常流量来源于哪一对异常节点对,并抽取出全网络中的异常节点对,以及记录该该异常节点对中的异常流量的特征类别。
步骤S2,基于步骤S1提取的异常节点对进行细粒度的异常识别,确定异常节点对中的异常流量的特征值。
由步骤S1中提取出的异常流量的特征类别以及产生该异常流量的节点对只是全网络粗粒度的异常流识别,这种程度的识别不能够为解决网络异常问题提供支持,还需在此基础上进一步确定异常流量的流量特征值,比如,确定异常流量的源IP地址、目的IP地址、源端口号和目的端口号等流量特征的流量特征值。
步骤S3,基于步骤S2确定的异常流量特征值从步骤S1确定的异常节点对中采集异常流集,对该异常流集进行分类即可查找出全网络中存在异常的原因。
图2是本发明实施例1提供的步骤S1的具体的流程图。如图2所示,具体包括:
步骤S101,从全网络中测量任意两个节点之间的测度为流量特征熵的流量值,由流量特征熵建立多维(包含多种流量特征类别)流量特征熵矩阵。
为便于说明,先介绍本发明使用的一些定义及概念如下。
定义1:流量特征熵
假定随机地观察网络数据流的流量特征Y,观察的样本总数为S,样本特征值的取值个数为Q,其中特征值i出现了Si次,那么流量特征熵定义为:
其中,
样本熵是用来衡量样本分布聚散程度的一种测度,当样本聚集程度最大时,即样本观察值相同时,流量特征熵取得最小值为0,当样本分散程度最大时,流量特征熵取得最大值为log2Q。
本发明采用的流量测度为流量特征熵,基于熵的方法相对于基于流量特征值的大小的方法对数据采样率不会过于敏感,即使由于使用采样的测量方法而导致异常流量采集的稀疏了,但仍然能够发现异常流量,并保持较高的检测率和较低的误报率。
定义2:流量矩阵
假设某自治系统有n个节点,以一定的周期连续地被动测量任意一对节点之间的流量,流量的流出节点为源节点,流入节点为目的节点,这样测量的流量特征值就可记为源-目的流量特征值,然后将测量的流量特征值排列成一个N*D的矩阵X,矩阵X就称为该自治系统的流量矩阵。其中,N表示测量的周期数,通常将每个周期的测量值作为一个样本,因此N为样本数,D表示测量的流量特征值的个数。流量矩阵第i行表示由第i个周期测量获得的所有流量特征值组成的向量;第j列表示各个测量周期在第j对节点之间测量的流量值组成的向量。
这里,被动测量是指一种在链路或设备(如路由器,交换机等)上对网络进行监测,而不需要产生流量的测量方法。被动测量在测量时并不增加网络上的流量,测量的是网络上的实际业务流量,不会增加网络的负担。
下面对多维流量特征熵矩阵进行说明。
多维流量特征熵矩阵也是一种流量矩阵,只是它包含了多种流量特征类别的流量特征熵,比如,该多维流量特征熵矩阵包括源IP地址、目的IP地址、源端口号和目的端口号这四种流量特征的流量特征熵。
由于网络异常往往会造成多种流量特征分布发生显著的改变,为了能够在网络数据流中检测出异常并进行异常节点对的定位和异常流量的特征值的确认,就必须对多种流量特征进行分析以识别出相应的发生改变的流量特征,而如果孤立的只使用一种流量特征或一个节点对的数据可能会因为异常特征不够突出而发生漏报。所以本发明方法采用多维流量特征熵矩阵作为进行异常流识别的数据源。
采用一个方案对步骤S101进行具体说明。比如,采用仿真平台进行实验,选择并搭建美国南加州大学提出的DETERLab(cyber-defense technology experimental research laboratory testbed)安全实验平台。实验设置8个PoP节点(全网络中远远多于8个PoP节点,由于实验条件的限制,这里仅设置8个PoP节点),并为各PoP节点增设一个采集设备,采集设备和PoP节点都是网络中的节点,每一台采集设备都可采集所有8个PoP节点的流量,这样就形成了64个节点对,这64个节点对之间存在异常流量的节点对被称为异常节点对。在计算机网络中,POP(pop-point-of-presence)节点是指入网点,通常包括路由器、数字模拟电话集合器、服务器、帧中继或ATM交换机。
节点的拓扑配置如图3所示,图3是本发明实施例1利用仿真平台建立的的网络拓扑配置示意图。图3中包括POP1、POP2、POP3、POP4、POP5、POP6、POP7、POP8共8个POP节点,每个POP节点均连接一台采集设备,POP节点是源节点,即输出流量的节点,采集设备是目的节点,即接收流量的节点,图中的OD流表示由源节点到目的节点的流量,OD流即采集设备所采集的流量数据。
实验时间持续1个星期,每5分钟采集一次数据,记为一个采集周期,共采集2016个周期,该采集的流量数据的测度为流量特征熵。
依次在选定的1至8个节点对上注入多种不同类型的异常流量,注入异常的时间、位置和类型如表1所示,表1中的“OD”代表节点对。
表1仿真实验设置
步骤S102,根据多维流量特征熵矩阵检测并提取出异常节点对,并识别异常节点对中异常流量的特征类别。
多维流量特征熵矩阵采用的是流量特征的聚合统计量,只能识别全网络中粗粒度的异常流量,即进行异常流量特征类别的确定和异常节点对的定位,但是由于全网络的网络范围太广且网络数据流庞大,直接采集全网络中的网络数据流的流量特征值,可能会由于采集的数据稀疏而检测不出异常,而本发明采用的流量测度为流量特征熵,基于熵的方法相对于基于流量特征值的大小的方法能够保持较高的检测率和较低的误报率。
图4是本发明实施例1提供的步骤S101中的多维流量特征熵矩阵的示意图。步骤S101中测量的流量特征熵包括网络数据流的源IP地址、目的IP地址、源端口号和目的端口号这四种流量特征类别的流量特征熵;如图4所示,多维流量特征熵矩阵中包括H(dstIP)、H(srcIP)、H(srcPort)和H(dstPort)这四个矩阵,其中,SrcIP(Source IP)是指网络数据流的源IP地址,dstIP(destination IP)是指网络数据流的目的IP地址,SrcPort(Source Port)是指网络数据流的源端口号,dstPort(destination Port)是指网络数据流的目的端口号。
每个流量特征对应一个流量特征熵矩阵,每个矩阵包含一段时间内测量的多个周期,每个周期包含多个测量值。四个矩阵分别对应为:源IP地址的熵的矩阵101-1,该矩阵是测量网络数据流的源IP地址的熵作为该矩阵的元素;目的IP地址的熵的矩阵101-2,该矩阵是测量网络数据流的目的IP地址的熵作为该矩阵的元素;源端口号的熵的矩阵101-3,该矩阵是测量网络数据流的源端口号的熵作为该矩阵的元素;目的端口号的熵的矩阵101-4,该矩阵是测量中网络数据流的目的端口号的熵作为该矩阵的元素。
建立多维流量特征熵矩阵后,需要对该多维流量特征熵矩阵降维及归一化处理,具体包括:将多维流量特征熵矩阵中的源IP地址的熵的矩阵、目的IP地址的熵的矩阵、源端口号的熵的矩阵和目的端口号的熵的矩阵这4个特征子矩阵依次排列合并成一个多元矩阵,多元矩阵的一个行向量作为一个样本;然后对多元矩阵中的4个特征子矩阵分别进行归一化处理,这里的归一化处理是指对矩阵中的数据进行处理,使每一种流量特征所对应的数据在该矩阵中占比相差不大。
将多元矩阵中的数据进行归一化处理是为了使检测均衡全面,如果该多元矩阵的4种流量特征类别的数据中的一种或几种在该多元矩阵中的数据占比过多,则会偏重于该流量特征熵数据的检测,造成检测不全面,所以进行归一化处理之后才能对该多元矩阵进行分析以确定异常的流量特征熵以及该流量特征熵所对应的节点对。
对于归一化处理后的多元矩阵,需要在该多元矩阵中检测并确定异常流量的特征类别以及异常流量所对应的异常节点对,本发明采用多属性联合异常识别的方法。
图5是本发明实施例1中的采用的多属性联合异常识别的方法具体的流程图,如图5所示,多属性联合异常识别的方法具体包括如下步骤:
步骤D1,建立用于计算所述多元矩阵中的一个样本的马氏距离的常态模型;
这里的常态模型是一个隐变量概率模型,通过该常态模型能够计算多元矩阵中的样本的马氏距离,并通过马氏距离判别多元矩阵中的样本是否异常。
步骤D2,利用所述常态模型从所述多元矩阵中识别出异常样本;
步骤D3,采用重构分析的方法从所述异常样本中识别出异常流量特征类别和对应的异常节点对。
因为将可能存在异常流量特征熵的多元矩阵与常态模型进行对比,才能够识别出异常的测量值,所以这里建立常态模型。常态模型是不含有异常流量的用来与进行对比的数据源。
其中,步骤D2中识别出异常样本的方法具体包括以下步骤:
步骤D201,计算多元矩阵中所有样本的马氏距离的均值;
步骤D202,依次将多元矩阵中的样本的马氏距离与均值进行比对,从多元矩阵中识别出所有的异常样本。
其中,马氏距离是用来衡量两个数据样本之间的相似度的,如果这两个样本用两个样本矩阵表示,其中一个样本矩阵中的数据的协方差就是该样本矩阵的马氏距离,同样,另一个样本矩阵也有对应的马氏距离,如果算出来的两个马氏距离越接近,那么可以认为这两个样本的相似度越高。通过采用控制图来判读多元矩阵中的样本是否异常,这里,控制图(Control chart)是一种对样本中的数据的一些特性值进行记录并评估该样本是否处于正常状态的图形方法,主要用于发现样本是否出现了异常情况。观察控制图,当多元矩阵的样本的马氏距离值偏离常态模型的马氏距离的均值超过3倍标准差时,即判断多元矩阵的该样本异常,记为异常样本。对于前述的仿真实验,图6是本发明实施例1中仿真平台上的异常检测结果图,该图即为控制图,横坐标代表周期,纵坐标代表马氏距离。如图6所示,其中的虚线对应的值3100为检测阈值,即常态模型的马氏距离的均值,马氏距离超过该阈值3100即判定该时间点检测的流量数据存在异常,图中显示存在8个异常样本,与表1中设定的相符合。
对多元矩阵中的所有样本进行判断,抽取出所有的异常样本。接下来,从多元矩阵中抽取出异常样本后,还需要进一步确定该样本的哪些流量特征发生了异常,以及对发生异常的节点对进行定位,该步采用步骤D3中重构分析的方法进行异常样本的异常流量特征类别的确定和异常节点对的定位。
步骤D3中重构分析的方法包括以下步骤:
步骤D301,将异常样本中的任一元素修改,这里的修改是指对异常样本中的任一元素进行替换为其他流量特征熵的值,然后再进行计算,以确定被替换的元素是否异常。
步骤D302,计算重构误差,即计算异常样本中的元素被修改前后异常样本的马氏距离与均值的差值,通过差值判断被替换的元素是否为异常流量特征熵,并抽取出异常样本中的异常流量特征熵。
步骤D303,对异常样本中的元素依次修改,按照步骤D302的方法迭代的进行运算,不断抽取出异常样本中的异常流量特征熵,直至异常样本的马氏距离小于异常判别的阈值。
步骤D304,根据抽取出的异常流量特征熵在多元矩阵中对应的位置识别出异常流量特征熵的流量特征类别,以及异常流量特征熵对应的节点对。
对于前述的仿真实验,图7是本发明实施例1中仿真平台上多属性联合异常识别结果,采用检测出的异常进行异常节点对的定位和异常特征类别的识别。图7中的横坐标是元素在矩阵中的列数,纵坐标中的“重建误差”是指异常样本中的元素被替换前后异常样本的马氏距离的差值,该差值超过阈值即说明该元素对应的OD对存在异常。
如图7所示,图7仅对检测得到的第1个和第4个异常的识别结果进行了表示:图7(a)中对应于横坐标69的重构误差超过了阈值,由于流量特征熵联合矩阵是按照srcIP,dstIP,srcPort,dstPort横向排列的,且每个子矩阵都是64列(由于该仿真实验有64个OD对,所以每个子矩阵都是64列),故横坐标69实际对应于流量特征dstIP上的OD5(节点对),识别结果与实验设定相符;图7(b)中无单个节点对的重构误差超过阈值,需要进行多异常节点对定位,输出为横坐标201,203,205,207,即存在4个异常节点对,分别对应于流量特征dstPort上的OD9,OD11,OD13,OD15,也与设定相符。
从全网络中提取出异常流特征类别和异常节点对后,需由步骤S2确定异常流的细粒度的流量特征值,包括以下步骤:
步骤S201,根据所述异常流量特征类别从对应的异常节点对之间采集一个固定时间段内的网络数据流的流量特征值,所述固定时间段作为一个周期,所述固定时间段内采集的网络数据流的流量特征值作为一个样本。
为便于理解,下面对“流量特征分布矩阵”这一概念进行解释。
定义3:流量特征分布矩阵
以一定的周期连续地对流经的网络数据流按某种流量特征进行测量统计,然后将该测量值排列成一个N’×D’的矩阵X’,矩阵X’称为流量特征分布矩阵,其中,N’表示测量的周期数,通常我们将每个周期的测量值作为一个样本,因此N’为样本数,D’表示某种流量特征的取值个数,矩阵X’中的每一个元素都是一个流量特征值。
步骤S202,根据所述步骤S201的方法采集多个样本建立流量特征分布矩阵,每个样本作为所述流量特征分布矩阵的一个行向量,并从所述流量特征分布矩阵中识别出异常流量特征值。
本发明使用的流量特征包括源端口和目的端口以及源IP地址和目的IP地址,由于全网络中总的端口号数目为2^16,而IP地址的数目为2^32,在进行流量特征分布的统计时,采集的数据会占用大量的存储空间。但网络数据流的流量特征分布并不是均匀的,流量特征分布矩阵也是稀疏的,所以可以采用紧缩的数据表示方法建立模型。
图8是本发明实施例1提供的步骤S202中确定异常流量特征值的方法的具体流程图,如图8所示,步骤S202中从确定异常流量特征值的方法具体包括以下步骤:
步骤S202中从流量特征分布矩阵中确定异常流量特征值的方法具体包括以下步骤:
步骤F1,将流量特征分布矩阵中的每个样本中的一个元素替换为相邻的前一个样本的对应位置的元素,计算元素被替换前后对应的样本的马氏距离的差值;
步骤F2,判读被替换的元素是否异常;
步骤F3,迭代的计算抽取出流量特征分布矩阵中的一个样本中的异常流量特征值;
步骤F4,通过步骤F1、步骤F2和步骤F3对流量特征分布矩阵中的所有样本中的元素进行判断,抽取出流量特征分布矩阵中所有的异常流量特征值。也就是迭代的抽取出样本上造成其异常的对应的成分,直至该样本的马氏距离小于异常判别的阈值。
对于前述仿真实验,结合步骤S202将确定的异常流量特征属性上的节点对抽取出来,采用细粒度的异常流识别算法确定异常流集。这里仅列举一例,如图9,图9是本发明实施例1中目的端口号这一流量特征分布的马氏距离的一阶差分的时间序列。图9显示的是采用流级检测器对上文确定的OD9,OD11,OD13,OD15的dstPort的特征分布进行异常检测所得结果,方法是对相邻周期特征分布直方图间的马氏距离的一阶差分进行判读。该方法只在异常开始和结束时产生警报,如图上所示的在800时刻和839时刻超出了检测阈值。采用重构误差分析的方法可以确定异常流特征值为dstPort:445,将OD9,OD11,OD13,OD15上所有目的端口为445的IP流抽取出来,即构成一个异常流集。
最后,确定了异常流量的特征值以及产生该异常流量的节点对后,根据抽取出的异常流量特征值从对应的所述异常节点对之间采集异常流集,完成异常流集的采集后,再通过对异常进行分类,确定造成网络异常的原因,网络管理者就可以有针对性的应对网络异常问题了。
所以,本发明还包括步骤S3,步骤S3基于步骤S2确定的异常流量特征值从步骤S1确定的异常节点对采集异常流集,并根据流量特征信息对该异常流集中的异常流进行分类。
请参阅图10,图10是本发明实施例1中对网络异常流进行分类的流量特征图。
从全网络中采集异常流集,并记录每条异常流的以下流量特征信息:源端口号(srcPort)和目的端口号(dstPort)、源IP地址(srcIP)和目的IP地址(dstIP)、源自治系统号(srcAS)和目的自治系统号(dstAS)、输入接口(input interface)和输出接口(output interface)、以及协议类型(protocol),共9个流量特征。
为了便于理解该分类方法,下面对本申请中的一些概念进行解释。
自治系统号(srcAS),互联网由无数个AS(autonomous system,自治系统)组成,每个AS对应一个唯一的16位号码,这个号码即自治系统号。源自治系统号(srcAS)是指产生该异常流的自治系统的号码,目的自治系统号(dstAS)是指接收该异常流的自治系统的号码。
IP地址,IP地址被用来给互联网上的电脑一个编号,每台联网的电脑上都需要有IP地址,才能正常通信。源IP地址(srcIP)是指产生该异常流的电脑的IP地址,目的IP地址(dstIP)是指接收该异常流的电脑的IP地址。
端口,端口是通过端口号来标记的,范围是从0到65535。端口就是特定软件或程序的接口,数据发送时计算机会在数据段上添上本机端口号(源端口号)和目的主机接收数据的端口号(目的端口号),数据包通过网络设备走的时候,第一个检查的就是这个数据包的目的地址在什么地方。
接口,电脑中的芯片都有一个或几个接口,一个接口对应于接口芯片内部的一个寄存器或一组寄存器,计算机系统要为每个接口分配一个地址,各个接口的地址是唯一的,不能重复。输入接口(input interface)是指产生该异常流的电脑中的接口的地址,输出接口(output interface)是指接收该异常流的电脑中的接口的地址。在信息传送过程中,接口起着数据锁存、数据缓冲、输入/输出、联络、数据转换、中断管理、时序控制、可编程、电器特征匹配等作用。
如图10所示,采用流量特征图法对过滤筛选后的异常流进行分类,流量特征图用以表示流量从源节点通过网络到目的节点的各种流量特征的信息。建立流量特征图的具体过程如下:
步骤一,将用于代表异常流的流量特征信息的标示符用线段连接起来建立数学模型,图10中采用三角形的标示符代表每种流量特征信息,当然,也可以采用圆形、长方形等其他形状的符号来进行标示。
步骤二,通过数学模型对异常流集中的异常流的流量特征信息进行统计和显示,线段采用两种不同的颜色代表具有该线段两端流量特征信息的异常流的增加和减少,且线段的粗细表示网络异常发生时具有线段两端流量特征信息的异常流的变化量。
该数学模型中的每根线段连接两个流量特征信息标示符,线段的颜色为红色(图中未示)则表示具有该线段两端流量特征信息的异常流增加,线段为蓝色则表示具有该线段两端流量特征信息的异常流减少。线段越粗则表示流量变化越大,即线段为红色且越粗则表示异常流增加越多,线段为蓝色且越粗表示异常流减少越多。
步骤三,通过对该数学模型进行分析,推断造成网络异常的原因。如图10,图中除了虚线部分,其余线段均为红色(图中未示)且线段变粗,所以,从图中可以看出具有图中流量特征信息的异常流量大量增加。图中的数字“1323”代表有1323个目的IP地址(dstIP),但却只有一个目的端口(dstPort),因此可以推测该异常为攻击者正在对多台计算机进行扫描,以寻找攻击对象。
基于以上实施例,本发明提供的基于流量特征分布的全网络异常流识别方法首先对全网络中的网络数据流进行粗粒度的异常识别,从全网络中提取出存在异常流量的节点对,并确定异常流量的特征类别,然后基于提取的异常节点对进行细粒度的异常识别,确定异常流量特征值,最后再基于前述确定的异常流量特征值从异常节点对采集异常流集。本发明采用分层次的方法对全网络中的网络数据流进行异常流识别,即先进行粗粒度的识别,然后再进行细粒度的识别,既提高了准确率,又不会带来巨大的测量和计算的工作量;精确的对全网络中的异常节点对进行定位,以及获取该异常节点对中异常流量的IP地址、端口号等流量特征值,且本发明提供的方法还可以对该异常流集进行分类,从而判断造成网络异常的原因。
以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等效变换,或直接或间接运用在其他相关的技术领域,均包括在本发明的专利保护范围内。