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

文档序号:9790882阅读:来源:国知局
上阔值,将C-a*r作为下阔值,a为大于0的实数,最后将阔值分别写入4种流量对应的检测阔值文件。
[0107] 3、离线检测模块
[0108] 离线检测模块完成网络流量的离线异常检测。离线检测模块的工作流程图如图5 所示,进行检测的数据源为存储的历史流记录文件,具体实施步骤如下:
[0109]步骤1:在MapReduce框架下,对所有的被检测的流记录文件按照离线赌值计算流 程图所述步骤计算所有时间片对应的4个赌值;
[0110] 步骤2:依次将每个时间片得到的4个赌值和所对应流量类型的训练得到的赌值阔 值进行比较;
[0111] 步骤3:若超过阔值,则将此时间片划归为异常时间片,未超过阔值,则为正常时间 片;
[0112] 步骤4:将检测结果存储到数据库中。
[0113] 离线赌值计算是完成离线流量数据的Tsallis赌值计算工作,Tsallis赌值公式 为:
k、q为公式本身的参数,Pi为时间片内第i个不重复的元素出现的 概率,
[0114] 离线赌值计算的工作流程如图6所示,将赌值计算分为了 Map阶段、Combine阶段和 Reduce阶段,具体实施步骤如下:
[01巧]Map阶段:
[0116] 步骤1:在Map函数中提取流记录文件中每条流记录中的结束时间、源As号、目的As 号、目的Ip地址、源端口号、目的端口号、协议号、TCP协议控制位等内容;
[0117] 步骤2:按照结束时间将流记录划分到具体的时间片,时间片序号为:取整(结束时 间/时间间隔);
[0118] 步骤3:根据源As号和目的As号将域内网络流量划分为4个方向的流量:外部流量、 外部流入流量、内部流出流量、内部流量;
[0119] 步骤4:针对每条流记录,输出4个〈key,vlue〉对,格式分别为:〈"流量方向时间片 序号源Ip地址协议号TCP控制位",1〉,〈"流量方向时间片序号源端口地址协议号TCP控制 位",1〉,〈"流量方向时间片序号目的Ip地址协议号TCP控制位",1〉,〈"流量方向时间片序号 目的端口地址协议号TCP控制位",1〉。
[0120] Combine 阶段:
[0121 ] 步骤1:对进入同一Combiner的相同Key值对应的value值做累加,得到累加值 (Sum);
[0122] 步骤2:将K巧值拆分成2部分,第一部分"流量方向时间片序号"作为新的K巧值,剩 下的第二部分加上得到的累加值(Sum)作为新的value值,具体输出格式如下:〈"流量方向 时间片序号","源Ip地址/源端口地址/目的Ip地址/目的端口地址协议号TCP控制位Sum"〉。
[0123] Reduce 阶段:
[0124] 步骤1:建立4个格式为<5*'111旨,Integer〉的二维表,分别对应源Ip地址、源端口 号、目的Ip地址、目的端口号等所在的新组合,其中String类型部分存储value对应的不重 复的字符串,Integer用来存储该字符串在运个k巧对应的value迭代器中出现的次数,处理 key对应的所有value值,形成最终的4个二维表;
[0125] 步骤2:获取用户给定参数k、q的值,遍历二维表,将所有Integer类型对应的值V取 出来(若需要,可进一步取出大于某个阔值的V和其对应的字符串,即较为集中的元素),得
[0126] 步骤3:优选的,可将得到的4个赌值按照格式"流量方向时间片序号源Ip地址对应 赌值源端口号对应赌值目的Ip地址对应赌值目的端口号对应赌值"输出。
[0127] 4、在线检测模块
[0128] 在线检测模块完成网络流量的在线异常检测。在线检测模块的工作流程如图7所 示,对流数据采集解码后直接进行检测,优选的,在线监测模块在一台独立于化doop集群的 主机上运行,使离线检测和在线检测不相冲突,具体实施步骤如下:
[0129] 步骤1:接收As边缘路由器发送的流数据按照IPFIX模版格式解码;
[0130] 步骤2:在单台接收数据的主机上,对上个时间片截止时间到当前时间片截止时间 收到的流记录进行处理,按照在线赌值计算流程图所述步骤计算当前时间片对应的4个赌 值;
[0131] 步骤3:依次将每个时间片得到的4个赌值和所对应的通过训练得到的赌值阔值进 行比较;
[0132] 步骤4:若超过阔值,则将此时间片划归为异常时间片,未超过阔值,则为正常时间 片;
[0133] 步骤5:将检测结果存储到数据库中。
[0134] 在线赌值计算的工作流程如图8所示,具体实施步骤如下:
[013日]步骤1:针对每一种流量类型建立4个格式为<Shing, Integer〉的二维表,分别对 应"源Ip地址协议号TCP控制位"、"源端日号协议号TCP控制位"、"目的Ip地址协议号TCP控 制位"、"目的端口号协议号TCP控制位",其中String类型部分存储value对应的不重复的字 符串,Integer用来存储该字符串在运个k巧对应的value迭代器中出现的次数;
[0136] 步骤2:采用定时器平均设置时间片时间间隔,从当前接收的当前时间片的流记录 中提取流记录的结束时间、源As号、目的As号、目的Ip地址、源端口号、目的端口号、协议号、 TCP协议控制位等内容;
[0137] 步骤3:根据源As号和目的As号区分收到的网络流量属于哪个方向的流量,分别包 括外部流量、外部流入流量、内部流出流量、内部流量;
[0138] 步骤4:针对每条流记录,组成4个新的字符串,格式分别为:"源Ip地址协议号TCP 控制位"、"源端口地址协议号TCP控制位"、"目的Ip地址协议号TCP控制位"、"目的端口地址 协议号TCP控制位";
[0139] 步骤5:将组成的新的字符串和与对应的二维表中的key值进行比较,一致则在其 对应的值上加1,不一致,则创建新的K巧值,对应的value为1;
[0140] 步骤6:定时器所设定的时间片内所有流记录处理按照上一步骤处理完毕,并形成 最终4种流量4个域对应的16个二维表;
[0141] 步骤7:获取用户给定参数k、q的值,遍历二维表,将所有Integer类型对应的值V取 出来(若需要,可进一步取出大于某个阔值的V和其对应的字符串,即较为集中的元素),得
[0142] 步骤8:得到4种流量对应的16个赌值,并按照要求格式输出。
[0143] 5、微观分析模块
[0144] 微观分析完成对宏观离线分析后的异常时间片进行进一步的异常确认。微观分析 模块的工作流程如图9所示,此模块分为了获取赌值异常时间片集中点(重复次数较高的元 素)阶段、Map阶段、Reduce阶段,具体实施步骤如下:
[0145] 获取赌值异常时间片集中点阶段:
[0146] 步骤:取得所有流量方向中存在赌值异常的时间片和此时间片内出现次数大于某 个阔值的元素(集中点),针对每个元素,可将其与流量方向、时间片等组合成一个新的元 素,格式如"流量方向时间片源Ip地址协议号TCP控制位",最后将所有的满足条件的新的元 素传递给MapReduce取得所有流量方向中存在赌值异常的时间片和此时间片内出现次数大 于某个阔值的元素(集中点)。
[0147] Map 阶段:
[0148] 步骤1:在Map函数中提取流记录文件中每条流记录中的结束时间、源As号、目的As 号、目的Ip地址、源端口号、目的端口号、协议号、TCP协议控制位等内容;
[0149] 步骤2:按照结束时间将流记录划分到具体的时间片,时间片序号为:取整(结束时 间/时间间隔);
[0150] 步骤3:根据源As号和目的As号将网络流量划分为4个方向的流量:外部流量、外部 流入流量、内部流出流量、内部流量;
[0151] 步骤4:针对每条流记录,得到格式分别为:"流量方向时间片序号源Ip地址协议号 TCP控制化'、"流量方向时间片序号源端口地址协议号TCP控制位"、"流量方向时间片序号 目的Ip地址协议号TCP控制位"、"流量方向时间片序号目的端口地址协议号TCP控制位"的 新的字符串,并与传递进来的元素作比较;
[0152] 步骤5:若由当前流记录提取出来的新的元素与传
当前第3页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1