ARTICLE DETAIL

资讯详情

深耕网站视觉设计与运营推广的一线实战洞察。

TrafficGPT:利用大语言模型实现开放集加密流量分类

TrafficGPT:利用大语言模型实现开放集加密流量分类 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 AYouTube Video BYouTube 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 PreprocessingGPT-2 Feature ExtractionOpen-set Classification3. 第一步把网络流量转换成 GPT-2 可以理解的形式这是 TrafficGPT 中非常重要的一部分。GPT-2 原本是针对自然语言训练的它使用 Byte Pair EncodingBPE进行 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 方法OpenMaxOpenMax 使用 Extreme Value TheoryEVT分析样本与已知类别分布之间的关系。如果一个样本与所有已知类别都不匹配那么它可以被判断为 open-set。Background Class将所有未知流量统一作为一个Background类别。因此如果模型有 N 个已知类别最终就变成N 1 classes不过这种方法需要在训练过程中提供一些未知流量作为 Background Class。k-LNDk-LND 根据已知类别的 Mean Activation VectorMAV以及样本与类别之间的距离判断一个样本是否属于未知类别。论文测试了k-LND1k-LND2k-LND3三种形式。7. 实验使用了哪些数据集为了验证 TrafficGPT 的泛化能力论文使用了五个公开的加密网络流量数据集数据集类型主要内容AWFWebsiteTor 网站访问流量DFWebsiteTor 网站访问流量DCVideoYouTube 视频流量CSTNET-TLS1.3WebsiteTLS 1.3 加密网站流量USTC-TFCWeb 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。在不同数据集上的平均提升为AWF36.5%DF22.6%USTC4.4%DC6.6%不过 CSTNET 是一个例外。在 CSTNET 数据集上ET-BERT 的性能高于 GPT-2论文将这一现象与 ET-BERT 本身就是针对该数据集进行预训练有关。因此这个实验说明一个非常有意思的现象一个原本针对自然语言训练的通用语言模型在经过少量针对网络流量的 fine-tuning 后也可以学习有效的 encrypted traffic representations。9. GPT-2 与 CNN 的比较论文还将 TrafficGPT 与传统 CNN-based feature extraction 方法进行了比较。结果显示AWFTrafficGPT 在 k-LND2 和 k-LND3 上比 CNN 方法提升约33.2%。DCTrafficGPT 在不同 k-LND 方法下比 CNN 提升约22.3%。DFTrafficGPT 与 CNN 的表现总体比较接近。因此论文认为 GPT-2 在很多情况下能够从网络流量中提取更加全面的特征。10. 一个非常重要的发现Preprocessing 本身非常重要TrafficGPT 的实验还说明模型架构并不是唯一决定性能的因素数据如何转换同样非常重要。尤其是在 DC 数据集上论文设计的特殊 preprocessing 方法带来了明显提升。对于 GPT-2Closed-set accuracy 平均提高4.5%Open-set accuracy 平均提高103.7%对于 ET-BERTClosed-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 页面GitHubTrafficGPT 官方代码仓库TrafficGPT GitHub Repository论文中也明确给出了该 GitHub 地址。
返回列表