何欣峰 邢伟
摘 要:随着计算机和网络的发展,人们的生活已经逐渐离不开网络了,网络的出现为人们的生活、工作和出行带来了极大的便利。在这种情况下,检测网络流量,实时侦探出网络流量异常变得十分重要。文章针对传统网络异常流量检测方法的缺陷即无法自动提取特征和无法体现时序性的问题,设计了一个基于改进RNN的网络异常流量检测模型。该模型可以较好地预测网络流量并通过与真实流量做对比进行网络流量预警。与历史传统方法相比,该模型减轻了人工量并且较少了网络参数,减少了训练时间。
关键词:RNN;异常流量;检测
1 常见的网络异常检测方法
随着计算机和网络的发展,人们的生活已经逐渐离不开网络了,网络的出现为人们的生活,工作和出行带来了极大的便利[1-2]。据统计,截至2020年4月,中国网民使用网络人数已经达9.04亿,互联网普及率已经达64.5%[3]。在这种情况下,检测网络流量,实时侦探出网络流量异常变得十分重要。网络异常分为网络延迟、网络掉包、网络重发、数据篡改和网络瘫痪等。据统计,2019年,网宿云安全平台一共检测并拦截了近12 178亿次攻击,其中,恶意爬虫占据主要攻击,超过三成来自于海外攻击;分布式拒绝服务(Distributed Denial of Service,DDoS)攻击事件呈现了大流量、精准化趋势;Web应用攻击手段更加趋于自动化和智能化[4-5]。所谓网络异常检测就是通过对网络流量数据进行分析和预测对比,检测出网络中是否存在攻击。
常用的网络异常检测方法主要分为4类:(1)基于数值计算的网络异常检测方法,主要是基于阈值的异常检测,简单来说,就是对挑选出来的参数给定一个阈值,当值不在该阈值内时,系统就会报警,如恒定阈值检测方法和自适应的阈值检测方法等。该方法虽然易于实现,但是由于阈值的难确定性以及失去了时序性的考虑,所以报警准确率较低。(2)基于动态检测的网络异常检测方法,主要是指观察相邻流量值之间的变化,当变化相差较大异常时判定为异常,系统会报警,如Amy方法等。该方法对理论要求严格较难且也没有考虑时序性。(3)基于传统机器学习的网络异常检测方法是指通过机器学习的方法对网络流量数据进行研究分析然后进行异常预警服务,如最小二乘支持向量机、K-均值(K-means)算法等[6]。该方法对特征的依赖性极大,选取不同的特征对检测的准确度影响很大。(4)基于深度学习的网络异常检测方法,是指通过深度学习的方法对网络流量数据进行研究分析然后进行异常预警服务,如lstm等。该方法解决了传统机器学习中对特征性依赖性过大的问题[7]。
本文将深度学习模型CNN,RNN与网络异常流量检测相结合,设计了一个基于改进RNN的网络异常流量检测模型。该模型可以较好地对网络流量进行检测与预警。
2 相关工作
2.1 网络异常流量检测
网络异常流量检测作为一种强有力的防护手段,能够及时的发现网络攻击,对网络提供重要的技术支持,近几年来变得越来越重要。引起网络流量异常的原因通常分为两种[8]:(1)物理问题,特指网络结构中出现的物理设备故障或者物理网络设计不合理产生的网络堵塞。物理问题造成的网络流量异常是难以发现的,且解决必须人工。(2)安全问题,特指由于网络攻击行为产生的网络流量异常,如蠕虫病毒、DDoS攻击等。安全问题造成的网络流量异常是比较常见的。
常用的网络异常检测主要分为4类:基于数值计算的网络异常检测方法、基于动态检测的网络异常检测方法、基于传统机器学习的网络异常检测方法和基于深度学习的网络异常检测方法。这些方法的差异性如图1所示。对于基于数值计算、基于动态检测的网络异常检测方法都是人工设计的,不具备自主学习能力,而基于传统机器学习和基于深度学习的网络异常检测方法在匹配特征上可以机器自动学习。对于基于数值计算、基于动态检测和基于传统机器学习的网络异常检测方法都使用了手工设计的程序具有主观性,特征设计较困难,而深度学习方法却可以较好的解决该问题。近几年的实验结果证明借助深度学习的独特能力,可以克服以往方法的缺陷,进一步提高网络异常流量检测的能力[9-11]。
本文将深度学习算法与网络异常流量检测相结合,设计了一个基于改进RNN的网络异常流量检测方法。
2.2 时间序列模型
网络流量是体现网络运行状态和性能状态的关键指标,是随时间变化的[12]。因此,可以将它砍成一个时间序列,用时间序列的分析方法去解决该问题[13]。时间序列是指按照时间顺序排列、随时间变化的且相互之间有关系的序列,而时间序列模型就是专门针对时间序列而设计的模型。针对预测变量的区别,可以分为单变量时间序列模型和多变量时间序列模型。
常用的时间序列模型包括:(1)自回归模型(Autoregressive Model,AR),是假设数据是符合线性关系的,用回归分析中的线性回歸方法来分析模拟。该方法需要的数据不多,利用自身的数据数列就可以进行预测,较方便,但必须预测与前期相关的序列。(2)移动平均模型(Moving Average Model,MA),其假设是指当前时刻的值是过去q阶白噪声的线性组合。该方法需要的数据不多,但是其当前时刻的数据也与历史数据关联性较大。(3)自回归移动平均模型(Autoregressive Moving Average Model,ARMA),AR与MA混合而成的模型,可以解决很大一部分的实际问题。但是其当前时刻的数据也得与历史数据有较大关联性。
2.3 RNN
循环神经网络(Recurrent Neural Network,RNN)的结果如图2所示。该网络中有一个特殊的单元即记忆单元,记忆单元是RNN的关键所在。RNN的记忆单元会保存隐藏层的状态,即保存上一个时刻的状态。然后在第t+1时刻的真实输入是记忆单元中的内容和t+1时刻的输入。RNN每个时刻隐藏层的输出都会传递给下一时刻,因此每个时刻的网络都会保留一定的来自之前时刻的历史信息,并结合当前时刻的网络状态一并再传给下一时刻。
RNN在理论上可以很好地解决序列数据模拟和预测问题。但是他存在梯度消失的问题,尤其是序列越长时梯度越容易消失[14-15]。
3 基于RNN的网络异常流量检测
3.1 总模型
本文的数据集是流量特征向量,每个特征之间不具备相关性。本文总模型结构如图3所示,主要包含5个步骤。
步骤1:数据预处理。主要作用是将不同尺度的数据标准化映射到[0,1]。若不经过该步骤的话,不同尺度的数据对模型就会因为单位评价标准不同产生较大的影响。本文所采用的数据预处理算法如下:
步骤2:构建RNN模型。本文构造的RNN模型主要分为两块:CNN特征提取块,RNN时序预测块。
模块1:CNN特征提取块。本文构建CNN特征提取块的目的是从原始特征向量中提取出与最终流量关联性最大的特征。该模块减少了算法复杂度和参数量。该块的结构如图4所示,即由卷积层、池化层和全连接层串联而成。
模块2:RNN时序预测块。本文构建的RNN时序预测块其核心如图5所示,即当前时刻的输出值取决于上一个时刻的状态与当前时刻的值。第t个时刻的输出为:
步骤3:训练。根据最后预测到的结果与真实结果相比较计算其损失,通过反向传播传递到前进行不断的迭代训练更新模型参数直到模型最终收敛。
步骤4:测试。当在训练集合上模型训练好了后,就将测试集的数据放入训练好的模型进行预测。根据预测出来的预测值与真实值进行比较计算误差,判断该模型的性能。若效果好则停止整个过程,若效果不好,则将重新训练。
步骤5:真实实时数据预警。当模型已经训练好了之后,当真实实时数据进来时,将其输入训练好的模型预测下一个时刻的流量值,当下一个时刻的真实值进来时,比较其与预测值的大小,若相差较大,即预警;否则不做操作。
3.2 模型的有效性与优势
本文使用的方法可以有效的体现网络流量的时间序列性能。与此同时,该方法可以减少人工挑选特征的困难性,将原始的流量特征输入模型,让模型自主去选择和学习各特征与流量值之间的关联性。
4 结语
本文分析了网络异常流量产生的原因与弊端,将深度学习模型能从原始数据中自动提取高层特征和RNN时序网络相结合提出了一种基于改进RNN的网络异常流量检测模型。该模型可以较好的预测网络流量当真实的网络流量与预测值相差较大时,可直接判断为异常流量进行预警。本文根据历史模型无法体现流量时序性以及无法自动提取流量特征的问题,提出了一种较合理的网络异常流量判断模型。
[参考文献]
[1]丁美美.基于主成分分析的网络流量异常检测研究[D].北京:北京交通大学,2017.
[2]张红福.基于流量的网络异常检测方法研究[D].桂林:桂林电子科技大学,2018.
[3]中国互联网研究中心.第45次《中国互联网络发展状况统计报告》[EB/OL].(2018-08-20)[2021-11-23].http://www.cac.gov.cn/2020-04/27/c_1589535470378587.htm.
[4]杭夢鑫,陈伟,张仁杰.基于改进的一维卷积神经网络的异常流量检测[J].计算机应用,2021(2):433-440.
[5]孙友添.2019年中国互联网网络安全报告出炉[J].计算机与网络,2020(20):16-19.
[6]张艳升,李喜旺,李丹,等.基于卷积神经网络的工控网络异常流量检测[J].计算机应用,2019(5):1512-1517.
[7]苏孟辉.基于时间序列的网络流量检测系统的设计与实现[D].广州:华南理工大学,2015.
[8]PRESS C. Network anomaly detection:a machine learning perspective[J].Endocrinology,2013(45):455-463.
[9]陈冠衡,苏金树.基于深度神经网络的异常流量检测算法[J].信息网络安全,2019(6):68-75.
[10]王军峰.基于深度学习的网络流量分类及异常检测方法研究[J].缔客世界,2019(1):1.
[11]黎佳玥,赵波,李想,等.基于深度学习的网络流量异常预测方法[J].计算机工程与应用,2020(6):39-50.
[12]荣利.网络流量的监测与控制方法的设计与实现[D].北京:北京邮电大学,2012.
[13]姜明,吴春明,张旻,等.网络流量预测中的时间序列模型比较研究[J].电子学报,2009(11):2353-2358.
[14]苏兰莹,刘桂霞,杨雅辉,等.采用结构与参数训练相结合的RNN模型构建基因调控网络[J].吉林大学学报(理学版),2010(2):134-140.
[15]潘丽敏,闫晗,罗森林,等.RNN模型的逐点损失估计优化方法:109961143A[P].2019.
(編辑 傅金睿)
Research on network abnormal traffic detection based on improved RNN
He Xinfeng, Xing Wei
(Jiangsu Golden Shield Detection Technology Co., Ltd., Nanjing 210042, China)
Abstract:With the development of computer and network, people’s life has been gradually inseparable from the network. The emergence of the network has brought great convenience to people’s life, work and travel. In this case, it is very important to detect network traffic and detect network traffic anomalies in real time. In this paper, aiming at the defects of traditional network abnormal traffic detection methods, that is, unable to extract features automatically and can not reflect the timing, a network abnormal traffic detection model based on improved RNN is designed. This model can better predict the network traffic and carry on the network traffic early warning by comparing with the real traffic. Compared with the traditional historical methods, this model reduces the amount of labor and network parameters, and reduces the training time.
Key words:RNN;abnormal flow;detection