
An SBOM Is Just an Honest Inventory
When the next Log4j lands, the only question that matters is "are we affected". An SBOM answers it in seconds.
When the next Log4j-scale vulnerability is announced, exactly one question matters in the first hour: are we affected?
Teams without an inventory spend two days finding out. Teams with one answer in about thirty seconds. That is the entire argument for a software bill of materials, stripped of the compliance vocabulary that usually surrounds it.
Generating one
syft ghcr.io/org/app:1.4.2 -o spdx-json > sbom.json
That produces a complete list of every package in the image with versions — OS packages and application dependencies together. It is a file. Commit it, or attach it to the release.
Then scan the inventory rather than rebuilding and rescanning the image:
grype sbom:sbom.json
The workflow that pays off
Generate an SBOM on every release build and store it with the release artifact. That is the whole discipline.
Six months later, when an advisory lands for a library you cannot remember using, you scan the stored SBOMs of every version currently deployed instead of trying to reconstruct what was in a build that happened in March.
This also answers "which client deployments are affected" without asking each client to run something — a difference that matters when you maintain sites for several businesses.
What it is not
An SBOM does not make you secure. It is an inventory, and an inventory only reduces the time between an announcement and knowing your exposure.
That time is the thing that actually determines outcomes, though. The gap between "a vulnerability was published" and "we knew we were affected" is where incidents grow.
For client handover
I include an SBOM in project handover documentation now. It tells whoever maintains it next exactly what is in there without reading the whole dependency tree, and it gives the client something concrete when their own auditor asks.
It costs one line in a pipeline. There is no argument against it that survives being asked "how would you find out?"
Resources
- Repo: anchore/syft
- Scanner: anchore/grype
- Video walkthroughs: YouTube: SBOM syft grype
- Related: Your dependency tree is your attack surface
Need this built properly?
I build secure, fast, bilingual platforms for clients across Egypt, Saudi Arabia, the UAE and Kuwait.


