APP下载

基于改进的一维级联神经网络的异常流量检测

2023-10-09王其兵何志方赵文娜张娅楠

计算机应用与软件 2023年9期
关键词:网络流量卷积神经网络

王 婷 王其兵 何志方 闫 磊 李 远 赵文娜 郝 伟* 张娅楠

1(国网山西省电力公司电力科学研究院 山西 太原 030000)

2(国网山西省电力公司 山西 太原 030000)

3(太原理工大学信息与计算机学院 山西 晋中 030600)

0 引 言

随着计算机技术的高速发展,信息网络已经成为社会发展的重要保障。《2018年中国互联网网络安全报告》汇总分析了CNCERT自有网络安全监测数据和CNCERT网络安全应急服务支撑单位报送的数据,该报告指出,2018年网络安全形势日益严峻,恶意网络行为持续活跃。同时,随着业务数据的价值越来越高,数据泄露、页面篡改、黑链等安全事件使得企业系统面临的无法估计的安全威胁,严重影响生产运行。因此,维持网络的安全运行就显得格外重要。异常检测是网络安全的研究趋势,根据对流量数据的分析,可以检测出网络中是否存在攻击。基于特征的网络流量异常检测方法为网络管理者提供了宝贵的帮助,成为网络异常流量检测的重要组成部分。其主要思想是以模式或者特征的形式来表示攻击,通过描述每个已知攻击的大量规则来检测攻击[1-2], 进而建立一个描述正常流量的统计模型,任何偏离此模型的行为都可以被视为异常,并被视为攻击。该异常检测方法是机器学习领域中一个非常活跃的研究课题,近年来已经成为很多文章的主题[3-4]。通常的方法是只从网络正常运行中收集数据,并基于正态性的网络流量数据,提出表征正态性概念不同的方法[5-7],任何偏差都将被视为异常。然而,在实践中验证训练数据中不存在任何攻击可能是一项非常困难的任务,特别是对于数据量大的样本,这根本是不可行的。文献[8]提出了一种基于小波分析的网络流量异常检测模型,然而该方法实现起来非常复杂,需要使用小波分析将网络流量数据分解为5阶尺度分量,然后送入支持向量机中进行学习(Support Vector Machine,SVM)[9],并且使用SVM进行分类训练需要反复地调参以避免过拟合与欠拟合情况的发生。Jha等[10]使用马尔可夫模型(Markov Model)研究网络入侵检测。Pan等[11]结合了 k 近邻(k-Nearest Neighbor, kNN)和 SVM 来对网络入侵进行分类。传统机器学习方法是一种典型的以某种优化准则逼近目标标签的方法,对于特征数据具有很强的依赖性,在短中时的流量数据预测中不适用。

近几年,由于深度学习技术发展迅猛,并且可以从训练数据中学习捕捉特征信息,部分学者也开始将深度学习方法应用于入侵检测领域。Salama等[12]提出使用深度置信网络(Deep Belief Network, DBN)用来提取流量特征。Javaid等[13]通过引入稀疏自编码器(Sparse Autoencoder)提出了一种“自学习”分类机制识别异常流量数据。贾凡等[14]将卷积神经网络应用于入侵检测领域中,实现了一种基于卷积神经网络的入侵检测识别算法。Kumar等[15]通过搭建 CNN 模型,检测基于模式识别的恶意网络行为。也有一些研究人员使用长短期记忆网络(LSTM)[19]提取流量数据包之间的时间序列特征,问题在于一旦LSTM的时间跨度较大,并且网络结构较深,将会导致训练时间长,计算量过大。

卷积神经网络(CNN)是一种经典的深度学习算法,通过共享卷积核权重信息减少了参数数量和计算时间。然而,大多数基于深度学习的方法每一层网络的输出特征信息并没有被充分利用,限制了网络的代表性能力。基于此,本文提出了一种改进的一维级联神经网络模型(ICNN)对网络中的异常网络流量进行检测。改进的级联神经网络模型由若干个密集特征聚合模块(Dense Feature Aggregation,DFA)组成,对每一层网络的输出特征进行充分利用,最大限度地保证不损失特征信息,其次,为了进一步提升DFA模块的性能,设计了增强特征注意力模块(Enhanced Feature Attention, EFA)。最后将得到的网络流量特征数据送入Softmax进行异常数据分类。仿真结果表明,该模型对于异常网络流量数据分类具有较高的分类精度。

1 相关工作

1.1 CNN基本原理

传统的卷积神经网络通常由“卷积-池化-Softmax或其他分类器”部分构成,其数学过程可以通过以下示例说明。假设一幅图像x,其大小为M×N,卷积核大小为m×n,涉及到的权重矩阵与偏置分别用w与b进行表示,如式(1)所示,卷积神经网络对该图像进行处理。

h=g(x*w+b)

(1)

式中:*代表卷积操作;g(·)为激活函数;h与x在这里也可以看作是卷积操作之后的输出映射和卷积操作之前的输入映射。卷积操作过后,通常使用校正线性单元(Rectified Linear Unit, ReLU)来增加神经网络各层之间的非线性关系。该激活函数描述为:

ReLU(x)=max(0,x)

(2)

ReLU实现稀疏后的模型能够更好地挖掘相关特征,拟合训练数据。在激活函数后是池化层,池化层主要有两种:平均池化和最大池化。最大池化的公式如下:

H=maxdowno,p(C)

(3)

式中:C代表特征图;maxdowno,p代表对特征图进行大小为o,p的下采样。使用池化层的主要作用是保留网络流量特征的同时减少参数(降维)和计算量,防止过拟合,提高网络模型的泛化能力。然后通过Softmax等分类器对抽象出的高级特征进行分类。

1.2 Softmax

Softmax函数[17]通常用于基于神经网络的分类器的最后一层,它计算多类问题的概率分布,神经网络使用此概率分布来预测输出类别。由于Softmax函数可计算任何矢量的概率分布,因此它通常用于机器学习,深度学习和数据科学领域的各种多类分类方法中。Softmax计算所有可能的目标类别上每个目标类别的概率,计算出的概率有助于确定给定输入集的正确目标类别。

(4)

式中:z是上一层网络的输出,也就是Softmax二元分类器的输入,维度为C;y表示网络流量为正常或者异常的概率值,范围为(0,1),但输出数值的总和为1。由式(4)可以看出,Softmax具有以下特性:将所有数值转化为正数;将数值较高的值凸显出来,即输出数值接近1,反之接近0;将输出结果映射到(0,1)之间,从而转换为概率。

1.3 密集连接

密集连接网络由Huang等[16]在2018年提出,它引入了具有相同特征图大小的任意两个层之间的拼接操作。解决了网络深度加深产生的梯度消失问题,并充分利用特征图信息,鼓励特征重用,大大减少了参数量。在保证网络中层与层之间最大程度的信息传输的前提下,为了能够保留前馈的特性,每一层对之前所有层的输入进行拼接,并将输出的特征图传递给之后的所有层。详细过程为,假设[x0,x1,…,xL-1]代表0到L-1层的特征图输出,对这些特征图进行拼接操作,数学过程如下:

xi=Hl([x0,x1,…,xl-1])

(5)

式中:xi代表经过拼接操作后第l层的网络输出;Hl(·)代表拼接之后的特征图张量。该连接方式使得特征和梯度的传递更加有效,网络也就更加容易训练,每一层都可以直接利用损失函数的梯度以及最开始的输入信息。

2 方 法

2.1 密集特征聚合模块

本文提出的基于改进的一维级联神经网络的异常流量检测模型(ATD-ICNN)具体过程如图1所示,DFA模块的详细结构可以在图中清楚地看到:该模块由3个卷积层、1个ReLU层、1个池化层、1个EFA模块构成,前4个网络层提取到深层次的特征之后,DFA模块初始地输入拼接在一起,这样可以充分利用网络特征,防止后续的池化操作造成重要特征信息的丢失。模块的最后使用1×1的卷积来融合这些特征,有用的特征信息可以传播到DFA模块的末尾而没有任何的损失或干扰。该模块对于网络流量数据的处理过程可以表示为:

图1 基于改进的一维级联神经网络的异常 流量检测模型(ATD-ICNN)

Ft=βt(βt-1(…β0(t)))

(6)

式中:Ft经过t个模块数据处理之后得到深层次网络流量特征:βt代表第t个DFA模块函数。

2.2 增强特征注意力模块

为了能够充分发挥DFA模块的效果,我们设计增强注意力模块将流量特征集中在关键重要的内容上,它比普通的网络卷积模块更强大,主要结构如图2所示。EFA模块在DFA模块的末端起作用,迫使流量特征集中于更加能够决定正常或者异常结果的感兴趣的区域。在EFA模块中,有几个重点的因素需要仔细考虑,首先该模块必须足够轻,因为它将被嵌入到网络的每个密集特征聚合模块中;其次,一个大的感受野对于流量分类任务是至关重要的。从图2中可以清楚地看到EFA模块详细的网络结构,从1×1的卷积层开始减少流量特征的维度大小,使得整个模块可以非常的轻量化。为了扩大感受野,我们使用了一个带状卷积(步长为2),可以在网络开始时快速降低特征空间维数,然后,对特征维度进行池化操作,在1×1的卷积层后使用上采样层恢复特征维度,另外,我们还使用密集连接将一开始输入到EFA模块的网络特征与模块处理后的流量特征数据进行拼接,最后通过1×1的卷积对这些特征进行融合。

图2 EFA模块主要结构

2.3 数据预处理

由于网络流量存在噪声(应用类别标记错误)[18]流量的情况,为了减少噪声特征的提取,以及规范化输入目标数据,在对神经网络进行训练之前,需要对学习样本数据进行预处理。

假设所有网络流量数据样本为x={x1,x2,…,xM},其中xi代表一组网络流量数据。对于训练与测试样本数据,本文采用4个步骤进行归一化:计算均值、计算方差、白化和归一化,公式如下:

(7)

(8)

(9)

(10)

式中:max{x}指所有网络流量数据中的最大值;min{x}指网络流量数据样本中的最小值。

图3显示了本文提出的端到端流量分类方法的概述。其中包含数据预处理过程,模型训练过程和测试过程。这里提出的方法可以直接对流量进行分类,中间的学习过程不需要人为干涉,最终确定输入与期望输出之间的非线性关系。

图3 所提方法端到端训练框架结构

3 实 验

3.1 数据集

本实验采集隧道协议进行传输,所以流量比较干净,几乎不含有异常。网络流量的数据结构如表1 所示。在本文中,将2019年10月山西国家电网机房调度数据中心网络流量作为训练样本, 将2019年11月机房调度数据中心网络流量作为测试样本,由于采集到的机房网络流量数据比较干净,所以采用人工注入异常数据的方式可控地注入DDoS、Heartbleed和链路失败异常。DDoS是指利用大量合法的分布式服务器对目标发送请求,从而导致服务器拥塞无法对外提供正常服务。Heartbleed是一个出现在加密程序库OpenSSL中的安全漏洞,无论是服务器还是客户端,都可能因此而受到攻击,详细表现为实际读取数据比应该允许读取的数据多。链路失败是指去除间隔内流经被监测链路的所有流。分别对训练集与测试集的样本进行混洗,训练集与测试集的比例为3∶2。此外,我们还采集了2019年12月份的一个月的机房网络流量真实数据样本并且进行标记来衡量所提方法的准确性。

表1 数据结构说明表

3.2 网络训练细节

ATD-ICNN网络结构中的卷积参数初始化方式均满足均值为0,方差为0.01的高斯随机分布。DFA模块的数量为2,总的训练步数为2 000,学习率初始设置为10-4,随着训练步长的增加慢慢降到10-5。采用Adam优化器[18]进行梯度优化。所有实验均在PC(Intel i7 6 700K CPU,主存16 GB)上用PyCharm Professional 2017编程完成。由于单独使用传统的DPU进行网络训练非常耗时,所以在我们的工作中,ATD-ICNN使用GPU(Nvidia Tesla K80C)进行加速训练。采用的编程语言是Python 3.6。

3.3 模型结构参数设置

研究者通常通过加深的网络模型设计来得到更高级的特征,但不可避免的是,随着参数的增多,容易出现过拟合情况。根据多次实验,所提方法详细网络结构如表2所示。

3.4 评价标准

本文采用以下4个指标对网络异常流量的分类性能进行客观评价,分别为正确率(Accuracy, A)、精确率 (Precision, P)、召回率(Recall, R)、F1-score。A用来判断方法的整体效果,P、R,F1-score用来判断某一种流量异常的识别效果:

(11)

式中:TP代表被正确划分为目标流量的样本数;TN表示被正确的识别出异常目标流量的样本数目;FP代表异常的流量样本被划分为正常的流量样本的数目;FN代表异常的流量样本被识别为正常的流量样本的数目。

3.5 实验结果

网络流量本质上是一种时序数据,是按照层次化结构组织起来的一维字节流,从低层次到高层次依次为字节、帧、会话、整个流量。分别通过一段随机抽取的长度为1 000的序列,按照不同异常事件的特征向量生成人工异常流量,异常流量持续时间为2min,并且异常流量的数量是正常流量数量的15%。

ATD-ICNN算法分别对DDoS、Heartbleed、链路失败这三种异常网络流量即网络攻击类型,进行分类识别,分类结果如表3所示,可以发现本文所提方法,对于三种异常网络精度都表现出了较高的分类精度。

表3 模拟三种异常网络流量分类结果(%)

表3中,第一列是实际使用的攻击类型,表内每一行代表每一次使用分类模型所得到的结果,一共运行了三次分类模型,每一次运行分类模型的数据类型是DDos、Heartbleed和链路失败三种,通过分类模型,得到了结果,例如图中数据所显示,150条DDos攻击,识别正确98%,识别错误0,未能识别分类占比2%。

为验证算法的有效性,计算了综合指标下算法的分类性能,如表4所示,对于三种异常网络流量,ATD-ICNN达到了上佳的分类性能。其中,对于链路失败的异常网络流量分类性能达到98%,说明所提方法能够较好地选取链路失败的特征向量,从而更加准确地描述其特性。

表4 综合指标下算法的分类性能(%)

基于本文中介绍的数据集,与已有的异常检测方法如随机森林(Radom Forests, RF)、AdaBost迭代算法、多层感知机(Multi-Layer Perceptron, MLP)、朴素贝叶斯(Naïve-Bayes)、CNN、小波分解+SVM方法相比较,得到的结果如表5所示,可以发现,本文方法的4个指标皆为最优解。

表5 其他异常检测方法的Accuracy、

图4给出了ATD-ICNN算法中分别使用Softmax分类器、SVM分类器[9]、K均值分类器的分类性能的比较。可以看出,Softmax 分类器在训练集与测试集上的准确率最高,达到了85%以上。其中,训练数据与测试数据的分类结果有一定差距的原因可能是划分的训练集所包含的流量数据特征不平衡,导致模型没有完全学习到所有的特征,但是这并不影响所提方法最终对于异常网络流量的检测结果。对于SVM分类方法,Softmax的分类精度要比SVM的分类精度高5%,整体上,对于3个分类指标都取得了更好的性能表现,验证了本文所提出ATD-ICNN异常网络流量分类效果的有效性。该结果也表明流量是一维的序列数据,用更适合序列数据分类的Softmax分类器能够取得更好的分类结果。相比之下,K均值分类算法属于聚类算法,对训练数据数量敏感,无法确定哪个属性对聚类的贡献更大,并且由于需要实现指定聚类数目,而在实际情况中,网络出现的异常数据情况通常是不可知的,因此实用性不高。

图4 Softmax分类器与支持向量机、K均值算法的 关于不同分类指标的分类性能

为了进一步说明DFA模块的有效性,我们还设计消融实验来研究DFA模块的级联迭代次数对于异常网络流量分类准确率的影响,结果如表6所示。其中,ATD-ICNN-C1代表只有一个DFA模块,即级联次数为1;ATD-ICNN-C2代表有2个级联模块,代表级联次数为2。可以发现,随着级联次数的增加,准确率也在不断提高,这说明融合了拼接操作的DFA模块能够充分地利用流量深层次特征信息,嵌入其中的EFA模块可以辅助网络更好地对决定网络异常的特征分配更大的权重,更好地对异常网络流量进行识别。

表6 综合指标下不同级联次数的算法的分类性能(%)

为衡量ATD-ICNN在真实情况下的有效性,采集了真实流量数据进行标记并测试,结果如图5所示。可以看出,超过90%的流量数据都能够被正常分类,只有很小的一部分(浅灰色所示区域)没有被正确识别,主要是由于训练数据的网络流量中没有包含真实数据中的异常网络流量,因此算法无法识别真实数据中异常网络数据流量特征,从而无法做出判别。

4 结 语

针对当前网路环境日益复杂、攻击方式越来越隐蔽、网络取证中特征提取和分类分析的局限性等情况,本文提出了基于改进的级联神经网络的异常流量识别方法。仿真结果表明,该方法建模简洁实用, 预测效果比较满意,说明该方法对于处理类似问题是有效的。本项研究通过构建改进的级联深度网络模型并采用人工注入异常流量数据的方式制作训练数据集进行训练,结合Softmax方法进行异常流量分类,更好地对网络流量进行监督管理探索到新的研究手段。在未来的工作中,我们将致力于研究对于特定类型的异常事件进行准确识别,即提高常见异常网络流量的分类准确率。

猜你喜欢

网络流量卷积神经网络
基于多元高斯分布的网络流量异常识别方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
基于神经网络的P2P流量识别方法
神经网络抑制无线通信干扰探究
从滤波器理解卷积
基于傅里叶域卷积表示的目标跟踪算法
AVB网络流量整形帧模型端到端延迟计算
基于神经网络的拉矫机控制模型建立
复数神经网络在基于WiFi的室内LBS应用
基于支持向量机回归和RBF神经网络的PID整定