APP下载

一种基于DCGAN 的网络加密流量分类平衡方法*

2022-08-23丁要军

通信技术 2022年7期
关键词:字节数据包灰度

李 睿,丁要军

(甘肃政法大学,甘肃 兰州 730070)

0 引言

加密流量分类近年来已成为一个非常受欢迎的研究方向,因为它被应用于评估应用服务质量(Quality of Service,QoS)、流量工程、恶意软件检测等领域。然而,由于互联网流量加密需求的增长,以及虚拟专用网络(Virtual Private Network,VPN)和洋葱路由(The Onion Router,TOR)使用的增加(这时用户可以在互联网上进行匿名交流),因此加密流量分类变得更加困难。在进行流量分类时,类别不平衡是个严重的问题。解决数据类不平衡[1]问题有欠采样和过采样、人工少数类过采样法(Synthetic Minority Over-Sampling Technique,SMOTE)[2]、生成模型3 种方法。其中,生成模型可以增加训练的数据量从而提高模型的泛化能力,还可以增加噪声数据,提高模型的鲁棒性。随着机器学习进一步发展,Goodfellow 等人[3]引入了生成模型领域的一个新概念,即生成对抗网络(Generative Ad-versarial Networks,GAN)。GAN 广泛应用于图像生成[4-5],同时也为解决数据不平衡提供了新的方法,但原始GAN 本身存在训练困难和模式崩溃的问题。为了解决这些问题,Arjovsky 等人[6]提出了将Wasserstein 距离作为损失函数的WGAN 方法;Radford 等人[7]提出了深度卷积生成对抗网络(Deep Convolutional Generative Adversarial Networks,DCGAN),引入了卷积神经网络(Convolutional Neural Network,CNN)[8]替代原来的多层感知机;Deng 等人[9]引入了基于DCGAN 的半监督方法,解决了与建立大型加密流量数据集的实况标签相关的挑战,他们的方法在极少数标记样本的情况下,实现了较高的准确度。这些研究表明,DCGAN 作为一种解决数据类不平衡的方法对于分类问题而言是个不错的选择。

本文基于王伟[10]提出的将原始流量解析出来的pcap 数据包预处理成字节流灰度图的方法和Shapira等人[11]提出的将原始流量数据处理成包特征灰度图的方法,使用DCGAN 模型来进行数据增强,最后使用经典深度模型作为分类器进行验证。为验证方法可行性,针对公开数据集ISCX VPN-nonVPN[12],分别使用SMOTE、GAN、WGAN 和DCGAN 方法对数据集进行平衡并分类。实验证明,基于深度模型的加密流量分类器在使用DCGAN 进行数据平衡后的性能,相较于未平衡、传统数据增强和DCGAN 只增强训练集的方法,能够获得更好的分类效果。

1 生成对抗网络

1.1 生成对抗网络GAN

生成对抗网络GAN 是GoodFellow 等人[3]开发的新的人工神经网络,该模型由生成器G和判别器D两个神经网络组成。将这些神经网络在对抗性环境中进行了训练,GAN 通过多轮零和博弈后,生成器和判别器的性能不断提升,最后趋于平衡。对于生成模型,要最小化目标函数ln(1-D(G(z)))(z为噪声),D(G(z))的值越接近于1,目标函数的值越小。对于判别模型,要让真实样本尽量被判定为真实的,即最大化lnD(x),这意味着D(x)的值尽量接近于1;对于生成模型生成的样本,尽量被判别为0,即最大化ln(-D(G(z)))。这样优化的目标函数定义为:

式中:Pdata为真实的原始数据集;Pz为噪声分布。两部分相加要最大化,找一个最好的G,让这个最大值最小,两个分布之间的差异最小值表示为:

由式(1),可以计算出最佳鉴别器为:

由式(3)可得,当Pdata(x)=Pz(z)时,说明D无法分辨样本的真假,D和G达到纳什均衡[13],鉴别器输出为0.5。

1.2 DCGAN

如图1 所示,DCGAN 是CNN 和GAN 的结合,将卷积网络引入生成模型,代替了GAN 的生成器和判别器并进行无监督训练。该模型利用卷积网络强大的特征提取能力,提高了生成网络的学习效果。

图1 DCGAN 结构

DCGAN 对生成器的判别的修改核心如下:

(1)使用指定步长的卷积层代替池化层。使用转置卷积层替代空间池化层,这种替代只需要将卷积的步长设置为大于1 的数值,G网络中使用转置卷积进行上采样,改进的意义是下采样过程不再是固定地抛弃某些位置的像素值,而是可以让网络自己去学习下采样方式。

(2)生成器和判别器中都使用批归一化(Batch Normalization,BN)层。它是一种常用于卷积层后面的归一化方法,能够帮助网络进行收敛。

(3)移除全连接层。全局均值池化有助于模型的稳定性,但是降低了模型的收敛速度。

(4)生成器中除了输出层采用tanh,其余全部使用ReLU 作为激活函数。

(5)判别器所有层都使用LeakyReLU 作为激活函数。

DCGAN 模型的损失函数为:

式中:m为样本个数。

为了验证方法可行性,引入JS 和KL 散度[5],可得:

式中:C(G)为生成器的积分表达式。

根据散度定义可知,当噪声样本Pz(z)的数学分布等于真实数据分布时,KL=JS=0 时,G网络的最小值都是-lg 4。同理可得JS 散度为2JS(Pdata||Pg)-lg 4。式中:Pg为噪声分布。

由此可以证明,在判别器取最佳参数后,生成器也可以无限接近于最小值。这证明了在目标函数的限制条件下,可以达到纳什平衡,因此DCGAN用于数据增强的方法是可行的。

2 网络加密流量图形化表示

2.1 二维包特征灰度图

二维包特征灰度图是为了增加训练集的样本数量,减少过拟合,将每个单向流划分为相等大小的块,然后从每个流中提取记录,其中包含流中每个数据包的对、数据包大小和数据包到达时间的列表。然后,将相同流量类别和相同加密技术的所有列表合并为一个集合,并构建一个基于流的二维直方图构建的图像。该图像可以被视为一组有效载荷大小分布(Packet Size Distribution,PSD)[14],其中每个PSD 属于特定时间单向流的间隔。将X轴定义为数据包到达时间,将Y轴定义为数据包大小来绘制所有记录对。绝大多数数据包大小不超过1 500 字节,即以太网最大传输单元(Maximum Transmission Unit,MTU)值,因此忽略所有大小大于1 500(小于所有数据包的5%)的数据包,并将Y轴限制在1 到1 500 之间。对于X轴,首先,通过减去流中第一个数据包的到达时间来标准化所有到达时间值;其次,将所有归一化对插入二维直方图,其中每个单元保存在具有相同时间间隔并具有相同大小的数据包中。这个过程的结果是一个1 500×1 500的直方图,其中直方图中的值之和等于原始时间窗口中的数据包总数(不包括忽略的数据包)。

2.2 二维字节流灰度图

二维字节流灰度图的生成流程如图2 所示,具体的,先将获取的原始流量数据切分为多个流量数据,输入格式为pcap;然后将每个数据包的有效载荷转化为规范化的字节序列,清理过的文件按照784 字节进行统一长度处理,少数小于784 字节的文件在后面补充0x00,选取784 字节是因为CNN模型的输入需要统一长度。这样做是因为流或者会话的前面部分一般都是用来建立连接和保留前一部分数据包的,应该更能反映流量特征,而之后的部分更多的是数据,并不能更好地体现流量类型特征。最后将统一长度后的文件按照二进制形式转换为灰度图片,即一个字节对应灰度像素值,例如0x00对应黑色,0xff 对应白色,输出格式为png 格式。由于仅仅使用了会话或者流的前面几百个字节,因此该方法比很多基于经典机器学习的流量分类方法更加轻量。

图2 二维字节流灰度图生成流程

3 网络加密流量类别平衡化

3.1 基于DCGAN 的网络加密流量平衡方法

用DCGAN 对抗生成的流量图片都是具有真实图像特征且多样性较强的扩充数据,利用这些增强后的数据对原始不平衡数据进行数据扩充不仅能有效平衡数据集,而且还能防止数据样本单一、训练模型容易过拟合等问题的出现。DCGAN 加密流量分类流程如图3 所示。

图3 DCGAN 加密流量分类流程

判别网络接收图像时,DCGAN 使用卷积层和池化层对其进行下采样,然后使用全连接分类层将图像分类为真的或假的。生成网络从潜在空间中获取随机噪声向量,然后通过上采样机制进行上采样,最后生成一张图像。隐藏层使用LeakyReLU 作为激活函数,并且使用系数介于0.4~0.7 的随机失活来避免过拟合,根据给出的DCGAN 网络结构模型,DCGAN 伪代码如下:

平衡完成的数据和原始流量图片高度相关而且具有多样性。图4 是基于包特征灰度图生成的图片进行平衡的结果,图5 是基于字节流灰度图生成的图片进行平衡的结果,可以看出利用此方法可以生成能够明确分辨的新图像,且具有一定的多样性。

图4 包特征灰度图基于DCGAN 方法生成的图像

图5 字节流灰度图基于DCGAN 方法生成的图像

3.2 分类模型介绍

为证明所提方法的可行性,使用常见的CNN模型[8]完成分类任务,旨在验证不平衡数据实现平衡对模型的影响,不考虑模型内部的参数变化对结果的影响,所以这里不对模型做深入讨论,只介绍模型结构。

分类器用的是LeNet-5[15]的CNN 结构,因为数据量比较少而且图片大小较小,在模型训练过程,输入28×28 灰度图像,利用Softmax 函数输出各类别的概率。如果用复杂的分类器例如ResNet、VGG等,则容易造成过拟合的现象。LeNet-5 的损失函数采用了均方误差(Mean-square Error,MSE),并添加了一个惩罚项[16],计算公式为:

网络在前向传播结束后,会进行反向传播来更新参数,更新的方法是梯度下降。梯度下降,就是让参数向最小化损失函数的方向移动。在加密流量分类时,训练轮次2 000 次以上时,损失函数趋于最小值并达到稳定。学习率和损失函数选择经典网络初始设定的参数,批量大小选取64 是因为图形处理器(Graphic Processing Unit,GPU)对批量大小为2 的幂次可以发挥更好的性能。CNN 模型参数如表1 所示。

表1 CNN 模型参数

4 实验过程及分析

为了验证平衡方法的可行性、差异性,设计了4 组对比实验。本节介绍实验模型的参数设置、实验平台等信息,并针对未增强的数据集,以及使用SMOTE、GAN、WGAN 和DCGAN 对数据集进行平衡并分类的方法进行了对比实验。然后针对这4 种实验结果进行分析对比。

4.1 数据集

使用来自纽布伦斯威克大学捕获的pcap 文件的标记数据集,ISCX VPN-nonVPN 流量数据集[12]。对于数据集中包含的类别,都使用了非VPN 和VPN(适用于除浏览外的所有类别)2 种加密技术。数据集中每个文件对应一个特定的流量类别和加密技术。对原始数据集进行手动标记后,得到10 种流量数据,其中5 种为常规加密流量,另外5 种为经过VPN 协议封装后的流量。但对于Browser 和VPN-Browser 两类流量,例如Facebook_video 等文件,既可归为Browser 又可归为Streaming,因此决定不标注这些文件并删除数量较少、分类不清晰的P2P 类别。标注后的数据如表2 所示,原始未平衡数据和平衡后的流量类别分布如表3 所示。

表2 标注后的VPN 数据集类别及内容列表

4.2 评价指标

为确保实验的科学性,本节使用精确率P(Precision)、召回率R(Recal1)、F1 值来评价模型。P是分类器预测为某一类别的概率,R是分类器正确分类为某一类的概率,F1 值是精确率和召回率的调和平均,用来衡量模型的性能,则定义:

式中:TP为被模型预测为正类的正样本;FP为被模型预测为正类的负样本;FN为被模型预测为负类的正样本。

4.3 实验配置

实验配置:CPU 为Intel(R)Core(TM)i7-10750H@ 2.60 GHz 2.59 GHz 处理器,内存为16 GB,GPU 为GeForce RTX2060(显存6 GB),系统为Windows 10。

4.4 实验结果分析

通过GAN、WGAN、DCGAN 图像生成方法,在流量图像阶段,扩充原始不平衡数据集。完成扩充的数据集分别在CNN 分类器上进行测试,实验结果对比如图6、图7 所示。

如图6 所示,字节流灰度图方法中VPNStreaming、VPN-Email、Chat 三类效果较差,其他均值可达80%以上。如图7 所示,包特征灰度图方法中有关VPN 的类别分类效果较差,其余分类精确率均可达到70%以上,接近80%。经过对比实验可知,在相同训练参数下,使用DCGAN 方法对网络加密流量图像化表示的数据集进行图片平衡的分类效果,不仅比未经过平衡的数据集效果好,而且比其他数据平衡方法的效果有较小幅度的提升。字节流灰度图实验结果平均值统计结果如表4、表5 所示。

表4 字节流灰度图实验结果平均值

表5 包特征灰度图实验结果平均值

图6 字节流灰度图分类结果对比

图7 包特征灰度图分类结果对比

由表4、表5 可知,数据平衡对于分类结果有着重要的影响,能够有效地解决数据匮乏问题,从而平衡数据,同时能够提升分类模型的泛化能力和鲁棒性。

在字节流灰度图生成的数据集中,除少数类在训练数据大幅度缩减后表现出的性能略微降低外,其余类型都有较明显的提升,如DCGAN 平衡在F1均值上相较于SMOTE 提高了近3%,相较于GAN平衡提高了近4%,相较于WGAN 平衡提升了近4%。在包特征灰度图生成的数据集中,DCGAN 平衡在F1 均值上,相较于SMOTE 提高了近3%,相较于GAN 平衡提高了近4%,相较于WGAN 平衡提升了近1%。对比结果验证了本文方法的可行性。

5 结语

本文将原始流量数据进行图形化表示,并把DCGAN 图片生成的方法应用在加密流量分类方法中,实现数据增强,从而解决了分类任务中数据不平衡的问题。通过经典深度学习分类器CNN 实现分类任务,验证了使用DCGAN 生成图像来进行数据增强平衡数据,能够有效地提升加密流量分类效果,并通过不同的数据增强方式来优化分类器的性能,以便于提高分类的准确率。DCGAN 可以解决普通GAN 网络训练不稳定、难以有效度量训练效果等方面的问题。未来将寻求更好的方法优化DCGAN 网络鉴别器和生成器模型结构,使其更好地应用在网络加密流量分类任务中。

猜你喜欢

字节数据包灰度
采用改进导重法的拓扑结构灰度单元过滤技术
二维隐蔽时间信道构建的研究*
No.8 字节跳动将推出独立出口电商APP
Bp-MRI灰度直方图在鉴别移行带前列腺癌与良性前列腺增生中的应用价值
民用飞机飞行模拟机数据包试飞任务优化结合方法研究
Arduino小车巡线程序的灰度阈值优化方案
No.10 “字节跳动手机”要来了?
C#串口高效可靠的接收方案设计
轻量级分组密码Midori64的积分攻击
基于热区增强的分段线性变换提高室间隔缺损超声图像可懂度研究