Our SBOMs should reference the base image's SBOMs
- Dominant language
- Go
- Stars
- 8.5k
- Forks
- 447
- PR merge metrics
- No merged PRs in 30d
Description
Currently our SBOMs only capture the contents of the Go binary we overlay on the base image, but it should be possible to (at least) discover the SBOM for the base image, or capture its contents.
I believe the prevailing wisdom (from @puerco) is to reference the base image's SBOM, and there is some precedent for "external references" in SBOMs such as this "external reference" from the K8s SBOMs
```
ExternalDocumentRef:DocumentRef-kubernetes-v1.23.5 https://sbom.k8s.io/v1.23.5/source SHA1: c7c35638348a5c2cf6d3af72cfdc94a66e33252b
```
I think the work here would be:
1. Detect whether our base image has an SBOM, and if so
2. Encode some sort of `ExternalDocumentRef` into our image-level SBOMs.
cc @jdolitsky @imjasonh @jonjohnsonjr
Contributor guide
Research direction
No files, tests, or entry points are named. Start by locating the code that generates the image-level SBOM and how the base image is resolved, then investigate how a base-image SBOM can be discovered and represented with an ExternalDocumentRef. Done means the generated SBOM references the base image's SBOM when one exists.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- docker, go
- Domain
- devops, security
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100