【论文阅读】加密流量-FlowMiner-徐洪波-INFOCOM2025
FlowMiner: A Powerful Model Based on Flow Correlation Mining for Encrypted Traffic Classification
FlowMiner:一种基于流关联挖掘的强效加密流量分类模型
徐洪波 1 , 2 , 4 , ∗ ^{1,2,4,*} 1,2,4,∗,司承祥 3 , ∗ ^{3,*} 3,∗,李树豪 4 , † ^{4,†} 4,†,程振宇 4 ^{4} 4,王晨旭 1 , 2 ^{1,2} 1,2,谢江 4 ^{4} 4,孙培帅 1 , 2 , 4 ^{1,2,4} 1,2,4,刘庆云 1 , 2 ^{1,2} 1,2
1 ^{1} 1中国科学院信息工程研究所,北京,中国
2 ^{2} 2中国科学院大学网络空间安全学院,北京,中国
3 ^{3} 3国家计算机网络应急技术处理协调中心,北京,中国
4 ^{4} 4中关村实验室,北京,中国
∗ * ∗共同一作; † † †通讯作者
H. Xu, C. Si, S. Li, Z. Cheng, C. Wang, J. Xie, P. Sun and Q. Liu, “FlowMiner: A Powerful Model Based on Flow Correlation Mining for Encrypted Traffic Classification,” in IEEE INFOCOM 2025, . (CCF A类会议)
公众号阅读:
https://mp.weixin.qq.com/s/kQ1_eNGrSiDXR-O0gwNd5g
摘要
随着流量加密技术的持续发展,加密流量分类任务面临日益严峻的挑战。现有方法主要通过提取侧信道特征(如数据包长度和时间序列)来应对加密带来的困难。然而,这些方法通常仅在流级别或包级别进行独立分类,普遍缺乏对不同流样本之间关联性的挖掘机制。由于忽略了流与流之间的相关性信息,这类模型在多种任务中的性能受到显著限制。
为解决上述问题,我们提出 FlowMiner——一种基于流关联挖掘的图分类模型。该模型首先提取时间、长度、内容、字节分布及交叉特征,并将其作为图中节点的初始特征;随后,通过分析不同网络流之间的关联关系,构建流交互图。在此基础上,FlowMiner 利用 图神经网络(GNN)高效捕获流间的高阶关联特征,并通过一个集成池化模块生成鲁棒的图级表示向量,最终用于分类决策。
在八个公开与自建数据集上的大量实验表明,FlowMiner 显著优于当前多种最先进方法。更重要的是,在两个真实世界评估场景中,FlowMiner 在恶意流量识别任务上精确率超过95%,充分验证了其在实际应用中的高有效性与强泛化能力。
关键词:网络流量分类,加密流量,图神经网络,图分类
代码开源地址:https://github.com/MrRobotsAA/FlowMiner
I. 引言
网络流量分类是网络安全与网络管理中的一项基础性任务,广泛应用于应用识别、入侵检测和Web服务发现等场景。近年来,随着加密技术(如 TLS 1.3)的广泛应用,传统的深度包检测(DPI)技术已难以适用于加密流量分类任务。与此同时,流量伪装与混淆技术的快速发展进一步加剧了分类难度——攻击者和网络犯罪分子可利用虚拟专用网络(VPN)、抗审查代理以及Tor(The Onion Router)等工具规避监管系统。
目前,大多数加密流量分类方法依赖于数据包长度或时序信息,从中提取流级或包级的统计特征,再结合机器学习或深度学习模型进行语义建模。然而,这些方法仍存在以下关键局限性:
- 特征提取不全面:现有方法往往仅关注特定维度的特征,例如仅提取时空特征[1],或仅使用字节级特征[2,3]。这导致模型任务泛化能力弱,难以适应多样化的流量分类场景;
- 异构特征融合困难:统计特征通常表现为表格化、异构的高维数据(如时序特征与长度特征之间缺乏显式关联)。而当前深度学习在表格数据上的优势尚未充分显现[4],如何有效融合多维度、异构的流量特征仍是亟待解决的问题;
- 忽略流间关联信息:主流方法仍局限于单一流或包的独立分析,未挖掘不同网络流之间的潜在关联,从而丢失大量上下文协同信息。
近年来,图神经网络(GNN)因其强大的关联关系建模能力[5]受到广泛关注。已有研究尝试将 GNN 应用于特定流量分类任务,如应用识别[6,7]。但这些工作通常仅基于部分流量信息(如包长或字节序列)构建图结构,未能充分刻画流与流之间的交互行为。因此,如何利用 GNN 深度挖掘流量内在关联,并构建一个通用、鲁棒的加密流量分类框架,仍需深入探索。
为应对上述挑战,我们提出 FlowMiner —— 一种深度融合时间、内容与行为等多维异构特征的新型加密流量分类模型。
(1)具体而言,我们提出了一种新颖的流量图构建与表示学习方法,能够有效捕获网络流之间的交互行为,为后续图级分类奠定基础。区别于以往在单一流或数据包层面构建流量图的工作,FlowMiner 的核心贡献在于首次实现基于“流间交互图”(inter-flow interaction graphs),从而显著拓展了加密流量中可利用信息的边界。
(2)此外,我们提出了新型流量特征表示方法。与以往仅关注原始字节内容的方法不同,我们为流量字节生成了多维度统计特征。特别地,我们设计了交叉特征(cross-features),从一个全新视角刻画流量内容——通过建模流量特征不同属性列之间的相关性(例如包长度与时序特征之间的关联),揭示特征列间的内在耦合关系,从而捕捉传统方法忽略的高阶语义。
(3)同时,我们精心设计了 FlowMiner 的图神经网络表示学习组件,并提出一种集成式决策池化模块(integrated decision pooling module)。该模块的关键创新在于:在图池化过程中引入显式决策机制,不再简单采用最大值或平均值聚合,而是动态权衡图中所有节点的信息重要性,从而更全面地保留流交互图的整体结构与语义特征。
本文的主要贡献总结如下:
- 从新视角提出创新性特征:包括字节统计分布特征与非线性交叉特征。这些增强特征不仅补充了对字节模式的学习,还显式建模了不同特征维度间的交叉依赖关系,有效弥补了现有方法在特征表达上的不足;
- 提出 FlowMiner —— 一种通用型加密流量分类模型。该模型通过挖掘不同流样本间的关联性构建流交互图,并利用专门设计的图神经网络,从图中联合学习浅层统计特征与深层行为交互特征。这种设计实现了异构统计特征与行为特征的有益互补,显著提升模型判别能力。通过生成鲁棒的图级表示向量,FlowMiner 在多种流量分类任务中展现出广泛的适用性;
- 在八个真实流量数据集上的大量实验表明,FlowMiner 具有卓越的流量表示学习能力,性能显著优于当前最先进的方法(SOTA)——在所有任务上,其平均 F1 分数比最佳基线模型 BIND 提高了 10.18%。尤为突出的是,FlowMiner 在保持极小模型体积的同时仍达到最优分类性能,超越现有深度学习方案。真实部署测试结果进一步证实:无需任何专家规则或先验知识,FlowMiner 即可在恶意流量识别任务中媲美业界领先的入侵检测规则集(如 Emerging Threat Ruleset),精确率超过 95%。
II. 动机
当前,加密流量分类主要在三个粒度层级上开展:包级(packet)、流级(flow)和主机级(host)。
- 包级分类通常关注单个数据包的属性,例如包大小、到达时间序列以及头部字段分布。然而,由于流量内容已被加密,包级所能获取的有效信息极为有限。
- 流级分类则基于一组关联的数据包序列。一个“流”通常由五元组(源IP、目的IP、源端口、目的端口、协议类型)定义,代表一次完整的通信会话。该层级的方法通常提取流的整体特征,如包长与时序分布、流持续时间、总传输数据量等。
- 主机级分类聚焦于单个主机的网络行为模式,例如通信频率、连接目标多样性等。但此类方法常因主机行为中混杂大量噪声(如正常后台更新、多应用并发)而面临挑战。
尽管上述方法各有优势,它们仍存在一个共性局限:无法建模跨流、跨主机的协同行为关系。如图1所示,这是一个典型的下载器木马(Downloader Trojan)攻击场景:
- 用户在客户端 A 执行恶意文档后,木马启动;
- 第一阶段:木马通过 HTTP 从服务器 A 下载模块(Flow A),并执行横向移动,将自身复制到客户端 B;
- 第二阶段:客户端 B 上的木马通过 TLS 从服务器 B 获取多个恶意插件(Flow B、C);
- 第三阶段:各插件通过 TLS 将窃取的数据加密上传至服务器 C(Flow E、F)。
在此复杂攻击链中,传统的包级、流级或主机级分析只能孤立地观察某一环节的行为(如仅识别 Flow A 的下载行为),却无法关联 Flow A、B、C 等来自不同主机的流之间的协同关系,从而难以完整还原攻击全貌。
为解决这一根本问题,我们提出 FlowMiner —— 一种具备跨流交互分析能力的新型流量分类模型。FlowMiner 的核心思想是将整个攻击场景建模为一张“流交互图”(flow interaction graph),并在图级别(traffic graph level)进行分类,而非局限于单一流。如图2所示,不同主机上的多个流可通过IP 关联、协议指纹等线索建立连接:
- 每个流(如 Flow A)被拆分为两个节点:客户端节点(C1)与服务端节点(S1);
- 实线表示实际发生的流量交互(即原始流);
- 虚线表示基于关联规则推断出的潜在联系,例如:
- 节点 S1 与 S2 共享相同 C 类 IP 地址段,暗示可能属于同一攻击基础设施;
- 节点 S2 与 S3 拥有相同的 JA3S TLS 服务端指纹,表明其在 TLS 握手过程中表现出高度相似的行为特征。
FlowMiner 利用图神经网络(GNN),对这类流交互图进行端到端学习,不仅捕获单个流的统计特性,更深度挖掘流样本间的语义关联,从而显著增强模型对复杂加密流量的表征与判别能力。
III. 方法
本文将流交互图(Flow Interaction Graph)定义为一种能够刻画多个网络流之间关系与交互行为的图结构。如图3所示,FlowMiner 主要包含两个核心模块:流交互图的构建 与 图表示的学习。
A. 节点构建机制
在网络通信中,一个“流”通常表征了客户端与服务器之间某应用的传输行为。直观上,可将一个应用视为图中的一个节点——例如,通过 IP 地址与端口号 来标识节点。
然而,这种简单映射存在显著缺陷:由于端口复用和长连接的存在,即使五元组完全相同,也可能对应多个逻辑上独立的流;同时,同一应用可能表现出多种不同的传输行为。若强行将这些行为聚合到同一节点,会导致节点特征冲突,削弱模型表达能力。
为解决此问题,我们提出一种精细化的节点标识策略:
每个节点由三元组唯一确定(flow ID, IP address, port number)。
该设计使得单个网络流被拆分为两个独立节点——分别代表客户端侧与服务端侧的行为实体。
更重要的是,通过共享的 IP 与端口信息,我们可以在不同节点之间建立关联,为后续挖掘跨流交互关系奠定基础。
✅ 关键创新:以三元组为单位解耦流的双向角色,避免特征混叠,同时保留可关联的语义线索。
B. 流列表划分策略
对于原始流量文件,我们首先将其解析为一个包含多条流及其特征的流列表。
为保障图学习过程的稳定性与可扩展性,需将该列表划分为若干子图进行处理。为此,我们引入 “最大期望节点数”(maximum expectation node number)的概念,用于平衡各子图的规模。
形式化地,设原始流列表长度为 N N N,预设每张子图最多包含 max_nodes \text{max\_nodes} max_nodes个节点(即 max_nodes \text{max\_nodes} max_nodes条流,因每条流生成两个节点,实际节点数为 2 × 流数量 2 \times \text{流数量} 2×流数量,此处按流计便于描述),则子图数量 k k k定义为:
k = ⌊ N max_nodes ⌋ + I ( N m o d max_nodes > 0 ) (1) k = \left\lfloor \frac{N}{\text{max\_nodes}} \right\rfloor + \mathbb{I}(N \bmod \text{max\_nodes} > 0) \tag{1} k=⌊max_nodesN⌋+I(Nmodmax_nodes>0)(1)
其中, I ( ⋅ ) \mathbb{I}(\cdot) I(⋅)为指示函数,条件成立时取值为 1,否则为 0。
- 前 k − 1 k - 1 k−1个子列表各包含恰好 max_nodes \text{max\_nodes} max_nodes条流;
- 第 k k k个子列表包含所有剩余流。
该策略确保了每个生成的子图具有均衡的节点规模,既避免了因图过大导致的计算与内存瓶颈,也防止图过小而丧失交互语义。每个子列表随后被用于构建一张独立的流交互图,供后续 GNN 模型进行表示学习与分类。
✅ 工程价值:通过可控的图划分机制,在模型性能与系统效率之间取得良好平衡,支持大规模流量场景下的高效训练与推理。
C. 基础节点特征提取
我们首先利用三元组信息(流 ID、IP 地址、端口号)将每条网络流拆分为两个节点——分别代表客户端与服务端。随后,将同一流内的传输特征分配给对应的客户端和服务端节点。因此,每个节点的流量传输特征包含两类:
- 单向特征:该节点向外发送的数据特征;
- 双向特征:整条流中双向交互的综合特征。
每个节点的基础特征可具体划分为四大类:时序特征(temporal)、包长特征(packet length)、流量内容特征(traffic content),以及本文提出的字节分布特征(byte distribution features)。其中,前三种特征直接来源于 NFStream 库的内置功能。
(1)字节分布特征(Byte Distribution Features)
字节分布特征是一组基于有效载荷(payload)构建的新型特征,包含以下四个部分:
- 字节内容分布特征:统计每个字节值(0–255 范围内)在载荷中的出现频次。该特征保留了原始字节的完整分布形态;
- 载荷长度分布特征:记录流中每个数据包的有效载荷长度,形成长度频次分布。
这两部分特征不进行统计聚合(如均值、方差等),而是以原始分布形式输入模型,使神经网络能够自动学习高阶非线性模式。
- 可打印字符数量特征:统计载荷中属于 ASCII 可打印字符(如字母、数字、标点符号)的数量。不同协议在可打印字符分布上存在显著差异(例如 HTTP 明文含大量文本,而 TLS 加密流量则极少),因此该特征有助于区分协议类型与加密状态;
- Popcount 特征:即二进制字符串中“1”的位数(population count)。该值可近似反映数据包内容的熵(entropy)。完全加密的流量通常具有更高的熵值,因为加密过程会生成近似均匀分布的二进制序列 [8]。因此,Popcount 特征能有效识别全加密流量。
✅ 核心价值:这两类新特征为模型提供了关于流量内容语义与加密强度的直观线索,显著增强了模型在多任务场景下的判别能力。
(2)特征计算策略与效率优化
为控制计算复杂度,对于字节级特征,我们仅提取每条流中每个数据包载荷的前 6 个字节。这一设计在保留关键头部信息的同时大幅降低开销。
此外,所有节点特征均标注为 “双向”(bidirectional)或 “单向”(single),以区分其来源。
针对每一类基础流特征(如包长、时序等),我们进一步计算其全面的统计量,包括:
- 最大值、最小值、均值、中位数、众数
- 标准差、方差、极差
- 四分位数(Q1, Q2, Q3)
- 百分位数(P25, P50, P75, P90, P95)
- 偏度(skewness)与峰度(kurtosis)
这些高阶统计特征共同构成了节点的丰富初始表示,为后续图神经网络的学习提供坚实基础。
D. 非线性交叉特征提取
特征交叉(Feature Crossing)是分类与回归任务中常用的技术,用于捕获特征间的复杂非线性关系。为增强模型对高阶模式的感知能力,我们设计了一个交叉特征提取模块,专门用于挖掘异构流量特征之间的高阶交互关系。该模块包含以下四种交互机制:
- 基于变异性的特征选择(Variability-Based Feature Selection)
首先,我们根据各特征在数据中的标准差(反映其变异性)对所有基础特征进行排序,并选取前10个变异性最高的特征参与交叉。这一策略确保所选特征信息丰富、区分度强,为后续交互提供高质量输入。 - 分箱交叉(Binning Crosses)
将数值型特征 f f f通过分箱函数转换为类别型特征 B f = Bin ( f ) B_f = \text{Bin}(f) Bf=Bin(f),再将两个分箱后的特征进行字符串拼接,形成交叉项:
C f 1 , f 2 = B f 1 ⋅ B f 2 C_{f_1,f_2} = B_{f_1} \cdot B_{f_2} Cf1,f2=Bf1⋅Bf2
此方法可有效捕捉离散化后的联合分布模式。 - 算术交叉(Arithmetic Crosses)
利用基本算术运算构建特征交互:- 乘法: f 1 × f 2 f_1 \times f_2 f1×f2(记为 M)
- 加法: f 1 + f 2 f_1 + f_2 f1+f2(记为 A)
- 减法: f 1 − f 2 f_1 - f_2 f1−f2(记为 S)
这些操作能显式建模特征间的比例、总量或差异关系。
- 统计交叉(Statistical Crosses)
在每个图实例 g g g内,计算所选特征对之间的皮尔逊相关系数:
Corr g ( f 1 , f 2 ) = corr ( f 1 ( g ) , f 2 ( g ) ) \text{Corr}_g(f_1, f_2) = \text{corr}\big(f_1^{(g)}, f_2^{(g)}\big) Corrg(f1,f2)=corr(f1(g),f2(g))
其中 f 1 ( g ) f_1^{(g)} f1(g)和 f 2 ( g ) f_2^{(g)} f2(g)表示特征在图 g g g中的取值向量。该方法直接刻画特征在局部上下文中的线性依赖性。
✅ 核心价值:该交叉模块生成了丰富的非线性高阶流量特征,显著扩展了模型的输入特征空间,为后续图神经网络学习提供了更深层次的语义线索,全面提升 FlowMiner 的表征能力与泛化性能。
E. 流交互图构建
为更准确地刻画不同流之间的关联,我们采用多机制融合策略构建流交互图中的边(edges)。具体包括以下三类连接方式:
- 基于真实流量连接的边
对于由同一条流拆分出的客户端节点与服务端节点,建立一条无向边,表示二者存在真实的交互行为关联。 - 基于节点信息相关性的边
我们观察到:同一应用的不同服务器 IP,或同一代理服务商的不同代理节点,常共享相同的 C 类子网(如 192.168.1.x)。因此,我们筛选具有相同 IP 或相同 C 类子网的节点,构建关联列表,并在这些节点间添加边。- 首先,根据端口号区分客户端与服务端节点(通常客户端端口 > 服务端端口);
- 然后,利用流量内容信息构建关联。例如,所有 SNI(Server Name Indication)字段指向
google.com的服务端节点,将被归入同一关联列表。 - 本文使用的内容信息包括:
- 客户端 TLS 指纹(Client Fingerprint)
- TLS SNI
- HTTP Host 字段
- DNS 查询名(Query Name)
- 应用类型(由 NFStream 内置的 nDPI 工具解析)等
基于流量内容相关性的边
所有内容特征均来自 NFStream 库,详见开源代码¹。
图构建形式化流程
设 P P P为网络流量中的所有数据包集合,目标是构建图 G = ( V , E ) G = (V, E) G=(V,E),其中:
- V V V:代表具有相同内容信息的节点集合;
- E E E:连接内容相似且时序相邻的节点。
具体步骤如下:
- 内容信息过滤
对每个包 p i ∈ P p_i \in P pi∈P,根据其内容信息 C C C(如 SNI、Host 等)分配到对应的关联列表:
L c = { p i ∈ P ∣ C ( p i ) = c } , ∀ c ∈ C (2) L_c = \{ p_i \in P \mid C(p_i) = c \}, \quad \forall c \in C \tag{2} Lc={pi∈P∣C(pi)=c},∀c∈C(2) - 时间戳排序
对每个关联列表 L c L_c Lc,按流的起始时间戳 T ( p i ) T(p_i) T(pi)升序排列:
L c ′ = sort ( L c , key = T ( p i ) ) (3) L'_c = \text{sort}(L_c, \text{key} = T(p_i)) \tag{3} Lc′=sort(Lc,key=T(pi))(3) - 边构建
在排序后的列表$L’_c $中,将相邻节点两两连接,形成边集:
E c = { ( p i , p i + 1 ) ∣ p i , p i + 1 ∈ L c ′ , i ∈ [ 1 , ∣ L c ′ ∣ − 1 ] } (4) E_c = \{ (p_i, p_{i+1}) \mid p_i, p_{i+1} \in L'_c,\ i \in [1, |L'_c| - 1] \} \tag{4} Ec={(pi,pi+1)∣pi,pi+1∈Lc′, i∈[1,∣Lc′∣−1]}(4)
最终边集 E = ⋃ c E c E = \bigcup_c E_c E=⋃cEc。
✅ 设计优势:该策略在保留真实行为关联的同时,有效控制图密度,避免因全连接导致的过平滑问题;同时,引入时序约束防止图结构过度同质化。所有边均为无向边,且权重统一设为1,简化学习过程。
F. 模型架构
FlowMiner 的图学习模块由多个图神经网络(GNN)层组成,主要包括 GraphSAGE(Graph Sample and Aggregative)和 GATConv(Graph Attention Convolution)层。
如图3所示,我们首先从原始流量数据中提取包含丰富特征的流列表;随后,基于流之间的关联关系构建流交互图,并通过上述 GNN 层进行多层次特征学习。在整个学习过程中,每一阶段均引入批归一化(Batch Normalization),以提升模型的训练稳定性与表达能力。最终,集成决策池化模块(Integrated Decision Pooling, IDP)一方面生成每个节点的预测结果,另一方面通过全局池化产生图级别的统一表示向量,用于最终分类。
1) GATConv 层:基于注意力的邻居聚合
GATConv 层通过为邻居节点分配动态注意力权重,实现对重要邻居信息的选择性聚焦。图中节点$i $在注意力层的输出为:
h i ′ = ReLU ( ∑ j ∈ N ( i ) α i j Θ h j ) (5) \mathbf{h}'_i = \text{ReLU} \left( \sum_{j \in \mathcal{N}(i)} \alpha_{ij} \, \Theta \mathbf{h}_j \right) \tag{5} hi′=ReLUj∈N(i)∑αijΘhj(5)
其中,注意力系数 α i j \alpha_{ij} αij计算如下:
α i j = exp ( LeakyReLU ( a ⊤ [ Θ h i ∥ Θ h j ] ) ) ∑ k ∈ N ( i ) ∪ { i } exp ( LeakyReLU ( a ⊤ [ Θ h i ∥ Θ h k ] ) ) \alpha_{ij} = \frac{\exp\left( \text{LeakyReLU}\left( \mathbf{a}^\top [\Theta \mathbf{h}_i \, \| \, \Theta \mathbf{h}_j] \right) \right)}{\sum_{k \in \mathcal{N}(i)\cup\{i\}} \exp\left( \text{LeakyReLU}\left( \mathbf{a}^\top [\Theta \mathbf{h}_i \, \| \, \Theta \mathbf{h}_k] \right) \right)} αij=∑k∈N(i)∪{i}exp(LeakyReLU(a⊤[Θhi∥Θhk]))exp(LeakyReLU(a⊤[Θhi∥Θhj]))
说明:$\mathbf{h}'_i 是节点 是节点 是节点i $聚合邻居信息后更新的特征向量;$\Theta $为可学习的线性变换矩阵;a \mathbf{a} a为可学习的注意力向量;∥ \| ∥表示向量拼接;注意力权重经 LeakyReLU 激活 + softmax 归一化,确保权重分布合理。
✅ 核心优势:该机制使模型能够动态评估邻居节点的重要性,放大关键节点的贡献,从而更精准地捕捉流交互图中的高价值语义路径。
2) GraphSAGE 层:基于采样的局部邻域嵌入
GraphSAGE 通过采样并聚合局部邻域特征生成节点嵌入。在 FlowMiner 中,我们堆叠两层 GraphSAGE,其第 k k k层的节点特征更新公式为:
h v ( k ) = σ ( W ⋅ AGGREGATE ( k ) ( { h u ( k − 1 ) : u ∈ N ( v ) } ) ) (7) \mathbf{h}_v^{(k)} = \sigma \left( \mathbf{W} \cdot \text{AGGREGATE}^{(k)} \left( \{ \mathbf{h}_u^{(k-1)} : u \in \mathcal{N}(v) \} \right) \right) \tag{7} hv(k)=σ(W⋅AGGREGATE(k)({hu(k−1):u∈N(v)}))(7)
其中:
- h v ( k ) \mathbf{h}_v^{(k)} hv(k)为节点 v v v在第 k k k层的表示;
- N ( v ) \mathcal{N}(v) N(v)为其邻居集合;
- W \mathbf{W} W为可学习权重矩阵;
- AGGREGATE 采用均值聚合函数(mean aggregator);
- σ \sigma σ为激活函数(如 PReLU)。
✅ 协同效应:将 GAT 的注意力机制 与 GraphSAGE 的归纳式聚合能力 相结合,显著增强了模型对多样化图结构的感知能力,有效融合了节点连接拓扑与内容语义。
3) 集成决策池化模块(IDP)
现有图池化方法(如 Max Pooling、Average Pooling、TopK Pooling)通常通过选择部分节点来降低计算开销,但会导致信息丢失。考虑到流交互图节点数量有限且每条流均具判别价值,我们设计了 集成决策池化(Integrated Decision Pooling, IDP)模块,确保所有节点信息均被纳入图级表示。
IDP 模块包含两个关键步骤:
① MLP 特征变换
给定节点特征矩阵 H l \mathbf{H}^l Hl,通过一个三层多层感知机(MLP)进行非线性变换:
H l + 1 = Dropout ( PReLU ( W l H l ) ) (8) \mathbf{H}^{l+1} = \text{Dropout}\left( \text{PReLU} \left( \mathbf{W}_l \mathbf{H}^l \right) \right) \tag{8} Hl+1=Dropout(PReLU(WlHl))(8)
该过程迭代三次,逐步提炼高阶节点表征。
② 全局均值池化(Global Mean Pooling)
对 MLP 输出的所有节点嵌入进行全局均值聚合,生成统一的图级向量:
z G = 1 ∣ V ∣ ∑ v ∈ V h v \mathbf{z}_G = \frac{1}{|V|} \sum_{v \in V} \mathbf{h}_v zG=∣V∣1v∈V∑hv
✅ 设计亮点:IDP 避免了传统池化的信息筛选损失,在小规模图场景下实现信息无损压缩,从而生成更鲁棒、更具判别力的图级表示,显著提升分类性能。
综上,FlowMiner 通过 “注意力引导 + 归纳聚合 + 无损池化” 的三重机制,构建了一个兼顾局部细节与全局语义的端到端图学习框架,为加密流量分类任务提供了强大而灵活的建模范式。
IV. 实验
本节通过一系列实验,全面验证 FlowMiner 在多种加密流量分类任务中的适用性与性能表现。具体围绕以下四个研究问题展开:
- RQ1:FlowMiner 在各类任务中的整体性能如何?
- RQ2:所提出的每个新组件(如交叉特征、IDP 池化等)是否有效?
- RQ3:超参数变化对 FlowMiner 性能有何影响?
- RQ4:FlowMiner 的模型复杂度与计算开销如何?
A. 实验设置
1) 数据集配置
为全面评估 FlowMiner 的泛化能力,我们从五类典型加密流量分类任务中选取了八个公开数据集,具体如下:
- 任务1:加密应用分类
基于 CSTNET 数据集[3],使用 TLS 1.3 协议下的流量,对来自 Alexa Top-5000 的 120 种应用进行分类。 - 任务2:VPN 流量分类
采用广泛使用的 ISCX VPN-nonVPN 数据集[10],将其划分为 ISCX-VPN 与 ISCX-nonVPN 两个子集,各含5类应用。 - 任务3:Tor 流量分类
利用 ISCX Tor-nonTor 数据集[11],构建 ISCX-Tor 和 ISCX-nonTor 子集,每类包含8种流量,用于评估模型在匿名网络环境下的分类能力。 - 任务4:抗审查代理流量分类
基于 LFETT2021 数据集[12],涵盖 Vmess 与 **ShadowsocksR **(SSR) 两类主流抗审查代理协议。- LFETT2021-Vmess:71 类
- LFETT2021-SSR:65 类
- 任务5:加密恶意流量分类
使用 USTC-TFC 数据集[13],包含 10 类良性流量 与 10 类恶意流量,旨在在全加密场景下识别并阻断恶意活动。
✅ 覆盖全面:上述任务涵盖了应用识别、隐私通信、恶意行为检测等核心安全场景,充分验证模型的通用性与鲁棒性。
2) 数据预处理
为确保输入数据质量,我们执行以下标准化流程:
- 标签编码:将非数值型类别标签转换为模型可识别的整数编码;
- 缺失值填充:对数值型特征列,采用列均值插补法填补缺失值;
- 特征归一化:使用 Min-Max 归一化将所有数值特征缩放到 [ 0 , 1 ] [0, 1] [0,1]区间,消除量纲差异对模型预测的偏置影响;
- 类别过滤:对于样本量过少、无法构建有效图结构的类别,予以剔除,以保障训练稳定性。
该预处理流程确保了数据的完整性、一致性与可学习性,为后续建模奠定坚实基础。
3) 实现细节
- 训练配置:
- 批大小(batch size):64
- 优化器:Adam,学习率 1 × 10 − 3 1 \times 10^{-3} 1×10−3
- 最大训练轮次(epoch):500
- 数据划分比例:训练:验证:测试 = 8:1:1
- 针对类别不平衡问题,采用分层采样(stratified sampling)
- 技术栈:
- 流特征提取:基于 NFStream 与 DPKT 库
- 图神经网络实现:基于 PyTorch Geometric 2.0.4
- 实验重复性:每项实验独立运行10次,报告平均结果以确保统计可靠性。
4) 评估指标
我们采用以下四项标准指标进行评估,并对后三项使用 Macro 平均(macro-average)以公平对待每一类:
- 准确率(Accuracy, AC):
AC = TP + TN TP + TN + FP + FN \text{AC} = \frac{\text{TP} + \text{TN}}{\text{TP} + \text{TN} + \text{FP} + \text{FN}} AC=TP+TN+FP+FNTP+TN - 精确率(Precision, PR):
PR = TP TP + FP \text{PR} = \frac{\text{TP}}{\text{TP} + \text{FP}} PR=TP+FPTP - 召回率(Recall, RE):
RE = TP TP + FN \text{RE} = \frac{\text{TP}}{\text{TP} + \text{FN}} RE=TP+FNTP - F1 分数(F1-Score):
F1 = 2 × PR × RE PR + RE \text{F1} = 2 \times \frac{\text{PR} \times \text{RE}}{\text{PR} + \text{RE}} F1=2×PR+REPR×RE
其中,Macro 平均定义为:
Macro-Metric = 1 N ∑ i = 1 N Metric i \text{Macro-Metric} = \frac{1}{N} \sum_{i=1}^{N} \text{Metric}_i Macro-Metric=N1i=1∑NMetrici
N N N为类别总数。该方式确保少数类与多数类贡献相等,有效缓解类别不平衡带来的评估偏差。
此实验设计覆盖多任务、多协议、多场景,并通过严谨的预处理、训练策略与评估标准,全面、公正地验证 FlowMiner 的有效性与先进性。后续结果分析将围绕 RQ1–RQ4 逐一展开。
B. 对比实验(RQ1)
为全面评估 FlowMiner 的性能,我们在多个数据集上与当前最先进的方法(SOTA)进行了对比,涵盖以下三类模型:
- 传统机器学习方法:
- CUMUL [15]、BIND [14]
- 深度学习方法:
- FS-Net [16]、ET-BERT [3]
- 基于图的深度学习方法:
- GraphDApp [17]、TFE-GNN [2]
[14] K. Al-Naami, S. Chandra, A. M. Mustafa, et al., “Adaptive encrypted traffic fingerprinting with bi-directional dependence,” Proceedings of the 32nd Annual Conference on Computer Security Applications, 2016.
[15] A. Panchenko, F. Lanze, A. Zinnen, et al., “Website fingerprinting at internet scale,” in *Annual Network and *Distributed System Security Symposium, 2016.
[16] C. Liu, L. He, G. Xiong, Z. Cao, and Z. Li, “Fs-net: A flow sequence network for encrypted traffic classification,” IEEE INFOCOM 2019 - IEEE Conference onComputer Communications, pp. 1171–1179, 2019.
[3] X. Lin, G. Xiong, G. Gou, Z. Li, J. Shi, and J. Yu, “Et-bert: A contextualized datagram representation with pre-training transformers for encrypted traffic classification,” in The Web Conference, 2022, pp. 633–642.
[17] M. Shen, J. Zhang, L. Zhu, K. Xu, and X. Du, “Accurate decentralized application identification via encrypted traffic analysis using graph neural networks,” IEEETransactions on Information Forensics and Security, vol. 16, pp. 2367–2380, 2021.
[2] H. Zhang, L. Yu, X. Xiao, et al., “Tfe-gnn: A temporal fusion encoder using graph neural networks for fine-grained encrypted traffic classification,” Proceedings ofthe ACM Web Conference 2023, 2023.
[18] A. Lichy, O. Bader, R. Dubin, A. Dvir, and C. Hajaj, “When a rf beats a cnn and gru, together - a comparison of deep learning and classical machine learning approaches for encrypted malware traffic classification,” Comput. Secur., vol. 124, p. 103 000, 2022.
此外,鉴于树模型在表格型流量特征上表现优异 [18],我们还构建了三个基于 随机森林(Random Forest, RF)的强基线:
- RF-AF(All Features):使用本文提出的全部初始节点特征;
- RF-TF(Traditional Features):仅使用传统时空特征(包长、时序、内容);
- RF-TBF(Traditional + Byte Features):结合传统特征与字节特征。
所有机器学习方法均采用 LightGBM [19] 进行特征学习与分类。
尽管 FlowMiner 执行的是图级分类任务(即整张图共享一个标签),但因图由同类别流构成,其结果可公平地与流级分类方法进行比较。
表 I 与表 II 展示了实验结果,从中可得出以下关键结论:
- ✅ FlowMiner 在几乎所有任务中均取得最优性能,展现出卓越的泛化能力与鲁棒性。即使在个别任务中未达第一,其结果也非常接近最优值。
- ✅ FlowMiner 的综合性能显著优于其他模型。多数现有方法仅在部分数据集上表现良好,但在其他任务上性能急剧下降(如 FS-Net)。这主要源于它们缺乏对流交互图结构信息的建模能力。
- ✅ 在高混淆场景下优势尤为突出:
- ISCX Tor 与 LFETT2021-Vmess 数据集因采用强伪装与混淆技术,导致多数基线模型性能普遍较差;
- 而 FlowMiner 凭借强大的流关联分析机制,在这些复杂任务中显著领先——F1 分数较最佳基线提升 5.94% 至 86.29%,证明其对混淆/伪装流量具有更强的编码与判别能力。
- 🔍 VPN 流量特征反而更“清晰”:
与抗审查代理不同,VPN 通常不引入复杂混淆机制。因此,在 ISCX VPN/nonVPN 数据集上,多数模型表现良好,甚至优于普通非加密流量,说明其协议行为具有更强的可区分性。 - 🌲 树模型在有效特征下仍具竞争力:
与文献 [18] 一致,随机森林与 BIND 等树模型在表格特征有效时表现优异。这表明:当手工设计的统计特征足够强时,简单模型亦可取得良好效果——但其泛化能力仍受限于特征表达的完备性。
C. 消融实验(RQ2)
受篇幅限制,我们在 ISCX VPN 与 ISCX Tor 数据集上对 FlowMiner 进行消融研究,以评估各模块贡献。
我们分别移除以下三个核心组件进行实验:
- 字节特征(Byte Features, BF)
- 交叉特征(Cross Features, CF)
- 集成决策池化模块(IDP)
表 III 结果显示:
- 移除 CF 后,F1 分数下降 5.25%–27.82%;
- 移除 BF 后,F1 下降 1.58%–6.00%;
- 移除 IDP 后,F1 下降 1.58%–8.34%。
✅ 关键发现:交叉特征(CF)对性能影响最大,说明高阶特征交互对复杂流量建模至关重要;字节特征(BF)虽下降幅度略小,但仍是基础判别信号;IDP 池化模块有效保留全局信息,避免传统池化的信息损失。
此外,我们固定输入特征不变,仅替换 GNN 主干结构(GAT [20]、GraphSAGE [21]、GCN [22]、SGC [23]),结果如图 4 所示:
- 所有 GNN 变体均具备一定分类能力;
- 但 FlowMiner(GAT + GraphSAGE + IDP)在两个数据集上测试准确率均超过 98%,显著优于单一 GNN 架构。
具体提升如下:
- ISCX VPN 数据集:F1 分数分别高出其他 GNN 模型 0.6%、0.38%、2.89%、0.83%;
- ISCX Tor 数据集:提升更为显著,分别高出 8.96%、4.29%、6.57%、10.60%。
✅ 结论:多 GNN 架构的协同设计(注意力 + 归纳聚合)显著增强了模型对流量交互语义的捕捉能力,是 FlowMiner 性能领先的关键因素之一。
综上,对比实验与消融研究共同验证了:FlowMiner 不仅整体性能领先,其每一项创新设计(特征、图结构、池化机制)均对最终效果有实质性贡献,尤其在高混淆、强加密、多协议等挑战性场景下优势显著。
D. 模型敏感性分析(RQ3)
最大期望节点数(maximum expected node number)是 FlowMiner 的核心超参数,直接决定所生成图的规模。为评估其影响,我们在 ISCX VPN 与 ISCX Tor 数据集上进行了敏感性实验。
如图5所示:
- 在 ISCX Tor 数据集上,当节点数从 100 增至 1000 时,各项评估指标仅出现微小波动,表明模型对此参数具有较强鲁棒性;
- 而在 VPN 数据集上,性能波动更为明显。这可能是因为:随着图规模扩大,VPN 流量的行为模式趋于多样化与不规则化,增加了分类难度。
✅ 总体结论:该参数对模型性能的影响有限——所有指标下降幅度仅为 4.00%–7.25%。
为平衡性能与计算效率,我们默认将最大节点数设为 500。该设置不仅提供足够的缓冲以抵抗数据噪声,还保障了模型的稳定性与泛化能力。
在实际应用中,可根据数据集规模灵活调整此参数。
E. 模型复杂度分析(RQ4)
为全面评估 FlowMiner 的效率,我们计算了所有深度学习模型的浮点运算量(FLOPs)与模型大小,并汇总其在全部数据集上的平均 F1 分数。
表 IV 结果表明:
- FlowMiner 不仅精度更高,且在训练与推理成本上具有显著优势;
- 由于采用 GNN 学习节点交互的权重系数,其对数据量的依赖远低于传统序列模型;
- 尽管 GraphDApp 模型极轻量,但因图构建方式欠优,其性能显著落后于其他方法。
🔑 可扩展性优势:
与数据包数量不同,网络流数量并不随流量总量线性增长。这意味着在大规模网络环境中,FlowMiner 具有天然的可扩展性优势。
通过调节“最大期望节点数”,可灵活控制处理粒度,使模型无缝适配从小型局域网到骨干网出口的各类场景,展现出突出的工程实用价值。
V. 真实世界部署评估
尽管实验室评估充分,但真实加密流量分类面临“真值获取难” 的挑战。为此,我们聚焦恶意流量检测任务,以专家维护的 Emerging Threat Ruleset (ET Ruleset) 作为权威真值标准,开展两项贴近实战的测试。
(1)实验设置
我们与一家ISP 厂商合作,在其 40Gbps 出口节点部署测试系统:
- RealWorld1:
- 恶意流量:从 ANY.RUN 沙箱(基于 APT 关键词检索)及 malware-traffic.net(2013–2023)人工筛选;
- 白流量:ISP 出口背景流量(经 ET Ruleset 过滤非恶意部分);
- 规模:1,354,560 条流(含 284,450 条恶意流)。
- RealWorld2:
- 恶意流量:由部署 Suricata + ET Ruleset 引擎实时捕获;
- 白流量:同期 ISP 背景流量;
- 规模:1,093,884 条流(含 23,774 条恶意流)。
两场景均仅使用 1% 数据训练(训练:测试 = 1:99),模拟极端小样本真实部署条件。
对比模型选用综合表现最佳的基线 BIND。
(2)结果对比
| 场景 | 模型 | Recall | Precision | F1 Score |
|---|---|---|---|---|
| RealWorld1 | BIND | 87.57% | 97.59% | 91.75% |
| FlowMiner | 98.56% | 99.16% | 98.85% | |
| RealWorld2 | BIND | 50.00% | 49.88% | 49.94% |
| FlowMiner | 82.40% | 95.70% | 87.87% |
✅ 关键发现:RealWorld2 性能普遍低于 RealWorld1:因其恶意流量来自真实网络环境,良性流量分布高度随机,导致良恶行为边界模糊,分类难度剧增——这正是多数 SOTA 模型在现实场景中失效的核心原因;FlowMiner 在两个极端场景下均保持 >95% 精确率,证明其通过流关联挖掘获得的强泛化能力与鲁棒性。
案例分析:为何 FlowMiner 更有效?
我们利用 ET Ruleset 的攻击语义解释能力,对检测结果进行回溯分析(同一告警可能由多条流触发,案例中已聚合):
- 攻击案例 1:
攻击者利用 Log4j 漏洞(Alert ID: 2034674)控制系统 → 植入 WaterTiger 恶意软件(2821183)→ 使用 RisePro 窃取数据(2034674)。 - 攻击案例 2:
通过 SQL 注入(多个 Alert ID)获取数据库信息 → 执行 PHP/Base64 远程代码(2025801/2025806)→ 建立 反向 Shell 控制服务器(2044751)。
🔍 FlowMiner 的优势体现:
模型能自动将分散在多条流中的关联恶意行为聚合成一张流交互图,并通过 GNN 对整体图结构进行联合评估,从而精准识别多阶段攻击链。
相比之下,ET Ruleset 依赖专家逐条编写规则,而 FlowMiner 无需预定义攻击步骤,即可端到端地完成高精度威胁评估。
总结:FlowMiner 不仅在理论指标上领先,在真实高噪声、小样本、强混淆的网络环境中仍保持卓越性能,验证了其从“实验室创新”到“工业落地”的可行性与先进性。
VI. 相关工作
(1)深度学习方法
传统机器学习方法通常依赖专家经验手工筛选流量特征 [24]。随着深度学习的发展,研究者开始利用其强大的自动特征提取能力来缓解这一问题 [25]。例如:
- Xie 等人 [26] 提取数据包头部字节,结合自注意力机制实现高精度分类;
- Xie 等人 [1] 构建了时空序列特征模型以建模流量动态;
- Liu 等人 [16] 设计了编解码器结构,通过重建任务学习流量表征;
- Lin 等人 [3] 提出 ET-BERT——一种基于 BERT 的流量预训练模型,通过对突发级(burst-level)流量掩码进行预训练,并在下游任务中微调完成分类。
⚠️ 局限性:现有深度学习方法多采用单一流级别分析,无法建模流与流之间的关联关系,且往往仅在特定任务上表现良好,泛化能力受限。
[26] G. Xie, Q. Li, and Y. Jiang, “Self-attentive deep learning method for online traffic classification and its inter-pretability,” Computer Networks, vol. 196, p. 108 267, 2021.
[1] J. Xie, S. Li, X.-c. Yun, Y. Zhang, and P. Chang, “Hstf-model: An http-based trojan detection model via the hierarchical spatio-temporal features of traffics,” Comput. Secur., vol. 96, p. 101 923, 2020.
[16] C. Liu, L. He, G. Xiong, Z. Cao, and Z. Li, “Fs-net: A flow sequence network for encrypted traffic classification,” IEEE INFOCOM 2019 - IEEE Conference onComputer Communications, pp. 1171–1179, 2019.
[3] X. Lin, G. Xiong, G. Gou, Z. Li, J. Shi, and J. Yu, “Et-bert: A contextualized datagram representation with pre-training transformers for encrypted traffic classification,” in The Web Conference, 2022, pp. 633–642.
(2)图深度学习方法
图神经网络(GNN)作为处理图结构数据的有效工具,已逐步应用于网络安全领域:
- Pham 等人 [6] 仅基于流间时序相关性构建流量图,易受并发流噪声干扰;
- Shen 等人 [17] 利用数据包长度构建“流量交互图”;
- Zhang 等人 [2] 通过流量字节相关性构造图结构。
⚠️ 共性缺陷:这些方法仅利用部分流量信息,未充分挖掘主机间跨流的深层交互语义,导致其在多样化任务中适应性不足。
[6] T.-D. Pham, T.-L. Ho, T. T. Huu, T.-D. Cao, and H. L. Truong, “Mappgraph: Mobile-app classification on encrypted network traffic using deep graph convolution neural networks,” Annual Computer SecurityApplications Conference, 2021.
[17] M. Shen, J. Zhang, L. Zhu, K. Xu, and X. Du, “Accurate decentralized application identification via encrypted traffic analysis using graph neural networks,” IEEETransactions on Information Forensics and Security, vol. 16, pp. 2367–2380, 2021.
[2] H. Zhang, L. Yu, X. Xiao, et al., “Tfe-gnn: A temporal fusion encoder using graph neural networks for fine-grained encrypted traffic classification,” Proceedings ofthe ACM Web Conference 2023, 2023.
✅ 本文贡献:为增强模型对流样本间关联关系的挖掘能力,我们提出 FlowMiner。该方法巧妙融合多维异构特征,并通过 GNN 在图特征空间中精准识别加密流量,显著提升泛化性能。
VII. 讨论
尽管 FlowMiner 表现优异,但仍存在以下局限性与改进方向:
- 包级行为建模不足:
当前模型将单条流内的数据包行为压缩为统计特征(如均值、方差等),不可避免地造成信息损失。未来可探索使用 GNN 直接建模原始包序列(如包长分布模式),以捕获更精细的时序动态。 - 同质图假设的限制:
FlowMiner 采用同质图分类框架,将所有节点视为同一类型。然而,在跨粒度关联分析(如包级节点与流级节点交互)场景中,异质图神经网络(Heterogeneous GNN)可能更合适,能显式区分不同语义层级的实体。 - 监督学习范式的约束:
本文采用全监督训练,但现实中可获取大量无标签流量数据。未来可结合图预训练技术 [27],利用自监督或对比学习从无标签数据中学习通用流量表示,进一步提升模型在小样本或新协议场景下的适应能力。
VIII. 结论
本文提出了 FlowMiner——一种基于流关系挖掘的加密流量分类模型。通过提取多维流特征、构建流交互图,并利用图神经网络进行联合学习,FlowMiner 在多个公开数据集和真实网络环境中均显著优于当前最先进方法(SOTA),展现出卓越的有效性、鲁棒性与泛化能力。
更重要的是,FlowMiner 不依赖协议解析或明文内容,而是通过隐式关联建模揭示流量背后的交互逻辑,为加密流量分析提供了新范式。其在抗混淆代理、Tor、APT 攻击链检测等高挑战场景中的成功应用,验证了该方法在实际网络安全防御体系中的巨大潜力。