Baffoe6/ai-threat-detection-devsecops-pipelines

GitHub: Baffoe6/ai-threat-detection-devsecops-pipelines

基于完整 CICIDS2017 基准的云原生 DevSecOps 流水线 AI 威胁检测研究原型,提供多模型训练、跨领域评估与可解释性分析。

Stars: 0 | Forks: 0

# 云原生 DevSecOps 流水线中的 AI 驱动威胁检测 基于完整 CICIDS2017 基准的跨领域评估 [![Python 3.10+](https://img.shields.io/badge/python-3.10+-blue.svg)](https://www.python.org/downloads/) [![License: MIT](https://img.shields.io/badge/License-MIT-green.svg)](LICENSE) 这是一个用于在云原生 DevSecOps CI/CD 流水线中进行机器学习威胁检测的 IEEE 风格研究原型,并在完整的 CICIDS2017 MachineLearningCSV 基准(2,830,743 条数据流)上进行了跨领域评估。 该流水线能够生成感知重叠的 DevSecOps 遥测数据,训练 Isolation Forest、Random Forest 和 XGBoost,与基于规则的 SOC 基线进行对比,运行原生的 CICIDS 二分类和多分类验证以及迁移测试,并提供用于内联评分的 Flask REST API。 ## 核心亮点 | 项目 | 详情 | |------|--------| | 模拟留出集 (XGBoost) | F1 = 0.987, MCC = 0.986, FPR = 0.000 | | 5折交叉验证 (XGBoost) | F1 = 0.991 ± 0.009 | | CICIDS2017 原生二分类 | F1 = 0.821, ROC-AUC = 0.987, PR-AUC = 0.949 | | CICIDS2017 多分类 (9 类) | macro-F1 = 0.620, weighted-F1 = 0.944 | | 迁移 (模拟 → CICIDS) | F1 = 0.182 (领域偏移) | | McNemar 检验 (CICIDS 上的 XGBoost vs 规则) | p < 0.001 | | 顶级 SHAP 特征 | `secrets_exposure_score` (平均 \|SHAP\| = 4.17) | | 推理 | ~1.45 毫秒/事件 (本地指示性测量) | 论文稿件:`paper/main.tex` → `paper/main.pdf` (最终发表版布局)。 ## 仓库结构 ``` . ├── paper/ IEEE manuscript, figures, and guides │ ├── main.tex / main.pdf │ ├── references.bib │ ├── draft.md │ ├── figures/ │ ├── BUILD.md │ ├── CAMERA_READY_LAYOUT_REPORT.md │ ├── CICIDS2017_FEATURE_MAPPING.md │ ├── CICIDS2017_MANUAL_INSTALL.md │ ├── REPRODUCIBILITY_CHECKLIST.md │ ├── SUBMISSION_GUIDE.md │ └── THREAT_SCENARIOS.md ├── prototype/ Experiment code and API │ ├── train_evaluate.py End-to-end runner │ ├── cicids_adapter.py CICIDS2017 → pipeline features │ ├── app.py Flask /predict API │ ├── datasets/ │ ├── models/ │ └── logs/ ├── results/ Publication metrics (JSON/CSV) ├── notebooks/ EDA notebook ├── diagrams/ Architecture (Mermaid) ├── .github/workflows/ CI ├── requirements.txt ├── CITATION.cff └── README.md ``` ## 快速开始 ### 1. 环境 ``` git clone https://github.com/Baffoe6/ai-threat-detection-devsecops-pipelines.git cd ai-threat-detection-devsecops-pipelines python -m venv venv # Windows venv\Scripts\activate # Linux / macOS source venv/bin/activate pip install -r requirements.txt ``` ### 2. 运行完整实验 ``` python prototype/train_evaluate.py ``` 此单一命令将执行以下操作: 1. 生成 5,000 个模拟流水线事件(威胁率约为 8%,并包含重叠注入) 2. 训练 Isolation Forest、Random Forest 和 XGBoost 3. 评估 Accuracy、Precision、Recall、F1、MCC、AUC 和 FPR 4. 将评估指标写入 `results/` 目录,将模型写入 `prototype/models/` 目录 5. 重新生成 `paper/figures/` 下的图表 6. 当八个 MachineLearningCSV 文件存在时,自动运行完整的 CICIDS2017 评估 ### 3. 可选:EDA 与 API ``` jupyter notebook notebooks/01_eda_devsecops_threats.ipynb ``` ``` python prototype/app.py ``` 健康检查: ``` curl http://localhost:5000/health ``` 预测示例: ``` curl -X POST http://localhost:5000/predict \ -H "Content-Type: application/json" \ -d "{ \"build_duration_sec\": 2400, \"failed_steps\": 5, \"commit_frequency_24h\": 45, \"privilege_escalation_attempts\": 3, \"container_scan_critical\": 7, \"network_egress_mb\": 850.0, \"api_calls_per_min\": 250, \"rbac_violations\": 4, \"secrets_exposure_score\": 0.85, \"off_hours_activity\": 1 }" ``` ## 流水线特征 | 特征 | 来源 | 威胁信号 | |---------|--------|---------------| | `build_duration_sec` | CI/CD | 异常漫长的构建过程 (T1059) | | `failed_steps` | CI/CD | 阶段失败 | | `commit_frequency_24h` | VCS | 突发性活动 | | `privilege_escalation_attempts` | Runner | 提权行为 (T1078) | | `container_scan_critical` | Scanner | 恶意镜像 (T1610) | | `network_egress_mb` | Network | 数据渗出 (T1048) | | `api_calls_per_min` | K8s audit | 自动化滥用 | | `rbac_violations` | K8s RBAC | 策略违规 | | `secrets_exposure_score` | GitLeaks | 凭据泄漏 (T1552) | | `off_hours_activity` | Timestamp | 被盗用的 token | 完整的 CICIDS2017 代理映射:`paper/CICIDS2017_FEATURE_MAPPING.md`。 ## 模型 | 模型 | 类型 | 角色 | |-------|------|------| | Isolation Forest | 无监督 | 冷启动 / 未知异常 | | Random Forest | 有监督 | 可解释的基线模型 | | XGBoost | 有监督 | 主检测器 (最佳 F1/MCC) | | 规则基线 | 静态阈值 | SOC 预案下限 | ## CICIDS2017 外部验证 将八个官方的 MachineLearningCSV 文件安装至 `prototype/datasets/cicids2017/` 目录下(详见 `paper/CICIDS2017_MANUAL_INSTALL.md`)。运行器会检测它们(`data_source=full_machinelearningcsv`),并从单文件评估切换至完整数据集评估。 ``` python prototype/cicids_inventory.py python prototype/train_evaluate.py ``` ## 编译论文 ``` cd paper pdflatex main.tex bibtex main pdflatex main.tex pdflatex main.tex ``` 详细信息:`paper/BUILD.md`。排版状态:`paper/CAMERA_READY_LAYOUT_REPORT.md`。审稿人检查清单:`paper/REPRODUCIBILITY_CHECKLIST.md`。 ## 项目状态 已完成: - 重叠感知模拟与多模型训练 - 规则基线、交叉验证、消融实验、SHAP 可解释性 - 十三张发表论文插图 + 最终发表版 IEEE LaTeX/PDF - 真实完整的 CICIDS2017 二分类、多分类、迁移与 McNemar 评估 - Flask API、CI 工作流、CITATION.cff / Zenodo 元数据 未来工作: - 真实的 Falco / Kubernetes 审计日志集成 - Docker 打包与 Kubernetes 部署清单 ## 引用 ``` @article{baffoe2026aiddp, title={AI-Driven Threat Detection in Cloud-Native DevSecOps Pipelines: Cross-Domain Evaluation Using the Complete CICIDS2017 Benchmark}, author={Baffoe, Lord Kingsley}, journal={In preparation}, year={2026}, note={https://github.com/Baffoe6/ai-threat-detection-devsecops-pipelines} } ``` 另请参阅 [`CITATION.cff`](CITATION.cff) 和 [`.zenodo.json`](.zenodo.json)。 ## 许可证 MIT 许可证 — 详见 [LICENSE](LICENSE)。 ## 作者 Lord Kingsley Baffoe 计算与工程学院 英国伦敦特威克纳姆圣玛丽大学 - ORCID: [0009-0001-2613-2875](https://orcid.org/0009-0001-2613-2875) - Email: 2416509@live.stmarys.ac.uk | lkbaffoe@ipaygo.co.za - GitHub: [Baffoe6/ai-threat-detection-devsecops-pipelines](https://github.com/Baffoe6/ai-threat-detection-devsecops-pipelines)
标签:AMSI绕过, Apex, DevSecOps, Python, 上游代理, 人工智能, 威胁检测, 安全, 无后门, 机器学习, 用户模式Hook绕过, 超时处理, 逆向工具