摘要
针对传统的入侵检测方法在未知攻击上表现不佳、且没有考虑信息不足的情况对于决策的影响的问题,本文提出了一种基于三支决策和数据增广的入侵检测算法CGAN⁃3WD。算法利用条件生成对抗网络来满足三支决策理论对数据信息的需求。首先基于三支决策理论对网络行为做出决策,将网络行为划分至正域、负域以及边界域中;之后基于条件生成对抗神经网络来完成数据增广,生成新的样本数据,从而为分类器提供更多的信息以支撑分类器将边界域转化为正域或者负域。NSL⁃KDD数据集被用于本文的实验中,实验证明,本文提出的算法CGAN⁃3WD在对入侵行为的检测上要优于对比的方法,能够有效地检测出入侵行为。
随着网络技术的不断发展,尤其是5G等技术的成功应用,网络越来越多地改变着人们的生活。在以网络构建的互联网中,每天都在传输用户的大量隐私,因此对互联网的攻击每天都在发生,如何确保网络的安全,已经成为学术界以及企业界都在关注的研究方向。检测入侵是确保网络安全的一个重要的步骤,入侵检测系统是对入侵行为进行检测的重要安全机制之一,它可以监测活动的网络流量并识别出可疑或者异常的网络行
随着人工智能等技术的发展,研究人员逐渐发现了机器学习等算法在入侵检测领域的应用前景,基于机器学习算法的模型可以通过经验的累积自动提升性能,符合入侵检测系统针对外部入侵行为通过自我学习进行入侵检测的原
研究人员关于机器学习算法在入侵检测领域的应用取得了一定的成果,也为未来的研究开辟了道路。然而目前已有的基于机器学习(包括深度学习)的入侵检测模型的分类方法都是基于传统的二支决策。所谓二支决策,即对于每一个待分类的样本数据,无论分类器所学习到的信息是否足够,都会立即对该样本做出一个确定的决策,例如对于一个网络行为数据,分类器会将其立即打上入侵或者正常的标签。这种决策方式忽略了信息不足带来的影响,但是如果分类器所获取的信息不足,对于某些样本数据分类器可能并不能立即做出一个合理的决策,盲目进行决策会导致出错。本文提出了一种基于三支决策的入侵检测算法,当信息不足时,根据三支决策理论,可以对要分类的样本数据延迟决策,从而降低信息不足的情况下盲目决策所产生的负面影响。而对于采取延迟决策的样本数据,若要对其做出一个合理的决策,则需要获取新的信息。导致信息不足的最主要的原因在于训练数据的不充足,因此在决策的过程中利用条件生成对抗神经网络(Conditional generative adversarial nets, CGANs
CGAN是在生成式对抗网络(Generative adversarial nets, GANs
(1) |
式中:为生成器网络G的参数;为判别器网络D的参数。对于参数的更新一般都是通过梯度下降算法。
三支决
对于一个二分类问题,真实的分类标签可以表示为P(正),N(负),用一个状态集来表示。三支决策的决策集可以表示为,分别表示接受决策,边界决策以及拒绝决策。所有决策的代价损失函数如
假设,,根据文献[
(2) |
(3) |
式中。可以得到如下3条应用到入侵检测领域的规则:
(1) 如果,则该网络行为被归为正类,即该网络行为是入侵行为;
(2) 如果,则该网络行为被归为负类,即该网络行为是正常行为;
(3) 如果,则表示当前信息下,无法对该行为采取任何决策,则该行为需要被划分到边界域以等待进一步的处理。
[x]表示样本在属性集下的等价类,表示将等价类[x]分为X的概率,在入侵检测的领域则表示为一个网络行为属于入侵行为的概率。
本文利用深度生成模型CGAN以及三支决策理论,提出了一种基于数据增广和三支决策的入侵检测算法CGAN⁃3WD。
算法模型主要由两部分组成:(1)利用CGAN生成样本数据的过程;(2)基于三支决策理论进行分类的过程。
假设原始的训练集为Tr,测试集为Te,分类器为f,则f的目的是将Te中的每个样本数据都做出尽可能准确的决策,假设f对Te做出的最终决策集合为Y,则,其中POS为正域,NEG为负域,若Y不是最终的决策集合,则,其中BND为边界域,即被采取延迟决策的样本数据的集合,而在最终的决策之前,,为在基础上得到的新的边界域。
算法1为基于三支决策和数据增广的入侵检测算法的步骤。
算法1 基于三支决策和数据增广的入侵检测算法
输入:训练集,测试集,生成对抗神经网络CGAN,阈值,初始分类器f,正域,边界域,负域,控制阈值下降速率参数.
输出:(最终分类结果)
1: While Te不为空
1.1: 根据训练集Tr训练分类器f;
1.2: 由模型f得到的测试集中的每个数据属于正类的概率;
1.3.1: If : ;
1.3.2: Else if : ;
1.3.3: Else: ;
End if
End for
1.4: ;
1.5: 对阈值做出调整: , ;
1.6: If or : 基于传统的二支决策对剩余边界域中的样本数据进行强制分类并跳出迭代;
1.7: 训练CGAN模型;
1.8: 生成新的样本集:,为服从标准正态分布的噪声数据;
1.9: 从Tr中选取部分样本数据,记为,;
End while
2: 输出。
在算法流程的初始阶段,训练集代表原始的训练集,首先通过原始的训练集对分类器模型f进行训练,由于在实验的过程中要计算出每个网络行为数据属于正域的概率,因此对于分类器的选择以软分类模型为主,本文选择多层感知机模型作为基分类器。通过基分类器f,会得到每个网络行为数据属于正域的概率p, 将p与阈值进行比较,如算法1中的1.3步骤的表述,可以将所有的测试集中的样本数据划分到正域、负域以及边界域中。而后,令边界域中的数据组成新的测试集,并对阈值调整,减小,增大,如算法1中步骤1.5所示。假设第i次迭代产生的边界域为BND1,第i+1次迭代产生的边界域为BND2,则BND2中的样本数据相对于BND1中的样本数据更难划分;若阈值一直保持不变,则可能会出现部分数据最终难以被划归到任何一个确定的域中。因此,适当地对阈值做出调整令样本数据被划归到正域以及负域中的条件逐渐变宽,不仅可以保证最终所有的样本数据都被划归到正域以及负域中,而且可以降低迭代所产生的时间代价。在调整阈值的过程中,以0.01作为一个调整单位,并利用参数控制调整的速度,为了能够让同时靠近0.5,在调整的过程中,以的调整为基准,为的调整参数乘以,从而控制可以同时靠近0.5。如果或者,则会根据普通的二分类模型的标准,将样本数据强制归为正域或者负域,并结束程序的运行。如果上述情况没有出现,则边界域的存在会触发CGAN模型,当前的训练集被用于训练CGAN模型的数据集,经过训练后,CGAN模型会根据相应标签生成新的样本数据,而后将生成的样本数据与之前选择的样本数据组成新的训练集Tr,用于下一轮对分类器模型的训练。
在基于三支决策理论进行分类决策的过程中,有一个重要的环节,即利用CGAN完成的数据增广。CGAN在生成数据的过程中可以根据标签生成相应的数据。
算法1中的步骤1.7以及1.8是基于CGAN的数据增广过程,可以扩展为如算法2所示的步骤。
算法2 基于CGAN的数据增广
输入:生成样本数量m,训练数据集Tr,迭代次数e;
输出:生成样本数据Xgen;
1: 随机采样m条噪声数据,并根据需求为每条噪声数据连接相应的标签,记为input;
2: 初始化生成器G以及判别器D的相关参数;
3: For i=1 to e:
3.1: 得到生成数据: ;
3.2: 判别器返回对真实数据的判别结果: ;
3.3: 判别器返回对生成数据的判别结果: ;
3.4: 计算生成器损失;
3.4: 计算判别器损失;
3.6: 更新判别器参数;
3.7: 更新生成器参数;
End for
4: 输出生成样本数据Xgen。
CGAN由生成器G以及判别器D组成,在对生成器G进行训练的过程中需要对判别器D的参数进行固定,而对判别器D进行训练的过程中需要对生成器G进行固定。
本文是利用CGAN生成网络行为数据。输入的训练数据集Tr是连接了每条网络行为对应标签的数据集。由于要生成固定数量的网络行为,因此在生成数据的过程中,采用了生成多少数据就采样多少噪声的做法,噪声采样自标准正态分布,采样后为噪声打上相应的标签,由于网络行为数据的标签要么为1,要么为0,因此每条噪声数据的标签要么为1,要么为0。生成的数据被用于处理边界域中的样本,因此生成数据的数量要与边界域中数据的数量有关系,在本文的实验设置中,将生成样本数量m设置为边界域数量的3倍,若边界域中样本数量的3倍小于1 000,则默认m为1 000,而后从原始的训练集中随机选取数量为边界域数量的2倍的数据,这个样本数量的最小值默认设置为500,随机选取的样本与生成样本的样本数据组合成新的训练集用于训练分类器。
在基于CGAN进行样本扩增的过程中,边界域的存在会触发CGAN,对CGAN的使用不止一次,因此在每次使用CGAN时,会将上次使用的CGAN的参数作为本次CGAN的初始化参数,即除第一次外,每一次都只需对CGAN进行微调即可。网络行为本身相似性较大,通过微调CGAN网络即可得到生成的网络行为数据。
本文所提出的是基于三支决策和数据增强的入侵检测算法,其中基于CGAN实现数据增强,基于三支决策理论进行分类。
本文实验所采用的数据集是NSL⁃KDD数据
本文选择准确率A,误报率F,检出率D,查准率PR与F1分数F1作为评判指标。评价指标的计算公式如下
(4) |
(5) |
(6) |
(7) |
(8) |
式中:TP和TN分别表示攻击记录和正常记录已正确分类;FP代表被误认为是攻击的正常记录;FN代表错误分类为正常记录的攻击记录。
实验中随机选取选择原始训练集中的20%作为训练集。由于攻击类型为U2R的样本数据极少,只有52个,因此在选择数据集的时候,选取所有的攻击类型为U2R的数据。实验数据的分布如
在本文的实验中,为了探究基于CGAN的数据增强以及基于三支决策理论进行分类对实验结果的影响,进行了消融实验。实验中在保证同样使用基于三支决策的分类方法的同时,对比使用了基于CGAN数据增强的入侵检测算法CGAN⁃3WD与没有使用数据增强的入侵检测算法3WD;在保证同样使用CGAN扩充数据的情况下对比使用了基于三支决策的入侵检测算法与没有使用基于三支决策的入侵检测算法的实验结果,对比算法的分类器分别选用了多层感知机(CGAN⁃MLP)。
本文所提出的方法CGAN⁃3WD以及本节所提及的几种对比方法的实验结果如
相对于没有使用数据增强的3WD,CGAN⁃3WD的表现更好,CGAN⁃3WD模型拥有更低的误报率的同时也拥有更高的检出率。对于没有使用数据增强方法的分类器来说,原始数据所包含的信息非常不充分,尤其是在本文的实验中,训练集的样本和测试集样本的数量基本一致,这也说明了分类器模型不会通过训练集获得充分的信息。对于没有使用数据增强的基于三支决策的分类方法来说,对于边界域的处置,只能通过特征提取模型获取到的多粒度的特征集。虽然这种方式在一定程度上可以解决边界域,但是毕竟只是在原始的训练集上进行特征提取。从数据层面来看,并没有增加训练集的信息,只是对数据集从新的角度做了新的分析。
相比较同样使用了基于CGAN的数据增强但是没有使用基于三支决策理论进行分类的方法,CGAN⁃3WD在几个评价指标上的表现也要更好。两种入侵检测模型都使用了多层感知机模型作为分类方法,但是利用了三支决策理论进行分类的CGAN⁃3WD模型取得效果还是要优于基于二支决策的CGAN⁃MLP。两种入侵检测模型都使用了CGAN进行数据扩增,之所以会在对入侵行为的检测上产生差异,主要是因为CGAN⁃MLP模型一开始便是利用CGAN生成的数据以及原始训练集对测试集中的样本数据进行分类。因此,对于测试集中的部分原本可以被轻易分类的样本可能会因为生成数据的加入而产生不可控的类似过拟合的现象,即CGAN⁃MLP模型中的分类器模型因为太早学习到了生成的样本数据中的信息,反而导致了分类器模型对部分样本数据进行了错误的分类。对于一个分类器来说,可能一次只能对要分类器的数据集中的一部分做出合理的决策。基于三支决策理论的分类方法,每一次分类过程中都将原始的待分类数据分为正域、负域以及边界域。对于正域以及负域中的数据,下一次的分类已经和它们没关系,若是因为迭代次数过多产生过拟合的问题,通过这种方法也可以缓解过拟合所产生的影响。

图1 ROC曲线图
Fig.1 ROC curve
本节实验所探究的是本文提出的模型CGAN⁃3WD与其他模型的性能对比。
本文对比方法为:文献[
在实验过程中,把所有入侵行为的标记设为1,正常样本的标记设为0。不同模型得到的实验结果如
从

图2 ROC曲线图
Fig.2 ROC curve
本节实验不仅要区分出正常的网络行为和入侵行为,还要区分出入侵行为的具体类型。具体做法:每次选择一种类型的入侵行为,将其标记为1,其余的网络行为标记为0。本节实验中利用SMOTE方法先对样本数据比较少的攻击行为进行过采样,而后用过采样后的数据训练CGAN模型,实验结果如
从
CGAN⁃3WD模型和几种对比方法比较,取得了比较好的效果。首先在对DOS以及R2L攻击行为的检测上,几种模型的检测结果都不错,没有出现特别差的情况。但是有些模型对Probe攻击的检测效果并不是特别好,如DL⁃SSL,PSO⁃XGBOOST;在对R2L以及U2R的检测上几种方法效果都不理想,其中也包括CGAN⁃3WD模型。训练数据集的严重不平衡导致了几种模型表现较弱,但是相比较而言,CGAN⁃3WD模型对两种攻击的检测效果较好,除了在对R2L的检出率上没有达到最好的结果之外,其他的评价指标在几种对比方法中都是最好的。
本文提出了一种基于数据增广和三支决策的方法CGAN⁃3WD,通过条件生成对抗网络生成新的数据用以满足三支决策对于信息的需求,经过实验证明,本文提出的方法与对比方法比较,取得了比较好的结果。
在未来的工作中,可以考虑改进生成模型,使得生成的样本更加地具有多样性。
参考文献
ZAVRAK S, İSKEFIYELI M. Anomaly-based intrusion detection from network flow features using variational autoencoder[J]. IEEE Access, 2020, 8: 108346-108358. [百度学术]
FANG Weijian, TIAN Xiaoling, WILBUR D. Application of intrusion detection technology in network safety based on machine learning[J]. Safety Science, 2020, 124: 104604. [百度学术]
MAGÁN-CARRIÓN R, URDA D, DÍAZ-CANO I, et al. Towards a reliable comparison and evaluation of network intrusion detection systems based on machine learning approaches[J]. Applied Sciences, 2020, 10(5): 1775. [百度学术]
ZHOU Ying, MAZZUCHI T A, SARKANI S. M-AdaBoost-A based ensemble system for network intrusion detection[J]. Expert Systems with Applications, 2020, 162: 113864. [百度学术]
ALZUBI Q M, ANBAR M, ALQATTAN Z N M, et al. Intrusion detection system based on a modified binary grey wolf optimisation[J]. Neural Computing and Applications, 2020, 32: 6125-6137. [百度学术]
TAO Peiying, SUN Zhe, SUN Zhixin. An improved intrusion detection algorithm based on GA and SVM[J]. IEEE Access, 2018, 6: 13624-13631. [百度学术]
ZHAO Guangzhen, ZHANG Cuixiao, ZHENG Llijuan. Intrusion detection using deep belief network and probabilistic neural network[C]//Proceedings of 2017 IEEE International Conference on Computational Science and Engineering (CSE) and IEEE International Conference on Embedded and Ubiquitous Computing (EUC). [S.l.]: IEEE, 2017: 639-642. [百度学术]
MIRZA M, OSINDERO S. Conditional generative adversarial nets[EB/OL]. (2014-11-6)[2020-10-24]. https://arxiv.org/abs/1411.1784. [百度学术]
GOODFELLOW I, POUGET-ABADIE J, MIRZA M, et al. Generative adversarial nets[C]//Proceedings of the 27th International Conference on Neural Information Processing Systems. Cambridge, USA: MIT Press, 2014: 2672-2680. [百度学术]
YAO Yiyu. Three-way decisions with probabilistic rough sets[J]. Information Sciences, 2010, 180(3): 341-353. [百度学术]
刘盾, 梁德翠. 广义三支决策与狭义三支决策[J]. 计算机科学与探索, 2017, 11(3): 502-510. [百度学术]
LIU Dun, LIANG Decui. Generalized three-way decisions and special three-way decisions[J]. Journal of Frontiers of Computer Science and Technology, 2017, 11(3): 502-510. [百度学术]
EVER Y K, SEKEROGLU B, DIMILILER K. Classification analysis of intrusion detection on NSL-KDD using machine learning algorithms[C]//Proceedings of International Conference on Mobile Web and Intelligent Information Systems. Cham, Germany: Springer, 2019: 111-122. [百度学术]
JIANG Hui, HE Zheng, YE Gang, et al. Network intrusion detection based on PSO-Xgboost model[J]. IEEE Access, 2020, 8: 58392-58401. [百度学术]
GAO Jianlei, CHAI Senchun, ZHANG Baihai, et al. Research on network intrusion detection based on incremental extreme learning machine and adaptive principal component analysis[J]. Energies, 2019, 12(7): 1223. [百度学术]
LI Yongzhong, ZHANG Shipeng, LI Yi, et al. Research on intrusion detection algorithm based on deep learning and semi-supervised clustering[J]. International Journal of Cyber Research and Education, 2020, 2(2): 38-60. [百度学术]
曹卫东, 许志香, 王静. 基于深度生成模型的半监督入侵检测算法[J]. 计算机科学, 2019, 46(3): 197-201. [百度学术]
CAO Weidong, XU Zhixiang, WANG Jing. Intrusion detection based on semi-supervised learning with deep generative models[J]. Computer Science, 2019, 46(3): 197-201. [百度学术]
FERNÁNDEZ A, GARCIA S, HERRERA F, et al. SMOTE for learning from imbalanced data: Progress and challenges, marking the 15-year anniversary[J]. Journal of Artificial Intelligence Research, 2018, 61: 863-905. [百度学术]