sheyda2021/Network-Traffic-Intrusion-Detection
GitHub: sheyda2021/Network-Traffic-Intrusion-Detection
一个基于 LightGBM 和领域特定特征工程的机器学习 pipeline,用于对协议级网络流量进行多分类入侵检测。
Stars: 1 | Forks: 0
# 使用 LightGBM 进行网络流量入侵检测
这是一个使用协议级网络流量数据、领域特定特征工程和 LightGBM 的机器学习 pipeline,用于**多分类网络入侵检测**。
## 项目概述
本项目是为一场专注于**网络流量入侵检测**的机器学习竞赛而开发的。
其目标是将每个捕获的网络数据包分类为 **16 种流量类别**之一,包括正常流量和多种网络攻击类型,例如:
* DoS
* DDoS
* SYN Flood
* SQL Injection
* XSS
* FTP Attacks
* SSH Brute Force
* Port Scanning
* 以及其他类型。
该解决方案结合了广泛的特征工程与使用 Stratified K-Fold Cross Validation(分层 K 折交叉验证)训练的 LightGBM 分类器。
## 数据集
| 项目 | 值 |
| ---------------- | ------------------- |
| 训练样本数 | ~330 万 |
| 测试样本数 | ~120 万 |
| 类别数 | 16 |
| 评估指标 | 加权 F1 分数 (Weighted F1 Score) |
该数据集包含从 Wireshark 中提取的跨多个协议层的数据包级特征。
### 可用协议
* Ethernet
* IP
* TCP
* UDP
* ICMP
* HTTP
* DNS
该数据集的一个主要挑战是由特定协议字段引起的高稀疏性,这些字段在许多数据包中天然缺失。
# 机器学习 Pipeline
```
Raw Network Packets
│
▼
Data Cleaning
│
▼
Feature Engineering
│
▼
Categorical Encoding
│
▼
LightGBM
│
▼
Stratified 5-Fold Cross Validation
│
▼
Prediction
│
▼
submission.csv
```
# 特征工程
本项目包含基于网络和网络安全知识的大量手工特征。
### 协议指示器
* TCP 可用性
* UDP 可用性
* HTTP 可用性
* DNS 可用性
* ICMP 可用性
### TCP 特征
* SYN / ACK / FIN / RST 标志
* 仅含 SYN 的数据包
* TCP Window Size
* 对数转换后的 Window Size
* 低 / 高端口指示器
### 数据包特征
* Packet Length
* Frame Length
* 长度差异
* 微型数据包检测
* 大型数据包检测
### 服务端口特征
* HTTP (80)
* HTTPS (443)
* FTP (21)
* SSH (22)
* Telnet (23)
* DNS (53)
* MySQL (3306)
* Proxy (8080)
### HTTP 特征
* HTTP Method
* URI 长度
* Cookie 存在状态
* Referer
* Authorization
面向安全的特征:
* SQL Injection 模式检测
* Cross-Site Scripting (XSS) 模式检测
### DNS 特征
* 查询长度
* 子域名数量
### ICMP 特征
* Echo Request
* Echo Reply
### IP 特征
* TTL
* 协议类型
* Fragment Offset
* IP Flags
# 数据预处理
预处理 pipeline 包括:
* 缺失值处理
* 协议字段的数值转换
* 分类变量的 Label Encoding
* 移除未使用的列
* 数据类型验证
# 模型
| 组件 | 描述 |
| --------------- | ---------------------------------- |
| 算法 | LightGBM |
| 验证方式 | Stratified 5 折 Cross Validation |
| Early Stopping | 是 |
| 随机种子 | 42 |
# 项目结构
```
Network-Traffic-Intrusion-Detection/
├── train.py
├── README.md
├── requirements.txt
└── sample_output/
```
# 环境要求
```
Python
pandas
numpy
lightgbm
scikit-learn
```
# 未来改进
未来工作的潜在方向包括:
* 使用 Optuna 进行超参数优化
* 基于 SHAP 的模型可解释性
* 特征重要性分析
* 集成学习
* CatBoost / XGBoost 对比
* 误差分析
* 概率校准
# 展示技能
* 机器学习
* 特征工程
* LightGBM
* 大规模数据处理
* 网络安全分析
* 多分类
* Cross Validation
* 数据预处理
## 注释
本仓库旨在展示针对大规模网络安全分类问题构建实用机器学习 pipeline 的端到端工作流,涵盖从数据预处理和特征工程到模型训练与预测的全过程。
标签:Apex, LightGBM, 机器学习, 特征工程, 网络安全, 网络流量分析, 逆向工具, 隐私保护