一次训练两个任务:使用监督对比学习的加密网络流量分类框架

摘要

随着网络安全受到广泛关注,加密流量分类已成为当前研究的重点。然而,现有方法在进行流量分类时,往往未能充分考虑数据样本之间的共性特征,从而导致性能不佳。此外,它们通常将数据包级与流级分类任务独立训练,这种做法存在冗余,因为数据包级任务中学习到的表示实际上可以被流级任务直接利用。

为此,本文提出了一种高效模型——对比学习增强的时序融合编码器(Contrastive Learning Enhanced Temporal Fusion Encoder, CLE-TFE)。具体而言,我们利用监督式对比学习来增强数据包级与流级的表示能力,并在字节级流量图上进行图数据增强,使得字节间细粒度、语义不变的特征能够通过对比学习得到充分捕获。此外,我们提出了跨层多任务学习框架,使数据包级与流级分类任务能够在同一模型中通过一次训练同时完成。

实验结果表明,CLE-TFE 在两个任务上均取得了最佳整体性能,同时其计算开销(即浮点运算量 FLOPs)仅约为预训练模型(如 ET-BERT)的 1/14。我们已将代码开源,项目地址为:
👉 https://github.com/ViktorAxelsen/CLE-TFE

引言

随着计算机网络技术的不断发展以及大量设备接入互联网,用户隐私愈发容易受到恶意攻击的威胁。尽管 VPN 和 Tor 等加密技术 [27] 在一定程度上能够为用户提供保护 [31],但这些技术也可能被攻击者利用以隐藏身份。传统的数据包检测(DPI)方法在应对加密流量时已逐渐失效 [25]。如何从加密流量中有效地识别攻击者的网络活动(如网页浏览、应用使用)仍然是一个亟待解决的挑战。

近年来,研究者提出了多种方法来提升加密流量分类的能力。其中,统计特征驱动的方法 [7, 24, 34, 37, 41] 通常依赖人工设计的流量统计特征,并结合传统机器学习模型进行分类。然而,这类方法需要大量特征工程,并且容易受到不稳定流的影响 [47]。随着表示学习的发展 [15],部分研究开始尝试使用深度学习模型进行流量分类,如预训练语言模型 [18, 23]、神经网络 [19, 47] 等。对于同一标签下的样本,通常存在一些共性特征。然而,现有方法多直接对统计特征或原始字节进行表示学习,却未能充分挖掘不同样本间特征的潜在共性,从而难以捕获数据中语义不变的信息。因此,如何利用样本之间的共性特征来帮助模型学习更鲁棒的表示,仍然是一个难题。

此外,当前方法无法在同一模型中同时完成数据包级与流级流量分类任务,因而通常需要分别进行两次独立训练。这不仅增加了训练冗余性,而且忽视了这样一个事实:在数据包级任务中已经学习到的信息性表示完全可以被流级任务所利用,无需从头开始重新学习。因此,如何在模型训练中利用不同层级任务间的潜在联系以提升整体性能,也是一个重要挑战。

为应对上述问题,本文提出了一种新颖且高效的模型——对比学习增强的时序融合编码器(Contrastive Learning Enhanced Temporal Fusion Encoder, CLE-TFE),用于加密流量分类。CLE-TFE 以 TFE-GNN [47] 为基础,主要由两个模块组成:对比学习模块与跨层多任务学习模块。

在 对比学习模块 中,我们分别在数据包级与流级开展对比学习:

在数据包级层面,利用 TFE-GNN 的字节级流量图进行图数据增强,以更好地捕获字节间细粒度、语义不变的特征,从而获得鲁棒的数据包表示。

在流级层面,对流内的数据包进一步进行增强,以提升流级表示的表达力。

与无监督对比学习 [36] 不同,本文采用 监督式对比学习 [13] 来挖掘同一标签样本之间的共性特征,从而进一步提升模型性能。

在 跨层多任务学习模块 中,我们在同一模型内一次训练即可同时完成数据包级与流级流量分类任务,并揭示了两者之间的跨层关系:数据包级任务能够为流级任务提供有益的信息。

在实验部分,我们基于 ISCX VPN-nonVPN [6] 与 ISCX Tor-nonTor [14] 数据集,并与 20 余种基线方法进行对比评估。实验结果表明,CLE-TFE 在两个层级的任务上均取得了最优的整体性能。与 TFE-GNN 相比,CLE-TFE 几乎未增加额外参数,但计算开销却显著降低近一半,并在 ISCX-VPN 与 ISCX-nonTor 数据集上分别提升了 2.4% 与 5.7% 的 F1-score。

本文的主要贡献总结如下:

为充分利用样本间的共性特征,本文提出了一种简单而有效的模型 CLE-TFE。通过在字节级流量图上进行图数据增强,结合监督式对比学习,挖掘字节间细粒度的语义不变特征。

据我们所知,本文首次在同一模型中通过跨层多任务学习同时完成数据包级与流级流量分类任务,且几乎不增加额外参数。实验也表明,数据包级任务对流级任务具有显著的促进作用。

我们在 ISCX 数据集 [6, 14] 上同时进行了数据包级与流级的综合实验,结果显示 CLE-TFE 在整体性能上优于现有方法。

相关工作

流级流量分类方法

(1)基于统计特征的方法。
许多研究利用统计特征刻画数据包属性,并结合传统机器学习模型进行分类。例如,AppScanner [34] 基于双向流特征提取流量特征;CUMUL [24] 采用累积数据包长度作为特征;GRAIN [45] 使用负载长度;ETC-PS [41] 借助路径签名理论增强数据包长度序列;Liu 等人 [20] 则利用小波分解挖掘数据包长度序列;Conti 等人 [3] 采用层次聚类进行特征提取。

(2)基于指纹匹配的方法。
指纹刻画流量特征,并被用于流量识别。FlowPrint [37] 通过构建目的 IP 间的相关性图生成流量指纹;K-FP [7] 基于随机森林生成指纹,并通过 k 近邻匹配未知样本。但这类方法无法将单个数据包编码为高维向量,因此不适用于数据包级任务。

(3)基于深度学习的方法。
深度学习展现出强大的特征学习能力,许多流量分类方法因此而生。MVML [5] 基于数据包长度与时延序列提取局部与全局特征,并利用多层感知机(MLP)进行识别;EDC [16] 使用数据包头部属性(如协议类型、数据包长度)作为输入特征;RBRN [49]、DF [33] 与 FS-Net [19] 采用数据包长度序列作为输入,并结合卷积神经网络(CNN)或循环神经网络(RNN)进行建模。此外,一些方法直接使用原始字节作为输入:FFB [46] 将原始字节与数据包长度序列输入 CNN 与 RNN;EBSNN [40] 将 RNN 与注意力机制结合,以处理头部与负载字节片段;ET-BERT [18] 在大规模流量数据上进行预训练,以获得更强的字节表示,但代价高昂。

图神经网络(GNN)同样被引入流量分类。GraphDApp [32] 基于流量突发行为构建交互图,并使用 GNN 进行表示学习;Huoh 等人 [12] 根据流内数据包的时间顺序建立边;TFE-GNN [47] 则采用逐点互信息 [42] 构建字节级流量图,并设计图编码器进行特征提取。然而,这些方法仅在流级进行建模,无法利用流级与包级之间的跨层关系(见第 4.3、4.4 节)。

包级流量分类方法

(1)基于统计方法。
KISS [4] 提取负载的统计签名,并使用 SVM 对 UDP 数据包分类;HEDGE [1] 基于随机性测试和阈值判定,在无需访问完整流的情况下对单包进行分类;Securitas [44] 对原始字节生成 n-gram,并使用 LDA 构造协议关键词特征,随后结合 SVM、C4.5 决策树或贝叶斯网络进行分类。

(2)基于深度学习的方法。
2D-CNN [17] 与 3D-CNN [48] 将数据包字节视为像素值并转化为图像,再输入 CNN 进行分类;DP [21] 结合 CNN 与自编码器提取字节特征;BLJAN [22] 探索数据包字节与其标签的相关性,并将其编码到联合嵌入空间以完成分类;EBSNN [40] 与 ET-BERT [18] 同样可用于包级分类,但它们仍需为流级与包级任务进行两次独立训练或微调,计算代价较大;PacRep [23] 使用三元组损失 [29] 联合优化多个包级任务以学习更优表示,但仍局限于单包级别,且基于 Transformer 的预训练编码器计算开销巨大。

方法

3.1 框架总览(Framework Overview)

如图 1 所示,模型包含两个主模块:对比学习模块(第 3.2 节)与 跨层多任务学习模块(第 3.3 节)。

  • 对比学习模块 同时包含 数据包级流级 两个子模块:
    • 包级对比学习:对字节级流量图进行图数据增强,构造包级增强视图,用于包级对比学习。
    • 流级对比学习:在此基础上,通过随机丢弃流中的部分数据包构造流级增强视图,用于流级对比学习。
  • 跨层多任务学习模块:利用包级与流级任务之间的跨层关系,将两层级的对比学习与分类任务联合训练,以获得更优表示。

3.2 双层级对比学习(Contrastive Learning at Dual Levels)

受对比学习强大表示学习能力的启发(第 2 节),我们在 TFE-GNN [47] 的基础上,引入包级流级两层对比学习以增强表示能力,细节如下。

3.2.1 包级对比学习(Packet-level Contrastive Learning)

TFE-GNN 用原始字节构建流量图。若直接在字节序列上做增强不够直观便捷;考虑到图中节点代表字节值、代表字节间的语义相关性,直接在图上扰动节点或边(粒度更细)更有助于通过对比学习挖掘语义不变的细粒度特征。因此我们采用图数据增强来构造包级增强视图,包括 节点丢弃边丢弃 两种操作。

  • 节点丢弃(Node Dropping)
    给定流量图 G = {V, E},以概率丢弃节点及其相关联的边(等价于在原始字节序列中删除对应字节)。形式化为:
    G ′ = {   v i ⊙ ρ i ∣ v i ∈ V   } , E ′ = {   e i j ⊙ ρ i ∣ e i j ∈ E   } (4) G' = \{\, v_i \odot \rho_i \mid v_i \in V \,\},\quad E' = \{\, e_{ij} \odot \rho_i \mid e_{ij} \in E \,\} \tag{4} G={ viρiviV},E={ eijρieijE}(4)
    其中, ρ i ∈ { 0 , 1 } \rho_i \in \{0,1\} ρi{ 0,1} 服从伯努利分布 ρ i ∼ B ( P ND ) \rho_i \sim \mathcal{B}(P_{\text{ND}}) ρiB(PND),表示是否丢弃节点 v i v_i vi 及其相关边 e i j e_{ij} eij P ND ∈ [ 0 , 1 ] P_{\text{ND}} \in [0,1] PND[0,1]节点丢弃率超参数。

  • 边丢弃(Edge Dropping)
    G' 上继续随机丢弃边(等价于移除任意两字节之间的语义相关性)。形式化为:
    G AUG = ( V ′ ,   {   e i j ⊙ ρ i j ∣ e i j ∈ E ′   } ) , ρ i j ∼ B ( P ED ) (5) G_{\text{AUG}} = \left( V', \ \{\, e_{ij} \odot \rho_{ij} \mid e_{ij} \in E' \,\} \right), \quad \rho_{ij} \sim \mathcal{B}(P_{\text{ED}}) \tag{5} GAUG=(V, { e

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值