1. 引言
随着通信网络的快速发展,网络流量数据的类型和数量也相应地不断增加。网络流量分类已成为网络管理与安全领域中一项重要的研究任务。它无疑是动态访问控制、网络资源调度、服务质量(QoS)保障、入侵和恶意软件检测等方面的基石。高效且准确的流量分类对于提供服务质量保障、动态访问控制以及检测异常网络行为具有重大的现实意义。然而,随着包括5G和物联网在内的网络中加密技术的广泛应用,部分加密流量的增长给诸如服务质量保障之类的网络管理工作带来了巨大挑战。因此,准确且可靠的加密流量分类不仅有助于改善细粒度的网络资源分配,还能实现策略驱动的网络管理。
目前已有一些使用流量统计信息进行加密流量分类的流量分类器,它们能够取得不错的性能,但其需要领域专家手工设计特征,这往往非常耗费精力。而生成对抗网络(GAN)在内的深度学习(DL)技术能够在无需人工干预的情况下自动提取特征,这无疑使其成为流量分类,尤其是加密流量分类中非常理想的方法。近期的研究工作已经证明了深度学习方法在流量分类方面的优越性[1],例如多层感知机(MLP) [2]、卷积神经网络(CNN) [3]-[7]、栈式自编码器(SAE) [8]、长短期记忆网络(LSTM) [9] [10]等。
基于深度学习的加密流量分类研究工作大多需要大量的标注数据集,也就是监督学习,这一直是深度学习领域大多数研究的核心。目前流量数据集主要有两种标注方法,一种是基于深度包检测(DPI)的标注方法,另一种是基于脚本的标注方法。然而,基于深度包检测的标注方法无法处理加密流量,而基于脚本的方法也并不总是准确的。且获取大量标注数据集是一项繁琐且耗时的手工劳动,未标注数据总是丰富且容易获取的。因此,开发能够从较少量数据中学习的模型的需求日益迫切,半监督学习是克服这一问题的合适技术。Wang等[11]进一步优化了GAN模型,提出了一种基于半监督生成对抗网络的流量分类方法——ByteSGAN,特别适用于SDN边缘网关中的加密流量分类任务,该方法利用GAN的生成对抗机制和基于字节流的特征表示,从而在标签稀缺的情况下显著提升分类性能。变分自动编码器作为另一种生成模型,通过学习未标注数据的潜在特征分布,为半监督学习模型提供了更丰富的特征表示。
本文提出了一个半监督学习模型——CLGAN (CNN and LSTM Generative Adversarial Networks),该模型巧妙地结合了GAN生成器产生的样本和未标记数据,通过改进GAN鉴别器网络的结构,实现了在少量标记样本上的高效学习。这种半监督学习策略不仅显著降低了对大规模标注数据的依赖,还提高了分类器的性能,为网络流量分类提供了一种更为经济和实用的解决方案。基于公开数据集ISCX2012 VPN-non VPN和USTC-TFC2016的实验结果表明,CLGAN在标注数据稀缺场景下表现出更强的特征提取和泛化能力。当标记样本数量为2000时,CLGAN的分类准确率比CNN-LSTM模型提高了约3%;与模型DCGAN相比,在不同数据标记数量下CLGAN模型分类准确率均提高了约4%。
2. 网络模型架构
本节将深入探讨基于生成对抗网络的半监督加密流量分类模型的设计内容。
2.1. 网络模型整体概述
为实现基于无标签数据集的加密流量分类目标,本文提出了一种基于生成对抗网络的半监督分类模型CLGAN,其整体架构如图1所示。该模型由生成器G和鉴别器D两部分组成。通过对传统GAN的改进,生成器G中使用卷积神经网络(CNN),利用反卷积技术生成模拟加密流量数据。这些模拟数据与未标记的真实加密流量数据共同用于训练鉴别器D,使其能够在交叉训练过程中学习加密流量的特征。此外,鉴别器D的结构被优化为LSTM与CNN的级联网络,以增强对加密流量的时空特征提取能力,从而更全面地捕捉深层信息。最终,提取的特征张量通过Softmax分类器完成加密流量的分类任务。
Figure 1. The network architecture of CLGAN
图1. CLGAN网络模型结构
CLGAN继承了DCGAN生成器的基本框架,包括转置卷积上采样、批归一化等核心组件,保持了GAN对抗训练的基本范式。关键区别在于判别器架构的革新:DCGAN采用纯CNN判别器,主要提取空间局部特征,而CLGAN创新性地将CNN与LSTM结合,形成混合判别器架构。这种设计使CLGAN能同时捕捉流量的空间特征(通过CNN)和时序动态特性(通过双向LSTM),特别是通过时空特征交叉注意力融合机制,有效解决了传统DCGAN在处理流量数据时难以建模长程时序依赖的问题。
在CLGAN模型中,左侧蓝色部分为生成器G,其生成的模拟加密流量数据与真实加密流量数据(如中间黑色框图所示)共同作为鉴别器D的输入,通过反向传播完成D的训练。模型的训练过程与传统GAN类似,生成器G和鉴别器D通过交叉训练进行极大极小博弈,使生成器G能够生成接近真实流量分布的数据,同时鉴别器D在训练过程中学习加密流量的时空特征。随后,将鉴别器D的权重迁移至新的分类器,并利用带标签数据进行微调,最终完成加密流量的分类任务。这一过程体现了CLGAN实现半监督加密流量分类的核心原理。
2.2. 鉴别器结构
在加密流量分类研究中,时序特征学习通常采用基于流或基于会话(即双向流)两种方式。根据文献[4]的研究,基于流的方法在分类效果上更具优势。因此,本文利用CNN和LSTM的结合,以基于会话的方式学习时序特征。首先,通过CNN提取流量的空间特征,生成特征张量。随后,将特征张量输入到LSTM中,进一步提取时序特征,最终得到加密流量的时空特征。为防止过拟合,网络在输出前加入了Dropout层[12],并将特征张量输入Softmax分类器,得到鉴别器的分类结果。
图2展示了CLGAN模型中鉴别器D的网络结构。鉴别器D的输入包括生成器G生成的模拟加密流量数据和真实流量数据。其中,CNN用于提取空间特征,LSTM则用于提取时序特征,两者共同完成加密流量的特征学习任务。
Figure 2. Discriminator D architecture in CLGAN
图2. CLGAN模型中鉴别器D的结构图
鉴别器采用CNN与LSTM结合的深度判别模型,用于对28 × 28的流量数据进行分类。该模型由两个一维卷积层和一个LSTM层构成。首先,第一个一维卷积层以28 × 28的流量数据为输入,输出128维特征序列,卷积核大小为5,步长为1,填充为2。第二个一维卷积层以128维特征序列为输入,输出64维特征序列,卷积核大小同样为5,步长为1,填充为2。接着,将64维特征序列输入LSTM层,提取时序特征,输出256维特征序列。最终,通过全连接层将时空特征映射到12个类别中,并通过Softmax层输出分类结果。
在加密流量分类研究中,Iliyasu团队[13]构建的DCGAN半监督模型虽取得良好效果,但其鉴别器D的单CNN结构难以有效捕捉时序特征。本研究针对该局限性进行改进,提出时空特征融合分类网络:将鉴别器的CNN模块替换为CNN与LSTM的级联架构。通过采用“CNN→LSTM”的特征处理顺序,在优先提取流量数据空间依赖的基础上,再利用LSTM捕获局部时序特征,从而避免传统“LSTM→CNN”结构中卷积操作对空间连续性的破坏。实验表明,这种级联方式显著提升了加密流量的时空特征表征能力,最终实现分类性能的优化。
2.3. 生成器结构
生成器G如图3所示。由全连接层、重塑层、多级反卷积层和时序特征增强模块构成。具体如下:
全连接层:首先,输入的100维噪声向量通过全连接层进行线性变换,输入维度为100,输出维度为2048,以适配后续反卷积层的多级扩展需求。这进一步将噪声向量映射到更高维空间,为特征生成提供基础。
重塑层:全连接层的输出被展平成一个长度为2048的向量。这个向量被重塑为一个形状为(128 × 4 × 4)的特征图。128表示特征图通道数,4 × 4表示特征图的高度和宽度。
反卷积层:反卷积层都使用大小为5 × 5的卷积核,步长为2,填充为1。第一级反卷积,输入为128通道的4 × 4特征图,输出尺寸为64 × 8 × 8,选用LeakyReLuck激活函数增强梯度传播稳定性。第二层反卷积,输入为64通道的8 × 8特征图,输出尺寸为32 × 16 × 16,同样使用LeakyReLuck激活函数。第三层反卷积层的输入为32通道的16 × 16特征图,最后输出尺寸为1 × 28 ×28,确保与鉴别器的输入尺寸一致,最后选用Tanh激活函数。在每级反卷积后加入Batch Normalization层,以此来加速训练收敛并提升生成稳定性。生成的模拟流量数据与真实流量数据一起作为鉴别器D的输入。
Figure 3. Generator G architecture in CLGAN
图3. CLGAN模型中生成器G的结构图
2.4. 网络训练过程
CLGAN网络的输入为无标签数据集Sul、带标签数据集Sl;输出为鉴别器D输出的流量分类结果。半监督训练流程分为三个阶段:无监督预训练、参数微调和流量分类,具体步骤如下:
无监督预训练阶段:将混合数据集Sul和Sl输入网络,通过生成器G与鉴别器D的交替训练,促使两者在对抗博弈中达到动态平衡。在此过程中,生成器G通过模拟流量生成辅助鉴别器D学习加密流量的时空特征分布,同时保存两者的权重参数。
参数迁移与监督微调:加载预训练的鉴别器D权重,基于带标签数据集𝑆𝑙进行全监督微调,优化分类边界并提升模型对标记数据的适配性。
流量分类:将待分类流量数据输入微调后的鉴别器D,通过特征提取与Softmax分类输出最终类别概率。
该算法通过预训练阶段利用无标签数据增强特征学习能力,再结合少量标签数据细化分类性能,有效缓解数据标注不足的瓶颈问题。
3. 实验分析
为全面验证CLGAN方案的优势,本文选取两个国际公开数据集,即ISCX VPN-nonVPN和USTC-TFC2016,对该模型性能展开测试。同时,与多个半监督学习模型及监督学习模型进行对比试验。实验结果清晰地表明,CLGAN在性能方面展现出显著的优越性。
3.1. 损失函数
图4展示了CLGAN模型在训练过程中的损失函数收敛曲线,其中橙色曲线表示生成器的损失,蓝色曲线表示判别器的损失。从图中可以观察到以下几个关键特征:在训练的初始阶段,生成器的损失迅速下降,而判别器的损失逐步上升。这一现象表明,随着生成器不断优化,其生成的样本质量逐渐提高,从而使判别器更难以区分真实样本和生成样本。随着训练的进行,生成器和判别器的损失逐渐趋于平稳,分别在较低的波动范围内维持。此时,生成器与判别器达到了动态平衡,表明CLGAN模型进入了稳定的对抗训练阶段。从损失曲线的变化可以看出,生成器和判别器之间保持了良好的对抗关系。生成器的损失稳定后保持在较高水平,而判别器的损失保持在较低水平,表明生成器能够生成较为逼真的样本,同时判别器能够对样本进行有效的分类。
Figure 4. The training loss function of CLGAN
图4. CLGAN训练损失函数
3.2. 与半监督学习实验对比
本研究以DCGAN半监督分类模型为基础架构,针对其鉴别器模块进行了优化改进。从而克服了原始模型仅能提取空间特征的局限性,实现了对加密流量时空特征的综合提取。基于这一改进思路构建了CLGAN模型,因此实验环节选择DCGAN作为基准对比网络,以验证模型改进的有效性。本实验基于前文所述的模型架构展开,选用ISCX VPN-nonVPN数据集进行验证。为考察不同标注数据量的影响,实验设置了10%、30%、50%、70%四个标注比例等级。性能评估采用分类准确率(Accuracy)指标,具体实验结果详见表1。
Table 1. Classification accuracy comparison with DCGAN
表1. 与DCGAN模型分类精度对比
Labeled |
CLGAN |
DCGAN |
10% |
94.22 |
89.27 |
30% |
96.85 |
91.36 |
50% |
98.56 |
93.20 |
70% |
98.97 |
94.17 |
实验结果表明,在不同标注比例条件下,本文提出的CLGAN模型均展现出最优的分类性能。具体而言,当标注数据比例为10%、30%、50%和70%时,模型分类准确率分别达到94.22、96.85、98.56和98.97。与基准模型DCGAN相比,CLGAN在四种数据配置下均实现了约4%的性能提升,这主要得益于模型鉴别器中引入的时序特征提取机制,通过CNN-LSTM混合架构有效捕获了加密流量的时空特征,从而显著提升了分类性能。
Figure 5. Confusion matrix of the CLGAN classification
图5. 基于CLGAN分类的混肴矩阵
Figure 6. Confusion matrix of the DCGAN classification
图6. 基于DCGAN的分类混肴矩阵
与DCGAN相比CLGAN方案提出时空特征融合分类网络,即将鉴别器采用CNN与LSTM的级联组合架构,通过采用“CNN→LSTM”的特征处理顺序,在优先提取流量数据空间依赖的基础上,再利用LSTM捕获局部时序特征,从而避免传统“LSTM→CNN”结构中卷积操作对空间连续性的破坏。这种级联方式提升了加密流量的时空特征表征能力,最终实现分类性能的优化。
前文已详细分析了半监督分类模型的准确率指标,本节将进一步展示CLGAN与DCGAN在12类加密流量分类任务中的混淆矩阵。图5和图6分别呈现了两个模型的分类效果对比。通过混肴矩阵能够看出CLGAN的分类效果要好于DCGAN,这表明了该研究针对DCGAN提出的改进是有效的。
为了进一步验证CLGAN性能的优异性,本文设计并实现了一个基于自动编码器(AE)的半监督分类模型[14]。该模型包含两个部分:自动编码器和分类模型。自动编码器由两个主要组件构成,即编码器和解码器。编码器用作特征提取器,随着数据进入更深层次,它从低层次到高层次检测特征。提取的特征存储在潜在向量中。解码器获取这些特征并将它们转换回原始形状,输入流量数据,并尝试重构原始流量。分类器接收来自编码器的特征进行分类。自动编码器是一种无监督学习模型,将其与分类器相结合,形成一个半监督学习模型。具体模型结构如下:
输入层:数据采用28 × 28的灰度图。
编码器:使用一个三层的卷积神经网络(CNN)。每一层都有一个形状为(3, 3)的卷积核。编码器接收数据包字节向量(PBV)量,提取数据的空间特征,并将提取的特征存储在潜在向量中。
解码器:与生成式对抗网络(CLGAN)的生成器结构相同。
分类器:分类器由卷积神经网络(CNN)和长短时记忆网络(LSTM)结合构成。首先,CNN模块作为特征提取器,利用两层卷积网络提取局部空间特征,每一层均采用形状为(3, 3)的卷积核。随后,提取的空间特征被传递到LSTM模块,进一步捕获特征的时序依赖关系,并强化对数据序列特性的学习。最终,LSTM模块的输出通过全连接层,并使用Softmax激活函数输出分类结果。
在模型训练阶段,使用未标记的样本训练编码器和解码器,并将损失函数设置为平均绝对误差(MAE)。使用标记的样本训练编码器和分类器,并使用分类交叉熵作为损失函数。
如表2所示,可以发现两个模型都能利用少量有标签数据达到较高准确率。尽管差异不大,在相同标注数据量下,CLGAN的所有指标均显著高于AE。并且CLGAN的指标波动更小,而AE的波动范围更大,表明CLGAN对数据量的敏感性更低。从表3可以看出,在标注数据量较少时,如带标签数据量为100时,CLGAN的准确率明显高于AE。这表明CLGAN在半监督场景下具有更强的特征提取和泛化能力。当标注数据量提升至1000时,CLGAN与AE的差距缩小,说明充足标注数据能部分弥补传统方法的劣势。无论是CLGAN还是AE,标注数据量从100增加到1000时均显著提升性能。这表明标注数据对模型训练至关重要。CLGAN在半监督学习框架下表现出色,尤其在标注数据稀缺时优势显著;而基于AE的半监督学习方法在标注数据充足时仍具竞争力。
Table 2. Classification accuracy on ISCX VPN-nonVPN dataset
表2. 在ISCX VPN-nonVPN数据集上的分类准确性
|
Labeled |
Unlabeled |
Accuracy |
Precision |
Recall |
F1-score |
CLGAN |
1000 |
4000 |
97.8 |
97.5 |
97.8 |
97.5 |
1000 |
6000 |
98.0 |
98.2 |
98.4 |
97.9 |
1000 |
8000 |
98.1 |
98.1 |
98.4 |
98.1 |
AE |
1000 |
4000 |
96.2 |
96.3 |
96.2 |
96.1 |
1000 |
6000 |
96.5 |
96.2 |
96.4 |
96.4 |
1000 |
8000 |
97.2 |
97.1 |
97.1 |
97.2 |
Table 3. Classification accuracy on USTC-TFC2016 dataset
表3. 在USTC-TFC2016数据集上的分类准确性
|
Labeled |
Unlabeled |
Accuracy |
Precision |
Recall |
F1-score |
CLGAN |
100 |
4000 |
89.3 |
89.4 |
89.4 |
89.3 |
100 |
8000 |
93.5 |
93.6 |
93.5 |
93.5 |
100 |
12000 |
94.9 |
94.9 |
94.9 |
94.8 |
1000 |
4000 |
98.0 |
98.3 |
98.1 |
98.5 |
1000 |
8000 |
98.1 |
98.1 |
98.3 |
98.2 |
1000 |
12000 |
98.6 |
98.6 |
98.6 |
98.7 |
AE |
100 |
4000 |
83.2 |
83.7 |
83.7 |
83.9 |
100 |
8000 |
90.3 |
90.1 |
90.3 |
90.2 |
100 |
12000 |
93.0 |
93.0 |
93.1 |
92.9 |
1000 |
4000 |
97.1 |
97.2 |
97.2 |
97.3 |
1000 |
8000 |
98.0 |
97.2 |
97.2 |
97.2 |
1000 |
12000 |
98.4 |
98.4 |
98.4 |
98.4 |
3.3. 与监督学习对比实验
本文选取的监督学习模型为CNN和LSTM的组合网络,在ISCX VPN-nonVPN数据集和USTC-TFC2016数据集上分别对基于CNN-LSTM网络和基于CLGAN的分类模型开展实验。实验前,从数据集中选取指定数量的标记数据,其余作为未标记数据用于实验。采用随机梯度下降法进行训练,批量参数设为256。噪声从区间[−1, 1]的均匀分布中随机采样,样本大小为100。学习率参数设为0.0002,并使用Adam优化器来优化生成器和判别器的损失函数。基于CNN-LSTM的加密流量分类模型由输入层、卷积层、池化层、LSTM层和输出层组成。具体模型结构如下:
输入层:数据采用28 × 28的灰度图表示。
第一层卷积层:进行卷积操作,使用128个大小为3、步长为1的滤波器。输出结果通过ReLU激活函数计算得出。
第一层池化层:采用最大池化,池化大小为2,步长为2。这样可以在减少数据量的同时保留重要特征。
第二层卷积层:使用128个大小为3、步长为1的滤波器,输出结果通过ReLU激活函数计算得出。
第二层池化层:池化参数与第一层池化层相同,即池化大小为2,步长为2。
第三层卷积层:使用128个大小为3、步长为1的滤波器,输出结果通过ReLU激活函数计算得出。
LSTM层:卷积和池化操作后,将特征映射展开为时间序列输入到LSTM层。LSTM层由64个单元组成,用于捕获流量特征的时序依赖关系。
全连接层:通过LSTM层的输出,将数据展平为一维向量,经过两个全连接层,用作后续分类。
输出层:使用Softmax分类法,输出层的神经元代表不同的应用程序。
在本文中,使用CLGAN在每类样本中分别只有1000、2000、3000和4000个标记数据的条件下进行分类实验,并将分类结果与相同条件下的CNN-LSTM模型进行对比,以证明CLGAN在半监督加密流量分类方面的优越性。
通过表4的实验结果可以看出,在ISCX VPN-nonVPN数据集上,当标记样本数量为1000时,CLGAN的分类准确率比CNN-LSTM提高了约4%。当标记样本数量为2000时,CLGAN的分类准确率提高了约3%。而当标记样本数量为3000时,CLGAN的分类准确率提高幅度小于1%。当标记样本数量为4000时,CLGAN的分类准确率与CNN-LSTM相同。由此可见,当标记样本数量不足时,CLGAN可以通过使用未标记样本以及CLGAN生成的样本来进行半监督学习,从而有效提高分类准确率。同样,通过表5能够发现,在标记样本数量较少时,CLGAN的表现明显好于CNN-LSTM,但随着标记样本数量的增加,两者之间的差距逐渐减小。
Table 4. Classification accuracy on ISCX VPN-nonVPN dataset
表4. 在ISCX VPN-nonVPN数据集上的分类准确性
|
Labeled |
Accuracy |
Precision |
Recall |
F1-score |
CNN-LSTM |
1000 |
88.5 |
88.8 |
88.4 |
88.6 |
2000 |
89.8 |
89.9 |
89.8 |
89.7 |
3000 |
92.7 |
92.4 |
92.6 |
92.5 |
4000 |
93.6 |
93.7 |
93.6 |
93.6 |
CLGAN |
1000 |
92.3 |
92.33 |
92.16 |
92.1 |
2000 |
92.8 |
93.56 |
92.82 |
92.9 |
3000 |
93.0 |
94.6 |
93.0 |
93.2 |
4000 |
94.1 |
93.8 |
93.1 |
93.1 |
Table 5. Classification accuracy on USTC-TFC2016 dataset
表5. 在USTC-TFC2016数据集上的分类准确性
|
Labeled |
Accuracy |
Precision |
Recall |
F1-score |
CNN-LSTM |
1000 |
95.6 |
94.8 |
94.7 |
94.6 |
2000 |
96.7 |
95.9 |
95.8 |
95.7 |
3000 |
96.8 |
96.3 |
96.9 |
96.8 |
4000 |
98.3 |
97.8 |
97.6 |
97.6 |
CLGAN |
1000 |
98.2 |
98.1 |
98.1 |
96.0 |
2000 |
98.5 |
98.2 |
98.8 |
97.9 |
3000 |
98.8 |
98.8 |
98.9 |
98.2 |
4000 |
98.9 |
98.9 |
99.1 |
99.1 |
4. 总结与展望
4.1. 总结
本文针对传统的网络流量分类方法在应对加密流量复杂性和标注数据稀缺性方面存在明显局限性这一问题,提出了一种基于生成对抗网络的半监督加密流量分类模型CLGAN。本文的实验基于公开数据集ISCX2012 VPN-nonVPN和USTC-TFC2016展开,分别与经典的半监督学习模型,如DCGAN和基于AE的半监督学习模型以及监督学习模型CNN-LSTM,进行了对比。实验结果表明,本文模型在标记样本数量较少的情况下,能够充分利用未标记数据集生成对抗框架中的生成样本,显著提升分类准确率,尤其在标记样本数量为1000和2000时,分类准确率较对比模型分别提高了约4%和3%。此外,随着标记样本数量的增加,本文模型与传统监督学习模型的性能差距逐渐缩小,验证了标记数据对分类任务的重要性。
4.2. 未来展望
尽管本研究取得了较好的实验结果,但仍存在一些值得进一步探讨的问题。当前模型在将GAN网络中的判别器改为CNN加LSTM结构后,显著增强了模型对时序和空间特征的捕获能力。但是模型的计算复杂度和训练时间需求仍然较高。未来可以探索以下优化方向:1) 利用轻量级神经网络,如MobileNet或Tiny-LSTM,以降低模型复杂度,从而提高部署效率。2) 引入注意力机制(Attention Mechanism),如Transformer或自注意力机制,进一步提升模型对关键特征的提取能力。3) 研究更高效的对抗训练策略,如通过改进生成器和判别器的损失函数,缓解GAN训练中不稳定的问题。
基金项目
本研究得到了国家自然科学基金资助项目(62002184)和香港狮子山网络安全实验室研究课题(LRL24017)的资助。