首页> 中国专利> 基于Hadoop的边缘网出口网络流量异常检测方法、系统

基于Hadoop的边缘网出口网络流量异常检测方法、系统

摘要

本发明公开一种基于Hadoop的边缘网出口网络流量异常检测方法及系统。本发明具有架构独立,部署方便,只需接收边界路由器的流记录数据即可在系统中完成异常检测任务,不需关心自治域(AS)内部网络拓扑;另外,在异常检测方面,本发明采取了宏观和微观分析相结合的方式进行,在宏观上采用了Tsallis熵值作为异常检测的依据,在微观上采用了对异常时间片的集中点进行统计的方式,并且提出了针对上述集中点半自动判断发生异常的标准,使得最终检测的结果更加准确和有效;最后,本发明通过在Hadoop集群上运行,拥有对海量网络流记录数据进行异常检测的能力。

著录项

  • 公开/公告号CN105553787A

    专利类型发明专利

  • 公开/公告日2016-05-04

    原文格式PDF

  • 申请/专利权人 清华大学;

    申请/专利号CN201610114854.1

  • 申请日2016-03-01

  • 分类号H04L12/26;H04L29/06;H04L29/12;

  • 代理机构北京中伟智信专利商标代理事务所;

  • 代理人张岱

  • 地址 100084 北京市海淀区清华园1号

  • 入库时间 2023-12-18 15:50:38

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2019-07-26

    授权

    授权

  • 2016-06-01

    实质审查的生效 IPC(主分类):H04L12/26 申请日:20160301

    实质审查的生效

  • 2016-05-04

    公开

    公开

说明书

技术领域

本发明涉及一种基于Hadoop的边缘网出口网络流量异常检测系统及其方法。

背景技术

如何在海量数据的网络中进行网络流量异常检测是一项重大的挑战,目前已经提出了多种网络流量异常检测算法及其解决方案,最常见的为基于原始数据包的检测和基于网络数据流的检测。

在网络流量数据采集方面,基于原始数据包的网络流量异常检测解决方案,虽然获取的数据较为全面,但也由于自治域内数据包的数量非常巨大,很难在单台设备上实现网络数据的采集,而基于网络数据流的网络流量异常检测方案由于分析的数据源为网络流量的统计信息,这就使得网络流量采集的处理和存储开销更小,网络流量异常检测系统更加具有可扩展性。

在流量异常检测方面,由于基于熵的网络流量异常检测可以将一个时间段内所有数据流的某个字段值的概率分布浓缩成一个具体的熵值,且异常时间片对应的熵值会和正常时间片对应的熵值有所区别,所以根据时间片的熵值可以检测网络流量是否存在异常;在海量网络流记录数据处理方面,采用基于Hadoop云计算平台的大数据技术则可以很好的解决处理能力问题。

发明内容

针对上述问题,本发明提供一种结果准确、有效,实现方便的基于Hadoop的边缘网出口网络流量异常检测方法、系统

为达到上述目的,本发明基于Hadoop的边缘网出口网络流量异常检测方法,所述方法包括:

对训练数据流进行训练,得到异常数据流的检测阈值;

接收AS边界路由器输出的在线流数据流;

基于所述检测阈值分别判断在线流数据和离线流数据的异常时间片是否超过阈值;

记录并显示检测结果。

进一步地,对训练数据流进行数据训练的方法,具体包括如下步骤:

在MapReduce框架下,对所有训练数据流进行离线熵值计算,计算所有时间片的熵值;

对经过MapReduce得到的熵值文件进行处理,将4种不同方向的流量分别写入4个不同的文件,所述不同方向的流量分别为:外部流量、外部流入流量、内部流出流量、内部流量;

以得到的熵值文件为输入,利用FCM聚类算法进行聚类,得到4种不同流量分别对应的正常类和异常类的中心点c和半径r,并将正常类对应的c+a*r作为上阈值,将c-a*r作为下阈值,a为大于0的实数,将阈值分别写入4种流量对应的检测阈值文件。

进一步地,在线数据数据采集方法,具体包括如下步骤:

从网络中抓取由As边界路由器主动发送来的IPFIX流数据;

根据IPFIX模版进行解码,并转换成对应的文本格式;

将转换后的文本文件保存到Hadoop集群HDFS文件系统下指定的目录。

进一步地,离线数据检测方法,具体包括如下步骤:

在MapReduce框架下,对所有的被检测离线流记录数据进行离线熵值计算,计算所有时间片对应的4个不同流量方向的熵值;

依次将每个时间片得到的4个熵值和所对应流量类型的训练得到的熵值阈值进行比较;

若超过阈值,则将此时间片划归为异常时间片,未超过阈值,则将此时间片划归为正常时间片;

将检测结果存储到数据库中;

离线熵值计算Tsallis熵值公式为:

>STs=kq-1(1-Σinpiq)>

其中,k、q为公式的参数;

pi为时间片内第i个不重复的元素出现的概率,

进一步地,在线数据检测方法,具体包括如下步骤:

接收As边缘路由器发送的流数据按照IPFIX模版格式解码;

对上个时间片截止时间到当前时间片截止时间收到的流记录进行处理,计算当前时间片对应的4个熵值;

依次将每个时间片得到的4个熵值和所对应的通过训练得到的熵值阈值进行比较;

若超过阈值,则将此时间片划归为异常时间片,未超过阈值,则将此时间片划归为正常时间片;

将检测结果存储到数据库中。

进一步地,离线熵值计算方法,具体为:

Map阶段:

在Map函数中提取流记录文件中每条流记录中的结束时间、源As号、目的As号、目的Ip地址、源端口号、目的端口号、协议号、TCP协议控制位内容;

按照结束时间将流记录划分到具体的时间片,时间片序号为:取整结束时间/时间间隔;

根据源As号和目的As号将域内网络流量划分为4个方向的流量:外部流量、外部流入流量、内部流出流量、内部流量;

针对每条流记录,输出4个〈key,vlue〉对,格式分别为:〈“流量方向时间片序号源Ip地址协议号TCP控制位”,1〉,〈“流量方向时间片序号源端口地址协议号TCP控制位”,1〉,〈“流量方向时间片序号目的Ip地址协议号TCP控制位”,1〉,〈“流量方向时间片序号目的端口地址协议号TCP控制位”,1〉;

Combine阶段:

对进入同一Combiner的相同Key值对应的value值做累加,得到累加值;

将Key值拆分成2部分,第一部分“流量方向时间片序号”作为新的Key值,剩下的第二部分加上得到的累加值(Sum)作为新的value值,具体输出格式如下:〈“流量方向时间片序号”,“源Ip地址/源端口地址/目的Ip地址/目的端口地址协议号TCP控制位Sum”〉。

Reduce阶段:

建立4个格式为<String,Integer>的二维表,分别对应源Ip地址、源端口号、目的Ip地址、目的端口号所在的新组合,其中String类型部分存储value对应的不重复的字符串,Integer用来存储该字符串在这个key对应的value迭代器中出现的次数,处理key对应的所有value值,形成最终的4个二维表;

获取用户给定参数k、q的值,遍历二维表,将所有Integer类型对应的值v取出来,得到根据熵值公式>STs=kq-1(1-ΣinViq(ΣinVi)q);>

将得到的4个熵值按照格式“流量方向时间片序号源Ip地址对应熵值源端口号对应熵值目的Ip地址对应熵值目的端口号对应熵值”输出。

进一步地,离线熵值计算方法,具体为:

针对每一种流量类型建立4个格式为<String,Integer>的二维表,分别对应“源Ip地址协议号TCP控制位”、“源端口号协议号TCP控制位”、“目的Ip地址协议号TCP控制位”、“目的端口号协议号TCP控制位”,其中String类型部分存储value对应的不重复的字符串,Integer用来存储该字符串在这个key对应的value迭代器中出现的次数;

采用定时器平均设置时间片时间间隔,从当前接收的当前时间片的流记录中提取流记录的结束时间、源As号、目的As号、目的Ip地址、源端口号、目的端口号、协议号、TCP协议控制位内容;

根据源As号和目的As号区分收到的网络流量属于哪个方向的流量,分别包括外部流量、外部流入流量、内部流出流量、内部流量;

针对每条流记录,组成4个新的字符串,格式分别为:“源Ip地址协议号TCP控制位”、“源端口地址协议号TCP控制位”、“目的Ip地址协议号TCP控制位”、“目的端口地址协议号TCP控制位”;

将组成的新的字符串和与对应的二维表中的key值进行比较,一致则在其对应的值上加1,不一致,则创建新的Key值,对应的value为1;

形成最终4种流量4个域对应的16个二维表;

获取用户给定参数k、q的值,遍历二维表,将所有Integer类型对应的值v取出来,得到根据熵值公式可得>STs=kq-1(1-ΣinViq(ΣinVi)q);>

得到4种流量对应的16个熵值,并按照要求格式输出。

进一步地,还包括对离线数据流中的异常时间片进行二次检测,所述检测具体包括如下步骤:

获取熵值异常时间片集中点,将获取的集中点新的元素传递给MapReduce;

Map阶段:

在Map函数中提取流记录文件中每条流记录中的结束时间、源As号、目的As号、目的Ip地址、源端口号、目的端口号、协议号、TCP协议控制位内容;

按照结束时间将流记录划分到具体的时间片,时间片序号为:取整结束时间/时间间隔;

根据源As号和目的As号将网络流量划分为4个方向的流量:外部流量、外部流入流量、内部流出流量、内部流量;

针对每条流记录,得到格式分别为:“流量方向时间片序号源Ip地址协议号TCP控制位”、“流量方向时间片序号源端口地址协议号TCP控制位”、“流量方向时间片序号目的Ip地址协议号TCP控制位”、“流量方向时间片序号目的端口地址协议号TCP控制位”的新的字符串,并与传递进来的元素作比较;

若由当前流记录提取出来的新的元素与传递进来的某个元素一致,则针对每条流记录,输出4个〈key,vlue〉对,格式分别为:〈“流量方向时间片源Ip地址协议号TCP控制位”,“源Ip地址”〉、〈“流量方向时间片源Ip地址协议号TCP控制位”,“源端口地址”〉、〈“流量方向时间片源Ip地址协议号TCP控制位”,“目的Ip地址”〉、〈“流量方向时间片源Ip地址协议号TCP控制位”,“目的端口地址”〉。

Reduce阶段:

建立4个格式为<String,Integer>的二维表,分别对应源Ip地址、源端口号、目的Ip地址、目的端口号,其中String类型部分存储value对应的不重复的字符串(Ip地址转换成整型值),Integer用来存储该字符串在这个key对应的value迭代器中出现的次数,处理key对应的所有value值,形成最终的4个二维表;

依次遍历每个二维表,得到Key的个数后求得不重复元素出现概率=1/Key的个数,若此值大于某个阈值(如1/10),则判断元素分布“集中”;若小于此阈值,则将所有的Key看作二维空间上的点,横坐标为二维表中Key的序号,纵坐标为Key的值,形成一条折线图,最后判断这条折线是否具有“人为特征”,如折线上的某一段占据了整个折线的很大比例算做此折线具有“人为特征”,或者具有相同斜率的折线段占据了整个折线的很大比例算做此折线具有“人为特征”;

除了集中点外,而且此集中点对应的其它域出现“集中”或者“人为特征”的分布,则判断发生了与此集中点相关的异常,若不能判断的集中点,则输出到指定文件。

进一步地,离线检测结果显示包括离线数据流检测结果显示和在线数据流检测结果显示,其中

离线数据流检测结果显示具体包括:

按照时间顺序查询数据库中记录的正常和异常信息;

将查询到的正常和异常时间片对应的信息,对应所发生的时间有区别的显示在离线检测显示界面上;

在线数据流检测结果显示具体包括:

定时查询数据库更新;

将查询到的更新信息,按照时间顺序将正常时间片和异常时间片区别显示。

为达到上述目的,本发明基于Hadoop的网络流量异常检测系统,所述系统包括:流量采集存储模块、训练模块、离线检测模块、在线检测模块、检测结果显示模块,其中,

所述流量采集存储模块,用于接收AS边界路由器输出的在线流数据流;

训练模块,用于对训练数据流进行训练,得到异常数据流的检测阈值;

离线检测模块、在线检测模块分别用于基于所述检测阈值分别判断在线流数据和离线流数据的异常时间片是否超过阈值;

检测结果显示模块,用于记录并显示检测结果。

进一步地,还包括微观分析模块,用于对离线数据流中的异常时间片进行二次检测。

本发明提出并实现了一种基于Hadoop的边缘网出口网络流量异常检测方法及系统,本具有架构独立,部署方便,只需接收边界路由器的流记录数据即可在系统中完成异常检测任务,不需关心自治域内部网络拓扑;另外,在异常检测方面,采取了宏观和微观分析相结合的方式进行,在宏观上采用了Tsallis熵值作为异常检测的依据,在微观上采用了对异常时间片的集中点进行统计的方式,并且提出了针对上述集中点半自动判断发生异常的标准,使得最终检测的结果更加准确和有效;最后,通过在Hadoop集群上运行,拥有对海量网络流记录数据进行异常检测的能力。

附图说明

图1是本发明一种基于Hadoop的网络流量异常检测系统结构示意图;

图2是基于Hadoop的网络流量异常检测系统的系统模块组成及其交互图;

图3是基于Hadoop的网络流量异常检测系统的流量采集存储模块的工作流程图;

图4是基于Hadoop的网络流量异常检测系统的训练模块工作流程图;

图5是基于Hadoop的网络流量异常检测系统的离线检测模块工作流程图;

图6是训练模块和离线检测模块中的离线熵值计算流程图;

图7是基于Hadoop的网络流量异常检测系统的在线检测模块工作流程图;

图8是基于Hadoop的网络流量异常检测系统的在线检测模块的在线熵值计算流程图;

图9是基于Hadoop的网络流量异常检测系统的微观分析部分的工作流程图;

图10是基于Hadoop的网络流量异常检测系统的离线检测结果显示模块的工作流程图。

图11是基于Hadoop的网络流量异常检测系统的在线检测结果显示模块的工作流程图。

具体实施方式

下面结合说明书附图对本发明做进一步的描述。

如图1所示,本发明一种基于Hadoop的网络流量异常检测系统优先采用一个Hadoop集群内加一台独立在线检测主机的模式进行部署,系统中接收流记录数据的主机通过网络与As的边界路由器进行连接,被动接收流记录数据。

如图2所示,本发明一种基于Hadoop的网络流量异常检测系统,由流量采集存储模块、训练模块、离线检测模块、在线监测模块、微观分析模块、检测结果显示模块等6个模块组成。在线采集存储模块为训练模块、离线检测模块、微观分析模块提供流记录数据;训练模块为离线检测和在线检测模块提供异常检测阈值;微观分析模块可对离线检测模块的运行结果进行进一步的验证;检测结果显示模块负责显示离线检测、在线检测及微观分析等模块的运行结果。

1、数据采集存储模块

流量采集存储模块完成IPFIX网络流量的采集存储工作,数据采集存储模块的工作流程如图3所示,具体实施步骤如下:

步骤1:Hadoop集群中数据采集存储模块所在的节点从网络中抓取由As边界路由器主动发送来的IPFIX流记录数据;

步骤2:根据IPFIX模版进行解码,并转换成对应的文本格式;

步骤3:将转换后的文本文件保存到Hadoop集群HDFS文件系统下指定的目录。

2、训练模块

训练模块完成检测阈值的获取工作,训练模块的工作流程图如图4所示,具体实施步骤如下:

步骤1:在MapReduce框架下,对所有参与训练的流记录数据按照图6离线熵值计算流程图所述步骤计算所有时间片的熵值;

步骤2:对经过MapReduce得到的熵值文件进行处理,将4种不同方向的流量分别写入4个不同的文件;

步骤3:以得到的熵值文件为输入,利用FCM聚类算法进行聚类,得到4种不同流量分别对应的正常类和异常类的中心点c和半径r,并将正常类对应的c+a*r作为上阈值,将c-a*r作为下阈值,a为大于0的实数,最后将阈值分别写入4种流量对应的检测阈值文件。

3、离线检测模块

离线检测模块完成网络流量的离线异常检测。离线检测模块的工作流程图如图5所示,进行检测的数据源为存储的历史流记录文件,具体实施步骤如下:

步骤1:在MapReduce框架下,对所有的被检测的流记录文件按照离线熵值计算流程图所述步骤计算所有时间片对应的4个熵值;

步骤2:依次将每个时间片得到的4个熵值和所对应流量类型的训练得到的熵值阈值进行比较;

步骤3:若超过阈值,则将此时间片划归为异常时间片,未超过阈值,则为正常时间片;

步骤4:将检测结果存储到数据库中。

离线熵值计算是完成离线流量数据的Tsallis熵值计算工作,Tsallis熵值公式为:k、q为公式本身的参数,pi为时间片内第i个不重复的元素出现的概率,

离线熵值计算的工作流程如图6所示,将熵值计算分为了Map阶段、Combine阶段和Reduce阶段,具体实施步骤如下:

Map阶段:

步骤1:在Map函数中提取流记录文件中每条流记录中的结束时间、源As号、目的As号、目的Ip地址、源端口号、目的端口号、协议号、TCP协议控制位等内容;

步骤2:按照结束时间将流记录划分到具体的时间片,时间片序号为:取整(结束时间/时间间隔);

步骤3:根据源As号和目的As号将域内网络流量划分为4个方向的流量:外部流量、外部流入流量、内部流出流量、内部流量;

步骤4:针对每条流记录,输出4个〈key,vlue〉对,格式分别为:〈“流量方向时间片序号源Ip地址协议号TCP控制位”,1〉,〈“流量方向时间片序号源端口地址协议号TCP控制位”,1〉,〈“流量方向时间片序号目的Ip地址协议号TCP控制位”,1〉,〈“流量方向时间片序号目的端口地址协议号TCP控制位”,1〉。

Combine阶段:

步骤1:对进入同一Combiner的相同Key值对应的value值做累加,得到累加值(Sum);

步骤2:将Key值拆分成2部分,第一部分“流量方向时间片序号”作为新的Key值,剩下的第二部分加上得到的累加值(Sum)作为新的value值,具体输出格式如下:〈“流量方向时间片序号”,“源Ip地址/源端口地址/目的Ip地址/目的端口地址协议号TCP控制位Sum”〉。

Reduce阶段:

步骤1:建立4个格式为<String,Integer>的二维表,分别对应源Ip地址、源端口号、目的Ip地址、目的端口号等所在的新组合,其中String类型部分存储value对应的不重复的字符串,Integer用来存储该字符串在这个key对应的value迭代器中出现的次数,处理key对应的所有value值,形成最终的4个二维表;

步骤2:获取用户给定参数k、q的值,遍历二维表,将所有Integer类型对应的值v取出来(若需要,可进一步取出大于某个阈值的v和其对应的字符串,即较为集中的元素),得到根据熵值公式可得>STs=kq-1(1-ΣinViq(ΣinVi)q);>

步骤3:优选的,可将得到的4个熵值按照格式“流量方向时间片序号源Ip地址对应熵值源端口号对应熵值目的Ip地址对应熵值目的端口号对应熵值”输出。

4、在线检测模块

在线检测模块完成网络流量的在线异常检测。在线检测模块的工作流程如图7所示,对流数据采集解码后直接进行检测,优选的,在线监测模块在一台独立于Hadoop集群的主机上运行,使离线检测和在线检测不相冲突,具体实施步骤如下:

步骤1:接收As边缘路由器发送的流数据按照IPFIX模版格式解码;

步骤2:在单台接收数据的主机上,对上个时间片截止时间到当前时间片截止时间收到的流记录进行处理,按照在线熵值计算流程图所述步骤计算当前时间片对应的4个熵值;

步骤3:依次将每个时间片得到的4个熵值和所对应的通过训练得到的熵值阈值进行比较;

步骤4:若超过阈值,则将此时间片划归为异常时间片,未超过阈值,则为正常时间片;

步骤5:将检测结果存储到数据库中。

在线熵值计算的工作流程如图8所示,具体实施步骤如下:

步骤1:针对每一种流量类型建立4个格式为<String,Integer>的二维表,分别对应“源Ip地址协议号TCP控制位”、“源端口号协议号TCP控制位”、“目的Ip地址协议号TCP控制位”、“目的端口号协议号TCP控制位”,其中String类型部分存储value对应的不重复的字符串,Integer用来存储该字符串在这个key对应的value迭代器中出现的次数;

步骤2:采用定时器平均设置时间片时间间隔,从当前接收的当前时间片的流记录中提取流记录的结束时间、源As号、目的As号、目的Ip地址、源端口号、目的端口号、协议号、TCP协议控制位等内容;

步骤3:根据源As号和目的As号区分收到的网络流量属于哪个方向的流量,分别包括外部流量、外部流入流量、内部流出流量、内部流量;

步骤4:针对每条流记录,组成4个新的字符串,格式分别为:“源Ip地址协议号TCP控制位”、“源端口地址协议号TCP控制位”、“目的Ip地址协议号TCP控制位”、“目的端口地址协议号TCP控制位”;

步骤5:将组成的新的字符串和与对应的二维表中的key值进行比较,一致则在其对应的值上加1,不一致,则创建新的Key值,对应的value为1;

步骤6:定时器所设定的时间片内所有流记录处理按照上一步骤处理完毕,并形成最终4种流量4个域对应的16个二维表;

步骤7:获取用户给定参数k、q的值,遍历二维表,将所有Integer类型对应的值v取出来(若需要,可进一步取出大于某个阈值的v和其对应的字符串,即较为集中的元素),得到根据熵值公式可得>STs=kq-1(1-ΣinViq(ΣinVi)q);>

步骤8:得到4种流量对应的16个熵值,并按照要求格式输出。

5、微观分析模块

微观分析完成对宏观离线分析后的异常时间片进行进一步的异常确认。微观分析模块的工作流程如图9所示,此模块分为了获取熵值异常时间片集中点(重复次数较高的元素)阶段、Map阶段、Reduce阶段,具体实施步骤如下:

获取熵值异常时间片集中点阶段:

步骤:取得所有流量方向中存在熵值异常的时间片和此时间片内出现次数大于某个阈值的元素(集中点),针对每个元素,可将其与流量方向、时间片等组合成一个新的元素,格式如“流量方向时间片源Ip地址协议号TCP控制位”,最后将所有的满足条件的新的元素传递给MapReduce取得所有流量方向中存在熵值异常的时间片和此时间片内出现次数大于某个阈值的元素(集中点)。

Map阶段:

步骤1:在Map函数中提取流记录文件中每条流记录中的结束时间、源As号、目的As号、目的Ip地址、源端口号、目的端口号、协议号、TCP协议控制位等内容;

步骤2:按照结束时间将流记录划分到具体的时间片,时间片序号为:取整(结束时间/时间间隔);

步骤3:根据源As号和目的As号将网络流量划分为4个方向的流量:外部流量、外部流入流量、内部流出流量、内部流量;

步骤4:针对每条流记录,得到格式分别为:“流量方向时间片序号源Ip地址协议号TCP控制位”、“流量方向时间片序号源端口地址协议号TCP控制位”、“流量方向时间片序号目的Ip地址协议号TCP控制位”、“流量方向时间片序号目的端口地址协议号TCP控制位”的新的字符串,并与传递进来的元素作比较;

步骤5:若由当前流记录提取出来的新的元素与传递进来的某个元素一致,则针对每条流记录,输出4个〈key,vlue〉对,格式分别为:〈“流量方向时间片源Ip地址协议号TCP控制位”,“源Ip地址”〉、〈“流量方向时间片源Ip地址协议号TCP控制位”,“源端口地址”〉、〈“流量方向时间片源Ip地址协议号TCP控制位”,“目的Ip地址”〉、〈“流量方向时间片源Ip地址协议号TCP控制位”,“目的端口地址”〉。

Reduce阶段:

步骤1:建立4个格式为<String,Integer>的二维表,分别对应源Ip地址、源端口号、目的Ip地址、目的端口号,其中String类型部分存储value对应的不重复的字符串(Ip地址转换成整型值),Integer用来存储该字符串在这个key对应的value迭代器中出现的次数,处理key对应的所有value值,形成最终的4个二维表;

步骤2:依次遍历每个二维表,得到Key的个数后求得不重复元素出现概率=1/Key的个数,若此值大于某个阈值(如1/10),则判断元素分布“集中”;若小于此阈值,则将所有的Key看作二维空间上的点,横坐标为二维表中Key的序号,纵坐标为Key的值,形成一条折线图,最后判断这条折线是否具有“人为特征”,如折线上的某一段占据了整个折线的很大比例算做此折线具有“人为特征”,或者具有相同斜率的折线段占据了整个折线的很大比例算做此折线具有“人为特征”;

步骤3:除了集中点外,而且此集中点对应的其它域出现“集中”或者“人为特征”的分布,则判断发生了与此集中点相关的异常,若不能判断的集中点,则输出到指定文件,由人工判断。

6、检测结果显示模块

检测结果显示模块完成离线异常检测结果和在线异常检测结果的显示。检测结果显示模块的工作流程如图10所示,包括离线异常检测结果显示和在线异常检测结果显示,具体实施步骤如下:

离线异常检测结果:

步骤1:按照时间顺序查询数据库中记录的正常和异常信息;

步骤2:将查询到的正常和异常时间片对应的信息,对应所发生的时间有区别的显示在离线检测显示界面上。

在线异常检测结果:

步骤1:定时查询数据库更新;

步骤2:将查询到的更新信息,按照时间顺序将正常时间片和异常时间片区别显示,并追加到在线监测显示界面上。

本发明基于Hadoop的网络流量异常检测系统,物理上是由一个Hadoop集群或者由一个Hadoop集群加一台独立主机构成,逻辑上包括流量采集存储模块、训练模块、离线检测模块、在线监测模块、微观分析模块、检测结果显示模块。在线采集存储模块为训练模块、离线检测模块、微观分析模块提供流记录数据;训练模块为离线检测和在线检测模块提供异常检测阈值;微观分析模块可对离线检测模块的运行结果进行进一步的验证;检测结果显示模块负责显示离线检测、在线检测及微观分析等模块的运行结果。

所述系统通过网络与边界路由器连接,边界路由器主动发送流记录数据到指定的接收主机,整个系统被动接收数据,不向边界路由器发送任何数据,由于检测工作都在系统内部完成,不需要关心自治域内的网络拓扑结果,不会对边界路由器产生主动的影响,独立性强。

流量采集存储模块完成IPFIX网络流量的采集存储工作,需要依次完成流数据的采集、解码以及存储到集群的HDFS文件系统等工作。

训练模块完成检测阈值的获取工作,需要在MapReduce框架下依次完成熵值计算、模糊C均值聚类(FCM)等工作。

离线检测模块完成海量流数据的离线异常检测工作,需要完成离线流量数据对应的所有时间片的熵值计算及网络流量异常时间片的判断工作。

在线监测模块完成当前时间片的在线异常检测工作,需要完成当前时间片的熵值计算及当前时间片流量是否异常的判断工作。

微观分析模块负责再次验证异常时间片是否发生异常,需要提取与集中点(时间片内出现次数较多的元素)有关的元素,并判断元素的分布是否出现了“人为特征”。

检测结果显示模块完成离线异常检测结果和在线异常检测结果的显示,对不同的流量类型的数据进行分别的显示。

本发明基于Hadoop的网络流量异常检测系统,所述系统按照流量方向将流量分成外部流量、流入流量、流出流量和内部流量4种类型,并采用了宏观熵值检测和微观集中点半自动分析的方法进行网络流量异常检测。

本发明基于Hadoop的网络流量异常检测系统,在数据分析上提供了对IPFIX流数据的支持,且在熵值计算过程中采用了源Ip地址、源端口号、目的Ip地址、目的端口号与协议号、TCP控制位相结合的方式,对其组成的新的元素计算Tsallis熵值。

以上,仅为本发明的较佳实施例,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应该以权利要求所界定的保护范围为准。

去获取专利,查看全文>

相似文献

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

客服邮箱:kefu@zhangqiaokeyan.com

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

  • 服务号