基于大数据的互联网异常流量检测研究
2018-05-14李宁
李宁
摘要:为了提高网络异常流量检测结果的准确性,研究基于大数据分析的网络异常流量检测方法,并运用Matlab软件对其进行验证,采用支持向量机算法来建立云计算平台中的网络流量检测模型,运用现有的数据样本对建立的检测模型进行训练,增强其泛化能力。实验结果表明,基于大数据的网络异常流量检测模型能够提高检测准确率28.3%,而耗时仅为常规单机网络异常流量检测方法的12.6%。
关键词:大数据;异常流量检测;云计算;支持向量机
中图分类号:TP393文献标志码:A
文章编号:2095-5383(2018)04-0034-05
随着互联网与人们的生活越发紧密,网络异常事件也越发频繁,对网络的质量和可靠性提出了直接而严重的挑战。如能在短时间内发现网络异常事件,就可高效应对并提高网络通信的安全性。一方面,为保证网络的相对安全,网络供应商和用户签署了不少的通信协议,但这些协议漏洞较多,此外,网络主流产品存在不完善之处、操作员对管辖内的主机存在疏于管理、木马病毒等问题,都会对网络安全提出挑战。另一方面,随着网络在人类生活中的普及,网络数据海量剧增,各种应用App越发多样,通信数据逐日剧增,如何确保企业信息的安全和对异常流量的监测已成为当代企业发展的一大难题。所以,对海量的数据流量进行监测,已成为当前互联网行业的核心挑战难题[1-2]。
网络流量异常检测问题可简化认定为流量分类问题,即对一个流量状态判别为正常流量或异常流量两种。当检测结果为异常流量时,系统就会采取相应的防范动作;反之,就不用进行处理。目前流量检测模型主要是以统计学理论为基础发展而来的,检测模型的建立方法与检测结果的准确性息息相关,现有的建模方法主要有神经网络和支持向量机两种。当采用神经网络方法来对检测模型进行建模时有一个检测前提,即检测样本数必须达到一定数量才能保证其检测结果的准确性,反之检测结果会存在误差。由于在实际应用时,检测样本数量是随机的,并且还存在神经网络结构难以确定的问题,故采用神经网络方法来对流量异常检测存在一定限制。相比之下,支持向量机就没有这么多的限制,因其更具强大学习能力,故流量异常检测常运用支持向量机来建立检测模型。然而随着数据规模的增大,支持向量机在保证检测精度的前提下,耗费的时间越来越长,不足以满足使用要求。随着互联网技术的迅猛发展,云平台处理数据能力也越发全面,尤其在解决大规模网络流量异常监测问题时更为突出,它可以将一个大的问题划分为多个小问题,然后基于Hadoop平台对这些小问题分散解决,并对这些分散结果进行汇总,得到最终的网络流量监测结果[3-4]。
为了保证检测结果的准确性,本文研究一种基于大数据分析的网络异常流量检测方法,并运用Matlab软件对其进行验证,仿真结果表明,本文设计的检测模型应用效果良好,优于对比模型。
1网络异常流量分析及数据特征提取
本文以影响网络安全的网络异常流量的检测为主要研究内容,核心任务是对入侵事件等网络异常流量进行识别分类。运用现有的数据样本对建立的检测模型进行训练,增强其泛化能力。然后运用现有的数据样本对训练后的识别分析模型做检验,验证其识别效果。
本文研究的异常流量类型主要分为4种:DOS攻击类型、U2R攻击类型、R2L攻击类型以及Probing攻击类型。要想从海量数据中精准识别影响网络安全的异常流量,需要对所有数据特征进行提取、分析、验证等步骤来对入侵事件进行识别和分类。本文应用15种入侵事件的特征数据[5]:
1)持续工作时间:service_continuance;2)离散的不间断协议:continued_protocol;3)离散的工作种类:type_service;4)离散的常规行为或入侵事件:regular or assault;5)离散的接点状态:connection_state;6)不间断的分片事故总数:error_num_fragmentation;7)不间断的失败登陆记录总数:num_failed_attempts;8)不间断的由数据源到目标的数据比特数:src_dst_bytes;9)不间断的目前和过去2 s时间段内相同目标地址的衔接总数:same_dst_count;10)不间断的目前和过去2 s时间段内相同工作类型的衔接总数:same_service_count;11)不间断的目前和过去2 s时间段内相同目标地址中错误SYN衔接占比:syn_error_proportion;12) 不间断的目前和过去2 s时间段内相同工作类型中错误SYN衔接占比:srv_error_proportion;13) 不间断的目前和过去2 s时间段内相同工作类型中不同目标地址衔接的占比:dst_diff_host_proportion;14)不间断的前100个衔接中与目前地址和服务均相同的衔接的占比:service_host_same_srv_proportion;15)持续的创建新文件个数:num_file_operations。
2大数据分析模型
2.1基于Hadoop的大数据分析系统框架
随着待处理数据规模的剧增,计算硬件系统的发展已满足不了应用要求,单台计算机处理数据速度过于缓慢,效率低下,故云计算系统应运而生。在该系統中,以Hadoop作为平台基础,以Map/Reduce操作作为工具来对数据进行分布式处理,提高计算效率。Hadoop工作原理如图 1 所示[6]。
基于Hadoop平台对网络异常流量进行识别操作流程如下:
1)操作人员向Hadoop平台提交网络流量检测请求:首先使用Job Client指令从Job Tracker中获得网络流量检测作业地址。然后工程JAR包开始运行,使用Job Client指令把程序可识别的网络流量特征数据和一些相关数据文件Copy到HDFS中。最后通过Job Client指令把上述作业发送至Job Tracker中,Job Tracker再对数据信息执行检查动作,并从HDFS中获取作业分类情况,为后面的执行动作做准备。
2)分配及初始化作业任务:Job Tracker模块在收到作业任务后会立即执行任务初始化操作,并且会对获取的任务进行队列排布。在Hadoop平台中运用作业调度器可实现对该任务的调度动作。通过对Task Tracker心跳情况进行分析,Job Tracker模块会依据分析结果对在各节点上进行任务布置,因为在DataNode模块上也会放置一些特征数据,故在MapTask动作的执行过程中,Job Tracker可以直接获取输入数据,减少网络损耗[7]。
3)作业任务Map动作过程:在任务分配完成之后,就进入Map阶段,该阶段所需的数据及JAR文件都可从HDFS中提取,并且会在本地磁盘中进行储存。对JAR文件和数据加载动作的实现是依靠对计算机Java虚拟机的执行,此时Task Tracker就会收到数据块,开始对作业任务进行处理。在Map动作过程中,需要对文件库中的网络流量特征和输入网络流量特征两者间进行测试,之后将文件库中的网络流量类别和距离测试的结果作为最终输出结果的键值对进行输出,Map动作的最终结果会在本地计算机磁盘中存储。
4)作业任务Reduce动作过程:系统在获得Map动作阶段的计算结果后,就开始执行Reduce动作,对网络流量进行分类。MapReduce动作的分类标准是依照上一阶段计算得到的键值对,当中间结果键值相同时就会将与之相对应的网络流量特征向量进行整理与合并,之后通过ReduceTask模块对合并结果再次进行整理。ReduceTask模块可以对MapTask的输出结果进行排序,排序后得到的网络流量分类结果会在HDFS模块中进行存储。
5)结束网络流量分类动作:在Reduce动作完成之后,JobTracker会对任务状态进行判断,在确定任务完成后会执行相应动作,并且操作者也可以通过JobTracker模块来获取任务运行的结果参数。最后系统会通过JobTracker模块清空当前作业状态,删除Map动作产生的相应中间数据,操作者可以通过HDFS模块进行结果数据查看[8]。
2.2分类器模型建立
BP神经网络可用于建立网络流量检测模型。应用BP神经网络对网络流量进行识别时需要经过大量的矩阵运算,尽管MapReduce平台具有高效计算优势,但是由于神经网络自身结构原因,最优参数结果的获得需要多次反复的计算优化才能获得,这就制约了该算法在MapReduce平台的应用,由于MapReduce平台单次不能实现神经网络计算任务,需要多次循环多练优化操作,所以采用BP神经网络算法在MapReduce平台建立的网络流量检测模型不但不会缩减计算时间,更有可能加长计算时间,故该类算法不适用于MapReduce模型。
所以本文采用支持向量机算法来建立云计算平台中的网络流量检测模型。支持向量机是一种用于机器学习的方法,它是以统计学习理论作为基础,通过寻找结构化风险最小为途径来增强其学习能力,以此来达到经验风险和置信范围最小的目的。正是基于这种能力,该算法才可以实现从少数量样本中,获得最优统计规律,即寻求出正、负分类的最大间隔。
目前采用支持向量机算法来建立的网络异常流量检测模型通常是由单台计算机独立完成的,对计算机硬件系统要求较高。现在云计算Hadoop平台为采用支持向量机算法建立网络异常流量检测模型提供了便捷,能够充分发挥MapReduce模型的高效率计算特征,详细过程如图2所示。
MapReduce模型中整体支持向量AllSVs的获得是通过Map和Reduce两步操作。通过Map操作获得训练数据支持向量SVs;通过Reduce操作对SVs进行收集,进而建立整体的AllSVs模块。实际测试操作流程首先运用Map操作来对各测试数据子集进行计算,进而获得各分量结果Rs,然后运用Reduce操作对各分量结果Rs进行统计,获得最终的识别结果[11]。
3网络异常流量检测分析实例
3.1实验平台搭建
使用KDD CUP99数据集中的数据进行网络异常流量检测分析。选取包括DOS 攻击、R2L 攻击、U2R攻击、Probing 攻击四类异常流量数据以及正常流量数据在内的10 000条数据用于检测分析。建立4组实验样本,各个实验样本中各类型流量的数据数量如表2所示。
为了对所有网络流量检测的识别方法做出宏观评价,一般采用反馈率(recall)和准确率(precision)这两个参数来衡量检测方法的好坏。
其中:TP为已经准确识别动作A特征的样本数量;FN为没有识别动作A特征的样本数量;FP为被错误识别动作A特征的样本数量。
3.2检测系统测试分析
使用单机平台下SVM算法建立的网络异常检测模型和本文研究大数据分析平台下的网络异常检测模型进行对比分析,各个实验样本下的检测准确率对比如图3所示。
各实验样本的检测准确率对比表明,本文研究的检测模型的平均识别率为68.5%,使用单机平台下SVM算法建立的网络异常检测模型的平均识别率为40.2%,本文研究的基于大数据的网络异常流量检测模型能够提高28.3%的检测准确率。
在当前大数据环境下,检测模型不仅要满足日益增长的对准确率的要求,同时还要满足一定的检测实时性。通过多次实验对比使用本文提出的网络异常流量检测方法和常规的单机网络异常流量检测方法进行检测的耗时对比,如图4所示。
耗时对比显示,使用本文提出的网络异常流量检测耗时仅为常规单机网络异常流量检测的12.6%,说明本文提出的检测方法具有更好的实时性。
4结论
1)为了保证检测结果的准确性,本文研究基于大数据分析的网络异常流量检测方法,并运用Matlab软件对其进行验证。
2)本文研究的基于大数据的网络异常流量检测模型能够提高28.3%的检测准确率。
3) 使用本文提出的网络异常流量检测方法的检测耗时仅为常规单机网络异常流量检测方法的12.6%,说明本文提出的检测方法相比常规方法具有更好的实时性。
参考文献:[1]陈胜,朱国胜,祁小云,等.基于机器学习的网络异常流量检测研究[J].信息通信,2017(12):3942.
[2]张楠,李洪敏,卢敏,等.网络异常流量检测方法[J].兵工自动化,2016,35(9):6669.
[3]张晓艳.基于机器学习的网络异常流量检测方法[J].现代电子技术,2015,38(23):7679.
[4]李洪洋.浅析网络异常流量分析检测研究与实现[J].网络安全技术与应用,2013(10):6364.
[5]宋玲, 常磊.變异粒子群优化的 BP 神经网络在入侵检测中的应用[J].智能系统学报, 2013(6):558563.
[6]蒲晓川.大数据环境下的网络流量异常检测研究[J].现代电子技术,2018,41(3):8487.
[7]陈洪.基于云计算的大规模图像检索后台处理系统实现[D].成都:西南交通大学,2013.
[8]梁世磊.基于Hadoop平台的随机森林算法研究及图像分类系统实现[D].厦门:厦门大学,2014.
[9]张水波,康飞,李祥飞.基于支持向量机的建设工程项目经理胜任力评价[J].中国软科学,2013(11):8390.
[10]刘治翔,谢春雪,毛君,等.空心阴极真空电弧焊接的引弧机理及参数优化[J].振动.测试与诊断,2018,38(3):614618.
[11]朱启敏.基于云计算平台的神经网络计算方法及其应用研究[D].广州:华南理工大学,2014.