kajalishere/demo-devsecops
GitHub: kajalishere/demo-devsecops
一个生产级 DevSecOps 演示项目,通过 GitHub Actions 自动化运行静态代码分析和依赖漏洞扫描,并生成专业安全报告。
Stars: 0 | Forks: 0
# DevSecOps 作品集:自动化漏洞检测流水线
  
## 项目概述
一个生产级的 DevSecOps 演示项目,包含一个故意带有漏洞的 Flask Web 应用以及自动化安全扫描流水线。本项目展示了真实场景下的漏洞管理、威胁狩猎和事件响应实践。
## 架构
### 系统设计
本项目实现了一个用于自动化漏洞检测和安全扫描的**生产级 DevSecOps 流水线**。该流水线会在每次代码推送时自动运行,并生成全面的安全报告。
### 流水线组件
**1. 代码分析 (Bandit)**
- 静态应用安全测试 (SAST)
- 检测硬编码凭证、不安全函数及注入漏洞
- 生成带有严重性级别的 JSON 报告
**2. 依赖扫描 (Safety)**
- 根据已知的 CVE 数据库分析所有项目依赖
- 识别易受攻击的包和版本
- 提供修复建议
**3. 自动化测试 (PyTest)**
- 针对应用功能的单元测试
- 专注于安全的测试用例
- 确保代码质量和安全控制
**4. 报告生成 (ReportLab)**
- 将原始漏洞数据转换为专业的 PDF 报告
- 包含关键指标的高管摘要
- 详细的漏洞分析和修复步骤
**5. CI/CD 流水线 (GitHub Actions)**
- 在每次推送/PR 时自动触发
- 运行所有安全扫描和测试
- 将报告作为 artifacts 上传以供审查
### 技术栈
| 组件 | 技术 | 用途 |
|-----------|-----------|---------|
| **语言** | Python 3.9+ | 应用开发 |
| **Web 框架** | Flask | 演示 Web 应用 |
| **SAST 扫描** | Bandit | 代码漏洞检测 |
| **依赖扫描** | Safety | 已知 CVE 识别 |
| **测试** | PyTest | 质量保证 |
| **报告生成** | ReportLab | 生成专业 PDF |
| **CI/CD** | GitHub Actions | 自动化流水线 |
### 工作原理
1. **开发者推送代码**到 GitHub
2. **GitHub Actions 自动触发**安全流水线
3. **Bandit 扫描** Python 代码中的漏洞
4. **Safety 检查**所有依赖中已知的 CVE
5. **PyTest 运行**单元和安全测试
6. **ReportLab 生成**专业的 PDF 报告
7. **Artifacts 被上传**以供下载和审查
8. **结果显示**在 GitHub Actions 中
### 核心功能
**自动化** - 每次代码推送时运行
**全面性** - 检测代码缺陷和易受攻击的依赖
**专业报告** - 同时支持 JSON 和 PDF 格式
**真实数据** - 分析了 51 个包,检测出 26+ 个漏洞
**教育意义** - 学习 DevSecOps 最佳实践
## 安全扫描结果
### 最新扫描
- **已分析的包:** 51
- **发现的漏洞:** 26
- **扫描日期:** 2026-06-10
- **Safety 版本:** 2.3.5
### 高危漏洞包
| 包 | 版本 | 问题数 |
|---------|---------|--------|
| werkzeug | 2.3.6 | 8 |
| jinja2 | 3.1.2 | 5 |
| pillow | 11.3.0 | 6 |
| urllib3 | 2.6.3 | 2 |
| pip | 26.0.1 | 2 |
### 获取报告
最新的安全报告可在 [GitHub Actions](https://github.com/kajalishere/demo-devsecops/actions) 中获取:
- **safety-report-json** - 机器可读的漏洞数据
- **security-pdf-report** - 专业的 PDF 摘要
有关详细的漏洞分析,请参见 [`docs/VULNERABILITIES_2025.md`](docs/VULNERABILITIES_2025.md)
标签:DevSecOps, Python, 上游代理, 无后门, 自动化漏洞扫描, 逆向工具, 错误基检测, 静态代码分析