首页> 中国专利> 一种分布式异常检测网络数据流的方法

一种分布式异常检测网络数据流的方法

摘要

本发明涉及一种分布式异常检测网络数据流的方法,包括以下步骤:步骤S1:设终端设备与网络的连接接口的一结点为普通结点,每个检测点监测一普通节点,用以检测普通节点处是否存在异常数据包;步骤S2:采用三种检测方法进行层次化的异常检测,第一层检测采用基于特征匹配的异常检测方法,第二层检测采用基于统计分析的异常检测方法,第三层采用基于机器学习与数据挖掘的异常检测方法:步骤S3:利用普通结点进行检测点之间的信息共享,则所有检测点的特征库进行有效更新。本发明可以减少检测点的数量,同时使得各检测点负载均衡,也可以有效保护终端设备,并减少网络中异常包的数量,以及确保数据的精度。

著录项

  • 公开/公告号CN105187411A

    专利类型发明专利

  • 公开/公告日2015-12-23

    原文格式PDF

  • 申请/专利权人 福建省海峡信息技术有限公司;

    申请/专利号CN201510506829.3

  • 发明设计人 蓝友枢;陈健;张章学;叶松;

    申请日2015-08-18

  • 分类号H04L29/06(20060101);

  • 代理机构35100 福州元创专利商标代理有限公司;

  • 代理人蔡学俊

  • 地址 350003 福建省福州市北环中路61号海峡信息大楼

  • 入库时间 2023-12-18 13:04:21

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2018-09-14

    授权

    授权

  • 2016-01-20

    实质审查的生效 IPC(主分类):H04L29/06 申请日:20150818

    实质审查的生效

  • 2015-12-23

    公开

    公开

说明书

技术领域

本发明涉及网络技术领域,特别是一种分布式异常检测网络数据流的方法。

背景技术

网络数据流异常是指对网络传输造成影响,导致终端用户无法正常使用的现象。数据流异常会对网络的性能造成一定程度的影响,消耗设备资源,严重时甚至可能导致网络瘫痪。例如:分布式拒绝服务攻击,攻击者通过控制多台不同IP地址的计算机,对某个服务器进行攻击,通过发送大量的数据报文,不仅使服务器资源使用率过高,还占用网络带宽,造成网络拥堵,甚至服务器瘫痪。使得正常用户的正常请求无法得到服务器的响应。因此,检测网络数据流出现的异常并采取一定措施进行处理,以保障网络安全就显得尤为重要。

该领域研究中根据异常检测的检测点部署位置的不同,可分为单点的异常检测和分布式的异常检测。

单点的异常检测是通过在单个主机上配置检测系统,来识别主机上出现的异常,它可以针对主机异常进行细致的分析并发出警报,对检测小型网络的主机异常具有较好的性能。但随着网络规模的不断扩大,对每个主机设置检测节点的成本太高,弊端凸显。而且这种方式无法了解网络的流量信息,只能对主机异常进行检测。

分布式异常检测作为异常检测的一种方法被广泛应用于网网络安全领域。它的主要思想是在要监测的网络中设置多个检测点和一个处理中心,通过彼此的协同工作完成异常数据流的检测。通常采用抽样检测的方式检测部分的网络数据流,通过处理和分析,判断整个网络中的异常数据流情况。

网络数据流的异常检测的典型分布式逻辑结构主要有两大类。第一类是分布式的数据搜集,集中式的数据处理;第二类是分层结构的数据搜集和处理。

第一类分布式的数据搜集,如图4所示,集中式的数据处理中需要两类监测点:探测节点和分析节点。其中探测节点负责收集网络信息,中心分析节点负责所有的计算和分析任务。这种结构的优点主要体现在数据的准确度比较高,因为数据搜集完成后直接交由分析结点处理,没有经过其他途径。但其缺点是,一个分析结点负责多个搜集结点,造成分析结点的负载过重。

第二类分层结构的数据搜集和处理需要配置多个分析节点,如图5所示,通过节点的深度分为高层节点和底层节点。底层分析节点收集处理后的信息输出给高层分析节点,由高层分析节点进行彼此关联分析。这种结构的优点体现在使用分层的结构,使得各个分析结点的负荷大大降低。但缺点是在数据搜集后需要经过层层的分析处理并向上层节点传递,使得每经过一层,数据的精确度便有所降低,导致高层的分析结点很难准确的对当前网络状况进行判断。

对检测点进行部署后,在单个检测点上进行异常检测的技术主要分为三类:

1、基于特征匹配的异常检测技术,其主要思想是:特征库中存储下已知异常的特征数据,检测点通过提取数据流的相应特征属性,与特征库进行匹配来确定数据流的异常情况。该匹配又分为模糊匹配和完全匹配。模糊匹配,当相似率超过指定阈值,则认为异常。完全匹配,只有当相似率达到百分之百的时候,才认定为异常。这种方法可以根据已有的异常数据流特征库检测出特征库中存在的异常,具有较高的准确性和可靠性。但是这种方法只能对已知的异常进行检测,无法识别未知的异常数据流。

2、基于统计分析的异常检测技术,其主要思想是:统计网络中一段时间内的数据流信息,建立某种数学模型,统计分析得到一个阈值,用以区分正常流和异常流。例如:获取某时间段数据流携带的所有数据包,通过计算得到数据包的出现频率,频率超过某阈值者视为正常数据流,否则视为异常。这种方法不需要事先知道异常数据流的具体行为特征,可以防范新出现的异常。但合理的阈值的确定成为这种方法的难点,阈值设定太高,会导致一些异常无法检测出来,系统漏报率增加;阈值设定太低会导致正常数据流的误判,即某些正常数据流会被当做异常数据处理。

3、基于机器学习和数据挖掘的异常检测技术,其主要思想是:通过采集大量的数据,进行分析,得出异常情况。如今的数据挖掘的方法已有许多,如分类算法,聚合算法,神经网络算法,模式分析等。这种方法既可以检测已知的异常流,也可以检测位置的异常流,可以对大量数据进行关联分析。但是处理的数据量较大,计算量大,会消耗较多的系统资源。

发明内容

有鉴于此,本发明的目的是提供一种分布式异常检测网络数据流的方法,在保护终端的同时可实现分布式检测网络数据流。该方法可以有效减少整个网络中的异常包,并防止终端接受异常包;将检测点置于终端与网络的连接口,可以有效减少检测点的负载,则检测结点硬件制作的成本可降低,同时检测与分析集成于一体,不会出现分层的数据精度丢失。

本发明采用以下方案实现:一种分布式异常检测网络数据流的方法,具体包括以下步骤:

步骤S1:部署N个检测点:设终端设备与网络的连接接口的一结点为普通结点,所述检测点独立于所述普通结点之外;所述检测点与所述普通结点相连,每个检测点监测一普通节点,用以检测普通节点处的终端设备发送的异常数据包同时防止该终端接收到网络中的异常数据包;

步骤S2:检测点监测异常网络数据流:采用三种检测方法进行层次化的异常检测,第一层检测采用基于特征匹配的异常检测方法,第二层检测采用基于统计分析的异常检测方法,第三层采用基于机器学习与数据挖掘的异常检测方法:

步骤S3:检测点进行信息共享:利用普通结点进行检测点之间的信息共享,则所有检测点的特征库进行有效更新。

进一步地,所述步骤S1具体包括以下步骤:

步骤S11:提供N个终端设备以及与每个终端设备相连的路由器或交换机,即存在N个路由器或者交换机,在每个路由器或交换机上均设置一个检测点,形成一检测点集合D={Di|i=1,2,3…N};

步骤S12:进行特征库设计,所述特征库包括特征串与特征值;其中所述特征串为一定长度的字符串,所述特征值为所述特征串中的每个字符进行异或得到的结果;所述特征库设计采用链表设计,每种长度的特征串连成一个链表;

步骤S13:初始化所有检测点,将已知的异常数据流的特征信息的特征库布置到检测点中,并将所述检测点连接到对应的路由器或交换机上,则所述检测点通过所连接的路由器或交换机对网络数据流进行分析。

较佳的,网络中的每个结点为普通结点,这些被监测的普通结点都是与终端有直接相连的。出于对终端机器的保护,以及减少由终端机器发给送到整个网络线路中的异常包,在终端机器与整个网络的连接接口处,布置检测点,一个检测点只对这个接口进行负责,降低检测点的负载,从而降低对检测点的硬件要求,达到降低成本的效果。这个检测点不仅可以检测终端机器发送出去的异常包,而且可以防止该终端接收到来自网络中的异常数据包,大大增加了安全性。

进一步地,所述步骤S2中第一层检测采用基于特征匹配的异常检测方法具体包括以下步骤:

步骤S211:假设特征库内的特征集合用C={Ci|i=0,1,2…}表示;

步骤S212:所述检测点接收网络数据流时,即所述网络数据流通过检测点检测的路由器或者交换机的时,所述检测点提取数所述网络数据流的特征串和特征值,所述特征串包括IP地址、端口号以及协议类型;设定所述特征串长度为L,则将所述特征串总每个字符相异或得到一对应的特征值T,采用以下公式得到特征值T:其中所述特征串L为AB……;

步骤S213:假设特征库中长度与特征值T相同的特征串有m个,则j=1,2,3,…,m,则Cij为该长度下的特征值;所述检测点判断是否为零,若不等于0,则所述特征串与该特征值不匹配,忽略该特征串;若等于0,则所述特征串与该特征值匹配,保留该特征串,进行下一次的完整匹配;

步骤S214:经过所述步骤S213的筛选,对保留下的特征串采用BF算法进行完整匹配,所述BF算法具体为将目标特征串的第一个字符与模式特征串的第一个字符进行匹配,判断两者是否相等;若相等,则继续比较所述目标特征串的第二个字符与所述模式特征串的第二个字符;若不相等,则比较所述目标特征串的第二个字符和所述模式特征串的的第一个字符,依次比较下去,直到得出最后的匹配结果;若所述目标特征串与所述模式特征串匹配成功,则该数据流为异常数据流,若未匹配成功则进入下一层检测。

特别的,这一层的检测过程中,由于先建立起了保存异常数据流特征信息的特征库。异常数据流的特征信息可包括报文的负载特征、传输特征、连接的特征等。当数据流通过检测点的时候,检测点首先提取该数据流的特征信息,通过完全匹配的方法,将其与特征库中已有的特征属性进行匹配,如果匹配的相似率达到百分之百,则认定该数据流为异常数据流,发出警告,提醒网络管理者进行异常处理。采用该方法可以简单的去除已知的异常流,而其余的数据流则进行下一层检测。

进一步地,所述步骤S2中第二层检测采用基于统计分析分异常检测方法具体包括以下步骤:

步骤S21:检测点对需要进行检测的网络数据流进行特征信息采集,所述特征信息包括源IP、目的IP、源端口、目的端口以及数据容量大小。

步骤S222:定义dij表示第i个特征信息的第j个值的大小;定义一特征集Ss={dij|i=1,2,3…m;j=1,2,3…yi},Y={yi|i=1,2,3…m}是m个特征信息的统计集,yi表示在统计的时间间隔内不重复的特征i的个数;定义第i个特征熵H(hi)

H(hi)=-Σj=1yidijSiln(dijSi),Si=Σj=1yidij

其中Si表示统计的时间间隔内第i个特征的总的分组数;

步骤S223:采用加权求平均数的方法消除统计时外界因素的干扰而导致的熵的随机波动,找出特征熵的总体发展趋势,从而预测下个统计时间间隔内的特征熵趋势,预测公式如下:

yt=axt-1+(1-a)yt-1

其中yt与yt-1分别是在t时刻与t-1时刻,特征熵的预测值,a是加权因子其取值介于0到1之间,xt-1是在t-1时刻,特征熵的测量值;

步骤S224:根据所述步骤S223中的预测公式,则可采用加权求平均数对正常数据流的特征参数进行预测,记在第t个统计的时间间隔内第i个特征的实际特征熵为Hti,在第t个统计的时间间隔内第i个特征的预测特征熵为则

H^ti=aHt-1,i+(1-a)H^t-1,i

把的表达式依次代入上式,展开得:

H^ti=aHt-1,i+a(1-a)Ht-2,i+...+a(1-a)k-1Ht-k,i+a(1-a)kH^t-k,i

其中k的定义为:选取k个统计时间间隔作为一个观测周期,其值需要在实验中进行调整,以选取到最佳值;是相应观测周期内的初始值,可直接用该时刻的观测值进行等效;a为根据相应的观测时间间隔的变化特征来进行选取;

步骤S225:在第t个时间间隔内第i个特征的特征熵的标准差记为σti,在第t个时间间隔内第i个特征的特征熵的正常取值区间记为Tti,则:

σti=1k-1Σj=t-kt-1(Hii-H^ij)2

Tti=[H^ti-3σti,H^ti+3σti]

若第t个统计时间间隔内第i个特征的特征熵的取值落在与时,则该时间间隔内的网络数据流为正常数据流,否则该时间间隔内的网络数据流为异常数据流,将所述异常数据流进入第三层进行检测。

特别的,由于第一层采用基于特征匹配的异常检测方法只能检测特征库中已有的异常,所以没有被第一层认定为异常的数据流未必是正常数据流,有可能是新的异常,则需要可进行第二层的基于统计分析的异常检测。该方法需要对历史记录进行建模分析,得出一个能够区分正常数据流与异常数据流的阈值区间。当检测点获取到流量数据后,检测点会对得到的数据进行统计分析,将分析得到的结果与阈值进行对比,当对实际的数据流进行分析的结果未落在阈值区间内,则被认定为异常数据流,进入第三层异常分析;否则认定为正常数据流。

进一步地,所述步骤S2中第三层检测采用基于机器学习和数据挖掘的异常检测方法包括机器学习与数据挖掘两部分;所述机器学习进行异常数据流检测时,通过对历史数据的学习不断更新特征库,进而提高对异常数据流的检测能力;所述数据挖掘采用聚类分析算法实现第三层的异常数据流检测具体包括以下步骤:

步骤S231:输入聚类的个数k,包含n个对象的数据库,其输出k个聚类,所述k个聚类满足方差最小的标准;

步骤S232:从n个数据对象中任意选择k个作为初始聚类的中心;

步骤S233:根据每个聚类对象的中心对象,计算每个对象与所述中心对对象的距离,根据最小距离重新划分相对应的对象;

步骤S234:重新计算有变化的聚类的中心对象

步骤S235:计算标准测试函数,若所述测试函数收敛,则终止算法;不满足则返回所述步骤S233。

特别的,由于第二层采用的基于统计分析的异常检测方法只能排除一些出现频率偏离正常频率阈值区间的异常数据流,而对于新出现的异常数据流,第二层检测的辨别度较低。所以,对于到达第三层的数据流中,可能有出现频率较正常,但是特征库中又没有对应特征的异常,因此需要通过数据挖掘发现这部分异常,并让机器自动学习到这些异常,及时更新特征库,挖掘检测出可能的新的异常数据流,并更新当前检测点的特征库。

进一步地,经过所述步骤S2中的三层检测后,若检测点检测出异常数据流是已知的,则检测点直接通知网络管理者进行处理;若检测点检测出的异常数据流出现数据挖掘和机器学习得出新的异常特征,则对特征库进行更新并实现所述步骤S3中的检测点进行信息共享,具体包括以下步骤:

步骤S31:对分析出新的异常特征的检测点的自身特征库进行更新与扩充,首先算出新的特征串的长度L,将所述特征串归类到该长度的链表分支中,再根据异或得出的所述特征串的特征值,插入相应特征值的链表中;

步骤S32:在所述检测点的特征库的更新后,采用广度优先搜索算法BFS将新的特征信息传递到所有的检测点的特征库中。

较佳的,所述广度优先搜索算法BFS具体包括以下步骤:

步骤S321:将特征库最先更新的检测点作为BFS的根节点;

步骤S322:利用队列结构,首先将所述根节点放入队列中;

步骤S323:从所述队列取出一个节点,若该节点为检测点,并且特征库还没进行更新,则对其特征库进行更新;若该节点为普通节点,则将信息传递下去;

步骤S324:判断所队列是否为空,若为空则整个网络中检测点的特征库更新完成,结束,否则返回步骤S323。

较佳的,所述步骤S3利用普通结点进行检测点之间的信息共享,使得所有检测点的特征库能够进行有效的更新。当检测点发现有新的异常,会通过该检测点监测的普通结点发出新的异常信息;然后根据图的理论,使用广度优先搜索,使网络中的其他检测点都获得该新的异常信息,从而达到各个检测点之间的信息共享的目的。简而言之,就是利用普通结点传递信息,达到更新所有检测点特征库的目的。

与现有技术相比,本发明的有益效果是保护了终端,减少了网络中异常包的数量,在减少检测点的同时,降低检测点的负载和保证了数据的精度。

附图说明

图1为本发明分布式网络异常检测数据流方法的步骤流程图。

图2为本发明分布式网络异常检测网络数据流中的检测点部署步骤的具体示意图。

图3为本发明分布式网络异常检测网络数据流中的检测点监测异常步骤的流程图。

图4为本发明背景中分布式网络的第一类:分布式的数据搜集,集中式的数据处理的示意图。

图5为本发明背景中分布式网络的第二类:分层结构的数据搜集和处理的示意图。

具体实施方式

下面结合附图及实施例对本发明做进一步说明。

本实施例提供一种分布式异常检测网络数据流的方法,如图1、图2和图3所示,具体包括以下步骤:

步骤S1:部署N个检测点:设终端设备与网络的连接接口的一结点为普通结点,所述检测点独立于所述普通结点之外;所述检测点与所述普通结点相连,每个检测点监测一普通节点,用以检测普通节点处的终端设备发送的异常数据包同时防止该终端接收到网络中的异常数据包;

步骤S2:检测点监测异常网络数据流:采用三种检测方法进行层次化的异常检测,第一层检测采用基于特征匹配的异常检测方法,第二层检测采用基于统计分析的异常检测方法,第三层采用基于机器学习与数据挖掘的异常检测方法:

步骤S3:检测点进行信息共享:利用普通结点进行检测点之间的信息共享,则所有检测点的特征库进行有效更新。

在本实施例中,所述步骤S1具体包括以下步骤:

步骤S11:提供N个终端设备以及与每个终端设备相连的路由器或交换机,即存在N个路由器或者交换机,在每个路由器或交换机上均设置一个检测点,那么就将有N个检测点D,形成一检测点集合D={Di|i=1,2,3…N};对于在整个网络中布置检测点,这样进行布置,会大大减少检测点的数量;

步骤S12:进行特征库设计,所述特征库包括特征串与特征值;其中所述特征串为一定长度的字符串,所述特征值为所述特征串中的每个字符进行异或得到的结果;所述特征库设计采用链表设计,每种长度的特征串连成一个链表;

步骤S13:初始化所有检测点,将已知的异常数据流的特征信息的特征库布置到检测点中,并将所述检测点连接到对应的路由器或交换机上,则所述检测点通过所连接的路由器或交换机对网络数据流进行分析。

在本实施例中,在形成特征库的过程中为了加快匹配的速度采用两次匹配的方式:第一次对于字符串的长度进行匹配,并进行特征值的匹配,去除大量肯定不匹配的特征串;第二次采取BF匹配算法进行完整匹配。因此,特征库设计采用链表设计,每种长度的特征串连成一个链表,每个字符串采用索引方式,键值为特征值,每个字符串的特征值为每个字符相异或,得到一个八位的ASCII码。

另外,如果检测点设置太少,单个检测点的负载比较大,因此在本实施例中每个直接与终端相连的普通结点设置检测点,这样不仅检测的效果比较理想,大大减少检测点的个数,使得检测的总体代价降低;而且从保护终端的角度出发,能够有效防止终端接受异常包,同时又减少了整个网络中异常包的数量。

在本实施例中,所述步骤S2中第一层检测采用基于特征匹配的异常检测方法具体包括以下步骤:

步骤S211:假设特征库内的特征集合用C={Ci|i=0,1,2…}表示;

步骤S212:所述检测点接收网络数据流时,即所述网络数据流通过检测点检测的路由器或者交换机的时,所述检测点提取数所述网络数据流的特征串和特征值,所述特征串包括IP地址、端口号以及协议类型;设定所述特征串长度为L,则将所述特征串总每个字符相异或得到一对应的特征值T,采用以下公式得到特征值T:其中所述特征串L为AB……;

首先,所述检测点以特征串长度进行快速搜索,找到符合该长度的小部分异常特征串,可直接忽略大部分的特征串,大大提高匹配速度,由于只比较一个数字则技术速度很快,并不影响整个系统的效率;然后,进行特征值的计算与比较过程中,由于采用硬件实现则计算速度也较快,可以从依赖长度筛选出来的小部分特征串中,筛选出少量特征值一样的特征串;

步骤S213:假设特征库中长度与特征值T相同的特征串有m个,则j=1,2,3,…,m,则Cij为该长度下的特征值;所述检测点判断是否为零,若不等于0,则所述特征串与该特征值不匹配,忽略该特征串;若等于0,则所述特征串与该特征值匹配,保留该特征串,进行下一次的完整匹配;

步骤S214:经过所述步骤S213的筛选,对保留下的特征串采用BF算法进行完整匹配,所述BF算法具体为将目标特征串的第一个字符与模式特征串的第一个字符进行匹配,判断两者是否相等;若相等,则继续比较所述目标特征串的第二个字符与所述模式特征串的第二个字符;若不相等,则比较所述目标特征串的第二个字符和所述模式特征串的的第一个字符,依次比较下去,直到得出最后的匹配结果;若所述目标特征串与所述模式特征串匹配成功,则该数据流为异常数据流,若未匹配成功则进入下一层检测。

较佳的,由于在现有技术的检测过程中,进行全部的字符串的匹配,将会消耗大量的系统资源,严重降低了系统检测的速率。在真实的网络中,实际上异常的数据流只占了少部分。如果使用字符串全部匹配,则大部分资源会浪费在对正常的数据流穷举匹配。因此,在本实施例中,异常数据流存在一定特殊的特征串,特征值为由特征串中的所有字符串异或而得到的一个八位的ASCII码值,这个过程可以采用硬件电路快速计算得到;其中特征串为能区分正常数据流与异常数据流的一个报文内的字符串,其大小远小于整个报文,因此仅对对数据流中的一些特征值进行匹配,这样将大大减少匹配的时间,形成特征值T可作为这一层检测方法匹配判断的重要依据。

特别的,在本实施例中,所述基于特征匹配的异常检测方法采用以下代码实现:

在本实施例中,所述步骤S2中第二层检测采用基于统计分析分异常检测方法,在数据流传递的过程中,信息熵H表示信息所含信息量的多少,则针对需要检测的数据流,对其进行信息采集,采集的信息可能包括源IP、目的IP、源端口、目的端口、数据的容量大小等属性;把检测的数据流当做离散的单独信源,把各个属性特征当做一组随机事件事件,对其进行熵分析;信息熵可以体现对应的信源数据流的离散程度或者是集中和分散程度;

则该方法具体包括以下步骤:

步骤S21:检测点对需要进行检测的网络数据流进行特征信息采集,所述特征信息包括源IP、目的IP、源端口、目的端口以及数据容量大小。

步骤S222:定义dij表示第i个特征信息的第j个值的大小;定义一特征集Ss={dij|i=1,2,3…m;j=1,2,3…yi},Y={yi|i=1,2,3…m}是m个特征信息的统计集,yi表示在统计的时间间隔内不重复的特征i的个数;定义第i个特征熵H(hi)

H(hi)=-Σj=1yidijSiln(dijSi),Si=Σj=1yidij

其中Si表示统计的时间间隔内第i个特征的总的分组数;

例如当m=5时,hi(i=1,2,3,…,5)可以分别代表五个特征:源IP、目的IP、源端口、目的端口、协议类型;d12=100的含义为:第一个特征的第2个值为100,亦即源IP的数目在第二个统计时间间隔内出现的次数为100次;d23=125表示第二个特征的第三个值为125,即目的IP在第三个统计时间间隔内出现的次数为125次;通过就能计算得到源IP的熵、目的IP的熵、源端口的熵、目的端口的熵、协议类型的熵,就可以得到统计时间间隔内这些特征的分布情况;

步骤S223:采用加权求平均数的方法消除统计时外界因素的干扰而导致的熵的随机波动,找出特征熵的总体发展趋势,从而预测下个统计时间间隔内的特征熵趋势,预测公式如下:

yt=axt-1+(1-a)yt-1

其中yt与yt-1分别是在t时刻与t-1时刻,特征熵的预测值,a是加权因子其取值介于0到1之间,xt-1是在t-1时刻,特征熵的测量值;

步骤S224:根据所述步骤S223中的预测公式,则可采用加权求平均数对正常数据流的特征参数进行预测,记在第t个统计的时间间隔内第i个特征的实际特征熵为Hti,在第t个统计的时间间隔内第i个特征的预测特征熵为则

H^ti=aHt-1,i+(1-a)H^t-1,i

把的表达式依次代入上式,展开得:

H^ti=aHt-1,i+a(1-a)Ht-2,i+...+a(1-a)k-1Ht-k,i+a(1-a)kH^t-k,i

其中k的定义为:选取k个统计时间间隔作为一个观测周期,其值需要在实验中进行调整,以选取到最佳值,例如统计时间间隔为2分钟,观测周期为20分钟,则k=20÷2=10;是相应观测周期内的初始值,可直接用该时刻的观测值进行等效;a为根据相应的观测时间间隔的变化特征来进行选取;

步骤S225:在第t个时间间隔内第i个特征的特征熵的标准差记为σti,在第t个时间间隔内第i个特征的特征熵的正常取值区间记为Tti,则:

σti=1k-1Σj=t-kt-1(Hii-H^ij)2

Tti=[H^ti-3σti,H^ti+3σti]

若第t个统计时间间隔内第i个特征的特征熵的取值落在与时,则该时间间隔内的网络数据流为正常数据流,否则该时间间隔内的网络数据流为异常数据流,将所述异常数据流进入第三层进行检测。

总之,基于统计分析的异常检测,其思想就是用已有的数据预测未来一段时间内各特征属性出现的概率,若预测的特征属性d出现的概率很小,而在未来的这段时间间隔内,d却出现了,则可认为小概率事件发生了,是不正常的,则判定出现了异常数据流。对于异常的数据流,检测点发出警报,便于网络管理员做出相应的措施;对于剩余的数据流,进入第三层检测。

在本实施例中,所述步骤S2中第三层检测采用基于机器学习和数据挖掘的异常检测方法包括机器学习与数据挖掘两部分;所述机器学习进行异常数据流检测时,通过对历史数据的学习不断更新特征库,进而提高对异常数据流的检测能力;所述数据挖掘采用聚类分析算法实现第三层的异常数据流检测,具体包括以下步骤:

步骤S231:输入聚类的个数k,包含n个对象的数据库,其输出k个聚类,所述k个聚类满足方差最小的标准;在这k个聚类中,属于同一类聚中的对象的相似度较高,而属于不同聚类中的对象的相似度较低;而相似度是利用聚类中对象的均值所获得的一个“中心对象”计算得到的;

步骤S232:从n个数据对象中任意选择k个作为初始聚类的中心;

步骤S233:根据每个聚类对象的中心对象,计算每个对象与所述中心对对象的距离,根据最小距离重新划分相对应的对象;

步骤S234:重新计算有变化的聚类的中心对象

步骤S235:计算标准测试函数,若所述测试函数收敛,则终止算法;不满足则返回所述步骤S233。

特别的,在本实施例中,所述聚类分析算法中k的取值至关重要,其取值决定了聚类的结果,从而决定了算法实现的好坏,若k的取值不恰当会导致挖掘与聚类的结果不理想甚至无效;具体采用以下代码实现:

假设数据流为Sda={x1,x2,x3…xn},其聚类个数为k:

对于有变化的聚类:计算新的聚类中心

在本实施例中,经过所述步骤S2中的三层检测后,若检测点检测出异常数据流是已知的,则检测点直接通知网络管理者进行处理;若检测点检测出的异常数据流出现数据挖掘和机器学习得出新的异常特征,则对特征库进行更新并实现所述步骤S3中的检测点进行信息共享,具体包括以下步骤:

步骤S31:对分析出新的异常特征的检测点的自身特征库进行更新与扩充,首先算出新的特征串的长度L,将所述特征串归类到该长度的链表分支中,再根据异或得出的所述特征串的特征值,插入相应特征值的链表中;

步骤S32:在所述检测点的特征库的更新后,采用广度优先搜索算法BFS将新的特征信息传递到所有的检测点的特征库中,这样才能使下次这类异常流的检测过程大大简化。

在本实施例中,较佳的,在此更新与数据分享过程中,考虑到路由器的动态路由学习,且整个网络是图形结构,于是采用图的搜索算法;又因为检测点都位于网络的边缘,因此采用广度优先搜索算法BFS,所述广度优先搜索算法BFS具体包括以下步骤:

步骤S321:将特征库最先更新的检测点作为BFS的根节点;

步骤S322:利用队列结构,首先将所述根节点放入队列中;

步骤S323:从所述队列取出一个节点,若该节点为检测点,并且特征库还没进行更新,则对其特征库进行更新;若该节点为普通节点,则将信息传递下去;

步骤S324:判断所队列是否为空,若为空则整个网络中检测点的特征库更新完成,结束,否则返回步骤S323。

特别的,在本实施例中,所述广度优先搜索算法BFS具体采用以下代码实现:

S为初始点

R={s},Q={s},

while

从Q中选一个节点

if(这个节点是检测点)

则特征库更新

else

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号