-
在机器学习和数据挖掘领域,恶意流量不平衡是一种普遍存在的现象。目前对恶意流量不平衡数据分类的研究主要涉及两种方法[1]:一是对分类算法进行新的设计或改进;二是在数据级别上进行操作,主要通过过采样、欠采样或混合采样来达到数据集的平衡。现有的过采样方法主要分为传统方法和基于生成对抗网络的方法。大多数传统的过采样方法都基于SMOTE技术[2],由于这些方法更关注局部数据信息,生成的数据不够真实;另一种是基于生成性对抗网络(generative adversarial networks, GAN)[3],它可以捕捉数据的真实分布并直接生成合成数据,用于无监督学习。随后,文献[4]提出了一种基于条件生成对抗网络(conditional generative adversarial networks, CGAN)的模型,该模型在GAN的基础上加入了条件信息生成特定的类别。然而,GAN与CGAN都会受到不稳定训练(梯度消失)和模式崩溃的影响。为解决这些问题,WGAN(Wasserstein generative adversarial networks)[5]随即被提出,该模型使用EM距离(也称为Wasserstein)而不是JS散度来度量真实数据分布和生成数据分布之间的距离,从理论上解决了梯度消失的问题,可有效缓解模式崩溃问题。但CGAN与WGAN依然存在着训练只生成质量不高的样本或模型无法收敛。在使用GAN模型解决网络恶意数据分类问题中,文献[6]提出了GAN模型生成具备可执行性和攻击性的恶意网络流样本,但它只针对缓冲区溢出漏洞攻击进行了研究,模型的泛化性有待进一步研究。文献[7]提出了Attack-GAN模型,用于生成能够敝开入侵检测系统的数据包级别对抗网络流量。文献[8]提出将WGAN-GP与CGAN优势融合的CWGAN-GP(conditional Wasserstein generative adversarial network-gradient penalty)方法,该方法不仅生成更真实多样的数据,而且克服了模式崩溃和训练不稳定的问题。
本文将WGAN-GP与辅助条件信息相结合,作为一种新的过采样方法,为网络流量图片不平衡数据集中的少数类生成合成样本。
-
与其他GAN模型及其衍生版本类似,CWGAN-GP也是由鉴别器(discriminator)和生成器(generator)组成,它们以相反的方式训练,通过博弈使得生成的样本与真实数据无法区分。CGAN模型在原始GAN模型上添加辅助条件信息,WGAN-GP模型以同样的方式扩展到CWGAN-GP。CWGAN-GP采用EM距离来评估真实样本和模拟样本之间的分布,且加入了条件信息。Wasserstein距离为:
$$ {\rm{W}}({p_{{\rm{data}}}},{p_{\rm{g}}}) = \mathop {\inf }\limits_{\gamma \in \prod ({p_{{\rm{data}}}},{p_{\rm{g}}})} {{\rm{E}}_{(x,y)\sim \gamma }}[||x - y||] $$ (1) 式中,Pdata、Pg是真实数据分布和生成数据分布;
$\prod ({p_{{\rm{data}}}},{p_{\rm{g}}})$ 是所有边缘分布为pdata和pg的联合概率分布。CWGAN-GP是通过惩罚鉴别器相对于其输入梯度的范数来替代WGAN削减权重,有效克服了WGAN模型难以收敛的问题。
为限制生成器生成方向,使生成器能够生成特定类别数据,与CGAN类似,CWGAN-GP模型向生成器和鉴别器添加了附加信息y,y可以是类别标签或任何其他类型的辅助信息。本文中条件信息是类别标签。在鉴别器中,将Pdata、Pg和y以联合隐藏表达的形式结合;在生成器中,以相同的形式将条件y与生成数据分布pg连接。函数形式为:
$$ \begin{split} & \qquad\quad \mathop {{\text{min}}}\limits_G \mathop {{\text{max}}}\limits_D {{V(D,G) = }}{{\text{E}}_{x\sim {p_{{\rm{data}}}}(x)}}[D(x{{|y}})] - \\ & {{\rm{E}}_{{{\tilde {\rm{g}}}} \sim {p_{\text{g}}}{\text{(g)}}}}[D(\tilde g{{|y}})] - \lambda {{\rm{E}}_{\hat x\sim {{\rm{P}}_{\hat x}}}}[{(||{\nabla _{\hat x}}D(\hat {{x}}{{|y}})|{|_2} - 1)^2}] \end{split} $$ (2) 其中参数与WGAN-GP相同,只是增加了附加条件y。CWGAN-GP的优化函数分别为:
$$ \begin{split} & {{L}}({{D}}){\text{ = }} - {{\text{E}}_{x\sim {p_{{\rm{data}}}}(x)}}[D(x{\text{|y}})] + {{\rm{E}}_{{{\tilde {\rm{g}}}}\sim {p_{\text{g}}}{\text{(g)}}}}[D(\tilde g{\text{|y}})] + \\ & \qquad\quad \lambda {{\rm{E}}_{\hat x\sim {{\rm{P}}_{\hat x}}}}[{(||{\nabla _{\hat x}}D(\hat {\rm{x}}{\text{|y}})|{|_2} - 1)^2}] \end{split} $$ (3) $$ {{L}}({{G}}){\text{ = }} - {{\rm{E}}_{{{\tilde {\rm{g}}}}\sim {p_{\text{g}}}{\text{(g)}}}}[D(\tilde g{\text{|y}})] $$ (4) CWGAN-GP的目标是使L最小化[9],从而实现生成数据与真实数据之间的分布距离更小。与传统的过采样方法相比,CWGAN-GP直接生成数据,而不只是关注局部信息。
-
实验使用的是公共数据集USTC-TFC2016和CIC-IDS2017[11]中的部分数据,数据集由原始PCAP文件组成。从USTC-TFC2016中选择了9类应用程序,其中包括6类正常应用流量和3类异常应用流量;从CIC-IDS2017选择10类应用程序,9类异常应用流量和1类正常流量,数据集均有较大的不平衡。使用不同方法使数据集实现平衡,将数据样本随机划分成90%的训练集和10%的测试集。数据集平衡前后分布如表1和表2所示。为保证实验有效性,数据集的测试集部分均为真实数据,生成数据只对训练集部分进行平衡。
表 1 USTC-TFC2016数据集平衡前后分布
编号 应用类别 平衡前 平衡后 数量 占比/% 数量 占比/% 1 Ftp(正常) 51689 41.6% 13000 11% 2 MySql(正常) 11900 9.5% 13000 11% 3 SMB(正常) 13800 11.1% 13000 11% 4 Wordofwarcraft
(正常)14185 11.4% 13000 11% 5 Miuref 14000 11.2% 13000 11% 6 Weibo(正常) 13000 10.4% 13000 11% 7 Shifu 2000 1.6% 13000 11% 8 Cridex 1700 1.3% 13000 11% 9 Neris 1800 1.4% 13000 11% 总计 124074 100% 117000 100% 表 2 CIC-IDS2017数据集平衡前后分布
编号 应用类别 平衡前 平衡后 数量 占比/% 数量 占比/% 1 normal(正常) 10003 7.2% 10000 10% 2 Web-BForce 1229 0.9% 10000 10% 3 DDOS 40932 29.4% 10000 10% 4 DOSGoldenEye 6817 4.9% 10000 10% 5 DOSHulk 12697 9.1% 10000 10% 6 FTP-Patator 3594 2.6% 10000 10% 7 PortScan 54000 38.8% 10000 10% 8 slowhttptest 3796 2.7% 10000 10% 9 SSH-Patator 2681 1.9% 10000 10% 10 DoSSlowloris 3505 2.5% 10000 10% 总计 136360 100% 100000 100% -
对于相同的超参数,设置均保持相同;对于不同的超参数,单独设置。GAN、WGAN和CWGAN-GP均为4层神经网络,噪声空间的维数设置为100,batch_size设置为64。WGAN和CWGAN-GP将α、β1、和β2分别设置为0.002、0.5和0.999;clip_value均为0.01;critic设置为5,即当生成器训练1个batch时,判别器要接着训练5次;梯度惩罚系数λ在CWGAN-GP中设置为10,训练批次均为在满足2.2节条件下且生成数据数量足够时停止;SMOTE方法的k_neighbors为5。
本文使用的分类模型是经典LeNet-5[12]的CNN结构,CNN模型使用交叉熵损失,batch_size设置为50,训练轮次均为2 000。
-
本文使用评价网络流量分类器的性能指标有精确度(precision)、召回率(recall)和F1-score。
-
实验在一台配置了Intel(R)Core(TM) i7-7700HQ CPU @2.80 GHz处理器、16 GB内存、GPU(GeForce GTX1050)、Win10系统的笔记本电脑上运行。使用TensorFlow 1.15.0+Keras 2.3.1深度学习平台实现分类操作,基于GAN及其衍生版本的数据生成方法使用torch1.3.1+GPU实现。
使用CNN模型对5种平衡方法和原始数据进行实验测试。只对训练集进行处理,测试集全部为原始数据。随机选取10%的样本集作为测试集,并对剩余90%的数据集进行平衡化作为训练集。为消除随机划分数据集对结果的影响,将实验重复5次取平均值作为最终结果,结果如图4、图5所示。
经过对比得到在相同训练参数下,使用CWGAN-GP方法进行流量图片平衡后的数据集相较于其他分类方法识别效果提升明显,且在多数类别上识别均值高于使用其他平衡方法。CWGAN-GP方法的最终效果优于其他方法,F1值在IDS2017上相较于原始数据提高近3%,较于SMOTE方法提高近2%;在TFC2016上较原始提高近4%,较SMOTE提高近1.3%;在两个数据集上均有识别率较低的流量类别,这些流量类别具有一定隐蔽性,不易被识别出来,但本方法对识别率有较大提高,验证了本方法具有一定的鲁棒性,且不易出现模式崩溃和收敛困难的问题。由于相较于WGAN-GP添加了辅助信息,在生成效率上也有很大提高。均值结果统计如表3、表4所示。
表 3 CIC-IDS2017分类结果均值统计
数据集类型 Precision Recall F1 原始数据 0.9594 0.9329 0.9408 CWGAN-GP平衡 0.9652 0.9777 0.9740 SMOTE平衡 0.9545 0.9641 0.9577 ROS平衡 0.9647 0.9740 0.9689 GAN平衡 0.9632 0.9420 0.9514 WGAN平衡 0.9635 0.9734 0.9679 表 4 USTC-TFC2016分类结果均值统计
数据集类型 Precision Recall F1 原始数据 0.9571 0.9402 0.9456 CWGAN-GP平衡 0.9853 0.9833 0.9841 SMOTE平衡 0.9793 0.9782 0.9786 ROS平衡 0.9789 0.9768 0.9766 GAN平衡 0.9700 0.9685 0.9683 WGAN平衡 0.9781 0.9774 0.9773
Network Malicious Traffic Identification Method Based on CWGAN-GP Category Balancing
-
摘要: 在网络恶意流量识别任务中,存在恶意流量样本数量与正常流量样本比例不平衡问题,从而导致训练出的机器学习模型泛化能力差、识别准确率低。为此,在网络流量图片化的基础上提出一种利用具有梯度惩罚项的条件Wasserstein生成对抗网络(CWGAN-GP)对少量数据类进行平衡的分类方法。该方法首先借助网络流量图片化方法将原始流量PCAP数据按照流为单位进行切分、填充、映射到灰度图片中;然后使用CWGAN-GP方法实现数据集的平衡;最后,在公开数据集USTC-TFC2016和CICIDS2017上使用CNN模型对不平衡数据集和平衡后的数据集进行分类测试。实验结果表明,使用CWGAN-GP的平衡方法在精确度、召回率、F1这3个指标上均优于随机过采样、SMOTE、GAN以及WGAN平衡方法。
-
关键词:
- 条件Wasserstein生成对抗网络 /
- 数据平衡 /
- 流量扩充 /
- 流量识别
Abstract: In the network malicious traffic identification task, there is an imbalance between the ratio of the number of malicious traffic samples and the number of normal traffic samples, which leads to poor generalization ability and low recognition accuracy of the trained machine learning model. To solve this problem, this paper proposes a classification method that balances a small number of data classes by using the conditional Wasserstein generative adversarial network (CWGAN-GP) with gradient penalty items based on the visualization of network traffic. This method first uses the network traffic visualization method to segment, fill, and map the original traffic packet capture (PCAP) data into gray-scale images according to the flow as a unit, and then applies the CWGAN-GP method to achieve the balance of the dataset. Finally, in the public dataset USTC-TFC2016 and CICIDS2017, the convolutional neural network (CNN) model is used to classify and test the unbalanced dataset and the balanced dataset. The experimental results show that the balance method using CWGAN-GP is better than the random oversampling, SMOTE, GAN and WGAN balance methods in the three indicators of Precision, Recall, and F1.-
Key words:
- CWGAN-GP /
- data balance /
- flow expansion /
- flow identification
-
表 1 USTC-TFC2016数据集平衡前后分布
编号 应用类别 平衡前 平衡后 数量 占比/% 数量 占比/% 1 Ftp(正常) 51689 41.6% 13000 11% 2 MySql(正常) 11900 9.5% 13000 11% 3 SMB(正常) 13800 11.1% 13000 11% 4 Wordofwarcraft
(正常)14185 11.4% 13000 11% 5 Miuref 14000 11.2% 13000 11% 6 Weibo(正常) 13000 10.4% 13000 11% 7 Shifu 2000 1.6% 13000 11% 8 Cridex 1700 1.3% 13000 11% 9 Neris 1800 1.4% 13000 11% 总计 124074 100% 117000 100% 表 2 CIC-IDS2017数据集平衡前后分布
编号 应用类别 平衡前 平衡后 数量 占比/% 数量 占比/% 1 normal(正常) 10003 7.2% 10000 10% 2 Web-BForce 1229 0.9% 10000 10% 3 DDOS 40932 29.4% 10000 10% 4 DOSGoldenEye 6817 4.9% 10000 10% 5 DOSHulk 12697 9.1% 10000 10% 6 FTP-Patator 3594 2.6% 10000 10% 7 PortScan 54000 38.8% 10000 10% 8 slowhttptest 3796 2.7% 10000 10% 9 SSH-Patator 2681 1.9% 10000 10% 10 DoSSlowloris 3505 2.5% 10000 10% 总计 136360 100% 100000 100% 表 3 CIC-IDS2017分类结果均值统计
数据集类型 Precision Recall F1 原始数据 0.9594 0.9329 0.9408 CWGAN-GP平衡 0.9652 0.9777 0.9740 SMOTE平衡 0.9545 0.9641 0.9577 ROS平衡 0.9647 0.9740 0.9689 GAN平衡 0.9632 0.9420 0.9514 WGAN平衡 0.9635 0.9734 0.9679 表 4 USTC-TFC2016分类结果均值统计
数据集类型 Precision Recall F1 原始数据 0.9571 0.9402 0.9456 CWGAN-GP平衡 0.9853 0.9833 0.9841 SMOTE平衡 0.9793 0.9782 0.9786 ROS平衡 0.9789 0.9768 0.9766 GAN平衡 0.9700 0.9685 0.9683 WGAN平衡 0.9781 0.9774 0.9773 -
[1] SUH S, LEE H, LUKOWICZ P, et al. CEGAN: Classification enhancement generative adversarial networks for unraveling data imbalance problems[J]. Neural Networks, 2021, 133: 69-86. doi: 10.1016/j.neunet.2020.10.004 [2] SUN J, LANG J, FUJITA H, et al. Imbalanced enterprise credit evaluation with DTE-SBD: Decision tree ensemble based on SMOTE and bagging with differentiated sampling rates[J]. Information Sciences, 2018, 425: 76-91. doi: 10.1016/j.ins.2017.10.017 [3] GOODFELLOW I, POUGET-ABADIE J, MIRZA M, et al. Generative adversarial nets[C]//Proceedings of the 2014 Advances in Neural Information Processing Systems. New York: Curran Associates, 2014: 2672-2680. [4] DOUZAS G, BACAO F. Effective data generation for imbalanced learning using conditional generative adversarial networks[J]. Expert Systems with Applications, 2018, 91: 464-471. doi: 10.1016/j.eswa.2017.09.030 [5] GULRAJANI I, AHMED F, ARJOVSKY M, et al. Improved training of wasserstein gans[C]//Proceedings of the 2017 Advances in Neural Information Processing Systems. New York: Curran Associates, 2017: 5767-5777. [6] 潘一鸣, 林家骏. 基于生成对抗网络的恶意网络流生成及验证[J]. 华东理工大学学报(自然科学版), 2019, 45(2): 344-350. doi: 10.14135/j.cnki.1006-3080.20180313003 PAN Y M, LIN J J. Generation and verification of malicious network flow based on generative adversarial networks[J]. China Journal of East University of Science and Technology (Natural Science), 2019, 45(2): 344-350. doi: 10.14135/j.cnki.1006-3080.20180313003 [7] CHENG Q, ZHOU S, SHEN Y, et al. Packet-Level adversarial network traffic crafting using sequence generative adversarial networks[EB/OL]. [2021-11-30]. https://arxiv.org/abs/2103.04794. [8] MING Z A, TONG L, RUI Z, et al. Conditional Wasserstein generative adversarial network-gradient penalty-based approach to alleviating imbalanced data classification[J]. Information Sciences, 2020, 512: 1009-1023. doi: 10.1016/j.ins.2019.10.014 [9] WANG P, LI S, YE F, et al. PacketCGAN: Exploratory study of class imbalance for encrypted traffic classification using CGAN[C]//IEEE International Conference on Communications (ICC). [S.l.]: IEEE, 2020: 1-7. [10] 王伟. 基于深度学习的网络流量分类及异常检测方法研究[D]. 合肥: 中国科学技术大学, 2018. WANG W. Deep learning for network traffic classification and anomaly detection[D]. Hefei: University of Science and Technology of China, 2018. [11] Intrusion detection evaluation dataset (CICIDS2017). [EB/OL]. [2020-11-05]. https://www.unb.ca/cic. [12] LECUN Y, BOTTOU L. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324. doi: 10.1109/5.726791