加密流量分类论文1:CENTIME:针对加密流量分类的直接综合流量特征提取

0.概述

解决的问题:卷积神经网络需要固定大小的输入;因此,原始的加密流量需要首先进行统一处理。这将导致信息丢失,特别是有关网络流量整体结构的信息。

解决的方法:基于ResNet和AutoEncoder提取全面的信息来识别加密流量。ResNet用于从统一化的流量中提取信息,AutoEncoder用于编码统计特征。统计特征用于弥补流量统一化造成的信息损失。

1.0 摘要

 随着网络的快速发展,加密流量分类在保障网络服务质量和确保网络安全方面发挥着至关重要的作用。最近的研究表明,基于统计特征和原始流量会话的机器学习方法对于这项任务是有效的。然而,基于统计的方法的性能很大程度上取决于特征的质量。专家们需要为不同的加密流量分类任务设计不同的特征,这是耗时的。与此同时,基于原始流量的方法需要统一流量大小;这将导致丢失有关网络流量整体结构的信息;例如,我们不知道会话中第一个数据包到最后一个数据包的时间。本文提出了CENTIME,它可以基于ResNet和AutoEncoder提取全面的信息来识别加密流量。ResNet用于从统一化的流量中提取信息,AutoEncoder用于编码统计特征。统计特征用于弥补流量统一化造成的信息损失。它们只需要设计一次,而不是为不同的任务分别设计。此外,汇聚层被移除,并且使用1D卷积层来帮助CENTIME更有效地利用原始流量信息。我们在公共数据集“ISCX VPN-nonVPN”上评估了CENTIME,结果表明CENTIME优于现有的加密流量分类方法。更重要的是,CENTIME生成的综合流量特征能够很好地代表不同类别的流量。

 2.0 引言

随着互联网的快速发展,来自不同应用程序的网络流量迅速增加。大量的流量使得网络运营商难以保证服务质量(QoS)[1]并确保互联网安全[2]。作为改善网络服务和确保网络安全的必要技术之一,流量分类近年来受到学术界和工业界的日益关注[3]。

识别流量的最快、最有效的方法是使用端口号[4]。一些知名的互联网服务使用固定的端口号,比如HTTP服务应用通常使用端口80,而FTP服务应用使用端口21。然而,随着越来越多的新应用避免使用标准注册的端口号,基于端口的方法的准确性有所下降[5]。分类流量的下一个技术依赖于有效载荷。这项技术也被称为深度数据包检查(DPI)[6],其重点是在流量数据包中查找特定字符串的模式。近年来,随着人们逐渐关注他们的隐私,越来越多的应用在传输任何数据时开始使用加密通信,这给上述两种传统流量分类方法带来了相当大的挑战。

为了解决这些挑战,研究人员采用了机器学习和深度学习方法来进行加密流量分类。根据不同的输入,这些研究可以分为两类:(1)基于统计特征的方法和(2)基于原始流量的方法。具体而言,基于统计的方法假设不同类型的流量具有独特的统计特征。Alshammari等人使用类似“数据包长度”、“与先前捕获的数据包的时间差”和“IP标志”等数据包相关特征来识别加密流量[7]。基于原始流量的方法使用深度神经网络自动从网络流量中提取特征。例如,Wang等人提出了一种基于一维卷积神经网络的端到端方法[8]。该方法将特征提取和分类器集成到统一的框架中。结果表明,该方法在“ISCX VPN-nonVPN”数据集上可以达到最先进的性能[9]。

尽管先前的技术可以获得相对较高的准确性,但它们仍然存在明显的缺陷。对于基于统计的方法,分类的性能很大程度上取决于特征的质量。专家们需要为不同的加密流量分类任务设计不同的特征,这是耗时且昂贵的。基于原始流量的方法的主要缺点是它会导致信息丢失。大多数研究使用卷积神经网络从原始的加密流量中提取特征[8],[10],[11]。然而,卷积神经网络需要固定大小的输入;因此,原始的加密流量需要首先进行统一处理。这将导致信息丢失,特别是有关网络流量整体结构的信息。例如,在统一化之后,我们无法得知会话中的数据包数量、从第一个数据包到最后一个数据包的时间以及会话中的最小或最大时间差,这将降低分类性能。

为了解决这些限制,我们提出了一个名为CENTIME的框架。CENTIME能够从网络流量中提取综合特征,并利用这些特征对加密流量进行分类。CENTIME包括三个部分,即数据预处理、流量信息提取和流量分类。
(1) 在数据预处理部分,我们通过会话数据包对原始流量进行拆分,然后对其进行匿名化处理。
(2) 在流量信息提取部分,我们使用ResNet [12]直接从原始加密流量中提取特征。与之前的研究相比,我们在CENTIME中去除了汇聚层并使用了一维卷积层,希望能够从原始流量中提取更有价值的信息。同时,我们也从原始流量中提取了统计信息。我们使用AutoEncoder [13]来压缩统计信息。这些统计信息用于补偿流量修剪造成的信息丢失。这些信息只需要设计一次,包含了关于流量整体结构的信息,而不是为不同的任务单独设计。
最后,ResNet提取的信息和AutoEncoder编码的信息被合并成综合特征。
(3) 综合特征用于在CENTIME的最后部分对加密流量进行分类。为了展示这一框架的可行性,我们进行了21个不同的实验,在“ISCX VPN-nonVPN”数据集[9]上将CENTIME与六种最先进的方法进行了比较。最终结果显示,我们提出的框架在加密流量分类方面优于其他公开方法。
本文的主要贡献如下:
• 我们提出了一个名为CENTIME的新型框架,将流量信息提取和加密流量分类集成到一个框架中。该框架基于统一化的流量文件和统计信息生成综合特征,然后使用这些综合特征对加密流量进行分类。
• 在这个框架中,我们使用了1D卷积层并移除了汇聚层,以更有效地利用原始流量信息。
• 我们在公共数据集“ISCX VPN-nonVPN”上将我们的模型与六种最先进的方法进行了评估。实验结果表明,我们的方法在分类方面表现良好;在加密流量分类中实现了0.99的F1得分。此外,所有相关的实验数据,如训练数据、训练代码、微调模型和详细的实验结果都已经发布在GitHub上。
本文的剩余部分安排如下。第二部分总结了关于流量分类的相关工作。第三部分描述了CENTIME框架,包括数据预处理、流量信息提取和流量分类。第四部分涵盖了实验设置、评估指标、基线方法和实验结果。最后,第五部分提供了结论以及未来可以进行的研究。

3.相关工作

随着时间的推移,流量分类技术已经迅速发展。在对网络流量进行分类方面,存在两种传统方法:“基于端口”的和“基于内容”的[5]。在所有这些成熟的方法中,深度数据包检查(DPI)被认为是最可靠的方法之一[6]。DPI不仅使用数据包头部的信息(如端口号),还利用流量的有效载荷来对网络流量进行分类。具体而言,DPI使用包含来自某些已标记数据包的信息的签名数据库来识别流量。然而,随着HTTPS和其他诸如VPN等加密方法的增加使用,基于DPI的分类准确性逐渐降低。我们无法解密有效载荷;因此,无法通过在有效载荷中搜索特定关键字的模式匹配来对网络流量进行分类。

为了对加密流量进行分类,提出了基于统计特征的方法。大多数基于流量统计特征的研究使用传统的机器学习算法,比如决策树或支持向量机(SVM)。
例如,[14]提出了一种基于K-最近邻(K-NN)和K-means组合的统计分类器,可以实时对加密流量进行分类。Alshammari等人利用C4.5 [15]和AdaBoost [16]来根据统计流特征揭示加密应用[7]。Agrawal等人使用了五种监督式机器学习算法,比如朴素贝叶斯树和朴素贝叶斯,根据统计特征(如端口号)识别P2P流量[17]。Alshammari等人还利用统计网络流量特征来识别网络流量中的加密VoIP应用[18]。Vl ̆adut ̧u等人提出了一种新技术,通过结合无监督算法(K-means,期望最大化)和监督算法(决策树)来对互联网流量进行分类[19]。Vu等人利用Synthetic Minority Over-sampling Technique(SMOTE)[20]生成假的网络流量,并修改成本函数以解决基于统计特征的不平衡加密流量分类问题[21]。然而,这些模型的性能很大程度上取决于人工设计特征的质量,这严重限制了基于统计特征的方法的泛化能力。

近年来,深度学习方法在加密流量分类中被广泛使用。神经网络可以自动从流量有效载荷中提取特征,提高了模型的泛化能力。Wang等人提出了一个基于卷积神经网络的端到端框架,将特征提取、特征选择和分类器集成到一个系统中[8]。Song等人使用文本卷积神经网络提取流量分类的关键特征[10]。[22]提出了一种基于会话数据包的加密网络流量分类模型,使用胶囊神经网络(CapsNet),可以很好地学习网络流量的空间特征[23]。Shapira等人将基本流数据转换成图片,然后使用图像分类深度学习技术对加密流量进行分类[24]。Lotfollahi等人提出了一种称为“Deep Packet”的方案,使用1D-CNN和堆叠自编码器(SAE)来提取特征并进行预测[25]。

3.提出的方法

在本节中,我们提出了一个名为CENTIME的框架,该框架基于ResNet和AutoEncoder。如“图1”所示,CENTIME包括三个部分:数据预处理、流量信息提取和流量分类。在数据预处理阶段,我们通过会话数据包对原始流量进行拆分,然后删除MAC地址和IP地址。在流量信息提取阶段,我们从原始流量中计算出26个统计特征。之后,我们对原始流量进行统一处理,然后使用ResNet从流量中提取信息。在分类阶段,我们将统一化的流量信息和统计特征结合起来生成综合特征,并使用这些特征对加密流量进行分类。此外,本节还介绍了数据集。

3.1 数据处理

在深度学习中最关键的是拥有大量的数据集以避免过拟合。然而,在加密流量分类领域的数据集相对较少。目前仅有一些是在加密流量识别研究过程中生成的数据集。例如,UMass2提供了与Tor流量[26]和HTTPS流量[27]相关的数据集。而“Campus”数据集则用于识别不同的加密算法[28]。

Draper-Gil等人于2016年提出了“ISCX VPN-nonVPN”数据集[9]。该数据集包含了来自不同应用程序(如Skype、BitTorrent)的14类流量文件,其中包括七类常规(非VPN)流量和七类VPN流量。由于“ISCX VPN-nonVPN”数据集包含丰富类型的应用程序,因此在加密流量研究领域被广泛应用。本文的实验也是基于“ISCX VPN-nonVPN”数据集进行的。

在“ISCX VPN-nonVPN”数据集中,作者没有为流量文件标注标签,而是仅为每个流量文件提供了简要描述。这导致了一些模棱两可的流量文件。例如,“Facebook video.pcap”既可能属于“浏览器”也可能属于“流媒体”。因此,在本文中我们移除了这些模糊不清的流量文件,最终的“ISCX VPN-nonVPN”数据集包含12类。表I介绍了这12个类别的详细内容。

3.2 数据预处理

在从流量中提取信息之前,我们首先需要进行数据预处理。在CENTIME框架中,数据预处理包括两个步骤:流量分割和流量清理。

流量分割。在这一步中,我们将连续的流量划分为多个离散的流量单元。连续的原始流量P包含不同大小的数据包pi,即P = {p1, p2, · · · , pN}。这里N表示原始流量P中数据包的数量。一个单独的数据包pi可以定义为(1):
pi = (xi, ti, bi), (1)
其中xi是五元组,包括源IP、源端口、目的IP、目的端口和传输层协议。ti是数据包的起始时间,bi是数据包的字节长度。

会话(Session)和流(Flow)是将流量进行分割的两种常见方式。一个流Pf low是一组具有相同五元组的流量,可以定义为(2):
Pf low = {p1 = (x1, t1, b1), · · · , pn = (xn, tn, bn)}, (2)
其中x1 = · · · = xn且t1 < · · · < tn。会话与流类似,但源IP和目的IP可以互换[29]。在本文中,我们将流量分割为会话,因为Wang等人发现,会话包含比流更多的交互信息,更适合于加密流量分类[8]。

流量清理。在将流量分割为会话后,我们通过用0x00掩码相关字符串来删除其IP地址和MAC地址。在“ISCX VPN-nonVPN”数据集中,每个流量类别都具有唯一的IP地址;因此,如果不删除IP地址和MAC地址,模型可能会出现过拟合问题。在流量清理过程中,还会删除空文件和重复文件。

3.3 流量信息提取

我们的框架CENTIME可以从原始流量中生成全面的流量特征。这些全面特征由两部分组成:原始流量的统计信息和统一化的流量信息。

统计信息(IFS)。在统一化流量之前,我们首先从中提取统计特征。这些特征可以保留流量的整体结构信息。在本文中,我们提取了26个统计特征,例如“Num pkts”(会话中数据包的数量)、“Avg syn flag”(会话中激活syn标志的平均数据包数)、“Duration window flow”(会话中第一个数据包到最后一个数据包的时间长度)等。这26个提取特征的详细信息可以参见[30]。计算出这26个统计特征后,我们使用最小-最大规范化方法对数据进行归一化处理。即,xnew = x − xmin / (xmax − xmin)(3)。经过归一化处理,所有统计特征被转换到[0, 1]的范围内。接着,我们使用AutoEncoder对这26个统计特征进行编码,并从中提取有效信息。

统一化的流量信息(INUIT)。在这一步中,我们使用ResNet直接从原始流量中提取信息。使用ResNet需要一个固定大小的输入,因此我们将原始流量统一化为相同的大小。假设我们将原始流量Si统一化为N个字节。如果Si的大小大于N个字节,则仅保留前N个字节;否则,在流量的末尾添加0x00。在“图2a”中展示了“ISCX VPN-nonVPN”数据集中会话大小的分布情况。可以看出,大多数会话大小都小于1000字节。在本文中,原始流量分别被统一化为784字节、1024字节和4096字节(N = 784、1024、4096)。本文的所有实验都基于这三种类型的流量数据。如“图2b”所示,[0, 784]字节范围内的会话大小占流量的84%,而[784, 1024]字节范围内的会话大小仅占3%。总共有93%的会话大小在[0, 4096]字节之间。

当所有流量都被统一化后,会话中的每个字节都对应于灰度像素值;例如,0x00表示黑色,0xff表示白色。如“图3”所示,784字节的会话可以转换成一个28*28的矩阵。“图3a”展示了所有非VPN流量类别的可视化结果,“图3b”展示了VPN流量的可视化结果。可以看出,不同流量类别的模式是不同的,而同一类流量内部的模式是相似的。因此,我们有理由认为ResNet可以从统一化的流量中提取有效信息。

3.4 加密流量分类(ERIC)

在“流量信息提取”过程中,我们获得了两部分信息:一部分是通过AutoEncoder从统计特征中获得的信息Vstatistics,另一部分是由ResNet从统一化的流量中提取的信息Vraw pcap。这两部分信息被合并形成全面的流量特征V。我们认为全面的流量特征V包含了来自统一化流量和流量统计的信息。然后,我们使用特征V通过一个全连接神经网络对加密流量进行分类。“图4a”展示了“流量信息提取”和“加密流量分类”的整个过程。ResNet被用于从统一化的流量中提取信息。如“图4a”所示,ResNet中有四个Res层;每个Res层包含两个Res块。“图4b”展示了Res块的结构。同一Res层中卷积层的输出通道数是相同的。

CENTIME模型的主要参数描述在“表II”中。需要注意CENTIME框架中的两点:(1)使用了1D卷积层,因为流量数据是序列数据。本节将比较1D卷积层和2D卷积层的性能。(2)移除了池化层。池化层的作用是减少输入的空间尺寸,以减少网络中的参数数量。然而,在这次实验中,统一化流量的大小并不是很大,因此我们移除了池化层,以保留更多有用的信息。模型在有池化层和无池化层的情况下的性能也将在第四节进行比较。

4.实验

4.1 实验设置

所有实验均在Ubuntu 16.04 64位操作系统上进行。服务器硬件配置为Inter (R) Xeon (R) E5-2650 2.2 GHz,内存为32GB。使用Nvidia GTX1080Ti 11GB GPU作为加速器。

我们使用PyTorch [31]构建了本文中所有的神经网络。我们随机抽取了90%的数据作为训练数据,剩余的数据作为测试数据。迷你批处理的大小为256。初始学习率为0.001,每25个epoch衰减0.9。本文中使用Adam优化器 [32]对深度神经网络进行训练,Adam优化器继承自RMSProp和AdaGrad [33]。每个实验的总训练时长为150个epochs。所有详细的配置信息都可以在我们共享的GitHub代码库的“traffic classification.yaml”文件中找到。

4.2 基准模型

为了验证CENTIME的性能,我们包含了三种基准方法。
CNN1D,CNN1D方法使用1D卷积层直接从流量文件中提取特征,然后将这些特征用于分类加密流量。

CNN2D,CNN2D方法与CNN1D非常相似,唯一的区别在于使用2D卷积层进行特征提取。CNN1D和CNN2D的网络结构可以参考[8]。同时,上述两种基准方法将包括有和无池化层的两种形式。

ResNet,第三种基准方法使用ResNet从网络流量中提取信息。这里的ResNet结构与CENTIME中“信息来自统一化流量”的结构相同。

有关上述三种基准模型的更详细信息,请参考GitHub1。

4.3 评估指标

在我们的实验中,使用了四个评估指标来评估我们模型的性能,即准确率(Acc)、精确度(Pr)、召回率(Re)和F1得分(F1)。准确率(Acc ∈ [0, 1])表示在整个数据集中正确预测的比例。我们使用准确率来评估模型的整体性能。精确度(Pr ∈ [0, 1])表示相关结果的百分比。召回率(Re ∈ [0, 1])表示模型正确分类的总结果的百分比。F1得分(F1 ∈ [0, 1])可以同时衡量精确度和召回率。我们计算精确度和召回率的调和平均值以获得F1。F1可以定义为(4):

\[ F1 = \frac{2 \times Recall \times Precision}{Recall + Precision} \quad (4) \]

4.4 实验结果与分析

为验证CENTIME的有效性和性能,我们在“ISCX VPN-nonVPN”数据集上进行了21个实验,使用不同模型和不同的统一大小进行加密流量分类任务。实验结果,包括准确率、精确度、召回率和平均F-measure,如下的“表III”所示。这21个实验主要用于说明以下三个问题:(1)流量文件不同统一大小对最终结果的影响。(2)池化层对最终性能的影响。(3)对比1D卷积层和2D卷积层对结果的影响。

不同统一大小的比较:在第III-C节中,所有流量文件都统一到相同大小。我们使用不同大小的统一流量来对加密流量进行分类,并比较最终结果。如“表III”所示,仅在流量大小从784字节增加到1024字节时,“CNN1D-Pooling”和“CNN2D-Pooling”的性能有所提升,而其他模型的性能有所降低。同样,当流量大小从1024字节增加到4096字节时,大多数模型的准确率也下降了。这个结果是合理的。如“图2”所示,大多数会话大小约为784字节。如果将原始流量统一到4096字节,需要在流量文件的末尾添加大量的0x00。因此,数据将包含大量无效信息,这可能降低模型的性能。

有池化层和无池化层的比较:如“表III”所示,从“CNN1D-Pooling”到“CNN1D-noPooling”,模型的准确率显著提高。例如,当流量大小为784字节时,去除池化层时准确率提高了4%。同样,在2D模型的情况下(如“CNN2D-Pooling”和“CNN2D-noPooling”),在不使用池化层时,模型的性能也有显著提升。主要原因在于去除池化层后,原始流量可以保留更多有用的信息,有助于模型判断。

1D卷积层和2D卷积层的比较:从“表III”可以看出,具有1D卷积层的模型的准确率高于具有2D卷积层的模型。例如,当会话大小为784字节时,“ResNet1D”的准确率比“ResNet2D”高出2%。这证明1D卷积层比2D卷积层更适合于加密流量分类。这个结论类似于Wang的工作 [8]。

总结一下,仅增加流量文件大小不能显著提高模型的性能。在本文中,将流量大小统一到784字节已经足够。但是,去除池化层并使用1D卷积层可以显著提高模型的性能。因此,在CENTIME中我们使用了“ResNet1D”并移除了池化层。此外,CENTIME使用统计特征添加了流量的整体结构信息。与“ResNet1D”相比,这使CENTIME的准确性和F1略有提高。为了进一步评估CENTIME的性能,我们将我们的框架与其他最先进的模型进行比较。“表IV”显示了CENTIME在“ISCX VPN-nonVPN”数据集上高达99.7%的准确率。总的来说,与其他六种方法相比,CENTIME在准确性、精确度、召回率和F1上均取得了最高的整体性能。

4.5 综合特征的可视化

CENTIME可以基于统一的流量文件和统计信息生成综合的流量特征。为了探索CENTIME提取的综合特征的属性,我们使用t-SNE [35]将高维特征嵌入到低维中。如“图5”所示,综合流量特征被投影到2D空间。在“图5”中不同的颜色和不同的形状代表不同类别的流量。从“图5”可以看出,相同类别的流量聚集在相似的位置,而不同类别则相距较远。对于VPN和非VPN数据,VPN数据主要集中在图的右侧,例如“VPN P2P”和“VPN Chat”。然而,非VPN数据主要集中在图的左侧,例如“FT”和“VoIP”。这表明综合流量特征能够很好地表示不同类别流量的特征。因此,当CENTIME使用这些特征来识别加密流量时,它可以实现卓越的性能。

5. 结论与未来工作

如今,加密流量分类在学术界和工业界都越来越受到关注。当前流行的方法可以分为两类:(1)基于统计特征的方法和(2)基于原始流量的方法。然而,基于统计特征的方法需要针对不同的分类任务设计不同的特征,并且使用基于原始流量的方法会导致信息丢失。因此,本文提出了一个名为CENTIME的新框架,它可以从流量文件中生成全面的流量特征,并使用这些特征对加密流量进行分类。
在CENTIME中,我们使用ResNet直接从统一的流量中提取信息。同时,我们从流量文件中提取了26个统计特征,并通过自动编码器进行编码。最后,我们将ResNet提取的信息和自动编码器编码的信息合并形成全面的流量特征。我们使用这些全面的特征对加密流量进行分类,结果显示CENTIME在与其他六种公开方法相比取得了显著的改进。此外,通过将特征投影到低维度,我们发现全面的流量特征能够很好地表示各种流量类型。
这项工作仍有改进的空间。首先,“ISCX VPN-nonVPN”数据集存在不平衡性。例如,“VoIP”流量的数量远远超过其他类别的流量。可以使用抽样或修改损失函数来解决不平衡问题,并提高模型的性能。其次,在CENTIME中需要提取26个统计特征,这将比仅使用深度学习的方法更耗时。
尽管存在这些限制,本研究为提取全面的流量特征提供了宝贵的见解。此外,本文的实验证明,使用1D卷积层并去除池化层可以在加密流量分类任务上获得更好的性能。在未来,更多的工作需要集中在识别不平衡数据集下的加密流量,并使框架在实时环境中工作。

  • 20
    点赞
  • 28
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值