
External supply chain integrity monitoring for Aqua Security open source projects.
This repository continuously monitors the integrity of Aqua Security's published artifacts — container images, GitHub releases, Git tags, and release assets — by recording and verifying cryptographic digests over time. For signed artifacts, it also verifies Sigstore cosign signatures against the Rekor transparency log.
A scheduled GitHub Actions workflow runs every 10 minutes and compares current artifact digests against previously recorded state. If any digest has changed unexpectedly, the workflow fails and creates a GitHub Issue with details.
Software supply chain attacks often target distribution channels:
These attacks are difficult to detect from inside the target repository because an attacker with sufficient access can also disable in-repo monitoring. External monitoring from a separate repository is immune to this.
.sig tags) and the newer Sigstore bundle format (OCI Referrers API and .sigstore.json release assets).| Mode | Schedule | What it checks |
|---|---|---|
| Quick | Every 10 min | Recent image tags, all releases/tags, no cosign |
| Full | Every 6 hours | All image tags, cosign verification, deep asset check |
State is stored as TSV files in the state/ directory (one per target). Each row records an artifact's type, identifier, digest, signature status, and creation date. Changes to state files are committed by the workflow, providing a full audit trail via Git history.
When an integrity violation is detected, the workflow:
| Project | Releases | Tags | Container Images | Cosign | State |
|---|
| trivy | Yes | Yes | GHCR, ECR Public, Docker Hub | Yes | state/trivy.tsv |
| trivy-action | Yes | Yes | — | — | state/trivy-action.tsv |
| setup-trivy | Yes | Yes | — | — | state/setup-trivy.tsv |
| trivy-operator | Yes | Yes | GHCR, Docker Hub | Yes | state/trivy-operator.tsv |
| kube-bench | Yes | Yes | Docker Hub | — | state/kube-bench.tsv |
| tfsec | Yes | Yes | GHCR, Docker Hub | — | state/tfsec.tsv |
| tracee | Yes | Yes | Docker Hub | Yes | state/tracee.tsv |
| kube-hunter | Yes | Yes | Docker Hub | — | state/kube-hunter.tsv |
| k8s-node-collector | Yes | Yes | GHCR | Yes | state/k8s-node-collector.tsv |