ko-build / ko-build/ko

Our SBOMs should reference the base image's SBOMs

Open
#654 13 comments 0 reactions 0 assignees View on GitHub
enhancement lifecycle/frozen sbom
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.