1. 引言
随着深度学习技术在网络安全领域的广泛应用,特别是网络入侵检测与网络加密流量识别中,类别不平衡问题会对深度学习模型的性能产生消极影响,所以处理加密流量数据集类别不平衡的问题变得尤为重要 [1] 。
在解决类别不平衡问题中,采样是一种常用的方法之一,包括过采样和欠采样。过采样通过增加少数类别样本的复制数量来平衡数据集,而欠采样则是通过减少多数类别样本的数量来达到平衡 [2] 。如ROS (Random Over-Sampling)是一种过采样技术,它通过复制少数类别中的样本来增加其数量,以达到平衡数据集的目的。ROS通过在少数类别中随机选择样本,并将其复制多次来进行重采样。这样可以增加少数类别的样本数量,从而改善数据集的平衡性 [3] 。虽然ROS简单易用,但可能会导致过度拟合的风险,因为重复采样样本可能使得模型过于关注少数类别的特征。修改损失函数也是一种常见的方法,通过给不同类别的样本赋予不同的权重或者引入正则化项来调整模型的训练过程,以便更加关注少数类别。但赋予不同类别的样本不同的权重可能会引入偏差。如果权重设置得不合理,可能会导致模型过度关注少数类别,而忽视多数类别。另一种解决类别不平衡问题的方法是生成合成数据。在这方面,SMOTE (Synthetic Minority Over-sampling Technique)是一种常用的技术 [4] 。SMOTE通过随机选择少数类别中的样本,并根据其邻居样本的特征生成新的合成样本。具体来说,对于一个少数类别样本,SMOTE会计算其与最近邻样本之间的差值,然后根据这个差值与一个随机数相乘的结果,生成一个新的合成样本。
近年来,基于生成对抗网络(GAN)的方法在生成合成数据方面取得了显著的进展,被广泛应用于解决类别不平衡问题 [5] 。GAN通过训练一个生成器网络来生成具有少数类别特征的新样本,并与判别器网络进行对抗训练,从而提高模型在少数类别上的性能。一些研究人员为了克服网络数据不平衡问题,提出了基于GAN的方法来生成流量样本。ACGAN [6] 用于生成合成的流量样本,以平衡知名的流量数据集NIMS中的次要和主要类别。具体而言,AC-GAN同时采用随机噪声和类标签作为输入,以根据输入类别标签生成样本。实验结果表明,他们的方法相比于SMOTE等其他方法,具有更好的性能。然而,NIMS数据集中仅包含SSH和非SSH两个类别。为此,基于上述研究的缺陷,本文设计了生成器和判别器,并在此基础上添加了条件约束,通过学习原始流量数据的特征来生成合成流量样本。然后,将合成数据与原始(即真实)数据相结合,构建了一个新的流量数据集。这种方法旨在解决多类别不平衡问题,并且可应用于其他类型的数据集。
2. 本文方法
2.1. 数据处理
本文设计的数据处理如图1所示,旨在实现对真实网络中原始流量数据的分割和预处理,以便进行后续的分析和处理。在真实的网络系统中,流量数据源不包含单个应用程序的有序序列,而是由同一网络段上不同主机发送的各种数据包组成。因此,在这些原始流量中区分出由单个应用程序产生的流量就需要进行流量分割。每个流量都可以表示为具有相同的五元组(源IP、源端口、目的IP、目的端口、传输层协议)的数据包序列 [7] 。考虑到隐私问题,在处理原始流量之前,需要使用TraceWrangler.exe工具将IP地址匿名化,然后根据五元信息进行流量分割。
由于DNS、TCP三次握手等数据包与应用程序识别无关,将这些无关的数据包进行过滤从而消除数据集中的噪音。网络中的其他层主要包含网络控制和网络传输的信息而非有用的数据信息,因此只需关注应用层即数据包的有效载荷。注意到网络流中包含的分组数量和每个分组的大小通常是不确定的,一种常见的方法是统一数据包长度以及数据包个数选择网络流的前n个数据包,并保留每个分组的前m个字节。如果网络流中的数据包数量超过了n,需要对其进行截断;反之,如果数据包数量不足n,则需用0进行填充。同样地,如果一个数据包中的字节数多于或少于m,也需进行相同的处理预处理,以提供准确而一致的数据。最终,通过网络流的矢量化,将字节单位转换为0到255的整数,并进行归一化操作来得到最终的网络流量特征图。
2.2. 条件约束GAN网络
条件约束GAN (Conditional GAN,简称CGAN)是一种基于生成对抗网络(GAN)的深度学习模型,它在原始的GAN模型基础上增加了条件约束,在生成器和判别器之间引入了额外的网络流的统计特征,通过该附加条件来控制生成器产生样本,从而实现更加精细化的生成任务。CGAN最初由Mirza和Osindero在2014年提出 [8] ,其主要思想是将条件信息c作为噪声z和生成器G的输入进行联合训练,同时将条件信息c与真实样本x和判别器D的输入一同输入。
本文的模型框架如图2所示,首先,定义生成器G和判别器D。G接受一个噪声向量z作为输入,生成伪造的网络流量样本
,即
。D接受一个网络流量样本x作为输入,输出一个标量值
表示该样本是真实网络流量的概率。GAN的目标是最小化生成器和判别器之间的损失函数
。其中,判别器的目标是使得真实网络流量的
尽可能接近于1,而生成器的目标是使得它生成的网络流量的
尽可能接近于1。因此,可以将
表示为以下公式:
其中
表示期望值,
表示真实网络流量的分布,
表示噪声向量z的分布。
表示
的对数,
表示
的对数差。

Figure 2. The overall framework of this method
图2. 本文方法整体框架
为了使生成的网络流量更加逼真,可以在训练过程中引入条件约束。具体地,将真实网络流量的统计特征和类别标签作为额外的条件输入提供给生成器和判别器。假设条件向量用向量c来表示,则可以将生成器的输入修改为一个元组
,生成器将噪声向量z和条件向量c映射为虚假的网络流量样本
。判别器的输入也需要加入条件向量c,即
表示网络流量样本x和条件向量c的区分能力。此时,GAN的目标函数变为:
其中
表示期望值,
表示真实网络流量和条件的联合分布,
表示噪声向量z的分布。
表示
的对数,
表示
的对数差。
通过不断迭代训练生成器和判别器,可以逐渐提高生成的网络流量样本的质量,使其更加逼真。
2.3. 条件向量
采用流量的统计特征和类别标签作为条件向量,可以提供全面且综合的信息来描述网络流量。统计特征可以反映流量的基本属性和行为特征,而类别标签可以表示流量所属的具体类别。条件向量作为生成对抗网络的输入,可以帮助网络更好地学习和理解网络流量的特征和类别。
在本研究中选择了表1所示的一组典型的统计特征作为条件向量的一部分。假设流量的统计特征向量f,类别标签通常使用独热编码向量I来表示。独热编码是一种将离散值表示为二进制向量的方法,其中只有一个元素为1,其余元素为0。每个类别对应一个独热编码向量,向量的长度等于类别的总数。
其中,
表示第i个统计特征归一化后的值,
的第i个元素为1,表示该样本属于第i个类别,其余元素都为0。
生成对抗网络的输入条件向量c可以通过将流量的统计特征和类别标签进行拼接得到,即
,这样的拼接操作可以保留并利用统计特征与类别标签之间的信息关联。
2.4. 生成器网络结构
生成器的作用是将给定的条件向量c和噪声向量z转换为逼真的加密流量样本x。生成器的设计采用了多层反卷积网络 [9] ,通过逐步上采样来生成与原始加密流量样本相似的时间序列数据。将生成器表示为一个非线性映射函数G,如下所示:
首先,将条件向量c与噪声向量z进行拼接,得到一个低维的中间特征向量h0。这一步使用一个全连接层实现。
其中,
表示将条件向量c和噪声向量z进行拼接,
和
分别表示全连接层的权重和偏置。
接下来,通过多个反卷积层进行逐步上采样,将中间特征向量h0转换为最终的生成样本x。
其中,Deconv表示反卷积层的操作,
和
分别表示反卷积层的权重和偏置。每个反卷积层都会增加一倍的特征图尺寸,以逼近原始加密流量样本的维度。最后一层使用tanh作为激活函数,将生成样本x的取值限制在−1到1之间。
2.5. 判别器网络结构
判别器的作用是将生成的加密流量样本x与真实的加密流量样本进行区分。判别器包含三个子网络,用于提取加密流量样本x和条件向量c的高层特征:全连接层、一维卷积层 [10] 和LSTM层 [11] 。将判别器表示为一个非线性映射函数D,如下所示:
具体而言,使用全连接层提取条件向量c的高层特征,使用一维卷积层提取加密流量样本x的空间特征,使用LSTM层提取时间特征。最后,将三部分特征进行融合,并使用全连接层进行二元分类,判断输入数据是真实数据还是生成数据。
首先,使用全连接层提取条件向量c的高层特征,得到向量hc。
接下来,使用一维卷积层提取加密流量样本x的空间特征,得到向量hx
然后,使用LSTM层提取加密流量样本x的时间特征,得到向量ht
最后,将三部分特征进行拼接,得到向量h。
通过一个全连接层和sigmoid激活函数,将向量h映射为一个二元分类结果y,表示输入数据是真实数据还是生成数据。
其中
和
分别表示全连接层的权重和偏置。整个判别器网络的目标是最大化生成数据与真实数据之间的差异,从而使生成器能够生成更逼真的加密流量样本。
2.6. 模型训练
在训练过程中,采用交替优化的策略。首先,固定生成器参数,通过最小化判别器来更新判别器参数,使判别器能够更好地区分真实样本和伪造样本。然后,固定判别器参数,通过最小化生成器损失函数来更新生成器参数,使生成器能够生成更逼真的伪造样本。这样反复迭代优化,直到生成器和判别器达到一定的平衡状态。具体地,将训练过程分为两个阶段:预训练和对抗训练。在预训练阶段,通过最小化生成器和判别器之间的均方误差来训练模型。在对抗训练阶段,使用GAN的目标函数进行训练。
首先,随机初始化生成器G和判别器D的参数。然后,使用真实的加密流量样本x和条件向量c作为输入,将其通过生成器G生成虚假的加密流量样本
。使用均方误差(MSE)损失函数来最小化生成器和判别器之间的误差:
其中,N是训练样本数量,
是从噪声分布
中采样得到的噪声向量。通过预训练,可以加快模型的收敛速度。
在对抗训练中,使用GAN的目标函数进行训练。具体来说,使用交替优化的方式来更新生成器和判别器的参数。在每次迭代中,首先固定生成器G,最大化判别器D的目标函数,即:
然后,固定判别器D,最小化生成器G的目标函数,即:
最终的损失函数为:
在每次迭代中,从真实的加密流量样本和噪声分布中分别采样得到训练样本,并根据目标函数进行优化。
3. 实验
3.1. 实验配置
本实验的硬件环境为NVIDIA GeForce RTX 3060 Laptop GPU,CUDA版本为11.6,每条网络流选择前36个数据包,每条数据包选择前256个字节。优化器采用Adam优化器,生成器的学习率为0.0001,判别器的学习率为0.0002,批次大小为32,迭代次数为3000轮次。
3.2. 数据集
CIC-Darknet2020数据集 [12] 是一个用于研究和分析Darknet流量的数据集,Darknet是互联网未使用的地址空间,通常不与世界上其他计算机进行交互。该数据集通过合并ISCXTor2016 [13] 和ISCXVPN2016 [14] 两个公共数据集中的Tor和VPN流量,构建了一个包含了各种类型Darknet流量的完整数据集。在CIC-Darknet2020数据集中,Darknet流量的详细信息如表2所示,该数据集的类别存在数据集不平衡的现象。

Table 2. Details of Darknet traffic in CIC-Darknet2020 data set
表2. CIC-Darknet2020数据集中Darknet流量的详细信息
对CIC-Darknet2020数据集进行数据平衡,采用ROS、SMOTE、GAN和本文方法共四种生成方法使得每个类别的流量都有3096个样本,每类占比均为12.5%。
3.3. 评估指标
在本研究中,采用了准确率和F1值作为分类模型的评估指标。其中准确率(Accuracy)是指分类器正确分类的样本数占总样本数的比例,其公式如下所示:
其中,TP表示真正例(True Positive),即实际类别为正例且预测为正例的样本数;TN表示真负例(True Negative),即实际类别为负例且预测为负例的样本数;FP表示假正例(False Positive),即实际类别为负例但预测为正例的样本数;FN表示假负例(False Negative),即实际类别为正例但预测为负例的样本数。
F1值是综合考虑了分类器的精准率(Precision)和召回率(Recall)的一种度量指标。它能够同时兼顾分类器对于正例和负例的分类效果,其公式如下所示:
其中,精准率(Precision)表示预测为正例的样本中实际为正例的比例,其公式如下所示:
召回率(Recall)表示实际为正例的样本中被分类器正确预测为正例的比例,其公式如下所示:
需要注意的是,对于多分类模型而言,采用宏观平均(macro-averaging)来计算准确率和F1值。宏观平均先分别计算各个类别的准确率和F1值,再求它们的平均值。
3.4. 实验结果分析
基于DFR [15] 种使用LSTM的流量分类方法,表3展示在CIC-Darknet2020数据集上运用不同的类不平衡分类算法所得到的准确率。这些算法包括未经处理的不平衡数据集、基于ROS方法、基于SMOTE方法、基于GAN的方法以及本文所提出的方法。通过对比这些分类结果,可以看出本文提出的方法在该数据集上取得了明显优势,相较于不平衡数据集和其他三种过采样方法,其分类准确率更加突出,比未处理的数据集准确率提高了7%。另外,在CIC-Darknet2020数据集种各类别的F1值如图3所示,可以看出本文方法可以显著提高少数类的F1值,在Browsing、Email、P2P这三种占比极少的类别中,F1值比次优的GAN方法提升了10%、2.10%、4.40%。
值得注意的是,传统的不平衡数据集处理方法存在一些局限性。例如,基于ROS (Random Over Sampling)方法会简单地复制少数类样本以平衡数据集,但这容易导致过拟合或者丢失原始信息。而基于SMOTE (Synthetic Minority Over-sampling Technique)方法虽然可以生成合成的少数类样本,但对于高维特征空间的数据集来说,其合成样本的质量可能无法保证。

Figure 3. Comparison of F1 values of each category on the CIC-Darknet2020 data set
图3. CIC-Darknet2020数据集上各类别F1值对比

Table 3. Classification results on the CIC-Darknet2020 data set
表3. 在CIC-Darknet2020数据集上的分类结果
相比之下,本文通过引入额外的条件信息,使得生成网络更加可控,能够实现有监督学习的效果,并且在一定程度上缓解了GAN存在的训练不稳定、模式崩溃等问题。可以对生成过程进行更精细控制,充分利用统计特征和类别标签作为条件向量的GAN网络生成网络流量,能够更加有效地生成符合原始数据分布特征的合成样本,从而改善了数据集的平衡性并提升了分类效果。
4. 结论
通过本文对加密流量数据集类别不平衡问题的研究,我们提出了一种基于改进的生成对抗网络(GAN)的加密流量生成模型,旨在解决目前公开的加密流量数据集存在的严重类别不平衡问题。通过实验验证,该方法相对于传统的方法在分类准确率和F1值方面具有显著优势。通过引入额外的条件信息和结合统计特征和类别标签,使得生成网络变得更加可控,可以更准确地生成符合条件的合成网络流量数据,从而提高训练和生成效果,使生成的网络流量更加真实和逼真,从而改善了数据集的平衡性并提升了分类效果。这为解决实际网络流量分类中的类别不平衡问题提供了新的思路和方法。我们希望未来能够进一步探索和完善这一方法,为网络安全领域提供更加有效的解决方案。