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, 上游代理, 子域名突变, 安全专业人员, 安全流水线, 盲注攻击, 自动笔记, 请求拦截, 逆向工具