1. 引言
随着互联网和信息技术的快速发展,网络已经渗透到各个方面。然而,网络安全面临多种风险和威胁,如黑客攻击、数据泄露和网络间谍活动 [1] 。为了保护数据的机密性和完整性,在网络数据传输中采用流量加密技术成为一种重要手段。然而,加密技术也被恶意分子滥用,成为网络安全的新威胁 [2] 。为了及时识别网络安全风险并采取措施,网络管理员需要准确分类流量,尤其是判断是否存在恶意加密流量 [3] 。为了应对不断变化的网络安全威胁,需要持续研究新技术,例如基于机器学习和深度学习的加密流量分类方法,以及面向加密流量的安全防护方案 [4] 。这些技术的研究和应用有助于提升网络安全水平,确保网络正常运行。
流量分类技术现在已经有了显著的进展。最初的方法是使用端口号进行分类,通过检测网络数据包中的源和目标端口号来识别不同种类的网络流量。这种方法简单易用,但是,越来越多的应用程序使用动态或非标准端口,使得基于端口的方法变得越来越不可靠 [5] 。为了提高准确性,深度数据包检查方法则是尝试分析网络数据包的内容,以识别其类型。它比基于端口的方法更精确,但只适用于未加密的流量,并且计算开销较大 [6] 。相比于解析流量数据的有效载荷,机器学习方法通过捕捉流量的行为特征或统计特征来完成分类任务,例如数据包传输频率、包的大小以及流的持续时间等 [7] 。因此,它可以应对网络变化和应用更新,并且不受加密算法的影响,能够有效地对加密流量进行分类。这些方法通常依赖于网络流的统计特征,如AppScanner [8] 、BIND [9] 等方法。然而,这些方法的性能取决于人工设计的特征,因此限制了它们的泛化能力。
深度学习技术具有自动提取特征的能力,避免了繁琐的特征工程步骤,并在大规模数据处理方面表现出色,可更准确、更快速地识别流量类型 [10] 。与传统方法相比,深度学习模型能够高效自动地提取原始流量数据的特征,并完成端到端的加密流量分类任务。Wang [11] [12] 等人使用一维卷积神经网络(1D-CNN)和二维卷积神经网络(2D-CNN)将原始流量数据转换为灰度图像以实现流量识别,并成功地实现了加密流量的端到端分类。然而,该方法存在缺陷,仅取网络流前768个字节将其转换为图像,未考虑到以数据包为单位进行转换为图像的方法。因此,在卷积操作中会导致不同时间段的数据包图像信息错乱,从而影响分类准确性。Kumano [13] 等人在其研究中提出,可以通过保持分类准确性的前提下,减少所需的数据包数量,只需使用10个数据包即可保证准确性。Deep Packet [14] 结合堆叠自动编码器和卷积神经网络作为分类模型,使用网络中的所有层进行分类。但网络和传输层的协议字段主要设计用于网络传输而非应用程序识别,应用层以下协议字段几乎不包含有用信息。因此,包含太多无关信息会增加数据复杂性,并可能导致模型过度依赖不重要的信息,从而降低其对细粒度流量分类的差异能力。TSCRNN [15] 利用CNN从网络流量数据中提取空间特征,并使用LSTM从CNN提取的特征中提取时间特性以捕捉网络流的时空特征。然而,该方法无法考虑到网络流中的全局特征,这将导致其分类性能受到限制。
基于上述研究,提出了多阶段神经网络流量分类方法。在预处理阶段,将原始流量分割为双向流,即会话,仅对每个会话中数据包的有效载荷以字节为单位进行读取并转换为图像,最后,将数据包图像序列进行合并,构建出会话图像。以1D-CNN为基准模型,这种预处理方法比Wang的预处理方法性能提高了7.5%。在模型设计部分,结合上下文嵌入,自注意力机制和卷积神经网络完成加密流量分类任务。具体来说,在初始嵌入中,会话图像会被划分为固定大小的图像序列,该序列中的每个图像表示会话中的数据包。用2D-CNN对网络会话中的数据包图像进行线性投影,接着利用LSTM根据数据包的时间关系获取上下文嵌入,使用多头自注意力机制来捕获出会话中数据包之间的依赖关系,提取网络会话的多通道特征图,最后用卷积神经网络对特征图进行进一步的特征提取,挖掘出数据包之间更深层的关系。
2. 多阶段流量分类方法
MSNTC的架构图如图1所示。首先对原始流量按照会话流进行分割,将会话流中的每个数据包转为灰度图后进行拼接,得到会话流的灰度图。接着对于会话流图像,使用2D-CNN将会话拆分为数据包序列并进行线性嵌入,通过LSTM来获取会话流中每个数据包的时序关系,将LSTM的每个隐层的输入作为会话中数据包序列的最终嵌入。将会话流嵌入馈送给多头注意力层来获取每个会话的特征图,对该特征图使用CNN来对会话流的最终特征进行提取,最后使用全连接层来实现加密流量的识别。
2.1. 数据预处理
在预处理阶段,只关注应用层即数据包的有效载荷,而不考虑其他层,因为其他层主要包含控制信息而非有效信息。数据预处理过程如图2所示。网络流中的所有数据包具有相同的源和目的IP地址、协议、源和目的端口号,形成一个五元组。网络会话是双向流,包括具有可互换的源和目标IP/端口对的两个流,因此它包含比单向流更多的交互信息。在本研究中,网络会话被用作模型的输入,根据五元组将原始流量划分为不同的会话,会话定义为:
其中,
表示会话的第i个位置中的数据包,n为每个会话中数据包的个数。不同的数据包具有不同的长度,而MSNTC可接受的输入大小是固定的。需要对数据包的格式进行统一处理,由于网络最大传输单元(MTU)最大为1500字节,为方便处理,将数据包的大小固定为1600字节,这完全可以包含每个数据包的全部信息。对于长度不够1600字节的数据包,在其末尾填充0 × 00至1600字节。实验中对该网络流取前t个数据包,若会话中的数据包数量不足t,则用0 × 00填充至t个数据包。以字节为单位读取会话中的每个数据包,并将其转为
的灰度图,生成数据包图像序列,对数据包图像序列进行合并操作得到最终的网络会话流图像S来构建网络流图像数据集。
2.2. 嵌入层
在经过数据预处理后,使用2D-CNN将会话图像分解为多个数据包图像序列并对每个数据包完成初
始嵌入。首先,将会话流图像分割成多个分组图像,将这些分组图像重新排列成序列。然后,对每个数据包图像执行线性嵌入操作。具体而言,通过在会话流图像上应用步长为40、卷积核大小为40、通道数量为嵌入维度的二维卷积运算,可以获得每个数据包的线性嵌入。
对于网络会话图像
,这个会话图像被划分成了t个数据包图像
,其中每个数据包是一个
的二维矩阵。对于初始嵌入
,计算公式如下:
![](//html.hanspub.org/file/35-2571519x16_hanspub.png?20240522083934025)
Figure 2. Data preprocessing of MSNTC
图2. MSNTC的数据预处理
其中,
表示卷积核的权重矩阵,
是输入数据包的通道数
表示偏置向量。
对于第i个数据包的线性嵌入
,使用一个双向LSTM层来获取其上下文信息,得到输出表示
。这个双向LSTM层由两个单向LSTM层组成,分别沿着时间方向和反方向处理输入序列,并在最后把它们连接起来。
其中,
和
分别表示时刻i时从正向和反向处理输入序列所得到的隐状态向量,
表示将两个向量连接起来。最终,将每个数据包的输出表示
组装成会话的输出表示
,其中t是数据包的数量,d为
,即数据包的嵌入维度。这种嵌入表示可以捕捉到数据包的上下文信息,同时,LSTM的多层结构和双向结构可以提高数据包嵌入的准确性和丰富性。
2.3. 全局特征图提取层
网络流量的顺序性和应用层数据包之间的内在依赖性是流分类任务中不可忽视的关键因素。受Transformer的启发 [16] ,引入自注意力机制,该机制可以捕获每个数据包之间的交互信息,从而提取会话流的全局特征。
使用自注意力机制将所有数据包的信息集成在一起,并将它们以不同的权重融合在一起。如图3所示,不同类型的线表示不同数据包的注意力权重,通过自注意力机制学习数据包之间的交互关系,对数据包进行加权得到最终的全局特征图(Global Feature Map)。将网络会话的数据包上下文向量沿时间轴方向拼接成一个矩阵作为整个会话的嵌入。使用自注意力机制来计算全局特征图
,其中m为全局特征的维度。
![](//html.hanspub.org/file/35-2571519x33_hanspub.png?20240522083934025)
Figure 3. Global feature map extraction mechanism
图3. 全局特征图提取机制
为了得到自注意力权重矩阵
,首先对输入矩阵
进行线性变换,得到查询矩阵
,键矩阵
和值矩阵
:
其中,
是需要学习的权重矩阵。然后,通过计算自注意力权重矩阵
来获得会话的全局特征:
其中,
是查询矩阵
和键矩阵
的维度,
是为了缓解内积的数量级带来的影响。最后,使用注意力权重
对值矩阵
进行加权求和,得到全局特征图
:
在自注意力机制的基础上,进一步使用多头自注意力机制来获得更好的线性表示,这意味着全局特征图提取层可以获得多个特征图,每个注意力头可以强调不同的上下文子空间中的特征。在多头自注意力机制中,使用h个不同的投影矩阵来将查询、键和值矩阵分别投影到h个不同的子空间中,可以形式化为:
其中,
。然后,分别对每个子空间进行自注意力计算,得到h个加权值矩阵
:
通过对输入序列进行不同权重的加权平均,得到一组子空间特征矩阵
,这些子空间特征矩阵反映了输入序列在不同方面的关注度。由于注意力机制的引入,每个子空间对应一个不同的关注度,因此它们可以捕捉到数据包序列中不同方面的信息。将子空间特征矩阵拼接成一个三维张量
,可将
看作一个多通道的会话特征图,
表示注意力头数,即通道数。
2.4. 预测层
为了进一步提取有用的信息,使用卷积神经网络对Z进行特征提取,获得更高层次的抽象特征表示。这个过程充分利用了数据包序列中的局部和全局信息,能够提取出多层次、多尺度的特征。
首先,采用卷积神经网络对特征图进行特征提取。具体而言,对特征图进行卷积操作,输出新的特征图
,其中
和
表示特征图的高和宽,c表示输出通道数,即卷积核数量:
其中*表示卷积操作,
表示卷积核,k表示卷积核的大小,
表示激活函数,通常使用ReLU函数。
表示偏置项。
经过多个卷积操作后,使用全局平均池化对特征图进行降维并提取出其中最显著的特征,从而简化模型的计算和参数量,输出尺寸为c的特征向量
,表示对特征图每个通道上所有值所求得的平均值:
其中,i表示特征向量v的第i个元素,也表示卷积操作后输出的第i个特征图,
表示特征图F的行列坐标。最后,将特征向量v输入到全连接层中进行分类。如果存在r个分类标签,则输出层的大小为r。具体地,最终的分类结果
是一个长度为r的向量,每个元素表示会话对应分类标签的概率:
其中
,
为可学习的参数。
3. 实验分析
3.1. 数据集
为了验证MSNTC模型的泛化性能,在本研究中采用了广泛应用的大型加密流量公开数据集,包括ISCX VPN 2016 [17] 和ISCX Tor 2016 [18] 。表1和表2分别展示了这两个数据集的详细信息。通过使用这些常用的加密流量数据集,我们可以充分验证MSNTC模型在不同加密场景下的性能和泛化能力。
![](Images/Table_Tmp.jpg)
Table 1. The description of ISCX VPN 2016 dataset
表1. ISCX VPN 2016数据集具体信息
![](Images/Table_Tmp.jpg)
Table 2. The description of ISCX Tor 2016 dataset
表2. ISCX Tor 2016数据集具体信息
3.2. 评估指标
在多分类任务中,为了客观、准确地评估MSNTC的性能,选择了四个常用的测量指标,分别是准确率(Accuracy)、宏F1值(Macro-F1)、宏召回率(Macro-Recall)和宏精确率(Macro-Precision) [19] 。
3.3. 比较方法
在本实验中,主要评估和对比了MSNTC和多种先进的流分类方法,其中包括AppScanner [8] 、BIND [9] 、Deep Packet [14] 、TSCRNN [15] 和FlowPrint [20] 。这些方法采用了不同的特征提取和分类技术。
![](Images/Table_Tmp.jpg)
Table 3. Details of experimental parameters
表3. 实验参数设置
3.4. 实验分析
首先,探究数据包个数对模型性能的影响,对ISCX Tor数据集中的每个类别各选择600个网络会话进行分析,选择网络会话的前1、4、9、16、25、36和49个数据包,并观察数据包数量对准确率的影响。图4展示了MSNTC模型在不同数据包取样数量下的准确率变化趋势。实验结果显示,在选择了9个数据包之后,准确率变化趋势不再明显。而当选择了16个数据包时,准确率达到最高点。本文将数据包个数设置为16个数据包,其他实验参数的配置见表3。
为了验证本文提出的预处理方法的有效性,需要与传统预处理方法(这里采用网络流的前1600个字节)进行比较。由于传统方法不适用于输入到MSNTC模型中,本次实验选择了通用的1D-CNN模型对预处理方法进行性能比较。从表4中可以观察到,使用本文提出的预处理方法在加密流量分类任务中表现出更好的性能。这表明本文的预处理方法在捕捉加密流量的关键特征方面具有优势。因为以数据包为单位进行预处理,确保了不同时间点的数据包在预处理后保持整齐有序,并且本文将完整的数据包有效载荷保留下来。而传统方法以会话为单位简单地提取前n个字节会导致部分信息混乱或丢失,使得模型难以学习。
图5展示了不同模型在两种类型的测试集中的准确率对比,可以发现MSNTC模型在ISCX VPN数据集和ISCX Tor数据集上的准确率表现相对于其他模型是最好的。MSNTC模型在ISCX Tor数据集上的准确率提升幅度显著,较AppScanner模型提高了约30个百分点。在ISCX VPN数据集上,其准确率提高了约25个百分点。这说明深度学习的方法更加注重特征提取和拟合,能够更好地反映现实问题的本质特征,从而明显高于机器学习方法的分类效果。
![](//html.hanspub.org/file/35-2571519x73_hanspub.png?20240522083934025)
Figure 4. Comparison of accuracy of different packet counts in the ISCX Tor
图4. 在ISCX Tor数据集种不同数据包个数准确率对比
![](Images/Table_Tmp.jpg)
Table 4. Performance comparison of preprocessing methods
表4. 预处理方法性能比较
![](//html.hanspub.org/file/35-2571519x74_hanspub.png?20240522083934025)
Figure 5. Accuracy of different models in Tor and VPN data sets
图5. 不同模型在Tor和VPN数据集的准确率
相较于深度学习方法,MSNTC模型在ISCX Tor数据集上的精确率、召回率和F1值分别比TSCRNN提高了3.4%、3.6%和3.5%;比Deep Packet提高了30.0%、32.7%和31.3%。在ISCX VPN数据集中,相比TSCRNN,MSNTC模型的精确率、召回率和F1值分别提高了4.2%、6.4%和5.3%;相比Deep Packet,该模型提高了3.0%、5.8%和4.6%。这表明MSNTC模型不仅在加密流量检测方面表现优秀,而且相较于传统深度学习方法精度更高。由此可见,引入注意力机制的MSNTC模型具有更强的网络数据包特征提取能力,可以捕获数据包的交互关系,提取出更稳定的全局特征,表现结果比循环神经网络更佳。
为了全面评估MSNTC模型的效果,表5展示了对不同模型进行评估时使用的精确率(PR)、召回率(RC)和F1值三个指标。结果显示,MSNTC模型在所有指标上均优于其他模型,同时也验证了MSNTC模型在不同加密场景下(包括VPN和Tor)具有良好的泛化能力。
![](Images/Table_Tmp.jpg)
Table 5. Evaluation indicators of models in the ISCX Tor dataset
表5. 模型在ISCX Tor数据集的评估指标
表6展示了不同深度学习模型的参数个数。与Deep Packet模型相比,MSNTC模型的参数量显著减少,但略高于TSCRNN模型。这是因为MSNTC模型采用嵌入层进行了初步的特征提取和维度压缩,从而降低了全局特征图提取层中自注意力机制的权重计算量,并在卷积层使用了全局池化来减少模型的参数量。通过在保持准确率的同时优化参数量,MSNTC模型在准确性和模型复杂度之间取得了平衡。
![](Images/Table_Tmp.jpg)
Table 6. Parameters in deep learning model
表6. 深度学习模型参数
4. 结束语
MSNTC与其他端到端模型相比,引入了自注意力机制来提取网络流的全局信息,同时使用LSTM对数据包进行嵌入来弥补注意力机制无法考虑数据包时间特性的缺点。使用多种深度特征学习和自注意力机制的这种结构设计使得MSNTC模型能够更好地捕捉数据包之间的关系和时序信息,提取更稳定、更全面的特征表示,从而提高分类的准确性。该方法在不同的数据集上均取得最好的分类结果,能够有效地识别加密流量中的各种类型。相比于传统的基于规则的方法和机器学习的方法,MSNTC方法具有非常显著的优势,对于其他深度学习的方法,MSNTC展现出了更高的准确率和更强的鲁棒性。未来的研究方向有多个方面。首先,进一步探究如何提高MSNTC方法分类的速度和效率,以满足实时监测和防御的需求。其次,可以考虑增加网络流的统计特征,以提高MSNTC方法的识别能力。最后,对MSNTC模型进行可解释性研究,研究如何解释和理解MSNTC模型的分类结果,以便更好地理解和信任其分类。
基金项目
国家自然科学基金资助项目(62002184)。
NOTES
*通讯作者。