大家读完觉得有帮助记得关注和点赞摘要近年来诸如数据包长度之类的序列特征因其在加密流量分析中的核心作用而受到广泛关注。现有的序列建模方法大致可分为流级flow-level和轨迹级trace-level方法前者存在高特征冗余的问题限制了其判别能力而后者保留了完整信息但产生了巨大的计算和存储开销。为解决这些局限性我们提出了上下行流序列Up-Down Flow Sequence, UDFS表示方法它将整个轨迹压缩成一个二维序列并通过聚合每个流的上下行流量来表征该流从而在降低复杂性的同时保持高判别力。此外为解决类特定判别力差异的挑战我们提出了一种自适应阈值机制能动态调整训练权重和拒绝边界从而增强模型的分类性能。实验结果表明所提出的方法在粗粒度和细粒度数据集上以及在概念漂移和开放世界场景下均实现了卓越的分类性能和鲁棒性。索引术语— 加密流量分类序列特征概念漂移开放世界1 引言在加密流量分析中尽管数据包有效载荷无法访问但诸如数据包长度和方向之类的序列特征仍然编码了丰富的行为模式。这些特征使得无需解密即可实现高精度的应用分类和行为识别因此已被广泛采用[1, 2]。现有的序列特征建模方法通常可分为两种类型流级方法和轨迹级方法。流级方法如 AppScanner [3]、FlowPrint [4]、FS-Net [5]、GGFAST [6] 和 FlowPic [7]将单个流视为分析的基本单元。尽管它们产生的计算开销相对较低但流间特征模式的高度冗余通常限制了它们的判别能力。如图 1a 所示来自不同 GitHub 代码库的流级数据包长度序列表现出显著的重叠。相比之下轨迹级方法如 Deep Fingerprinting [8]、TSHC-SW [9] 和 Qu 等人[10]聚合多个流或整个轨迹以捕获更全面的行为特征从而实现更高的识别准确率。然而完整轨迹的长度以及相关的计算和存储负担限制了它们在大规模场景中的适用性如图 1b 所示。此外诸如 ET-BERT [11]、ASNet [12] 和 YATC [13] 等研究也探索了数据包级特征它们利用流量的原始字节作为输入特征。尽管有其潜力但这些方法容易过拟合并带来显著的计算开销[14, 15]。(图1: 流序列杰卡德相似度10个GitHub代码库和轨迹序列长度分布10,000个网站)(a) 流序列中的高冗余度(b) 长轨迹序列为应对上述挑战我们提出了一种高效的加密流量表示方法称为上下行流序列UDFS。其核心思想是将整个轨迹压缩成一个二维序列通过聚合每个流的上下行流量来表示该流从而显著降低计算复杂度的同时保留判别信息。此外我们设计了一种自适应阈值机制根据每个类别的识别难度动态调整训练权重和拒绝边界从而增强模型的分类能力。实验结果表明所提出的方法在粗粒度和细粒度数据集上以及在概念漂移和开放世界场景下均实现了卓越的分类性能和鲁棒性。这项工作的主要贡献如下❶ 高效的加密流量表示UDFS每个流由其上下行流量的聚合值表示将整个轨迹压缩成一个二维序列从而有效降低计算和存储开销。❷ 自适应阈值训练与评估机制增强了模型在处理具有不同判别力水平的类别时的识别能力。❸ 广泛的实验验证所提出的方法在粗粒度和细粒度数据集上以及在概念漂移和开放世界场景下均展现出卓越的分类性能。2 方法论如图 2 所示提出的加密流量识别框架由三个核心组件组成。首先原始流量被转换为高效的 UDFS 表示这显著压缩了轨迹同时降低了计算和存储开销。其次采用基于 Transformer 的特征提取器来捕获序列中的深层行为模式并生成判别性表示。最后我们结合了一种开放集识别机制该机制将自适应原型学习与动态阈值设置相结合从而增强了模型识别未知应用的能力并提高了在开放世界环境中的鲁棒性。(图2: 提出的框架概述)2.1 UDFS 表示为在降低数据处理复杂性的同时保留关键信息我们设计了 UDFS 表示。UDFS 的目标是将轨迹级方法的细粒度与流级方法的效率结合起来。其核心思想是将一个完整的通信轨迹 T (由 N 个双向流组成) 压缩成一个二维特征序列 S_UDFS。具体来说对于轨迹中的第 i 个流 f_i我们提取其上行和下行方向传输的总字节数形成一个二维向量因此整个轨迹可以表示为这种表示将序列长度从数万个数据包减少到仅几百个流显著降低了计算和存储开销。为缓解流量体积宽动态范围的影响我们对每个字节数 b 应用对数平滑变换计算变换后的值为 b_log log(1 b)。这使得模型能更专注于流量模式而非绝对量值。2.2 基于 Transformer 的特征提取器通过 UDFS 将流量轨迹转换为时序特征序列后我们采用一个 Transformer 编码器[16]作为核心特征提取模块以捕获序列中的长程依赖关系。具体地每个二维流向量 v_i ∈ ℝ² 首先通过一个线性嵌入层D_model 128投影到 128 维的潜在空间。为融入顺序信息将正弦位置编码添加到嵌入表示中。此外在输入序列前添加一个可学习的分类标记[CLS]作为全局摘要标记。得到的序列由四层 Transformer 编码器层N_layers 4堆栈处理每层包含多头自注意力和前馈子层。最后提取与 [CLS] 标记对应的输出表示记为 h ∈ ℝ¹²⁸作为整个轨迹的聚合特征向量用于后续分类任务。2.3 自适应原型学习为获得一个类内样本紧凑、类间样本分离良好的特征空间我们设计了一种自适应原型学习策略。该策略建立在度量学习[17, 18]之上。在每个训练批次中我们为每个类别 c 计算一个原型 p_c作为该批次中属于类别 c 的所有样本特征向量的均值。然后通过最小化每个样本与其相应类原型之间的距离来制定原型损失其中 y_i 表示样本 h_i 的真实标签dist(·) 表示欧几里得距离。为增强模型对“困难”类别的关注我们引入了一种自适应加权机制。对于每个类别 c定期计算一个混淆分数 W_c D_intra(c) / (D_inter(c) ε)其中 D_intra(c) 表示平均类内距离衡量紧凑性D_inter(c) 表示到最近 K 个不同类别的平均类间距离衡量分离性。W_c 越大表示类别越容易混淆随后用于对 L_proto 中类别 c 的损失进行重新加权在训练期间将更大的梯度分配给困难类别从而提高整体判别力。2.4 自适应阈值训练与评估机制为增强模型处理具有不同判别力水平类别的适应性我们设计了一种自适应阈值训练与评估机制。在推理过程中该机制为每个已知类别 c 分配一个个性化的决策边界 θ_c从而平衡易区分和难区分类别的识别。具体地首先计算类别 c 的基础阈值 θ_c_base定义为该类别训练样本与其全局原型 _c 之间距离分布的第 p 百分位数。为了进一步考虑类别间的判别难度我们引入了一个混淆分数 S_c D_intra(c) / D_inter(c)其中 D_intra(c) 和 D_inter(c) 分别表示类内和类间距离。为了量化类别 c 的判别能力其中 D_intra 和 D_inter 分别表示类内和类间距离。基于 S_c 的 Z-score推导出一个动态调整系数其中 α 是一个超参数。这种设计对判别难度较高的类别实施更严格的阈值而对更容易区分的类别则放宽阈值。最终的自适应阈值由下式给出在推理过程中给定一个表征为 h_test 的测试样本我们首先识别其最近的原型类别。并计算最小距离 d_min。预测规则定义如下这种自适应阈值机制不仅提高了不同类别间的判别力而且还固有地提供了拒绝未知流量的能力从而平衡了分类性能与开放集识别。3 实验这些实验旨在全面评估所提出方法在不同粒度分类任务、概念漂移条件下以及开放世界设置中识别网站的能力。3.1 实验设置现有公开数据集通常在协议上过时[14]场景有限并且通常缺乏完整的单次访问流量。为解决这些局限性我们构建了六个总大小约为 119.5 GB 的数据集。主要包括细粒度的 GitHub 数据集10 个具有相似交互模式的代码库和粗粒度的百度数据集20 个具有不同流量模式的网站例如 baidu.com 和 weibo.com。为全面评估模型性能我们设计了两种具有挑战性的场景概念漂移Concept Drift在同一组应用上于不同时间段收集的数据进行训练和测试以评估时间鲁棒性开放世界Open-World模型在已知类别上训练并在包含许多未知类别例如约 10,000 个未见过的网站混入百度测试集90 个未见过的代码库包含在 GitHub 测试集中的流量池中进行评估。我们将所提出的方法与七种代表不同技术途径的基线模型进行比较基于原始字节特征的数据包级方法ET-BERT [11], TrafficFormer [19]利用单流统计和序列特征的流级方法AppScanner [3], FlowPrint [4], FS-Net [5]将多个流或整个轨迹作为输入的轨迹级方法Deep Fingerprinting (DF) [8], TraceClassifier [10]。使用准确率ACC、精确率、召回率和 F1分数评估性能。所有指标均使用宏平均计算以减轻类别不平衡的影响。表1: 所提方法与基线模型在GitHub和Baidu数据集上的闭集性能比较包括标准场景和概念漂移场景。方法Github ACC/Precision/Recall/F1Github (概念漂移) ACC/Precision/Recall/F1Baidu ACC/Precision/Recall/F1Baidu (概念漂移) ACC/Precision/Recall/F1AppScanner32.44/34.57/32.19/32.4324.66/44.39/22.54/23.7869.98/78.26/70.71/72.3463.66/71.71/63.96/65.07FlowPrint30.07/11.45/27.66/15.76.15/1.68/6.37/2.6495.12/91.12/94.59/91.1697.62/97.37/96.75/96.98FS-Net16.01/20.37/14.8/13.6615.2/12.3/14.23/11.6792.26/93.14/91.56/92.1790.88/91.81/89.83/90.52DF66/74/66/65.3239.3/53.79/39.3/35.8597.96/98.33/98/98.0197.1/97.29/97.1/97.07TraceClassifier96/96.42/96/95.9876.37/81.25/76.69/75.48100/100/100/10098/98.07/98/97.97ET-BERT99.77/99.73/99.73/99.739.19/9.59/9.4/8.5896.47/95.14/95.29/95.248.15/44.66/44.56/42.7TrafficFormer11.43/1.14/10/2.0514.31/1.43/10/2.580.49/85.85/79.26/80.471.09/74/67.18/68.27Ours98.00/98.18/98.00/97.9997.56/97.65/97.54/97.63100/100/100/10099.85/99.85/99.85/99.853.2 闭集性能如表 1 所示所提出的方法在标准闭集分类任务中表现出卓越的性能。在百度数据集上达到了 100% 的准确率。在更具挑战性的 GitHub 数据集上获得了 98.0% 的 F1分数与 ET-BERT 相当并显著优于其他流级和轨迹级方法。结论 1提出的 UDFS 表示法成功保留了区分相似应用所需的关键信息同时显著降低了数据复杂性从而以轻量级的计算成本实现了与重量级方法相媲美的分类准确率。3.3 概念漂移性能如表 1 所示在模拟流量模式时间变化的概念漂移测试中大多数基线模型——尤其是在标准测试中表现最好的 ET-BERT——性能急剧下降揭示了严重的过拟合问题。相比之下我们的方法表现出显著的鲁棒性将 F1分数保持在非常高的水平分别为 97.6% 和 99.85%比性能最佳的基线平均提高了 15.6%。结论 2UDFS 捕获了更稳定的宏观流模式而自适应原型学习构建了一个泛化的特征空间共同赋予该方法强大的概念漂移抵抗能力。表2: 开放世界设置下的性能比较。方法Baidu Dataset (Open-World) ACC/Precision/Recall/F1GitHub Dataset (Open-World) ACC/Precision/Recall/F1FlowPrint17.47/30.50/92.71/41.731.06/0.23/9.13/0.25AppScanner81.17/91.34/45.48/58.310.19/43.00/1.55/2.77Ours95.26/88.09/85.12/85.6475.46/44.94/92.67/54.853.4 开放世界性能如表 2 所示在实际最相关的开放世界识别任务中支持开放世界评估的基线模型几乎失败尤其是在 GitHub 数据集上它们的 F1分数接近零。相比之下我们的方法始终取得最高的 F1性能。结论 3我们的方法首先通过自适应原型学习紧密聚集已知类别然后采用动态阈值策略为每个类别建立个体化的决策边界有效增强了该方法在开放世界中的适用性。4 结论本文提出了一种高效的表示方法称为 UDFS它将整个通信轨迹压缩成一个紧凑的二维流序列。这种设计显著降低了计算和存储开销同时保留了关键的判别信息。此外我们开发了一种自适应阈值机制来增强模型的分类能力。实验结果表明所提出的方法在多种挑战性场景下包括细粒度分类、概念漂移和开放世界设置均实现了卓越的性能和鲁棒性