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

文档序号:9790882阅读:541来源:国知局
基于Hadoop的边缘网出口网络流量异常检测方法、系统的制作方法
【技术领域】
[0001 ] 本发明设及一种基于化doop的边缘网出口网络流量异常检测系统及其方法。
【背景技术】
[0002] 如何在海量数据的网络中进行网络流量异常检测是一项重大的挑战,目前已经提 出了多种网络流量异常检测算法及其解决方案,最常见的为基于原始数据包的检测和基于 网络数据流的检测。
[0003] 在网络流量数据采集方面,基于原始数据包的网络流量异常检测解决方案,虽然 获取的数据较为全面,但也由于自治域内数据包的数量非常巨大,很难在单台设备上实现 网络数据的采集,而基于网络数据流的网络流量异常检测方案由于分析的数据源为网络流 量的统计信息,运就使得网络流量采集的处理和存储开销更小,网络流量异常检测系统更 加具有可扩展性。
[0004] 在流量异常检测方面,由于基于赌的网络流量异常检测可W将一个时间段内所有 数据流的某个字段值的概率分布浓缩成一个具体的赌值,且异常时间片对应的赌值会和正 常时间片对应的赌值有所区别,所W根据时间片的赌值可W检测网络流量是否存在异常; 在海量网络流记录数据处理方面,采用基于Hadoop云计算平台的大数据技术则可W很好的 解决处理能力问题。

【发明内容】

[0005] 针对上述问题,本发明提供一种结果准确、有效,实现方便的基于化doop的边缘网 出口网络流量异常检测方法、系统
[0006] 为达到上述目的,本发明基于化doop的边缘网出口网络流量异常检测方法,所述 方法包括:
[0007] 对训练数据流进行训练,得到异常数据流的检测阔值;
[000引接收AS边界路由器输出的在线流数据流;
[0009] 基于所述检测阔值分别判断在线流数据和离线流数据的异常时间片是否超过阔 值;
[0010] 记录并显示检测结果。
[0011] 进一步地,对训练数据流进行数据训练的方法,具体包括如下步骤:
[0012]在MapReduce框架下,对所有训练数据流进行离线赌值计算,计算所有时间片的赌 值;
[0013] 对经过MapReduce得到的赌值文件进行处理,将4种不同方向的流量分别写入4个 不同的文件,所述不同方向的流量分别为:外部流量、外部流入流量、内部流出流量、内部流 量;
[0014] W得到的赌值文件为输入,利用FCM聚类算法进行聚类,得到4种不同流量分别对 应的正常类和异常类的中屯、点C和半径r,并将正常类对应的c+a村作为上阔值,将c-a村作 为下阔值,a为大于O的实数,将阔值分别写入4种流量对应的检测阔值文件。
[0015] 进一步地,在线数据数据采集方法,具体包括如下步骤:
[0016] 从网络中抓取由As边界路由器主动发送来的IPFIX流数据;
[0017] 根据IPFIX模版进行解码,并转换成对应的文本格式;
[0018] 将转换后的文本文件保存到化doop集群HD!^文件系统下指定的目录。
[0019] 进一步地,离线数据检测方法,具体包括如下步骤:
[0020] 在MapReduce框架下,对所有的被检测离线流记录数据进行离线赌值计算,计算所 有时间片对应的4个不同流量方向的赌值;
[0021] 依次将每个时间片得到的4个赌值和所对应流量类型的训练得到的赌值阔值进行 比较;
[0022] 若超过阔值,则将此时间片划归为异常时间片,未超过阔值,则将此时间片划归为 正常时间片;
[0023] 将检测结果存储到数据库中;
[0024] 离线赌值计算Tsal Iis赌值公式为:
[00%]其中,k、q为公式的参数;
[0027] Pi为时间片内第i个不重复的元素出现的概率,
[0029] 进一步地,在线数据检测方法,具体包括如下步骤:
[0030] 接收As边缘路由器发送的流数据按照IPFIX模版格式解码;
[0031] 对上个时间片截止时间到当前时间片截止时间收到的流记录进行处理,计算当前 时间片对应的4个赌值;
[0032] 依次将每个时间片得到的4个赌值和所对应的通过训练得到的赌值阔值进行比 较;
[0033] 若超过阔值,则将此时间片划归为异常时间片,未超过阔值,则将此时间片划归为 正常时间片;
[0034] 将检测结果存储到数据库中。
[0035] 进一步地,离线赌值计算方法,具体为:
[0036] Map 阶段:
[0037] 在Map函数中提取流记录文件中每条流记录中的结束时间、源As号、目的As号、目 的Ip地址、源端口号、目的端口号、协议号、TCP协议控制位内容;
[0038] 按照结束时间将流记录划分到具体的时间片,时间片序号为:取整结束时间/时间 间隔;
[0039] 根据源As号和目的As号将域内网络流量划分为4个方向的流量:外部流量、外部流 入流量、内部流出流量、内部流量;
[0040] 针对每条流记录,输出4个〈key,vlue〉对,格式分别为:〈"流量方向时间片序号源 Ip地址协议号TCP控制位",1〉,〈"流量方向时间片序号源端口地址协议号TCP控制位",1〉, 〈"流量方向时间片序号目的Ip地址协议号TCP控制位",I〉,〈"流量方向时间片序号目的端 口地址协议号TCP控制位",1〉;
[0041] Combine 阶段:
[0042] 对进入同一Comb i ner的相同Key值对应的va 1 Ue值做累加,得到累加值;
[0043] 将K巧值拆分成2部分,第一部分"流量方向时间片序号"作为新的K巧值,剩下的第 二部分加上得到的累加值(Sum)作为新的value值,具体输出格式如下:〈"流量方向时间片 序号","源Ip地址/源端口地址/目的Ip地址/目的端口地址协议号TCP控制位Sum"〉。
[0044] Reduce 阶段:
[0045] 建立4个格式为处化111旨,111*6旨6'〉的二维表,分别对应源19地址、源端口号、目的 Ip地址、目的端口号所在的新组合,其中String类型部分存储value对应的不重复的字符 串,Integer用来存储该字符串在运个k巧对应的value迭代器中出现的次数,处理k巧对应 的所有value值,形成最终的4个二维表;
[0046] 获取用户给定参数k、q的值,遍历二维表,将所有Integer类型对应的值V取出来,
[0047] 将得到的4个赌值按照格式"流量方向时间片序号源Ip地址对应赌值源端口号对 应赌值目的Ip地址对应赌值目的端口号对应赌值"输出。
[004引进一步地,离线赌值计算方法,具体为:
[0049] 针对每一种流量类型建立4个格式为<String,Integer〉的二维表,分别对应"源1口 地址协议号TCP控制位"、"源端口号协议号TCP控制位"、"目的Ip地址协议号TCP控制位"、 "目的端口号协议号TCP控制位",其中String类型部分存储value对应的不重复的字符串, Integer用来存储该字符串在运个k巧对应的value迭代器中出现的次数;
[0050] 采用定时器平均设置时间片时间间隔,从当前接收的当前时间片的流记录中提取 流记录的结束时间、源As号、目的As号、目的Ip地址、源端口号、目的端口号、协议号、TCP协 议控制位内容;
[0051] 根据源As号和目的As号区分收到的网络流量属于哪个方向的流量,分别包括外部 流量、外部流入流量、内部流出流量、内部流量;
[0052] 针对每条流记录,组成4个新的字符串,格式分别为:"源Ip地址协议号TCP控制 化'、"源端口地址协议号TCP控制位"、"目的Ip地址协议号TCP控制位"、"目的端口地址协议 号TCP控制位";
[0053] 将组成的新的字符串和与对应的二维表中的key值进行比较,一致则在其对应的 值上加1,不一致,贝包I建新的Key值,对应的value为1;
[0054] 形成最终4种流量4个域对应的16个二维表;
[0055] 获取用户给定参数k、q的值,遍历二维表,将所有Integer类型对应的值V取出来,
[0056] 得到4种流量对
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1