TrafficGPT:利用大语言模型实现开放集加密流量分类
随着 HTTPS、TLS 等加密技术的广泛应用,网络通信内容越来越难以被直接观察。然而,加密并不意味着网络流量完全不可分析。即使无法看到通信的具体内容,攻击者或网络监控系统仍然可以利用数据包大小、传输方向、时间序列以及流量模式等统计特征,对加密流量背后的应用、网站甚至视频内容进行推断。
这类技术通常被称为Encrypted Traffic Analysis(加密流量分析)。
在这项工作中,我们提出了TrafficGPT,一种利用 GPT-2 大语言模型(LLM)提取加密网络流量特征的方法。与传统的 CNN 或专门针对网络流量设计的 Transformer 模型不同,TrafficGPT 探索了一个新的方向:
能否将原本用于自然语言处理的 GPT-2,应用于加密网络流量这种序列数据,并利用其上下文建模能力提升开放集分类性能?
实验结果表明,答案是肯定的。TrafficGPT 在多个公开加密流量数据集上表现出较好的开放集分类能力,并在整体实验中优于 ET-BERT 和 CNN-based 方法。论文报告的总体结果显示,GPT-2 特征提取相较 ET-BERT 和 CNN 方法分别带来了12.7% 和 13.7% 的性能提升。
1. 为什么需要开放集加密流量分类?
传统的机器学习分类器通常假设训练阶段已经知道所有可能出现的类别。
例如,一个系统可能训练:
YouTube Video A
YouTube Video B
YouTube Video C
那么当模型遇到 Video A、B、C 时,可以正常进行分类。
但现实网络环境远比这复杂。
用户可能访问成千上万个网站、使用不同应用程序或者观看大量不同的视频。因此,实际部署的系统很可能会遇到训练阶段从未见过的流量类别。
这就是所谓的:
Closed-set Classification
模型假设测试数据只来自训练过程中已经出现的类别。
而:
Open-set Classification
要求模型不仅能够识别已知类别,还能够识别:
“这个样本不属于我认识的任何类别。”
论文使用了一个视频监控场景来说明这一问题。
假设网络管理员只希望识别某些特定的视频。如果采用传统 closed-set 分类器,那么一个没有出现在训练集中的普通视频,也可能被错误地分类为某个目标视频。
因此,一个真正实用的系统应该能够:
已知流量 → 识别具体类别
未知流量 → 拒绝分类 / Open-set
论文指出,传统方法通常通过增加 Background Class、使用二分类器或者对模型置信度设置阈值来解决这一问题,但这些方法都有明显限制。
2. TrafficGPT 的核心思想
TrafficGPT 的核心思想其实非常直观:
把加密网络流量看成一种序列数据,然后利用 GPT-2 的上下文建模能力提取其中的特征。
网络流量本身虽然不是自然语言,但它同样具有序列结构。
例如,一个网络流可能表示为:
+1 -1 -1 +1 +1 -1 ...或者表示成十六进制序列:
8 C 0 5 5 1 C 0 2 4 ...传统 CNN 可以从这些序列中提取局部模式,而 GPT-2 则可以通过 Transformer 的 **Self-Attention(自注意力)**机制建模序列中不同位置之间的关系。
TrafficGPT 因此尝试利用 GPT-2 学习:
一个流量序列中的不同数据点之间的上下文关系。
论文将整个系统划分为三个主要阶段:
Dataset-specific Data Preprocessing
GPT-2 Feature Extraction
Open-set Classification
3. 第一步:把网络流量转换成 GPT-2 可以理解的形式
这是 TrafficGPT 中非常重要的一部分。
GPT-2 原本是针对自然语言训练的,它使用 Byte Pair Encoding(BPE)进行 Tokenization。
直接把网络流量输入 GPT-2 会产生一个问题。
例如:
52fa 52f9这两个值非常接近,但 GPT-2 原始 tokenizer 可能会把它们分成完全不同的 token。
结果就是:
相似的网络流量 → 不相似的 embedding
这会影响后续分类。
因此,TrafficGPT 对 tokenizer 输入进行了特殊处理。
论文采用的方法是:
在数字的每一个字符之间加入空格,使 GPT-2 tokenizer 对每一个数字分别进行 tokenization。
例如:
52fa转换成:
5 2 f a这样可以使相似的数字序列得到更加一致的表示。
实验显示,这一简单的 preprocessing 对性能影响非常明显。例如,在 AWF 和 CSTNET 数据集上,如果不进行这种处理,性能分别下降约14.4% 和 26.8%。
4. 针对不同数据集进行不同的预处理
TrafficGPT 并没有使用一种统一的数据编码方式,而是根据不同数据集的特点设计 preprocessing。
例如,对于 AWF 和 DF:
原始流量由:
-1, 0, +1组成。
TrafficGPT 首先将这些值转换,然后进一步转换成 hexadecimal 表示,以降低输入序列长度。
对于 CSTNET 和 USTC:
这些数据集本身已经包含 hexadecimal 流量,因此主要进行 digit-level tokenization。
而 DC 数据集更加特殊。
DC 数据集中的每个数据点表示某个时间窗口内的 packet 数量,因此它并不天然具有 GPT 模型所期望的序列形式。
论文因此将这些数值转换为 32-bit pattern,再进一步转换为 hexadecimal 序列。
这一过程说明了 TrafficGPT 的一个重要特点:
LLM 并不是直接“理解”网络数据,而是需要将网络流量重新编码成适合 Transformer 处理的序列表示。
5. 第二步:利用 GPT-2 提取流量特征
完成 preprocessing 后,TrafficGPT 使用GPT-2 Small作为 feature extractor。
具体流程是:
Encrypted Traffic ↓ Data Preprocessing ↓ Tokenization ↓ GPT-2 ↓ Context-aware Feature Vector ↓ Open-set ClassifierTrafficGPT 首先针对目标数据集对 GPT-2 进行 fine-tuning。
论文中使用2–6 个 epochs进行 fine-tuning。
之后,模型 softmax 之前的输出被提取出来,作为后续 open-set classification 使用的 feature vector。
这里最重要的一点是:
GPT-2 并不是最终的分类器。
它主要负责:
Feature Extraction
也就是说,TrafficGPT 利用 GPT-2 将原始流量转换成包含上下文信息的高维特征表示,然后再交给专门的 open-set classifier。
6. 第三步:识别“已知”还是“未知”
TrafficGPT 测试了三种 open-set classification 方法:
OpenMax
OpenMax 使用 Extreme Value Theory(EVT)分析样本与已知类别分布之间的关系。
如果一个样本与所有已知类别都不匹配,那么它可以被判断为 open-set。
Background Class
将所有未知流量统一作为一个:
Background类别。
因此,如果模型有 N 个已知类别,最终就变成:
N + 1 classes不过这种方法需要在训练过程中提供一些未知流量作为 Background Class。
k-LND
k-LND 根据已知类别的 Mean Activation Vector(MAV)以及样本与类别之间的距离判断一个样本是否属于未知类别。
论文测试了:
k-LND1
k-LND2
k-LND3
三种形式。
7. 实验使用了哪些数据集?
为了验证 TrafficGPT 的泛化能力,论文使用了五个公开的加密网络流量数据集:
| 数据集 | 类型 | 主要内容 |
|---|---|---|
| AWF | Website | Tor 网站访问流量 |
| DF | Website | Tor 网站访问流量 |
| DC | Video | YouTube 视频流量 |
| CSTNET-TLS1.3 | Website | TLS 1.3 加密网站流量 |
| USTC-TFC | Web Applications | 不同 Web 应用流量 |
其中 AWF 包含 200 个网站,DF 包含 95 个网站,CSTNET-TLS1.3 包含 120 个网站,而 USTC-TFC 包含 20 个 Web applications。
对于原本没有 open-set 数据划分的数据集,论文将约40% 的类别作为 closed-set,其余类别作为 open-set,并针对 DC 和 USTC 等类别较少的数据集使用五种随机划分来计算平均结果。
8. TrafficGPT 与 ET-BERT 的比较
论文将 TrafficGPT 与ET-BERT进行了比较。
ET-BERT 是专门针对 encrypted traffic classification 设计的 Transformer-based encoder 模型。
实验结果显示,在 25 次比较中:
其中 21 次 GPT-2 feature extraction 获得了更高的 F1 score。
在不同数据集上的平均提升为:
AWF:36.5%
DF:22.6%
USTC:4.4%
DC:6.6%
不过 CSTNET 是一个例外。
在 CSTNET 数据集上,ET-BERT 的性能高于 GPT-2,论文将这一现象与 ET-BERT 本身就是针对该数据集进行预训练有关。
因此,这个实验说明一个非常有意思的现象:
一个原本针对自然语言训练的通用语言模型,在经过少量针对网络流量的 fine-tuning 后,也可以学习有效的 encrypted traffic representations。
9. GPT-2 与 CNN 的比较
论文还将 TrafficGPT 与传统 CNN-based feature extraction 方法进行了比较。
结果显示:
AWF
TrafficGPT 在 k-LND2 和 k-LND3 上比 CNN 方法提升约33.2%。
DC
TrafficGPT 在不同 k-LND 方法下比 CNN 提升约22.3%。
DF
TrafficGPT 与 CNN 的表现总体比较接近。
因此,论文认为 GPT-2 在很多情况下能够从网络流量中提取更加全面的特征。
10. 一个非常重要的发现:Preprocessing 本身非常重要
TrafficGPT 的实验还说明:
模型架构并不是唯一决定性能的因素,数据如何转换同样非常重要。
尤其是在 DC 数据集上,论文设计的特殊 preprocessing 方法带来了明显提升。
对于 GPT-2:
Closed-set accuracy 平均提高4.5%
Open-set accuracy 平均提高103.7%
对于 ET-BERT:
Closed-set accuracy 平均提高31.4%
Open-set accuracy 平均提高150.1%
这说明,在将 LLM 应用于非文本数据时,一个关键问题是:
如何把原始数据转换成模型能够有效建模的 token sequence。
11. TrafficGPT 并不是没有局限性
论文也明确讨论了当前方法存在的问题。
其中一个主要限制来自 GPT-2 的输入长度。
GPT-2 的输入长度限制为1,024 tokens。
例如 DF 数据集中的一个 traffic trace 最初包含约 5,000 个数据点。经过 preprocessing 后仍然有约 2,500 个数字。
因此,为了适应 GPT-2 的输入限制,必须丢弃一部分数据。
论文发现,这会影响模型性能,在 DF 数据集上 CNN 因此能够取得更好的表现。
这也揭示了未来研究的一个重要方向:
如何使用更长上下文的 Transformer/LLM 来处理完整的网络流量序列。
12. 为什么 TrafficGPT 有意义?
TrafficGPT 的重要性并不只是“把 GPT-2 用在网络流量上”。
更重要的是,它展示了一种跨领域的思路:
自然语言 ↓ Transformer / LLM ↓ 学习序列中的上下文关系 ↓ 迁移到网络流量 ↓ 学习 Traffic Representation网络流量虽然不是语言,但同样具有明显的序列结构。
因此,论文提出:
如果 LLM 可以学习语言中的上下文关系,那么类似的 Transformer 架构也可能学习网络流量序列中的上下文模式。
实验结果支持了这一假设。
论文最终报告,TrafficGPT 相比 ET-BERT 和 CNN-based approaches 分别获得了12.7% 和 13.7% 的总体性能提升;同时,合适的数据预处理可以使 open-set accuracy 获得最高约103.7% 的提升。
13. 总结
TrafficGPT 将三个关键思想结合在一起:
Encrypted Traffic │ ▼ Dataset-specific Encoding │ ▼ GPT-2 Context-aware Features │ ▼ Open-set Classification │ ┌──────┴──────┐ ▼ ▼ Known Unknown Traffic Traffic它解决的核心问题是:
传统 encrypted traffic classifiers 往往假设所有测试类别都在训练阶段出现过,而真实网络环境中大量未知流量是不可避免的。
TrafficGPT 则利用 GPT-2 的 Transformer 和 self-attention 能力,从网络流量序列中学习 context-aware representations,再结合 OpenMax、Background Class 和 k-LND 等方法进行开放集识别。
这项工作也说明了一个更广泛的研究趋势:
大型语言模型的价值并不一定局限于文本。对于具有序列结构的非文本数据,经过合适的数据表示和 fine-tuning 后,LLM 也可能成为有效的通用特征提取器。
论文与代码
论文:
Yasod Ginige, Thilini Dahanayaka, and Suranga Seneviratne.
TrafficGPT: An LLM Approach for Open-Set Encrypted Traffic Classification.
AINTEC 2024. DOI: 10.1145/3674213.3674217.
论文 DOI / ACM 页面
GitHub:
TrafficGPT 官方代码仓库:
TrafficGPT GitHub Repository
论文中也明确给出了该 GitHub 地址。