DevOps-Capstones/SecureGate-AI

GitHub: DevOps-Capstones/SecureGate-AI

企业级 DevSecOps 安全编排平台,将多维度自动化安全扫描、风险评分与部署策略执行直接集成到 CI/CD 流水线中。

Stars: 0 | Forks: 0

# SecureGate AI - 容器镜像漏洞扫描与报告工具 **一个企业级的 DevSecOps 安全编排平台**
## 问题陈述 现代应用程序越来越多地采用容器化部署。虽然容器提供了可移植性和可扩展性,但如果容器镜像中包含了易受攻击的软件包,它们也可能引入安全风险。 ## 解决方案概述 **(SecureGate AI 如何解决此问题)** SecureGate AI 通过将安全性直接集成到 CI/CD pipeline 中来应对这些挑战。它会在容器镜像发布或部署之前,自动执行安全扫描、漏洞评估、风险分析和策略执行,确保只有安全且合规的构件才能进入软件交付生命周期。 本项目旨在构建一个自动化的容器镜像漏洞扫描器,在容器镜像部署到生产环境之前识别已知漏洞。 ### 目标 - 检测容器镜像中的漏洞 - 在 CI/CD pipeline 中实现安全检查自动化 - 生成风险评分和报告 - 执行部署审批策略 - 通过仪表板提供集中化的可视化能力 ## 电梯演讲: **SecureGate AI** 是一个集中式的 DevSecOps 平台,它通过 API 与 GitHub Actions 和 Jenkins 集成。在允许将容器镜像推送到 Docker Hub 之前,它会自动执行源代码安全分析、密钥检测、文件系统扫描、代码质量评估、容器镜像漏洞扫描、风险评分、报告生成、批准/拒绝决策、通知以及仪表板分析。 SecureGate AI 不仅仅是一个容器镜像漏洞扫描器,它还是一个完整的企业级 DevSecOps 安全编排平台。 ## SecureGate AI 是如何工作的? image ## 项目技术栈 - Frontend (React) - Backend API (FastAPI) - PostgreSQL (用于存储项目信息、报告、安全评分和扫描历史的数据库) - SonarQube (用于代码质量分析) - GitLeaks (检查暴露的密钥和凭据) - Trivy FS Scan (在容器化之前分析代码库文件系统) - Docker (用于制作容器镜像) - Docker Compose (使用单个命令部署整个 SecureGate AI 平台) - Trivy Image Scanner (在镜像创建后扫描 Docker 镜像) - Grafana (收集平台生成的指标) - Prometheus (提供可视化分析和趋势仪表板) ## CI/CD 流程 ### 成功的 Pipeline 工作流 1. 当开发人员推送代码时,CI/CD pipeline 会通过 API 调用自动触发 **SecureGate AI**。 2. 平台将执行密钥检测、文件系统扫描、代码质量分析、Docker 镜像漏洞扫描、风险评分以及报告生成。 3. 如果所有安全检查均通过,且安全评分符合审批标准,Docker 镜像将被推送到 Docker Hub,并且 4. 生成部署审批报告,并通过 Slack 和电子邮件发送通知。 image ### 失败的 Pipeline 工作流 1. 当开发人员推送代码时,CI/CD pipeline 会触发 **SecureGate AI** 以执行全面的安全扫描和质量检查。 2. 如果检测到严重漏洞、暴露的密钥、质量门未通过或安全评分不足,部署过程将立即停止。 3. 平台将生成包含发现结果、修复建议和安全改进措施的详细失败报告,然后 4. 通过 Slack 和电子邮件发送实时警报,以通知开发和安全团队。 image ## 项目执行 本项目将分为 6 个 sprint。每个 sprint 应包含: ``` docs/ ├── sprint-1/ │ └── README.md ├── sprint-2/ │ └── README.md ├── sprint-3/ │ └── README.md ├── sprint-4/ │ └── README.md ├── sprint-5/ │ └── README.md └── sprint-6/ └── README.md ``` image ## Sprint-01 (阶段一) ### 项目设置与安全扫描基础 **目标:** 建立具有基础架构的首个 POC,并验证如 trivy 等基本安全扫描工具,以了解扫描的工作原理以及如何读取和理解漏洞报告。 [Sprint-01 README.md](https://github.com/DevOps-Capstones/SecureGate-AI/blob/main//Sprint-01/README.md) ## Sprint-01 (阶段二) ## 项目设置与安全扫描基础工具及平台初始设置 **目标:** 为 SecureGate AI 建立基础环境并验证安全扫描工具。 ### 任务 - 创建项目代码库 - 定义文件夹结构 - 设置 Docker Compose 环境 - 配置 FastAPI 后端 - 配置 React 前端 - 安装 Trivy - 安装 GitLeaks - 在本地部署 SonarQube - 执行示例扫描 - 分析输出结果 ### 交付物 - 可用的 Docker Compose 环境 - Trivy 扫描验证 - GitLeaks 验证 - SonarQube 验证 - 初始架构文档 ### 预期成果 安全工具能够正常运行,并具备扫描示例项目的能力。 [Sprint-01 README.md](https://github.com/DevOps-Capstones/SecureGate-AI/blob/main/README.md) # Sprint 2 ## CI/CD 集成与 API 开发 ### 目标 使 Jenkins 和 GitHub Actions 能够通过 API 与 SecureGate AI 进行通信。 ### 任务 - 开发扫描触发 API - 创建扫描状态 API - 创建报告检索 API - 集成 GitHub Actions - 集成 Jenkins - 配置 pipeline 安全门 - 实现通过/失败标准 ### 交付物 - FastAPI endpoint - Jenkins 集成 - GitHub Actions 集成 - 安全门验证 ### 预期成果 Pipeline 能够在部署前自动触发安全扫描。 # Sprint 3 ## 报告生成与通知 ### 目标 生成专业的报告并通知利益相关者扫描结果。 ### 任务 - 生成 PDF 报告 - 生成 DOCX 报告 - 生成 JSON 报告 - Slack 集成 - 电子邮件集成 - 创建执行摘要 - 部署审批报告 ### 交付物 - 总体安全报告 - Slack 警报 - 电子邮件通知 ### 预期成果 每次扫描都会生成可下载的报告和通知。 # Sprint 4 ## 仪表板与数据分析 ### 目标 提供对安全状况和扫描历史的集中可视化监控。 ### 任务 - 仪表板实现 - PostgreSQL 集成 - Prometheus 设置 - Grafana 设置 - 历史报告存储 - 安全评分可视化 - 漏洞趋势可视化 ### 交付物 - React 仪表板 - Grafana 仪表板 - 历史报告 ### 预期成果 用户可以随时监控项目的安全趋势。 # Sprint 5 ## 风险评分与建议引擎 ### 目标 开发智能的风险评估和修复指导方案。 ### 任务 - 安全评分引擎 - 风险计算逻辑 - 建议引擎 - 服务级别报告 - 部署审批引擎 - 报告增强 ### 交付物 - 安全评分框架 - 建议引擎 - 部署审批逻辑 ### 预期成果 平台提供可操作的建议和审批决策。 # Sprint 6 ## 最终部署与未来的 AI 集成 ### 目标 准备 SecureGate AI 进行生产部署以及未来的 AI 增强。 ### 任务 - 端到端测试 - 性能测试 - 安全测试 - Docker Compose 优化 - 完善文档 - 部署指南 - 未来 Ollama 架构规划 ### 交付物 - 具备生产环境部署条件 - 完整的文档 - 未来 AI 路线图 ### 预期成果 SecureGate AI 全面运行并准备好进行演示。 ## 未来增强(在 Sprint-06 中) ### AI 安全顾问(阶段 2) 平台架构支持通过 Docker Model Runner 与本地的大型语言模型 (LLM) 进行集成。 诸如 Gemma 之类的模型可以分析安全发现结果、生成执行摘要、解释部署失败的原因、优先处理修复措施,并在将所有数据保留在本地的同时提供自然语言的安全建议。 # 技术栈与用途 image ## 1. React.js (前端仪表板) ### 用途 React 用于构建基于 Web 的仪表板,该仪表板提供了一个集中化的界面,用于监控安全扫描、查看报告、跟踪安全趋势以及管理部署审批。 ### 职责 - 仪表板 UI - 报告下载 - 扫描历史 - 安全评分可视化 - 项目概览 - 分析页面 ## 2. FastAPI (后端 API) ### 用途 FastAPI 充当平台的中央编排引擎。 它接收来自 GitHub Actions 和 Jenkins pipeline 的请求,协调安全扫描,生成报告,并将结果传回 CI/CD pipeline。 ### 职责 - 扫描触发 API - 报告 API - 安全编排 - 风险评分计算 - 通知管理 - 建议引擎 ## 3. SonarQube ### 用途 SonarQube 执行静态应用安全测试 (SAST) 和代码质量分析。 它用于识别安全漏洞、代码异味、bug、重复代码、可维护性问题以及安全热点。 ### 职责 - 代码异味检测 - 安全热点 - Bug 检测 - 技术债务分析 - 质量门验证 - 代码覆盖率分析 ## 4. GitLeaks ### 用途 GitLeaks 扫描源代码库以查找暴露的密钥和凭据。 ### 为什么选择 GitLeaks? - 快速的密钥检测 - 支持 Git 仓库 - 开源且轻量级 - 常见的 DevSecOps 工具 ### 职责 - API 密钥检测 - AWS 密钥检测 - 密码检测 - Token 检测 - 凭据泄露检测 ## 5. Trivy 文件系统扫描 ### 用途 Trivy FS Scan 在容器化之前分析代码库的文件系统。 ### 职责 - 依赖漏洞检测 - 包安全分析 - 文件系统安全检查 ## 6. Docker ### 用途 Docker 用于构建应用程序并将其打包为容器镜像以进行部署。 ### 职责 - 应用程序打包 - 容器镜像生成 - 创建部署构件 ## 7. Trivy 镜像扫描器 ### 用途 Trivy 在镜像创建之后扫描 Docker 镜像。 ### 职责 - 容器漏洞扫描 - CVE 检测 - 配置错误检测 - 容器安全分析 ## 8. 风险评分引擎 (自定义模块) ### 用途 项目中开发的一个自定义模块,它根据所有的扫描结果计算出一个安全评分。 ### 为什么? 各个独立的工具会生成单独的报告。 风险引擎将所有的发现整合为一个单一的安全评分。 ### 职责 - 安全评分计算 - 风险优先级排序 - 通过/失败评估 - 部署就绪度评估 ## 9. 建议引擎 (基于规则) ### 用途 根据漏洞和安全发现结果生成修复建议。 ### 为什么? 安全工具能识别问题,但并不总是提供可操作的指导。 ### 职责 - 修复建议 - 升级建议 - 安全最佳实践 - 修复计划 ## 10. PostgreSQL ### 用途 存储项目信息、报告、安全评分和扫描历史。 ### 职责 - 项目记录 - 扫描历史 - 报告元数据 - 安全评分 - 通知日志 ### 保留策略 - 将报告存储 1 年 - 自动删除较旧的报告 ## 11. Prometheus ### 用途 收集平台生成的指标。 ### 职责 - 安全评分指标 - 通过/失败指标 - 扫描次数指标 - 漏洞趋势指标 ## 12. Grafana ### 用途 提供可视化分析和趋势仪表板。 ### 职责 - 安全趋势 - 历史分析 - 风险评分可视化 - 通过/失败趋势 - 漏洞趋势 ## 13. Slack 集成 ### 用途 向开发和安全团队提供实时通知。 ### 为什么选择 Slack? - 即时沟通 - 常见的 DevOps 协作平台 ### 职责 - 扫描成功警报 - 扫描失败警报 - 部署审批通知 - 严重漏洞警报 ## 14. 电子邮件通知服务 ### 用途 发送详细的扫描摘要和报告链接。 ### 职责 安全报告 审批通知 失败通知 每周摘要 ## 15. Docker Compose ### 用途 使用单个命令部署整个 SecureGate AI 平台。 ### 为什么选择 Docker Compose? - 简化部署 - 环境可重现 - 易于演示 ### 职责 - 前端部署 - 后端部署 - SonarQube 部署 - PostgreSQL 部署 - Grafana 部署 - Prometheus 部署 ## 16. GitHub Actions / Jenkins 集成 ### 用途 充当平台的触发点。 每当推送代码或执行 pipeline 时,都会自动调用 SecureGate AI。 ### 为什么? 通过在软件开发生命周期中左移安全检查来落实 DevSecOps 原则。 ### 职责 - Pipeline 自动化 - 安全门执行 - 部署审批 - CI/CD 集成 ## 作者 **Saima Usman** \ 初级 DevOps + 云工程师 \ HeroVired (PPMCAD-15) **毕业设计项目** \ 容器镜像漏洞扫描与报告工具 **项目名称:** \ SecureGate AI
标签:DevSecOps, Web截图, 上游代理, 容器安全, 测试用例, 版权保护, 自定义请求头, 请求拦截