feat: SBOM + vulnerability scans#562
Conversation
0d30292 to
0b32a31
Compare
bce560f to
734a824
Compare
5a90b5f to
da90de5
Compare
gilescope
left a comment
There was a problem hiding this comment.
Can you tweak the Earthfile to:
cargo install cargo-auditable
cargo auditable build --release
That way the sbom process will be able to pick up the bill of materials embedded in the rust binaries. Without that I would think the bill was not comprehensive.
The sign-image.sh script was only signing the first platform when given a multi-arch manifest (using .[0] instead of .[]). This resulted in only amd64 being signed while arm64 was missed. Changes: - sign-image.sh now iterates through all platform digests - Removed redundant arch-specific signing from release workflow since multi-arch signing now covers all platforms
GHCR only has arch-specific tags with the commit tag (e.g., 0.20.1-dev-abc12345-amd64). The release tag only exists as a multi-arch manifest. Docker Hub has arch-specific release tags since they're created manually in the workflow.
- Upgrade Node.js from 22.13.1 to 22.22.0 in all Earthfile targets to fix CVE-2025-55130 (filesystem permissions bypass via symlinks) - Add .grype.yaml to temporarily ignore GHSA-7h2j-956f-4vf2 (brace-expansion DoS) until npm releases a patched version - Update sbom-scan workflow to include .grype.yaml in sparse checkout - Add renovate comments for automated Node.js version updates
Use cargo-auditable to embed dependency metadata in release binaries, enabling Syft/Grype to detect all 1600+ Rust crate dependencies in vulnerability scans.
c83e2df to
e3772b9
Compare
good spot, can you re-review pls. |
ozgb
left a comment
There was a problem hiding this comment.
Blocking until we get the 0.21.0 release out - the security issues in our current node/toolkit images will create a block if we merge this PR
ozgb
left a comment
There was a problem hiding this comment.
With the threshold set to Critical, LGTM
changed: - post-merge CI action excludes native token tests because they're skipped (were executed earlier) and that was causing job to fail (we expect no skipped tests on last run
changed: - post-merge CI action excludes native token tests because they're skipped (were executed earlier) and that was causing job to fail (we expect no skipped tests on last run Signed-off-by: Mike Clay <mike.clay@shielded.io>
changed: - post-merge CI action excludes native token tests because they're skipped (were executed earlier) and that was causing job to fail (we expect no skipped tests on last run Signed-off-by: Mike Clay <mike.clay@shielded.io>








https://shielded.atlassian.net/browse/SRE-1741
Overview
Add SBOM (Software Bill of Materials) generation and vulnerability scanning to CI/CD pipelines. This implements Phase 3 of the container security initiative, building on the Cosign image signing from Phase 1.
What this adds:
Key design decisions:
critical(fails on critical CVEs only)🗹 TODO before merging
📌 Submission Checklist
🧪 Testing Evidence
Please describe any additional testing aside from CI:
Local testing of
sbom-scan.shfunctions against test imagesVerified Cosign attestation verification commands work locally
Additional tests are provided (if possible)
🔱 Fork Strategy
Links