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, 机器学习, 特征工程, 网络安全, 网络流量分析, 逆向工具, 隐私保护