面向 Aqua Security 开源项目的外部供应链完整性监控。
本仓库持续监控 Aqua Security 已发布制品(容器镜像、GitHub 版本发布、Git 标签及发布资产)的完整性,通过随时间记录并校验加密摘要来实现。对于已签名制品,还会对照 Rekor 透明日志验证 Sigstore cosign 签名。
一个定时调度的 GitHub Actions 工作流每 10 分钟运行一次,将当前制品摘要与先前记录的状态进行比较。如果任何摘要发生意外变化,工作流将失败并创建包含详细信息的 GitHub Issue。
软件供应链攻击往往针对分发渠道:
这类攻击很难从目标仓库内部发现,因为拥有足够权限的攻击者也可以禁用仓库内的监控。来自独立仓库的外部监控则不受此影响。
| 项目 | 版本发布 | 标签 | 容器镜像 | Cosign | 状态 |
|---|---|---|---|---|---|
| trivy | 是 | 是 | GHCR、ECR Public、Docker Hub | 是 | state/trivy.tsv |
| trivy-action | 是 | 是 | — | — | state/trivy-action.tsv |
| setup-trivy | 是 | 是 | — | — | state/setup-trivy.tsv |
| trivy-operator | 是 | 是 | GHCR、Docker Hub | 是 | state/trivy-operator.tsv |
| kube-bench | 是 | 是 | Docker Hub | — | state/kube-bench.tsv |
| tfsec | 是 | 是 | GHCR、Docker Hub | — | state/tfsec.tsv |
| tracee | 是 | 是 | Docker Hub | 是 | state/tracee.tsv |
| kube-hunter | 是 | 是 | Docker Hub | — | state/kube-hunter.tsv |
.sig 标签)和更新的 Sigstore bundle 格式(OCI Referrers API 和 .sigstore.json 发布资产)。| 模式 | 调度 | 检查内容 |
|---|---|---|
| 快速 | 每 10 分钟 | 最近镜像标签、所有版本发布/标签、不执行 cosign |
| 完整 | 每 6 小时 | 所有镜像标签、cosign 验证、深度资产检查 |
状态以 TSV 文件形式存储在 state/ 目录中(每个目标一个文件)。每行记录制品的类型、标识符、摘要、签名状态和创建日期。状态文件的变更由工作流提交,从而通过 Git 历史提供完整的审计追踪。
当检测到完整性违规时,工作流将:
| k8s-node-collector | 是 | 是 | GHCR | 是 | state/k8s-node-collector.tsv |