Safeguard
Developer Tools•

Can an SBOM generator run offline in an air-gapped build?

Yes, if it reads local files only. Here is how to test an SBOM tool offline, what degrades without a network, and what to ask before you buy.

Safeguard Security Team
4 min read

Yes, an SBOM generator can run offline when it reads lockfiles, package metadata and image layers from disk and needs no live lookups. What usually degrades is enrichment: vulnerability matching, license text and supplier data need a database you copy in. Test this on a machine with the network unplugged.

Two jobs hiding in one word

"SBOM tool" bundles two different jobs. Generation answers "what is in this build?" and only needs the files in front of it. Enrichment answers "what do we know about those components?" and normally needs data from outside.

JobNeeds network?What offline looks like
Read lockfiles and manifestsNoWorks fully
Read installed packages or image layersNoWorks fully
Resolve a version range with no lockfileOften yesFails or guesses
Match components to advisoriesYes, unless mirroredNeeds an imported database
Fetch license text or hashes from a registryOften yesFields come out empty

The middle row is the trap. If a project has no lockfile, a tool may ask the registry what a range such as "^2.1" resolves to today. Offline, it either fails or records the range instead of a version. That is a quality problem, and an offline test shows it quickly.

A five step offline test

  1. Pick a representative repository and a container image you build today.
  2. Generate an SBOM on a connected machine and keep it as your baseline.
  3. Copy the repository and the tool to a machine with no route out. Block DNS too, because some tools fail slowly rather than loudly.
  4. Generate again and diff the two files by component name, version and identifier.
  5. Record every component that changed, vanished, or lost a field.

If the component list matches and only enrichment fields differ, the tool is safe for a disconnected build. If versions changed, the tool depends on the network to decide what is installed, and you should treat its offline output as lower confidence.

Questions to put to any vendor

  • Does generation make any outbound call by default, including telemetry or license checks?
  • Is there a documented flag or mode that turns every outbound call off?
  • How is the advisory database delivered to a closed network, and how often can it be refreshed?
  • What happens to the SBOM when a lookup fails: an error, an empty field, or a silent guess?
  • Can the output record that enrichment was skipped, so a reader knows the data is partial?

That last question matters for honesty. An SBOM that says nothing about what it could not look up reads as complete when it is not. If the format allows a note about completeness or a known gap, use it.

Keeping the closed network current

Generation is a point in time, and a disconnected site still needs to learn about new advisories. The usual pattern is to move updates across the boundary on a schedule, for example a signed bundle of advisory data carried over by an approved transfer process, then re-scan SBOMs you already stored. That separates the two jobs cleanly: the SBOM is produced once from local files, and matching is repeated whenever the data changes.

Where Safeguard fits

Safeguard produces SBOMs and runs dependency scanning, so you can use the free scan at gold.safeguard.sh/scan on a connected copy of a project to get a baseline before you run your own offline comparison. Check any deployment option for a closed network with your account team before you rely on it.

Quick check

Does offline generation make the SBOM less accurate?

Not if the tool reads pinned versions from lockfiles or installed packages. It gets less accurate when versions must be resolved from a registry, so keep lockfiles committed.

Can vulnerability matching work without a network?

Only with an advisory database you copy in and refresh on a schedule. Without one, the SBOM is still valid but unmatched.

How do I prove the offline run was really offline?

Block DNS and outbound traffic at the host, then keep the firewall or proxy log for the run as evidence.

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.