基于自编码器算法的网络正常流量过滤方案
2021-04-05闫晓宇张靓李志敏唐雯炜
闫晓宇 张靓 李志敏 唐雯炜
摘 要:为解决网络应用层流量所带来的安全隐患与传统检测方法极大地消耗设备性能的问题,提出一种基于自编码器算法的网络正常流量过滤的解决方案。该方案对数据流量集进行规则预处理后,提取流行为上的统计特征,对提取的特征进行自编码器算法的模型过滤。实验结果表明,该方案可过滤掉大部分网络中的正常流量,相较于传统的流量检测方法,整体的过滤性能显著提升。
关键词:网络正常流量;自编码器算法;CICIDS2017数据集;Wireshark
中图分类号:TP393 文献标识码:A 文章编号:2096-4706(2021)17-0069-04
Abstract: In order to solve the hidden danger caused by network application layer traffic and the problem that traditional detection methods greatly consume equipment performance, a solution of network normal traffic filtering based on AutoEncoder algorithm is proposed. After the rule preprocessing of the data traffic set, statistical features on traffic behavior are extracted, and the extracted features are filtered by the model of the AutoEncoder algorithm. The experimental results show that this scheme can filter out most of normal traffic in the networks. Compared with the traditional traffic detection method, its overall filtration performance is improved greatly.
Keywords: network normal traffic; AutoEncoder algorithm; CICIDS2017 data set; Wireshark
0 引 言
随着网络应用的普及与多元化,针对互联网应用层的攻击层出不穷,网络安全形势逐渐恶化[1]。然而,传统安全设备在进行安全防御时,采用深度包检测方法,需要进行大量无价值的解包动作,这在很大程度上会消耗安全设备的检测性能[2],这种全流量检测模式是造成设备处理性能瓶颈的根本原因。
为此,本文提出一种基于自编码器算法的网络正常流量过滤的解决方案,旨在构建一个准确、高效的过滤网络中大部分正常流量的模型,并在校园数据流量上进行了验证,最终实现了过滤掉网络中大部分正常流量,提高网络安全检测设备过滤效率的目的。
1 总体设计
本文所提出的方案共使用两个数据集,第一部分是校园真实数据集,第二部分是加拿大安全研究所公开数据集CICIDS2017数据集[3]。第一部分可以反映校园里真实的流量使用情况,用于验证初步过滤的效果,但由于校园数据集没有标签且难以获得大量全面的恶意攻击数据,因此,在进行模型过滤时使用第二部分数据集,用于验证模型过滤训练与测试的效果。方案的实施框架如图1所示。
2 数据预处理
2.1 数据源
2.1.1 校园数据
本文使用的校园数据流量是通过镜像端口数据导包而获取的某校自2021年3月29日至2021年4月4日的真实数据。如表1所示,这一周总共产生的数据流量为151.2 T,其中视频流量63.85 T,下载流量18.03 T,视频流量连同下载流量约占总数据流量的54.15%。
2.1.2 CICIDS2017数据集
CICIDS2017数据集是由通信安全机构(CSE)与加拿大安全研究所(CIC)合作建立的,它的数据采集时间是从2017年7月3日上午9点开始,到7月7日下午5点结束,共计五天,每天取一小段时间来进行流量收集。该数据集包含283万数据流量,其中包括55万的暴力FTP、暴力SSH、DoS、Heartbleed、Web攻击、渗透、Bot攻击和DDoS八大类异常攻击流量和228万正常数据流量[4]。攻击种类丰富且数据较新,能够较好地还原真实的网络攻击环境。
2.2 数据分析
通过对校园安全系统的攻击日志分析发现,绝大部分网络上的攻击在发动之前都会进行端口扫描,所以对端口扫描的识别率是一个重要指标。在不同种类的攻击中,sql注入攻击会直接泄露数据,是最严重的攻击类型之一。而校园中发生的Bot攻击,绝大多数都属于挖矿行为,实际产生的危害较小。
2.3 数据预处理——初步过滤
Wireshark的功能包括显示网络封包的信息以及提供多种过滤规则进行报文过滤[5],其部分过滤规则如图2所示。本文利用Wireshark规则进行初步过滤,以达到缩减模型训练流量数据集的目标。
由于校园数据集中含有不携带网络层面攻击的流量数据包,如占比很大的视频包[6]与下载包。因此,在理解网络协议的基础上,使用pyshark库中的对應函数,利用提前设定好的Wireshark过滤规则,过滤校园流量数据包中的下载包、视频包、重复包、错误包和无用包。
对于不同种类的数据包,所适用的过滤规则不同。对于视频包,识别Web视频包中的content-type参数声明,或识别流量包是否为RTSP/TRCP/RTP协议;对于下载包,识别Web下载起始包和结束包中的content-disposition参数声明;对于重复包、错误包和无用包,直接根据Wireshark已提出的过滤规则进行过滤。
本文通过抽样实验来验证初步过滤的可行性,从一天的流量中随机抽取574.1 MB流量进行初步过滤,并进行十次重复实验,计算过滤结果的均值。结果显示,此步过滤掉约56%的正常流量。
2.4 特征提取与筛选
2.4.1 特征提取
深度流检测(DPI)是以流为基本研究对象,从庞大的网络流数据中提取流的特征(如流大小、流速率等),籍此判断一个流是否正常的技术。深度流检测技术由于不用对应用层数据进行深挖,只需提取流特征供以后做统计之用,故具有良好的性能,并且可以查出一些加密的异常。本文使用CICFlowMeter工具提取流的行为上的统计特征,例如流中数据包的总个数、流中数据包的总大小。
CICFlowMeter是由加拿大网络安全研究室基于java开发的一个开源工具,该工具以一个TCP流或UDP流[7]为一个单位,提取输入文件中信息的传输层的一些流的统计信息,经初步过滤后得到的初始数据包以pcap格式保存,将这部分流量数据导入CICFlowMeter工具中进行特征提取,得到流行为上的统计特征。该特征是以csv的形式输出初始数据流量文件中每条流量所包含的流行为上的共85种统计特征信息。
2.4.2 特征筛选
在模型所得到的特征中,可以分为有效特征和无效特征。无效特征是对算法产生错误影响或无意义的特征。CICIDS2017数据集是模拟真实的数据集,其攻击方式、攻击时间、攻击IP地址等都不具有实际的意义,若将其作为流量的特征则会对算法的结果造成负面影响,所以本文将IP地址、端口、时间等具有指向性的特征筛除。此外,对于相关度较低的特征和nan错误数据部分也做了筛除处理。最终选取68种有效特征用于模型的建立与训练,特征提取后的数据以csv文件的形式输出。
3 模型深度过滤
3.1 自编码器算法介绍
网络正常流量过滤的目的是将流量分类为正常流量和可疑流量的一个二分类问题,且算法模型能够学习正常流量的特征,识别出正常流量和异常流量。
自编码器算法(AutoEncoder算法)是一种无监督神经网络方法,由编码器和解码器两部分组成,常用于特征降维领域[8]。如图3所示,自编码器算法有着多层神经元结构,可以对数据的特征进行非线性的降维表示,将流量特征数据输入,经过编码器的压缩和解码器的还原后,计算得出的原始向量与还原后向量之间的误差平方和(SSE)作为异常分数[9]。由于只用正常流量的数据对自编码器算法的模型进行训练和拟合,而异常流量的特征与正常流量的差异比较大,会产生较大的重构误差[10],体现在结果上就是异常分数很高。
3.2 模型训练与调参
在建立模型的过程中,需要进行优化调参,寻找最优的模型,在最优模型上进行结果分析。在此步中,需要进行调整的参数包括隐藏层的数量、每一层的神经元数量、激活函数和L2正则化项,使用Tensorflow库进行实现。
利用自动超参数优化框架optuna[11],在规定模型各个参数的选取范围后开始自动寻参,并生成多條结果,如图4所示。从寻参结果的AUC值中选取效果最优的自编码器算法模型,其各项参数为,7层隐藏层:67、60、59、58、59、60、67;激活函数为relu,L2正则项为4.5590082589219E-09,标准化方式为quantile,epochs为16。
3.3 模型过滤
对特征提取后的流量数据进行处理后输入建立好的自编码器算法模型,根据模型结果计算其异常分数,将其视作统一结果的评价标准。异常分数越高,则认为偏离正常流量越远,存在异常的概率越大;相反,异常分数越低,存在异常的概率就越小。
通过算法模型得到每一条流量数据的异常分数,选取合适的阈值进行正常流量和异常流量的类别划分。将异常分数小于阈值的流量数据视作正常流量,大于阈值的流量数据视作可疑流量。在尽量不漏掉恶意攻击的前提下,遵循追求尽可能高的正常流量识别率的原则,根据算法的耗时与过滤效率,选取合适的阈值对流量数据进行二分类。
如图5所示,正常流量与异常流量在(0.5,1.5)之间存在着一个阈值,可以很好地将二者区分开来。在选取的阈值为1.3的情况下,自编码器算法模型的过滤效果为:在识别出94.5%的异常流量的同时,深度过滤掉90.0%的正常流量。
4 效果分析
不同种类的恶意攻击对于算法的适应度是不同的。如图5所示,横轴代表着异常分数,纵轴代表异常分数累积,图像中呈现明显上升趋势的部分是数据流量的主要分布范围。
如图6所示,自编码器模型对于端口扫描、DDoS攻击、暴力破解等大部分异常流量的识别率较为突出。但是对于Web的sql注入攻击[12]和Bot攻击这两种攻击的识别率比较低。经过分析,Bot攻击识别率较低的原因主要是CICIDS2017数据集中的此类攻击是通过人为的远程控制来实现的,与正常行为较为相似。关于Web中sql注入识别率较差的问题,主要是因为本文使用的是深度流检测,分析的是流的统计特征,无法提取到包内数据进行识别,也无法对sql注入的sql语句关键字段进行正则匹配。因此,在自编码器模型过滤掉大部分正常流量的同时,还能做到不漏掉绝大部分的异常流量,过滤效果突出。
此外,自编码器模型总体内存消耗小,CPU占比低,且对9 GB的pcap流量数据进行正常流量过滤平均耗时仅为11 s。
由于自编码器模型只学习正常流量的特征,在实际应用场景中既能识别出如前所述的端口扫描、DDoS等已知的异常流量,也能识别出与正常流量差异很大的未知类别的异常流量。自编码器算法适用于不同的应用场景,可根据实际应用场景中安全系统或异常处理系统所能承受的最大数据量进行阈值调整。本模型在CICIDS2017数据集上表现良好,但是它不具有普适性,这是因为对于不同的应用场景,流行为上的统计特征是不同的,所以需要用该场景下正常流量进行重新训练。
5 结 论
将本方案应用在校园场景中,在数据预处理阶段初步过滤掉约56%的正常流量后,对剩余44%的流量进行模型深度过滤,可过滤掉其中90%的正常流量,总共过滤掉95.6%的正常流量,从而使安全检测设备在可疑流量检测方面更好地发挥性能。
通过对校园流量数据的分析,得知校园网络流量使用峰值大约是4 GB/S,对其进行初步规则过滤,在去除掉其中大约一半的视频和下载流量之后,开启多个线程,使用建立好的自编码器算法模型进行并行计算,是完全可以满足对校园网络流量进行实时处理的需求的。
参考文献:
[1] LIU H Y,LANG B. Machine Learning and Deep Learming Methods for Intrusion Detection Systems:A Survey [J].Applied Sciences,2019,9(20):4396-4420.
[2] YEGANEH S H,EFTEKHAR M,GANJALI Y,et al. CUTE:Traffic Classification Using Terms [C]//International Conference on Computer Communications & Networks.IEEE,2012.
[3] YADAV M S,KALPANA R. Data preprocessing for intrusion detection system using encoding and normalization approaches [C]//2019 11th International Conference on Advanced Computing(ICOAC).Chennai:IEEE,2019:265-269.
[4] PANIGRAHI R,Borah S. A Detailed Analysis of CICIDS2017 Dataset for Designing Intrusion Detection Systems [EB/OL].[2021-08-02].https://www.researchgate.net/publication/329045441_A_detailed_analysis_of_CICIDS2017_dataset_for_designing_Intrusion_Detection_Systems.
[5] 趙怡.利用Wireshark实现数据包分析的应用案例 [J].电脑编程技巧与维护,2018(5):106-108.
[6] 郑闻尧.Web视频流量分析与资源管理 [D].北京:北京邮电大学,2019.
[7] MCGREGOR A, HALL M, LORIER P,et al. Flow Clustering Using Machine Learning Techniques [C]//International Passive & Active Network Measurement International Workshop.DBLP,2004.
[8] 王攀,陈雪娇.基于堆栈式自动编码器的加密流量识别方法 [J].计算机工程,2018,44(11):140-147+153.
[9] 黎佳玥,赵波,李想,等.基于深度学习的网络流量异常预测方法 [J].计算机工程与应用,2020,56(6):39-50.
[10] 胡宁,方兰婷,秦中元.基于随机森林和深度自编码高斯混合模型的无监督入侵检测方法 [J].网络空间安全,2020,11(8):40-44+50.
[11] 翟宝峰.SQL注入攻击的分析与防范 [J].辽宁工业大学学报(自然科学版),2021,41(3):141-143+147.
[12] 郭彩霞.基于机器学习的HTTP-DDoS攻击检测方法研究 [D].扬州:扬州大学,2020.
作者简介:闫晓宇(2001—),女,汉族,陕西咸阳人,本科在读,研究方向:网络流量分析技术;张靓(2000—),女,汉族,山西晋城人,本科在读,研究方向:网络流量分析技术;李志敏(1975—),女,汉族,湖北黄冈人,副教授,硕士,研究方向:大数据处理与分析;通讯作者:唐雯炜(1984—),男,汉族,杭州富阳人,实验师,学士学位,研究方向:网络信息安全。