YasodGinige/TrafficGPT
GitHub: YasodGinige/TrafficGPT
提出一种基于LLM的开放集加密流量分类方法,利用GPT-2增强特征提取以提升未知场景下的分类性能。
Stars: 60 | Forks: 10
## TrafficGPT: 一种基于 LLM 的开放集加密流量分类方法

[]()
**更新**
- 我们扩展了我们的工作,包括在框架和实验中分析性能提升的 LLaMA 模型。
- 新论文已被 Elsevier Computer Networks 期刊接收,可在此处找到:[这里](https://papers.ssrn.com/sol3/papers.cfm?abstract_id=5074974)。
- 扩展代码可在此处找到:[这里](https://github.com/YasodGinige/TrafficLLM)。
**注意:**
在本仓库中,我们指导您在本地环境中设置 TrafficGPT 项目并复现结果。TrafficGPT 是一种新颖的流量分析攻击,它利用流行的 LLM——GPT-2 来增强特征提取,从而提升
开放集下游分类的性能。我们使用五个现有的加密流量数据集来展示 GPT-2 特征提取如何提升流量
分析攻击在开放集上的性能。作为开放集分类方法,我们使用了 K-LND、OpenMax 和 Backgroundclass 方法,并表明 K-LND 方法整体上具有更高的性能。
**数据集:** [AWF](https://arxiv.org/abs/1708.06376)、[DF](https://arxiv.org/abs/1801.02265)、[DC](https://www.semanticscholar.org/paper/Deep-Content%3A-Unveiling-Video-Streaming-Content-Li-Huang/f9feff95bc1d68674d5db426053f417bd2c8786b)、[USTC](https://drive.google.com/file/d/1F09zxln9iFg2HWoqc6m4LKFhYK7cDQv_/view)、[CSTNet-tls](https://drive.google.com/drive/folders/1JSsYmevkxQFanoKOi_i1ooA6pH3s9sDr)
**开放集方法**
- [K-LND 方法](https://github.com/ThiliniDahanayaka/Open-Set-Traffic-Classification)
- OpenMax
- Background class
# 使用 TrafficGPT
首先,克隆 Git 仓库并安装依赖项。
```
git clone https://github.com/YasodGinige/TrafficGPT.git
cd TrafficGPT
pip install -r requirements.txt
```
接下来,下载数据集并将其放置在 data 目录中。
```
gdown https://drive.google.com/uc?id=1-MVfxyHdQeUguBmYrIIw1jhMVSqxXQgO
unzip data.zip
```
然后,预处理您想要训练和评估的数据集。可用的数据集名称包括:DF、AWF、DC、USTC 或 CSTNet。
```
python3 data_preprocess.py --data_path ./data --dataset
```
要训练模型,请为相应数据集运行合适的代码:
```
python3 train.py --max_len 1024 --batch_size 12 --epochs 3 --num_labels 60 --dataset DF
python3 train.py --max_len 1024 --batch_size 12 --epochs 3 --num_labels 200 --dataset AWF
python3 train.py --max_len 1024 --batch_size 12 --epochs 3 --num_labels 4 --dataset DC
python3 train.py --max_len 1024 --batch_size 12 --epochs 3 --num_labels 12 --dataset USTC
python3 train.py --max_len 1024 --batch_size 12 --epochs 3 --num_labels 75 --dataset CSTNet
```
要进行评估,请为相应数据集运行合适的代码:
```
python3 evaluate.py --max_len 1024 --batch_size 12 --epochs 3 --num_labels 60 --K_number 30 --TH_value 0.8 --dataset DF
python3 evaluate.py --max_len 1024 --batch_size 12 --epochs 3 --num_labels 200 --K_number 50 --TH_value 0.9 --dataset AWF
python3 evaluate.py --max_len 1024 --batch_size 12 --epochs 3 --num_labels 4 --K_number 4 --TH_value 0.9 --dataset DC
python3 evaluate.py --max_len 1024 --batch_size 12 --epochs 3 --num_labels 12 --K_number 5 --TH_value 0.8 --dataset USTC
python3 evaluate.py --max_len 1024 --batch_size 12 --epochs 5 --num_labels 75 --K_number 20 --TH_value 0.8 --dataset CSTNe
```
# 引用
如果您在本工作中使用了本研究,请引用我们的 [论文](https://dl.acm.org/doi/abs/10.1145/3674213.3674217)。
```
@inproceedings{ginige2024trafficgpt,
title={TrafficGPT: An LLM Approach for Open-Set Encrypted Traffic Classification},
author={Ginige, Yasod and Dahanayaka, Thilini and Seneviratne, Suranga},
booktitle={Proceedings of the Asian Internet Engineering Conference 2024},
pages={26--35},
year={2024}
}
```
标签:arXiv论文, C2, Caido项目解析, DLL 劫持, DNS解析, GPT-2, LLM, SSL/TLS 流量, TrafficGPT, Unmanaged PE, 凭据扫描, 加密流量分类, 大语言模型, 开放集分类, 开源项目, 恶意流量检测, 深度学习, 特征提取, 网络安全, 计算机网络, 逆向工具, 隐私保护