feb027/iot-dos-forensics-ids
GitHub: feb027/iot-dos-forensics-ids
基于BoT-IoT数据集的IoT流量DoS攻击检测与取证分析系统,集成多模型机器学习对比、SHAP可解释性分析和SOC风格可视化仪表盘。
Stars: 0 | Forks: 0
# IoT DoS 取证 IDS
第 6 学期 IoT 课程个人期末项目。
## 标题
**IoT 架构中的 DoS 攻击分析系统**
明确后的工作标题:
**基于 Machine Learning 和 Network Forensics 的 IoT 流量 DoS 攻击分析系统(使用 BoT-IoT 数据集)**
## 主题
IoT + 网络安全 + 数字取证
## 数据集
- 主数据集:BoT-IoT (UNSW) — https://research.unsw.edu.au/projects/bot-iot-dataset
- 备选数据集:RT-IoT2022 (UCI) — https://archive-beta.ics.uci.edu/dataset/942/rt-iot2022
## 初始范围
- 主要焦点:`normal` 与 `DoS/DDoS` 的二分类。
- 时间充裕时的附加焦点:多分类以及使用 RT-IoT2022 进行对比验证。
- 主要产出:科学手稿、可复现的实验、评估图表/表格、特征取证分析以及静态 GitHub Pages 仪表盘。
## 项目原则
- 证据优先:报告中的每一个数字都必须来自明确的工件或参考文献。
- 不捏造数据集统计信息、实验结果或引用。
- 大型数据集不提交到 GitHub。
- 重要的结果(如表格、图表、指标和精简的仪表盘数据)需提交。
## 仓库结构
```
docs/ Dokumentasi proyek, roadmap, log, dan spesifikasi
references/ Literatur dan BibTeX
notebooks/ Notebook EDA, preprocessing, modeling, dan forensic analysis
scripts/ Script reproducible untuk dataset, training, evaluasi, dashboard data
results/ Tabel, grafik, metrik, dan model output
dashboard/ Static dashboard untuk visualisasi hasil
reports/ Progress report dan naskah ilmiah
prompts/ Prompt template untuk Codex/Hermes workflow
```
## 仪表盘预览
GitHub Pages: https://feb027.github.io/iot-dos-forensics-ids/
该仪表盘目前展示了来自仓库工件的第 2 阶段数据集审计、第 3 阶段 EDA/预处理、第 4 阶段基线建模、第 5 阶段取证分析以及第 6A 阶段高级/SOTA 建模的摘要。
## 完成定义
满足以下条件时项目被视为完成:
- 文献综述包含至少 10-15 篇相关参考文献,
- BoT-IoT 数据集审计清晰且可复现,
- EDA 和预处理已文档化,
- 至少训练并评估了 3 个基线模型,
- 表格/图表/指标已保存在 `results/` 中,
- 提供了特征取证分析,
- 静态仪表盘展示了工件的结果,
- 最终科学手稿已完成并与工件一致,
- 最终审查确认已准备好提交。
## 文献综述快照
第 1 阶段已完成,并通过 PR #1 合并到 `main`。工件摘要:
- `references/literature-matrix.md`:18 个来源。
- `references/references.bib`:18 个 BibTeX 条目。
- `docs/research-log.md`:筛选与初步综合记录。
- `reports/progress-1-literature-review.md`:第 1 阶段进度报告。
- 最终审查:`docs/REVIEW_phase1_literature_final_approved.md` — **92/100 APPROVED**。
第 1 阶段已完成;第 2 阶段数据集审计也已完成,并通过 PR #2 合并到 `main`。
## 数据集审计快照
第 2 阶段数据集审计已完成,并通过 PR #2 合并到 `main`。来自 BoT-IoT/UNSW-IoT CSV 镜像的初始工件:
- `scripts/audit_botiot_dataset.py`:不依赖 pandas 的可复现审计脚本。
- `results/metrics/dataset_audit.json`:机器可读的审计摘要。
- `results/tables/dataset_files.csv`:文件、行数、校验和及重复项摘要。
- `results/tables/class_distribution.csv`:`attack`、`category`、`subcategory` 以及 DoS/DDoS 范围的分布。
- `results/tables/column_profile.csv`:列概况及缺失值。
- `results/tables/split_leakage_checks.csv`:训练/测试集重叠检查。
- `reports/progress-2-dataset-audit.md`:第 2 阶段进度报告。
主要发现:存在 DoS/DDoS,但正常类别非常少,且各数据分割之间存在聚合特征相似的风险。第 3 阶段必须使用不仅依赖 accuracy 的评估方式。
## EDA 与预处理快照
第 3 阶段 EDA 与预处理已完成,并通过 PR #3 合并到 `main`。主要工件:
- `scripts/run_eda_preprocessing.py`:用于 BoT-IoT/UNSW-IoT CSV 分割的流式 EDA/预处理脚本。
- `notebooks/01_eda_preprocessing.ipynb`:用于运行脚本的 notebook 包装器。
- `results/metrics/preprocessing_summary.json`:机器可读的摘要。
- `results/tables/eda_*.csv`:范围分布、类别、协议和数值特征摘要。
- `results/tables/eda_label_consistency_checks.csv`:标签/范围一致性验证。
- `results/tables/preprocessing_feature_plan.csv`:特征列、标签列、标识符和预处理操作。
- `results/tables/preprocessing_dataset_plan.csv`:第 4 阶段的不平衡路径和平衡受控子集的计划。
- `results/figures/eda_*.png`:初步 EDA 可视化。
- `reports/progress-3-eda-preprocessing.md`:第 3 阶段进度报告。
主要决定:`other_attack` 不被视为正常;主要基线是 `normal` 对比 `dos_or_ddos`,包含不平衡和平衡受控子集两条路径。
## 基线建模快照
第 4 阶段已对 `normal` 对比 `dos_or_ddos` 目标执行基线建模:
- `scripts/run_baseline_modeling.py`:适用于 Track A/B/C 的可复现基线运行器。
- `notebooks/02_baseline_modeling.ipynb`:用于运行运行器的 notebook 包装器。
- `results/metrics/baseline_summary.json`:机器可读的基线摘要。
- `results/tables/baseline_model_metrics.csv`:基线模型指标。
- `results/tables/baseline_confusion_matrices.csv`:每次运行的混淆矩阵。
- `results/tables/baseline_dataset_tracks.csv`:每个 Track/分割的数据集大小。
- `results/figures/baseline_*.png`:宏观 F1、MCC 和混淆矩阵比较可视化。
- `reports/progress-4-baseline-modeling.md`:第 4 阶段进度报告。
主要决定:保留 accuracy 但不作为主要声明;解释时使用宏观 F1、MCC、平衡 accuracy、正常/攻击召回率以及 FP/FN。
## 第 5 阶段范围 — 取证分析
第 5 阶段侧重于基线结果的取证解释:
- 特征重要性和/或排列重要性,
- 假阳性和假阴性分析,
- 从主导特征解释 DoS/DDoS 流量模式,
- 讨论正常类别过少和分割相似性的风险,
- 基于实验发现的 IoT IDS 缓解建议。
## 取证分析快照
第 5 阶段增加了第 4 阶段基线的取证解释:
- `scripts/run_forensic_analysis.py`:特征重要性、排列重要性和错误分析的运行器。
- `notebooks/03_forensic_analysis.ipynb`:用于运行第 5 阶段的 notebook 包装器。
- `results/metrics/forensic_summary.json`:机器可读的取证摘要。
- `results/tables/forensic_feature_importance.csv`:特征重要性和排列重要性。
- `results/tables/forensic_error_analysis.csv`:选定运行的 TN/FP/FN/TP 摘要。
- `results/tables/forensic_error_examples.csv`:用于讨论的有限 FP/FN 示例。
- `results/figures/forensic_*.png`:特征重要性和错误摘要可视化。
- `reports/progress-5-forensic-analysis.md`:第 5 阶段进度报告。
第 5 阶段的主要特征组:`N_IN_Conn_P_DstIP`,其次是 `N_IN_Conn_P_SrcIP`、`stddev` 和 `srate`。由于正常类别较少且存在分割相似性的风险,解释仍保持谨慎态度。
## 高级/SOTA 建模扩展
第 6A 阶段增加了高级/SOTA 表格建模实验,以加强基线和取证解释:
- `scripts/run_advanced_modeling.py`:LightGBM、XGBoost、CatBoost 和采样 SHAP 的运行器。
- `notebooks/04_advanced_modeling.ipynb`:第 6A 阶段的 notebook 包装器。
- `docs/phase6a-advanced-modeling-plan.md`:实验计划。
- `docs/phase6a-local-run-guide.md`:本地 WSL 运行指南。
第 6A 阶段的输出现已可用:
- `results/tables/advanced_model_metrics.csv`:LightGBM/XGBoost/CatBoost 指标。
- `results/tables/advanced_confusion_matrices.csv`:高级模型的混淆矩阵。
- `results/tables/advanced_feature_importance.csv`:原生特征重要性。
- `results/tables/advanced_shap_summary.csv`:采样 SHAP 可解释性。
- `results/metrics/advanced_summary.json`:机器可读的摘要。
- `results/figures/advanced_*.png`:高级与基线对比、混淆矩阵和 SHAP 的可视化。
- `reports/progress-6a-advanced-modeling.md`:第 6A 阶段进度报告。
总体最佳高级运行:在 `C_balanced_controlled_1_to_2` 上的 `xgboost`,宏观 F1 达 0.9965。在现实的 Track A 上,与相同 Track 的基线相比,LightGBM 提高了宏观 F1。
## 仪表盘润色快照
第 6 阶段仪表盘润色已完成,并通过 PR #7 合并到 `main`。仪表盘现在使用静态深色 SOC/网络安全指挥中心风格,依然由工件驱动,并已通过 Codex 最终验证。
第 6 阶段工件:
- `dashboard/index.html`、`dashboard/styles.css`、`dashboard/app.js`:用于 GitHub Pages 的最终静态仪表盘。
- `docs/phase6-dashboard-design-brief.md`:仪表盘设计方向。
- `docs/dashboard-spec.md`:最新的仪表盘/数据契约规范。
- `docs/REVIEW_phase6_dashboard.md`:初步审查 86/100 NEEDS REVISION。
- `docs/REVIEW_phase6_dashboard_final.md`:最终验证 94/100 APPROVED / MERGE。
## SOC 重放视觉大修快照
第 6C 阶段将演示页面从静态时间线提升为 SOC 视觉重放:
- 数据包重放地图:源/bot → IoT 网关 → 设备/服务。
- 重放控制:速度、进度条、事件时间戳。
- 实时 SOC 事件流。
- 基于风险评分启发式的威胁计。
- 模块化组件:`network-replay.js`、`event-stream.js`、`threat-meter.js`、`replay-engine.js`。
- 进度报告:`reports/progress-6c-soc-replay-visual-overhaul.md`。
边界说明:视觉重放是工件的教育性表现形式,并非实际的 PCAP 重放,也不是新的实验指标。
## 交互式 AI SOC 演示快照
第 6B 阶段增加了一个基于 VPS 的交互式演示原型,旨在使建模结果在展示时更生动:
- 实时演示:https://iot.aquarise.my.id/soc-demo/demo.html
- API 健康检查:https://iot.aquarise.my.id/soc-demo/api/health
- 模块化前端:`dashboard/demo.html`、`dashboard/styles/`、`dashboard/scripts/`。
- FastAPI 后端:`backend/iot_soc_api/`。
- 生成的演示数据:`dashboard/data/demo-scenarios.json`、`demo-feature-ranges.json`、`demo-narrative-templates.json`。
- 进度报告:`reports/progress-6b-interactive-ai-soc-demo.md`。
学术定位:基于实验工件的交互式 AI SOC 原型,而非生产环境的实时 IDS。
## 状态
当前阶段:**第 7 阶段 — 科学手稿**
## 审查历史
| 审查 | 模型/审查者 | 分数 | 结论 | 文件 |
|---|---|---:|---|---|
| 初始第 0B 阶段 | Codex 讲师 | 83 | NEEDS REVISION | `docs/REVIEW_phase0b.md` |
| 最终第 0B 阶段 | Codex 讲师 | 91 | APPROVED | `docs/REVIEW_phase0b_final.md` |
| 严格复审第 0 阶段 | Codex gpt-5.5 + high reasoning | 90 | APPROVED | `docs/REVIEW_phase0_gpt55_high.md` |
| 第 1 阶段文献综述 | Codex gpt-5.5 + high reasoning | 92 | APPROVED | `/REVIEW_phase1_literature_final_approved.md` |
| 第 2 阶段数据集审计 | Codex gpt-5.5 + high reasoning | 89 | APPROVED | `docs/REVIEW_phase2_dataset_audit.md` |
| 第 3 阶段 EDA 与预处理 | Codex gpt-5.5 + high reasoning | 88 | APPROVED | `docs/REVIEW_phase3_eda_preprocessing.md` |
| 第 3 阶段最终验证 | Codex gpt-5.5 + high reasoning | 92 | APPROVED / MERGE | `docs/REVIEW_phase3_final_verification.md` |
| 第 4 阶段基线建模 | Codex gpt-5.5 + high reasoning | 90 | APPROVED | `docs/REVIEW_phase4_baseline_modeling.md` |
| 第 5 阶段取证分析 | Codex gpt-5.5 + high reasoning | 90 | APPROVED | `docs/REVIEW_phase5_forensic_analysis.md` |
| 第 6A 阶段高级/SOTA 建模 | Codex gpt-5.5 + high reasoning | 90 | APPROVED | `docs/REVIEW_phase6a_advanced_modeling.md` |
| 第 6 阶段仪表盘审查 | Codex gpt-5.5 + high reasoning | 86 | NEEDS REVISION | `docs/REVIEW_phase6_dashboard.md` |
| 第 6 阶段仪表盘最终验证 | Codex gpt-5.5 + high reasoning | 94 | APPROVED / MERGE | `docs/REVIEW_phase6_dashboard_final.md` |
参见:
- `docs/project-control.md`
- `docs/roadmap.md`
- `docs/phase-gates.md`
- `docs/REVIEW_phase0b.md`
- `docs/REVIEW_phase0b_final.md`
- `docs/REVIEW_phase0_gpt55_high.md`
- `docs/REVIEW_phase1_literature_final_approved.md`
- `docs/REVIEW_phase2_dataset_audit.md`
- `docs/REVIEW_phase3_eda_preprocessing.md`
- `docs/REVIEW_phase3_final_verification.md`
- `docs/REVIEW_phase4_baseline_modeling.md`
- `docs/REVIEW_phase5_forensic_analysis.md`
- `docs/REVIEW_phase6a_advanced_modeling.md`
- `docs/REVIEW_phase6_dashboard.md`
- `docs/REVIEW_phase6_dashboard_final.md`
标签:AI, Apex, BoT-IoT, Botnet, Cybersecurity, DDoS, DoS, EDA, GitHub Pages, IoT, Machine Learning, ML, Network Forensics, NoSQL, Python, RT-IoT2022, Static Dashboard, Traffic Analysis, UCI, UNSW, 二分类, 人工智能, 代码示例, 入侵检测系统, 分布式拒绝服务攻击, 分类模型, 多分类, 安全数据湖, 密码管理, 异常检测, 拒绝服务攻击, 插件系统, 数字取证, 数据分析, 数据可视化, 无后门, 期末项目, 机器学习, 模型评估, 物联网, 特征工程, 用户模式Hook绕过, 科学计算, 网络安全, 网络流量分析, 自动化代码审查, 自动化脚本, 计算机科学, 调试辅助, 逆向工具, 配置错误, 隐私保护, 项目文档