Safeguard
Developer Tools•

What does an SBOM show for a distroless or minimal container image?

Distroless images have no shell or package manager, which can change what a scanner finds. Learn what to expect in the SBOM and how to check it.

Safeguard Security Team
4 min read

A distroless image SBOM is shorter, because the image holds your application and its runtime dependencies and little else. But a scanner that learns about packages from a package manager database may find less than you expect. Test one image, and add a build time SBOM so nothing is lost.

What distroless means

The distroless project describes these images as containing only your application and its runtime dependencies, and says they do not contain package managers, shells or other programs you would expect in a standard Linux distribution. Its stated reason is to restrict what is in your runtime container to what your application needs.

For an SBOM that has two effects. The component list should be shorter, which is the point. And the usual places a scanner looks for installed software may be sparser, so you need to check how your tool recognises what is inside.

How scanners learn what is in an image

Evidence sourcePresent in a full distribution imagePresent in a minimal image
Package manager databaseYesDepends on how the image was built
Language lockfiles or metadata inside the app layerIf copiedIf copied
Compiled binaries with embedded build informationYesYes
Shell and common utilitiesYesNo

The first row is the one to check. Where the image has no package database, a scanner may fall back to inspecting files and binaries, which can identify fewer components or give lower confidence results. I would not assume either outcome. Test it on your own image.

A check you can run

  1. Build your application on a standard base image and on a distroless or minimal one.
  2. Generate an SBOM for each from the final image.
  3. List components by type: operating system packages, language packages, and unclassified files.
  4. Note what appears in one and not in the other.
  5. Compare against what you know the runtime needs, such as the C library and certificates.

If the minimal image reports almost nothing at the operating system level, ask whether that is because it contains almost nothing, or because the tool could not see it.

Close the gap at build time

A build time SBOM is generated while the image is made, when the builder knows what it installed. Docker's documentation notes that indexing contents during the build has benefits over scanning a final image, since you can detect software used to build it that might not show up in the final image. For minimal images, that build record can be the more complete source of truth for the layers you assembled. Record the base image digest too, so a reader can trace it.

What to say to a customer

Tell them the image is minimal by design and what scope your SBOM covers. A short note such as "runtime image, no shell or package manager, SBOM generated at build time and from the final image" prevents the question of whether an empty looking SBOM is hiding something.

Try it yourself

Click through it at your own pace, or open it full screen. Compare how many findings come from the base layers and how many from application packages.

Where Safeguard fits

Safeguard scans container images and produces SBOM output, with reachability analysis for application dependencies. Try your own minimal image with the free scan at gold.safeguard.sh/scan.

Quick check

Does a smaller image mean a smaller attack surface?

Generally fewer components means fewer things to patch, but it still needs verifying. Scan the image you actually ship.

Why might my scanner find little in a minimal image?

Either there is little there, or the tool lacks the package metadata it relies on. Compare with a build time SBOM.

Sources

Last reviewed: 19 October 2026.

Never miss an update

Weekly insights on software supply chain security, delivered to your inbox.

Self-healing security runs on Safeguard.

Your first fix PR is minutes away.

No sales call required, even your agent can complete the purchase over MCP.