Danielito2252/Jenkins-Devsecops-Pipeline

GitHub: Danielito2252/Jenkins-Devsecops-Pipeline

基于 Jenkins 的声明式 DevSecOps 流水线,集成 SCA、SAST、DAST 安全扫描与自动化安全门禁,在 CI 阶段拦截高危漏洞。

Stars: 0 | Forks: 0

# 🛡️ Jenkins DevSecOps Pipeline Orchestrator ### Security by Design • Fail Fast • Fail Secure 构建于 Jenkins 之上的声明式 Pipeline,集成了**SCA、SAST、DAST 和自动化的 Security Gate**,旨在将漏洞拦截在生产环境之前。
![Jenkins](https://img.shields.io/badge/Jenkins-2.440-D24939?style=for-the-badge\&logo=jenkins\&logoColor=white) ![Docker](https://img.shields.io/badge/Docker-24.0-2496ED?style=for-the-badge\&logo=docker\&logoColor=white) ![Trivy](https://img.shields.io/badge/Trivy-SAST-4AA629?style=for-the-badge) ![OWASP ZAP](https://img.shields.io/badge/OWASP-ZAP-005EA6?style=for-the-badge) ![License](https://img.shields.io/badge/License-MIT-yellow?style=for-the-badge)
## 🎯 关于本项目 本项目实现了一种现代化的 **DevSecOps** 策略,安全不再是开发工作完成后的补充环节,而是持续集成 Pipeline 中的强制要求。 每次 commit 在允许流程继续之前,都会经过多层安全验证。 ## ✨ 主要特性 ✅ 漏洞依赖扫描 (SCA) ✅ 静态安全分析 (SAST) ✅ 基于严重程度的自动化 Security Gate ✅ 动态应用安全测试 (DAST) ✅ 自动发布报告 ✅ 完全 Docker 化的 Pipeline ✅ E2E 测试自动化 ✅ *Fail Fast, Fail Secure* 理念 # 📊 Pipeline 指标 | 指标 | 数值 | | ------------------------------ | --------------- | | ⏱ 平均执行时间 | ~4.5 分钟 | | 🛡 安全层数 | 3 | | 🚦 Security Gate | HIGH + CRITICAL | | 🐳 环境 | Docker | | 🔄 Pipeline 类型 | 声明式 | | 📋 报告 | 自动化 | # 🏗️ 总体架构 ``` graph LR A[📦 Checkout SCM] --> B[🔍 SCA
npm audit] B --> C[🛡️ SAST
Trivy] C --> D{🚦 Security Gate} D -->|✅ Aprobado| E[📥 Clonar Suite Cypress] D -->|❌ Rechazado| F[⛔ Pipeline Abortado] E --> G[🌐 DAST
OWASP ZAP] G --> H[📊 Publicar Reportes] H --> I[✅ Build Exitosa] ``` # 🔄 DevSecOps 流程 | 阶段 | 工具 | 目标 | 结果 | | ------------- | ----------- | --------------------------------- | --------------------- | | Checkout | Git | 获取源代码 | Workspace | | SCA | npm audit | 检测漏洞依赖 | 控制台 | | SAST | Trivy | 静态安全分析 | trivy-report.json | | Security Gate | Groovy | 评估风险 | 继续或停止 | | E2E Setup | Git Clone | 获取测试套件 | 更新的 Workspace | | DAST | OWASP ZAP | 模拟攻击 | zap-report.html | | Reporting | Jenkins | 汇总结果 | Dashboard | # 🚦 Security Gate Pipeline 的核心。 此阶段会自动分析 Trivy 生成的报告,并根据发现的严重程度做出决策。 ``` def vulnerabilities = readJSON file: 'trivy-report.json' def criticalCount = vulnerabilities.Results?.sum { it.Vulnerabilities?.count { v -> v.Severity == 'CRITICAL' } ?: 0 } if (criticalCount > 0) { error "🛑 SECURITY GATE ACTIVADO" } ``` ## 安全策略 | 严重程度 | 操作 | | ----------- | ----------------- | | 🔴 CRITICAL | 阻断 Pipeline | | 🟠 HIGH | 阻断 Pipeline | | 🟡 MEDIUM | 警告 | | 🔵 LOW | 允许 | # 📸 验证截图 ## ✅ Pipeline 成功 ### Stage View

### Security Gate

### OWASP ZAP Report

## ❌ Pipeline 被阻断 ### 检测到漏洞

### 结果 Pipeline 在执行后续阶段之前被自动停止。 这可以避免: * 不必要的资源消耗 * 在不安全的代码上执行测试 * 生成无关的报告 * 潜在的漏洞部署 # 🛠️ 技术栈 | 类别 | 技术 | | -------------------- | ---------- | | CI/CD | Jenkins | | 容器 | Docker | | 版本控制 | Git | | SCA | npm audit | | SAST | Trivy | | DAST | OWASP ZAP | | E2E 自动化 | Cypress | | Pipeline 语言 | Groovy | # ⚙️ 环境要求 ``` Docker: 24+ Jenkins: LTS RAM mínima: - 4 GB CPU mínima: - 2 vCPU ``` # 🚀 快速安装 ## 1️⃣ 启动 Jenkins ``` docker-compose up -d ``` ## 2️⃣ 安装插件 * Pipeline Utility Steps * Docker Pipeline * Git Plugin ## 3️⃣ 创建 Pipeline ``` New Item → Pipeline → Pipeline Script from SCM → Seleccionar este repositorio → Branch: main ``` ## 4️⃣ 运行 ``` Build Now ``` # 🌐 项目生态系统 本仓库是专注于软件自动化和质量分布式的解决方案的一部分。 | 仓库 | 功能 | | -------------------------- | --------------------- | | Cypress E2E Suite | 自动化测试 | | Jenkins DevSecOps Pipeline | 主编排器 | ### 动态集成 在 Pipeline 执行期间,会自动克隆 E2E 套件,以确保始终使用最新版本的测试用例。 # 📈 Roadmap ## 后续改进 * [ ] 集成 SonarQube * [ ] 集成 Slack * [ ] 集成 Microsoft Teams * [ ] 使用 Gitleaks 进行密钥扫描 * [ ] 将报告发布到 S3 * [ ] Multibranch Pipelines * [ ] 依赖缓存 * [ ] 参数化 Pipeline # 📄 许可证 基于 MIT 许可证分发。 请查阅 **LICENSE** 文件了解更多信息。
## 👨‍💻 开发者 # Herberth Barrios ### DevOps Engineer | DevSecOps Practitioner | QA Automation Enthusiast
[![GitHub](https://img.shields.io/badge/GitHub-Danielito2252-181717?style=for-the-badge\&logo=github)](https://github.com/Danielito2252) [![LinkedIn](https://img.shields.io/badge/LinkedIn-Herberth%20Barrios-0A66C2?style=for-the-badge\&logo=linkedin)](https://www.linkedin.com/in/herberth-barrios-299236261/)
标签:DAST, DevSecOps, Docker, Jenkins, SAST, 上游代理, 人体姿态估计, 安全防御评估, 恶意软件分析, 暗色界面, 盲注攻击, 网络安全研究, 请求拦截