falecomkauan/devsecops-pipeline-demo
GitHub: falecomkauan/devsecops-pipeline-demo
基于 GitHub Actions 的安全左移流水线演示项目,集成 SAST、SCA 和 IaC 扫描工具并附带供应链加固实践。
Stars: 0 | Forks: 0
# DevSecOps 安全流水线演示
这是一个用于 CI/CD 的**安全左移流水线**参考实现,
在每次 push 和 pull request 时运行四款开源扫描工具。旨在
演示如何在 GitHub Actions 中集成 SAST、SCA 和 IaC 扫描,
并兼顾供应链安全加固。
## 功能说明
| 层级 | 工具 | 目的 |
|-------|------|---------|
| SAST | [Semgrep](https://semgrep.dev) | 源代码的静态分析(注入、secrets、弱加密) |
| SCA | [Grype](https://github.com/anchore/grype) | 依赖项中的已知 CVE |
| SCA + 配置 | [Trivy](https://github.com/aquasecurity/trivy) | 依赖项、IaC 和镜像配置错误 |
| IaC | [Checkov](https://www.checkov.io) | Dockerfile 和 Kubernetes 清单中的配置错误 |
每款扫描工具都会将其结果导出为 **SARIF**,并作为构建产物
上传以供审查。
## 流水线设计
该 workflow 位于 [`.github/workflows/security-scan.yml`](.github/workflows/security-scan.yml)。
每项选择背后的理由都记录在
[`docs/technical-decisions.md`](docs/technical-decisions.md) 中。简而言之:
- **Action 按 commit SHA 锁定**,而不是按 tag,以防御针对
供应链的 tag 重定向攻击。
- **精确锁定扫描工具版本** —— 并且*正确地*锁定:版本号作为
参数传递给安装脚本,因为仅凭脚本 URL
会拉取最新版本(这是记录在决策文件中的一个隐蔽陷阱)。
- **通过 `continue-on-error` 实现监控模式**:在不阻塞合并的
情况下展示发现的问题,这适合仍在排查初始积压问题的团队。
- **缓存 pip 和工具二进制文件**,以减少运行时间和 CI 成本。
## 仓库结构
```
devsecops-pipeline-demo/
├── .github/workflows/
│ └── security-scan.yml # the pipeline
├── app/
│ ├── requirements.txt # intentionally outdated deps (CVEs for SCA)
│ └── vulnerable_example.py # intentional code flaws (for SAST)
├── infra/
│ ├── Dockerfile # intentional image misconfig (for Trivy/Checkov)
│ └── k8s-deployment.yaml # intentional K8s misconfig (for Checkov)
└── docs/
└── technical-decisions.md # why each pipeline choice was made
```
## 运行方式
该流水线会在向 `main` 分支 push 或发起 pull request 时自动运行。要查看
检测结果,请打开 **Actions** 标签页,选择一次运行记录,并下载 SARIF
产物。
要在本地使用单个扫描工具(例如 Semgrep)进行实验:
```
pip install semgrep==1.165.0
semgrep scan --config auto .
```
## 演示内容
- 将多款安全扫描工具集成到单个 CI 流水线中
- 供应链加固(SHA 锁定、精确版本锁定)
- 理解 SAST、SCA 与 IaC 扫描的区别及其各自的检测范围
- 务实的推出策略(在强制执行前采用监控模式)
- 批判性地阅读扫描输出,而不是盲目应用修复
## 许可证
MIT - 请参阅 [LICENSE](LICENSE)。可自由用于学习。
标签:DevSecOps, GitHub Actions, IaC扫描, SAST, 上游代理, 子域名突变, 安全专业人员, 安全流水线, 盲注攻击, 自动笔记, 请求拦截, 逆向工具