用途
供应链安全(Supply Chain Security)技能用于在软件交付过程中防范依赖与构建链条上的安全风险,覆盖以下场景:
- 依赖漏洞扫描(npm / pip / Maven)
- 容器镜像安全扫描
- CI/CD 流水线安全与投毒防护
- SBOM(软件物料清单)生成与管理
- 恶意包检测
核心原则
- 依赖 = 攻击面:每个依赖都可能存在漏洞。
- 锁定版本:lockfile 必须提交。
- 定期扫描:不是一次性工作,而是持续进行。
- 最小依赖:不需要的依赖不安装。
- 镜像也要扫:基础镜像本身可能包含漏洞。
主要工具
| 工具 | 用途 |
|---|---|
| Snyk | 依赖 + 容器 + 代码 |
| Dependabot | GitHub 自动 PR |
| Trivy | 容器 + 文件系统 |
| npm audit | npm 依赖 |
| pip-audit | Python 依赖 |
| OWASP Dependency-Check | Java |
| Grype | 容器扫描 |
| Syft | SBOM 生成 |
| cosign | 镜像签名 |
使用方式:CI 集成示例
在 GitHub Actions 中集成 Trivy 扫描:
# GitHub Actions
- name: Trivy scan
uses: aquasecurity/trivy-action@master
with:
image-ref: 'my-app:${{ github.sha }}'
severity: 'CRITICAL,HIGH'
exit-code: '1'
配置 exit-code: '1' 可在发现指定严重级别漏洞时使流水线失败,从而阻断合并。
配套模板
templates/dependency-audit-template.md— 依赖审计报告模板
质量自检清单
- [ ] CI 集成依赖扫描
- [ ] CI 集成镜像扫描
- [ ] 高危漏洞阻塞合并
- [ ] lockfile 提交
- [ ] 定期更新依赖
- [ ] SBOM 生成
- [ ] 新依赖评估流程
常见坑
- 不扫描:已知漏洞进入生产环境。
- 不锁版本:构建不可复现。
- 不更新:漏洞持续累积。
- 只扫不修:扫描结果无人处理。
- typosquatting:安装到错误包名的仿冒包。
与其他技能的协作
- 上游:
devops-engineer/ci-cd-pipeline→ CI 集成。 - 下游:
security-report→ 将扫描结果纳入报告;backend/frontend→ 根据结果进行修复。
限制
本资料未提供具体收费、价格、平台支持范围、检测准确率或效果数据,暂未提供。