2. 台州市产品质量安全检测研究院, 浙江 台州 318000
2. Taizhou Product Quality and Safety Testing Research Institute, Taizhou, Zhejiang 318000, China
开放科学(资源服务)标志码(OSID):
随着“互联网+”时代的到来,网络技术被广泛应用于金融、教育、军事、治安等领域。但网络技术是把双刃剑,一些不法分子利用网络技术中各种协议和应用程序的漏洞违法犯罪,不仅影响了网络基础设施的稳定运行,还造成人民群众的经济损失,甚至威胁到了国家安全[1]。互联网中的信息交流和传输以网络流量为载体,及时发现异常的网络流量并采取针对性措施,对于抵御网络攻击、维护网络安全、增强网络稳定性等均具有重要意义。
网络流量异常检测是一种有效的网络防护手段,异常网络流量是指对网络的正常使用造成不良影响的流量,与正常流量差别较大[2]。异常网络流量可分为两类[3]:一是由于网络结构不合理或者网络使用不当造成的异常流量;二是由DDoS、蠕虫病毒等网络攻击行为造成的异常流量。
传统的网络流量异常检测方法包括基于端口、基于统计、基于聚类、基于信息论等方法[2]。其中基于端口的方法异常检测准确度较低,而基于统计、聚类、信息论的方法使许多机器学习算法能用于网络流量异常检测,如K近邻算法(K-Nearest Neighbor,KNN)、孤立森林算法(Isolation Forest,iForest)、支持向量机(Support Vector Machine,SVM)等。如今,网络流量规模越来越大,数据维度越来越高,对异常检测的要求更高,但传统的机器学习算法存在训练效率低、特征提取繁琐、相关参数过多、检测准确度较低等问题。
深度神经网络(Deep Neural Network,DNN)可自适应地进行数据特征提取,具有传统机器学习无法比拟的优越性,在图像识别、故障诊断、数据分类等领域得到广泛应用[4]。自编码器(AutoEncoder,AE)是一种用于无监督学习的深度神经网络,最早由RUMELHARD等[5]提出,BOURLARD等[6]对其进行了更加详细的阐述。随后,NG等[7]提出具有更强特征提取能力的稀疏自编码器。基于自编码器的改进模型被陆续提出,并应用于各种研究领域。在网络流量等数据异常检测问题上,自编码器因其优越的重建数据和特征提取能力得到了广泛的关注[8]。
目前网络流量监控和数据采集系统较为完善,但采集到的网络流量数据往往规模较大,降低了自编码器和神经网络的训练效率且无法有效提高网络的训练效果[9]。由于网络流量数据特征较多、维度较高,且计算机网络的基本原理、网络基础设施、网络流量数据特征之间的相关性不可忽视,因此考虑数据特征相关性的马氏距离(Mahalanobis distance)[10]更适合用于网络流量数据之间的距离表达。
本文提出一种结合马氏距离和自编码器的检测方法,通过实验得到马氏距离倒数的判别阈值,并根据马氏距离及判别阈值快速检测出部分正常网络流量,以提高网络流量异常检测的效率。在此基础上,将马氏距离度量项加入自编码器的代价函数中,提高自编码器对网络流量数据的特征学习能力。此外,将自编码器和Sigmoid分类器相结合,构建用于网络流量异常检测的自编码神经网络,以避免网络陷入局部最优[9]。另外,调整自编码神经网络交叉熵损失函数中各项的权重,从而增强自编码神经网络对数据分布不均衡网络流量数据集的训练效果,提高异常检测的准确性。
1 相关概念 1.1 自编码器自编码器的结构模型如图 1所示,主要包括编码层、隐层和输出层,分为编码和解码两个阶段。将输入层数据编码为隐层表达,将隐层表达解码为输出层数据,其目标为重构输入数据,最小化重构误差使输出层数据尽可能等于相对应的输入数据以获得最佳的隐层表达[13]。
![]() |
Download:
|
图 1 自编码器结构 Fig. 1 Autoencoder structure |
将输入数据表示为
$ {h}_{i}={\sigma }_{e}(W{X}_{i}+b) $ | (1) |
$ {\mathit{\boldsymbol{X}}}_{i}^{'}={\sigma }_{d}({W}^{'}{h}_{i}+{b}^{'}) $ | (2) |
其中:
自编码器的目标为使输出
$ \begin{array}{l}J(W, b)=\frac{1}{n}\sum\limits_{i=1}^{n}L({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}, {\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'})=-\frac{1}{n}\sum\limits_{i=1}^{n}\left({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}\mathrm{l}\mathrm{n}{\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'}\right.+\\ \;\;\;\;\;\;\;\;\;\left.(1-{\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}})\mathrm{l}\mathrm{n}(1-{\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'})\right)\end{array} $ | (3) |
其中:
$ \begin{array}{l}J(W, b)=\frac{1}{n}\sum\limits_{i=1}^{n}L({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}, {\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'})+\frac{\lambda }{2}{||\mathit{\boldsymbol{W}}||}^{2}=\\ \;\;\;\;\;\;\;\;\;-\frac{1}{n}\sum\limits_{i=1}^{n}\left({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}\mathrm{l}\mathrm{n}\left({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'}\right)\right.+\left.(1-{\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}})\mathrm{l}\mathrm{n}(1-{\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'})\right)+\\ \;\;\;\;\;\;\;\;\;\frac{\lambda }{2}{||\mathit{\boldsymbol{W}}||}^{2}\end{array} $ | (4) |
马氏距离由印度统计学家Mahalanobis提出,其利用向量间的协方差矩阵表示距离,考虑了各变量之间的相关性,因此在诸多领域具有一定的优越性[10]。
设有一均值为
$ {D}_{M}\left(\mathit{\boldsymbol{x}}\right)=\sqrt{{(\mathit{\boldsymbol{x}}-\mathit{\boldsymbol{\mu }})}^{\mathrm{T}}{\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}^{-1}(\mathit{\boldsymbol{x}}-\mathit{\boldsymbol{\mu }})} $ | (5) |
其中:
文献[11]使用方差分析、方差阈值等方法提取网络流量数据的特征,并结合多个聚类算法进行联合异常检测,在聚类算法中使用欧式距离进行聚类,实验效果对特征的选择依赖性较大,需要多种聚类算法融合才能提升效果,因此使用欧式距离进行网络流量数据的距离计算的效果一般,不具有优越性。文献[12]利用KL距离进行网络流量异常检测,利用指数加权移动平均模型建立滑动窗口机制,获取数据的KL距离预测值并得到自适应阈值范围。此外,通过判断数据的KL距离是否在此范围内进行网络流量的异常检测。该方法具有一定优越性,然而更适用于动态变化的网络环境,需要不断变换阈值,对于数据规模较大的网络流量数据异常检测时,网络流量数据的KL距离并没有明显的不同。
综上所述,本文选用马氏距离进行网络流量数据间的距离表达。
由式(5)可知,在数据集中,数据的马氏距离越小,说明其与数据集均值越接近。若一数据为正常数据,则其通过式(5)计算得到的马氏距离应符合正常数据马氏距离分布,否则该数据更可能为异常数据,所以网络流量数据的马氏距离是其正常与否的一个重要判别依据。
2 网络流量异常检测方法 2.1 数据判别将数据维度为
$ {D}_{M}\left({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}\right)=\sqrt{({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}-{\mathit{\boldsymbol{\mu }}}_{N}{)}^{\mathrm{T}}{\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}_{\mathit{\boldsymbol{N}}}^{-1}({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}-{\mathit{\boldsymbol{\mu }}}_{N})} $ | (6) |
根据式(6)计算网络流量数据集中数据的马氏距离,将数据的马氏距离集记为:
$ \mathit{\boldsymbol{M}}=({M}_{1}, {M}_{2}, \cdots , {M}_{q}, \cdots , {M}_{n}) $ | (7) |
其中:
如果某一数据为正常数据,利用
$ {\mathit{\boldsymbol{M}}}_{r}=\left(\frac{1}{{M}_{1}}, \frac{1}{{M}_{2}}, \dots , \frac{1}{{M}_{q}}, \dots , \frac{1}{{M}_{n}}\right) $ | (8) |
通过实验观察
此判别阈值
为使自编码器获得更好的隐层表达及进一步提高其提取特征的能力,利用
$ {J}_{\mathrm{s}\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{e}}(W, b)=J(W, b)+\beta \sum\limits_{\mathit{\boldsymbol{j}}=1}^{\mathit{\boldsymbol{k}}}KL(\rho \Vert {\widehat{\rho }}_{j}) $ | (9) |
其中:稀疏惩罚项为
$ \mathrm{K}\mathrm{L}(\rho \Vert {\widehat{\rho }}_{j})=\rho \mathrm{l}\mathrm{n}\frac{\rho }{{\widehat{\rho }}_{j}}+(1-\rho )\mathrm{l}\mathrm{n}\frac{1-\rho }{1-{\widehat{\rho }}_{j}} $ | (10) |
其中:当
如上所述,数据的马氏距离可以作为该数据是否为异常数据的判断依据,因此考虑在自编码器的代价函数中添加一个马氏距离度量项,使自编码器在训练过程中,输出与输入的马氏距离尽量接近,从而使自编码器更好地学习数据特征,提升异常检测效果。本文提出的改进自编码器代价函数表示如下:
$ {J}_{\mathrm{A}\mathrm{E}}(W, b)={J}_{\mathrm{s}\mathrm{p}\mathrm{a}\mathrm{r}\mathrm{e}}(W, b)+\gamma \frac{1}{n}\sum\limits_{i=1}^{n}M({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}, {\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'}) $ | (11) |
其中:
马氏距离表示如下:
$ \begin{array}{l}M({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}, {\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'})=\left|\left({D}_{M}\left({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}\right)-{D}_{M}\left({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'}\right)\right)\right|=\\ \;\;\;\;\;\;\;\;\;\;\left|\left(\sqrt{({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}-{\mathit{\boldsymbol{\mu }}}_{N}{)}^{\mathrm{T}}{\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}_{\mathit{\boldsymbol{N}}}^{-1}({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}-{\mathit{\boldsymbol{\mu }}}_{N})}\right.\right.-\\ \;\;\;\;\;\;\;\;\;\;\left.\left.\sqrt{({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'}-{\mathit{\boldsymbol{\mu }}}_{N}{)}^{\mathrm{T}}{\mathit{\boldsymbol{ \boldsymbol{\varSigma} }}}_{\mathit{\boldsymbol{N}}}^{-1}({\mathit{\boldsymbol{X}}}_{\mathit{\boldsymbol{i}}}^{'}-{\mathit{\boldsymbol{\mu }}}_{N})}\right)\right|\end{array} $ | (12) |
在式(12)中,计算输入与输出马氏距离时仍然使用2.1节中得到的正常数据集的均值
![]() |
Download:
|
图 2 改进自编码器的结构 Fig. 2 Structure of the improved autoencoder |
由于本文主要关注马氏距离度量项对自编码器的影响,因此构建了最简单的3层自编码器结构,其代价函数如式(11)所示,自编码器训练时通过无监督贪婪算法[15]最小化代价函数,使用未确定数据集进行自编码器的训练,最终得到隐层表达
上述自编码器训练完成后,将隐层结合分类器构建成自编码神经网络。将得到的合适权值
![]() |
Download:
|
图 3 参数微调 Fig. 3 Parameter fine-tuning |
自编码神经网络的代价函数为交叉熵损失函数:
$ L({y}_{o}, {x}_{o})=-\left({y}_{o}\mathrm{l}\mathrm{n}{x}_{o}+(1-{y}_{o})\mathrm{l}\mathrm{n}(1-{x}_{o})\right) $ | (13) |
其中:
在网络流量的采集过程中,若不处理网络流量数据集,则大多数数据为正常数据,异常数据占比较小,数据分布不均衡。使用这种不均衡的数据集进行神经网络训练时,可能会让神经网络倾向于将所有的样本都预测为正常数据,于是本文使用调整交叉熵损失函数中各项权重的方式来缓解此问题。
在进行实验时,将正常数据的标签标记为0、异常数据的标签标记为1。令
$ {L}^{'}({y}_{o}, {x}_{o})=-\left({W}_{0}{y}_{o}\mathrm{l}\mathrm{n}{x}_{o}+{W}_{1}(1-{y}_{o})\mathrm{l}\mathrm{n}(1-{x}_{o})\right) $ | (14) |
由于
因此,通过对自编码神经网络代价函数改进,一定程度上解决了数据分布不均衡对网络训练的影响,提高了自编码神经网络的训练效果,有利于网络流量的异常检测。
3 实验准备实验使用Windows10操作系统,计算机CPU为Intel Core i5-6500 3.20 GHz、8 GB RAM,基于Keras框架使用python3.6实现。
3.1 实验数据本文使用的数据集为CICIDS2017数据集[17]和NSL-KDD数据集[18],这两个数据集在网络异常检测研究中被广泛应用。
CICIDS2017数据集是加拿大网络安全研究所于2017年采集并公开的网络流量数据集,该数据集包含周一到周五采集的5天网络流量数据,其中包含了正常流量与常见攻击导致的异常流量。进行的攻击包括暴力文件传输协议(FTP)、暴力安全外壳协议(SSH)、拒绝服务(DoS)等,本文只进行网络流量的异常检测研究,故将这些攻击导致的网络流量数据定义为异常网络流量。该数据集共包含2 830 743条数据,其样本分布如表 1所示。
![]() |
下载CSV 表 1 CICIDS2017数据集样本分布 Table 1 CICIDS2017 data set sample distribution |
NSL-KDD是研究人员为解决KDDCup99数据集的缺陷而开发的网络流量数据集[18],该数据集由KDDCup99数据集改进,其不包含冗余数据和重复数据,数据分布更加平衡,更能体现异常检测效果。该数据集包含正常数据及拒绝服务攻击、监视、探测、非法访问等异常攻击或操作造成的异常网络流量数据,共包含125 972条数据,该数据集样本分布如表 2所示。
![]() |
下载CSV 表 2 NSL-KDD数据集样本分布 Table 2 NSL-KDD data set sample distribution |
实验主要使用CICIDS2017数据集,然后使用NSL-KDD进行相关对比实验,并进一步观察所提方法的异常检测效果。实验步骤如下:
步骤1 由于数据集中某些特征为离散型特征,因此需要对实验数据集进行预处理,将这些特征值处理为数值型。为保证离散型特征值的无序性,本文采用One-Hot编码[19]处理离散型特征,随后对数据进行归一化处理。
步骤2 训练数据集为实验数据集随机采样的80%数据,测试数据集为剩余的20%数据。
步骤3 通过训练数据集中的正常数据集得到式(6)中的均值
步骤4 将
步骤5 构建如图 2所示的改进自编码器,代价函数为添加马氏距离度量项的式(11),并通过未确定数据训练自编码器,得到最佳隐层表达
步骤6 确定正常数据占未确定数据量的比重
步骤7 使用测试数据集进行测试实验。使用步骤3中确定的
![]() |
Download:
|
图 4 异常检测模型 Fig. 4 Anomaly detection model |
![]() |
下载CSV 表 3 评价指标混淆矩阵 Table 3 Confusion matrix of evaluation indicators |
本文使用如下指标评价异常检测效果:
准确率(Accuracy)表示分类正确的样本占全部样本的比重,其表达如下:
$ {A}_{\mathrm{A}\mathrm{c}\mathrm{c}\mathrm{u}\mathrm{r}\mathrm{a}\mathrm{c}\mathrm{y}}=\frac{{T}_{\mathrm{T}\mathrm{P}}+{T}_{\mathrm{T}\mathrm{N}}}{{T}_{\mathrm{T}\mathrm{P}}+{T}_{\mathrm{T}\mathrm{N}}+{F}_{\mathrm{F}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{N}}} $ | (15) |
精确率(Precision)表示正确分类为正样本的数据量占全部分类为正样本数据量的比重,其表达如下:
$ {P}_{\mathrm{P}\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{i}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}}=\frac{{T}_{\mathrm{T}\mathrm{P}}}{{T}_{\mathrm{T}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{P}}} $ | (16) |
召回率(Recall)表示正确分类为正样本的数据量占全部实际为正样本的数据量的比重,其表达如下:
$ {R}_{\mathrm{R}\mathrm{e}\mathrm{c}\mathrm{a}\mathrm{l}\mathrm{l}}=\frac{{T}_{\mathrm{T}\mathrm{P}}}{{T}_{\mathrm{T}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{N}}} $ | (17) |
F1值(F1)能有效地说明异常检测效果,其为精确率和召回率的综合考量,表达如下:
$ \mathrm{F}1=\frac{2{P}_{\mathrm{P}\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{i}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}}\times {R}_{\mathrm{R}\mathrm{e}\mathrm{c}\mathrm{a}\mathrm{l}\mathrm{l}}}{{P}_{\mathrm{P}\mathrm{r}\mathrm{e}\mathrm{c}\mathrm{i}\mathrm{s}\mathrm{i}\mathrm{o}\mathrm{n}}+{R}_{\mathrm{R}\mathrm{e}\mathrm{c}\mathrm{a}\mathrm{l}\mathrm{l}}}=\frac{2{T}_{\mathrm{T}\mathrm{P}}}{2{T}_{\mathrm{T}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{P}}+{F}_{\mathrm{F}\mathrm{N}}} $ | (18) |
若实验异常检测效果越好,则上述4个指标越接近1[19]。
4 实验过程本文首先使用CICIDS2017数据集进行实验,由于CICIDS2017数据集的数据量较大,为提高实验效率,本实验随机选取CICIDS2017数据集的20%数据作为实验数据集,该实验数据集共包含566 149条数据。CICIDS2017实验数据集样本分布如表 4所示,经过预处理后,该实验数据集中网络流量数据包含70个特征。
![]() |
下载CSV 表 4 CICIDS2017实验数据集样本分布 Table 4 CICIDS2017 experimental data set sample distribution |
本实验首先随机选取CICIDS2017实验数据集的80%数据作为训练数据,剩余20%作为测试数据。训练数据集样本分布如表 5所示,测试数据集样本分布如表 6所示。
![]() |
下载CSV 表 5 CICIDS2017训练数据集样本分布 Table 5 CICIDS2017 training data set sample distribution |
![]() |
下载CSV 表 6 CICIDS2017测试数据集样本分布 Table 6 CICIDS2017 test data set sample distribution |
选取训练数据集中的正常数据集,从而计算得到正常数据集的均值
![]() |
Download:
|
图 5 训练数据集的马氏距离分布 Fig. 5 Mahalanobis distance of training data set |
由图 5可知,在训练数据集中,正常与异常数据通过式(6)得出的马氏距离分布不同,接下来计算得到训练数据集的马氏距离倒数,观察其马氏距离倒数的分布,如图 6所示。
![]() |
Download:
|
图 6 训练数据集的马氏距离倒数分布及判别阈值 Fig. 6 Inverse distribution of Mahalanobis distance and discrimination threshold of training data set |
由图 6可知,训练数据集中数据的马氏距离倒数分布差异较为明显。根据图 6可确定判别阈值
如图 6所示,将马氏距离倒数超过判别阈值
![]() |
下载CSV 表 7 未确定数据集样本分布 Table 7 Uncertain data set sample distribution |
通过判别阈值共判别出134 519条正常数据,占训练数据集中正常数据量的37.0%,占训练数据集总数据量的29.7%,明显减少了训练数据量。在实际网络流量异常检测中利用判别阈值可快速判别数据是否为正常数据,提高了检测效率。
4.2 改进自编码器的构建本实验构建的自编码器在稀疏自编码器的基础上加入马氏距离度量项,其代价函数为式(11)。由于在隐层中加入了稀疏性限制,式(9)中的稀疏惩罚项的权重
图 7所示为自编码器训练损失随隐层维度
![]() |
Download:
|
图 7 自编码器训练损失随 |
![]() |
Download:
|
图 8 自编码器训练损失随权重 |
![]() |
Download:
|
图 9 自编码器训练损失随稀疏常数 |
![]() |
下载CSV 表 8 改进自编码器的参数设置 Table 8 Parameters setting of improved autoencoder |
构建的改进自编码器在训练次数为100、单次训练选取样本数为1 000的情况下训练损失曲线如图 10所示,可以看到改进自编码器具有良好的收敛性。
![]() |
Download:
|
图 10 改进自编码器的训练损失 Fig. 10 Improved autoencoder training loss |
将训练完成的自编码器的隐层连接Sigmoid分类层,构建如图 3所示的改进自编码神经网络。通过自编码器训练获得的最优权值
通过输入带标签的未确定数据集对改进自编码神经网络进行有监督的微调,训练次数为100,单次训练选取样本数为1 000,其训练损失曲线如图 11所示。可看到其损失曲线呈连续下降趋势,说明通过将自编码器的
![]() |
Download:
|
图 11 改进自编码神经网络的训练损失 Fig. 11 Improved autoencoder neural network training loss |
使用测试数据测试本文提出的结合马氏距离和自编码器的网络流量异常检测方法的异常检测效果。通过式(6)计算测试数据的马氏距离再得到其马氏距离倒数,经过判别阈值
为增强实验的可靠性和准确性,采用5折交叉验证方式[7]进行实验:将实验数据集随机均匀分为5份,轮流将其中1份作为测试数据,剩余4份作为训练数据,共进行5次实验,将5次实验结果取均值作为最终实验结果。实验结果如表 9所示,可见本文提出的网络流量异常检测方法具有较好的效果。
![]() |
下载CSV 表 9 测试实验结果 Table 9 Results of the test experiment |
为更进一步考察本文所提方法的异常检测效果,设计4组不同对比实验:1)一般自编码器与加入马氏距离度量项的改进自编码器的实验效果对比;2)一般自编码神经网络与调整交叉熵损失函数的改进自编码神经网络的实验效果对比;3)本节提出的网络流量异常检测方法与其他网络流量异常检测方法的对比;4)使用NSL-KDD数据集进行实验,观察其异常检测效果。
5.1 一般自编码器与改进自编码器的对比为了观察在自编码器代价函数中加入马氏距离度量项的影响,本实验构建了一个未加入马氏距离度量项的,以式(9)为代价函数的一般自编码器,并与4.2节构建的加入马氏距离度量项的改进自编码器进行对比,两个自编码器除代价函数外,参数和结构完全与4.2节构建的改进自编码器相同。
使用得到的未确定数据集分别对两个自编码器进行训练,训练次数均为100,单次训练所选样本数均为1 000,两者的训练损失对比如图 12所示。由图 12可知,两个自编码器的训练损失相差较小,改进自编码器由于添加了马氏距离度量项,训练损失下降较慢,其最终训练损失值较一般自编码器稍大。随后,分别使用两个自编码器构建如图 3所示的自编码神经网络,通过未确定数据进行有监督的微调以完成整个自编码神经网络的训练。仍然采用5折交叉验证方式进行4.4节中描述的测试实验,测试实验结果如表 10所示,可知改进自编码器组成的自编码神经网络具有更好的异常检测效果,说明改进自编码器对于网络流量数据具有更好的特征学习能力,能够获得更佳的隐层,有利于自编码神经网络的网络流量异常检测。
![]() |
Download:
|
图 12 自编码器训练损失比较 Fig. 12 Comparison of autoencoder training loss |
![]() |
下载CSV 表 10 两个自编码器测试实验结果对比 Table 10 Comparison of test experiment results of two autoencoders |
为观察调整自编码神经网络的交叉熵损失函数中各项权重对自编码神经网络训练及异常检测效果的影响,本实验使用4.2节中训练完成的改进自编码器构建如图 3所示的自编码神经网络,其代价函数为普通交叉熵损失函数如式(13)所示,记为一般自编码神经网络。使用带标签的未确定数据对一般自编码神经网络进行训练,与4.3节中构建并训练的改进自编码神经网络进行对比,两个自编码神经网络除代价函数外,参数及结构与4.3节中构建的改进自编码神经网络完全相同。
两个自编码神经网络的训练次数均为100,单次训练所选样本数均为1 000,两个自编码神经网络的训练损失对比如图 13所示。可知改进自编码神经网络收敛速度更快、训练损失更小,具有更好的收敛性。
![]() |
Download:
|
图 13 自编码神经网络训练损失比较 Fig. 13 Comparison of autoencoder neural network training loss |
两个自编码神经网络完成训练后,按照5折交叉验证方式进行4.4节中描述的测试实验,实验结果如表 11所示。可知通过调整交叉熵损失函数中各项权重,对于数据分布不均衡的CICIDS2017数据集,改进自编码神经网络具有更好的训练效果,能够提高其网络异常检测效果。
![]() |
下载CSV 表 11 两个自编码神经网络测试实验结果对比 Table 11 Comparison of test experiment results of two AE neural networks |
为进一步验证本文所提网络流量异常检测方法的效果,在CICIDS2017数据集上将本文所提方法与其他网络流量异常检测方法和成果进行对比。同样采用5折交叉验证方式进行实验,对比的方法包括DNN[1]、LSTM[21]、C-LSTM[21]、CWGAN-CSSAE[22]、GA-CNN[23]、CVAE[22]、IPC[24]等。实验结果如表 12所示。
![]() |
下载CSV 表 12 与其他网络流量异常检测方法的对比 Table 12 Comparison with other network traffic anomally detection methods |
由表 12可知,本文所提方法在对网络流量异常检测的效果上优于其他方法。
文献[24]同样使用马氏距离代替传统的欧式距离,提出了一种基于马氏距离的增量可能聚类算法来检测异常网络流量,该算法逐渐选择离群点作为新的聚类中心并合并重叠的聚类中心,将不属于任何正常模型的数据视为异常数据,也证明了马氏距离较欧式距离的优越性。其虽然取得了不错的异常检测效果,但不适合实时的网络流量数据,是一种无监督的算法,需要将整个数据集作为输入,且分类效率较低,无法对单一网络流量数据做出判别。
5.4 NSL-KDD数据集上的实验为观察本文所提方法的泛化能力,使用同样被广泛应用于网络异常检测和分类研究中的NSL-KDD数据集进行实验。本实验仍然采用5折交叉验证方式进行第4节所述的实验过程。实验中训练数据的马氏距离倒数及判别阈值
![]() |
Download:
|
图 14 NSL-KDD训练数据集的马氏距离倒数分布及判别阈值 Fig. 14 Inverse Mahalanobis distrance distance and discrimination threshold of NSL-KDD training data set |
构建改进自编码器和改进自编码神经网络,测试实验结果如表 13所示。由表 13可知,本文所提异常检测方法在NSL-KDD数据集上仍然具有优秀的异常检测效果,对网络流量数据具有一定泛化能力。
![]() |
下载CSV 表 13 NSL-KDD数据集测试实验结果 Table 13 Results of the test experiment under NSL-KDD data set |
本文从网络流量数据特征间具有相关性及数据量大的特点出发,提出一种结合马氏距离和自编码器的检测方法。通过马氏距离倒数及判别阈值快速检测出部分正常数据,减少自编码器和分类网络的训练数据量。将自编码器和Sigmoid分类器相结合,以避免网络陷入局部最优。在自编码器代价函数中添加马氏距离度量项,增强自编码器对网络流量数据的特征学习能力。调整自编码神经网络交叉熵损失函数中各项的权重,从而提高自编码神经网络的训练效果。实验结果表明,本文方法具有一定泛化能力,且对网络流量具有较好的异常检测效果。
[1] |
LIU H Y, LANG B. Machine learning and deep learning methods for intrusion detection systems: a survey[J]. Applied Sciences, 2019, 9(20): 4396-4420. DOI:10.3390/app9204396 |
[2] |
AHMED M, MAHMOOD A N, HU J K. A survey of network anomaly detection techniques[J]. Journal of Network and Computer Applications, 2016, 60(1): 19-31. DOI:10.1016/j.jnca.2015.11.016 |
[3] |
BHATTACHARYYA D K, KALITA J K. Network anomaly detection: a machine learning perspective[M]. Los Angeles, USA: CRC Press, 2013.
|
[4] |
JIA F, LEI Y, GUO L. A neural network constructed by deep learning technique and its application to intelligent fault diagnosis of machines[J]. Neurocomputing, 2018, 272(1): 619-628. |
[5] |
RUMELHART D E, HINTON G E, WILLIAMS R J. Learning representations by back-propagating errors[J]. Nature, 1986, 323(6088): 533-536. DOI:10.1038/323533a0 |
[6] |
BOURLARD H, KAMP Y. Auto-association by multilayer perceptrons and singular value decomposition[J]. Biological Cybernetics, 1988, 59(4): 291-294. DOI:10.1007/BF00332918 |
[7] |
NG A. Sparse autoencoder[EB/OL]. [2021-01-02]. https://www.mendeley.com/catalogue/a06882b2-8546-33a0-9803-53cf01f649cc/.
|
[8] |
YANG Y Q, ZHENG K F, WU C H, et al. Improving the classification effectiveness of intrusion detection by using improved conditional variational autoencoder and deep neural network[J]. Sensors, 2019, 19(11): 2528-2547. DOI:10.3390/s19112528 |
[9] |
张西宁, 向宙, 唐春华. 一种深度卷积自编码网络及其在滚动轴承故障诊断中的应用[J]. 西安交通大学学报, 2018, 52(7): 51-59. ZHANG X N, XIANG Z, TANG C H. A deep convolutional auto-encoding neural network and its application in bearing fault diagnosis[J]. Journal of Xi'an Jiaotong University, 2018, 52(7): 51-59. (in Chinese) |
[10] |
IMANI M. Difference-based target detection using mahalanobis distance and spectral angle[J]. International Journal of Remote Sensing, 2019, 40(4): 811-831. DOI:10.1080/01431161.2018.1519280 |
[11] |
DORESWAMY, HOOSHMAND M K, GAD I. Feature selection approach using ensemble learning for network anomaly detection[J]. CAAI Transactions on Intelligence Technology, 2020, 5(4): 283-293. DOI:10.1049/trit.2020.0073 |
[12] |
蒋华, 张红福, 罗一迪, 等. 基于KL距离的自适应阈值网络流量异常检测[J]. 计算机工程, 2019, 45(4): 108-113. JIANG H, ZHANG H F, LUO Y D, et al. Adaptive threshold network traffic anomaly detection based on KL distance[J]. Computer Engineering, 2019, 45(4): 108-113. (in Chinese) |
[13] |
袁非牛, 章琳, 史劲亭, 等. 自编码神经网络理论及应用综述[J]. 计算机学报, 2019, 42(1): 203-230. YUAN F N, ZHANG L, SHI J T, et al. Theories and applications of auto-encoder neural networks: a literature survey[J]. Chinese Journal of Computers, 2019, 42(1): 203-230. (in Chinese) |
[14] |
张志敏, 柴变芳, 李文斌. 基于稀疏自编码器的属性网络嵌入算法[J]. 计算机工程, 2020, 46(7): 98-103. ZHANG Z M, CHAI B F, LI W B. Attribute network embedding algorithm based on sparse autoencoder[J]. Computer Engineering, 2020, 46(7): 98-103. (in Chinese) |
[15] |
LI J P, HUANG R Y, LI W H. Intelligent fault diagnosis for bearing dataset using adversarial transfer learning based on stacked auto-encoder[J]. Procedia Manufacturing, 2020, 49(1): 75-80. DOI:10.1016/j.promfg.2020.06.014 |
[16] |
DING S, SU C, YU J. An optimizing BP neural network algorithm based on genetic algorithm[J]. Artificial Intelligence Review, 2011, 36(2): 153-162. DOI:10.1007/s10462-011-9208-z |
[17] |
YADAV M S, KALPANA R. Data preprocessing for intrusion detection system using encoding and normalization approaches[C]//Proceedings of the 11th International Conference on Advanced Computing. Washington D. C., USA: IEEE Press, 2019: 265-269.
|
[18] |
MORABOENA S, KETEPALLI G, RAGAM P. A deep learning approach to network intrusion detection using deep autoencoder[J]. Revue d'Intelligence Artificielle, 2020, 34(4): 457-463. DOI:10.18280/ria.340410 |
[19] |
MAO J, HU Y, JIANG D, et al. CBFS: a clustering-based feature selection mechanism for network anomaly detection[J]. IEEE Access, 2020, 8(1): 116216-116225. DOI:10.1109/ACCESS.2020.3004699 |
[20] |
LÜ P, YU Y, FAN Y, et al. Layer-constrained variational autoencoding kernel density estimation model for anomaly detection[J]. Knowledge-Based Systems, 2020, 196(1): 105753. DOI:10.1016/j.knosys.2020.105753 |
[21] |
KIM T Y, CHO S B. Web traffic anomaly detection using C-LSTM neural networks[J]. Expert Systems with Applications, 2018, 106(1): 66-76. DOI:10.1016/j.eswa.2018.04.004 |
[22] |
ZHANG G L, WANG X D, LI R, et al. Network intrusion detection based on conditional wasserstein generative adversarial network and cost-sensitive stacked autoencoder[J]. IEEE Access, 2020, 8: 190431-190447. DOI:10.1109/ACCESS.2020.3031892 |
[23] |
NGUYEN M T, KIM K. Genetic convolutional neural network for intrusion detection systems[J]. Future Generation Computer Systems, 2020, 113(1): 418-427. DOI:10.1016/j.future.2020.07.042 |
[24] |
YANG T Y, LIU S Y, LIU J Y. Network traffic anomaly detection based on incremental possibilistic clustering algorithm[C]//Proceedings of the 3rd International Conference on Data Mining, Communications and Information Technology. Beijing, China: Asia Pacific Institute of Science and Engineering, 2019: 536-543.
|