abdelalim-saada/dast-cicd-pipeline
GitHub: abdelalim-saada/dast-cicd-pipeline
一个基于实证研究的 DevSecOps 毕业项目,通过对四款开源 DAST 工具的系统化评测,设计并验证了一套集成于 GitLab CI/CD 的三阶段安全门禁 pipeline。
Stars: 0 | Forks: 0
# DAST Pipeline 集成至 GitLab CI/CD
## 概述
本项目设计、进行实证验证,并实现了一个生产级的**动态应用程序安全测试(DAST)pipeline**,将其集成至 GitLab CI/CD 中,遵循 DevSecOps 和安全左移原则。
本项目不依赖供应商的宣传来选择 DAST 工具,而是首先对四款开源工具进行了**三个阶段的实证比较研究**,然后利用研究结果来论证具体的 pipeline 架构——每一个设计决策都可以追溯到测量数据。
## 比较研究
对以下四款开源 DAST 工具进行了正面评估:
- **OWASP ZAP**
- **Nuclei**
- **Nikto**
- **Wapiti**
测试涵盖了**五个包含不同架构(PHP/Laravel、Java Spring Boot、Python REST API、Angular SPA)的蓄意漏洞应用程序**,并在逐步深化的三种测试条件下进行:
1. **阶段 1 — 基准未认证扫描**
2. **阶段 2 — 激进模式扫描**
3. **阶段 3 — 已认证扫描**
构建了自定义的**6项指标评估框架(M1–M6)**,对每个工具的检测率、扫描速度、误报率和 CI/CD 自动化适用性进行评分,最终生成满分为 100 的加权**CI/CD 适用性得分(M6)**。
### 关键发现:认证缺失问题
在所有四款工具中,针对某一个目标进行未认证扫描时,**未检测到任何注入类漏洞**(SQL injection、命令执行、路径遍历、XSS)——尽管这些漏洞确实存在且可被利用。通过已认证扫描则发现了全部漏洞。这一发现直接推动了整个 pipeline 架构的设计:**仅靠未认证扫描不足以满足生产环境的安全门禁要求。**
## Pipeline 架构
比较研究的结果被转化为一个**三阶段门禁 pipeline**,每个门禁都选用了在该阶段约束下得分最高的工具:
| 门禁 | 触发条件 | 工具 | 目的 |
|------|---------|-------|---------|
| **门禁 1 — 快速门禁** | 每次提交 | Nuclei + Nikto | 提供5分钟内的快速反馈,覆盖 CVE 及服务器配置错误 |
| **门禁 2 — 审查门禁** | 每次合并请求 | ZAP(基准模式) | 提供最高的应用层 OWASP Top 10 覆盖率,以及最低的误报率 |
| **门禁 3 — 深度门禁** | 预发布标签 | ZAP(全面认证模式,通过 API 处理 CSRF token) | 进行已认证会话扫描,以弥补认证缺失的问题 |
所有发现的结果都会被推送至 **DefectDojo**,用于集中汇总、去重以及执行受 SLA 约束的修复跟踪。
## 验证
该 pipeline 已针对两个目标进行了验证:
- **VulnApp** — 一个专门构建的、Docker 容器化的 Laravel 应用程序,包含6个蓄意引入的漏洞,每个漏洞均映射到 OWASP Top 10 (2025) 类别,用作受控的基准测试目标。
- **Monica CRM** — 一个超过5万行代码的生产级开源 Laravel 应用程序,用于确认该 pipeline 在面对真实世界的复杂性时依然有效。
## 技术栈
`OWASP ZAP` · `Nuclei` · `Nikto` · `Wapiti` · `GitLab CI/CD` · `Docker` · `DefectDojo` · `Python` · `Laravel`
## 仓库范围
本仓库记录了该项目的方法论、架构和发现。出于保密原因,未公开的原始扫描输出、内部 Ayrade 基础设施细节以及完整的论文手稿不在此发布。完整的书面论文已于 2026 年 6 月 15 日在 ENSTICP 完成答辩。
## 作者
**Abdelalim Saada** — 网络安全工程师
[LinkedIn](https://www.linkedin.com/in/abdelalim-saada-5732a3350/) · [GitHub](https://github.com/abdelalim-saada)
学术导师:Mr. MEHMEL Cherif (ENSTICP) · 实习导师:Mr. DJEMAI Azzedine (Ayrade)
标签:CI/CD流水线, DevSecOps, GitLab, 上游代理, 动态应用安全测试, 学术研究, 请求拦截, 逆向工具