Baffoe6/ai-threat-detection-devsecops-pipelines
GitHub: Baffoe6/ai-threat-detection-devsecops-pipelines
基于完整 CICIDS2017 基准的云原生 DevSecOps 流水线 AI 威胁检测研究原型,提供多模型训练、跨领域评估与可解释性分析。
Stars: 0 | Forks: 0
# 云原生 DevSecOps 流水线中的 AI 驱动威胁检测
基于完整 CICIDS2017 基准的跨领域评估
[](https://www.python.org/downloads/)
[](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绕过, 超时处理, 逆向工具