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 是如何工作的?
## 项目技术栈
- 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 和电子邮件发送通知。
### 失败的 Pipeline 工作流
1. 当开发人员推送代码时,CI/CD pipeline 会触发 **SecureGate AI** 以执行全面的安全扫描和质量检查。
2. 如果检测到严重漏洞、暴露的密钥、质量门未通过或安全评分不足,部署过程将立即停止。
3. 平台将生成包含发现结果、修复建议和安全改进措施的详细失败报告,然后
4. 通过 Slack 和电子邮件发送实时警报,以通知开发和安全团队。
## 项目执行
本项目将分为 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
```
## 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 之类的模型可以分析安全发现结果、生成执行摘要、解释部署失败的原因、优先处理修复措施,并在将所有数据保留在本地的同时提供自然语言的安全建议。
# 技术栈与用途
## 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
## 问题陈述 现代应用程序越来越多地采用容器化部署。虽然容器提供了可移植性和可扩展性,但如果容器镜像中包含了易受攻击的软件包,它们也可能引入安全风险。 ## 解决方案概述 **(SecureGate AI 如何解决此问题)** SecureGate AI 通过将安全性直接集成到 CI/CD pipeline 中来应对这些挑战。它会在容器镜像发布或部署之前,自动执行安全扫描、漏洞评估、风险分析和策略执行,确保只有安全且合规的构件才能进入软件交付生命周期。 本项目旨在构建一个自动化的容器镜像漏洞扫描器,在容器镜像部署到生产环境之前识别已知漏洞。 ### 目标 - 检测容器镜像中的漏洞 - 在 CI/CD pipeline 中实现安全检查自动化 - 生成风险评分和报告 - 执行部署审批策略 - 通过仪表板提供集中化的可视化能力 ## 电梯演讲: **SecureGate AI** 是一个集中式的 DevSecOps 平台,它通过 API 与 GitHub Actions 和 Jenkins 集成。在允许将容器镜像推送到 Docker Hub 之前,它会自动执行源代码安全分析、密钥检测、文件系统扫描、代码质量评估、容器镜像漏洞扫描、风险评分、报告生成、批准/拒绝决策、通知以及仪表板分析。 SecureGate AI 不仅仅是一个容器镜像漏洞扫描器,它还是一个完整的企业级 DevSecOps 安全编排平台。 ## SecureGate AI 是如何工作的?
## 项目技术栈
- 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 和电子邮件发送通知。
### 失败的 Pipeline 工作流
1. 当开发人员推送代码时,CI/CD pipeline 会触发 **SecureGate AI** 以执行全面的安全扫描和质量检查。
2. 如果检测到严重漏洞、暴露的密钥、质量门未通过或安全评分不足,部署过程将立即停止。
3. 平台将生成包含发现结果、修复建议和安全改进措施的详细失败报告,然后
4. 通过 Slack 和电子邮件发送实时警报,以通知开发和安全团队。
## 项目执行
本项目将分为 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
```
## 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 之类的模型可以分析安全发现结果、生成执行摘要、解释部署失败的原因、优先处理修复措施,并在将所有数据保留在本地的同时提供自然语言的安全建议。
# 技术栈与用途
## 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截图, 上游代理, 容器安全, 测试用例, 版权保护, 自定义请求头, 请求拦截