Vulnerability management for air-gapped networks

Scanners on isolated networks depend on data that arrives by hand. This page explains how to move feeds and databases across the boundary, how often to scan when updates are manual, and which open-source tools fit.

On this page

Vulnerability management for air-gapped networks starts with the update path

A scanner that cannot reach the internet stays current only if its feeds and databases are carried across the boundary on a controlled path, so the update chain matters more than the scanner you choose. Someone on a connected system must fetch the data, a defined step must verify it, and someone inside must import it on a fixed schedule. If any link is missing, the scanner keeps running and reports against data that is months old, which looks like coverage but is not. Decide who owns each link before you compare tools, and write the process down so an assessor can follow it from download to import.

For most teams the short answer is Greenbone Community for host and network scanning, Trivy for container images and software dependencies, and DefectDojo for tracking findings and remediation. Greenbone loads its vulnerability tests, Notus data, CVE and CPE data and CERT-Bund advisories through data containers at startup, so the feed material must be placed where those containers can read it. Trivy can pull its vulnerability, Java and checks databases from an internal registry using the --db-repository and --java-db-repository settings, or from an archive copied into the cache directory on the offline system. Confirm each vendor's current offline feed procedure against its own documentation, since air-gapped support is a paid-edition feature for many vendors, and some offline capabilities sit behind commercial feeds or editions. Check that before you assume the free edition fits the boundary.

Which requirements shape an air-gapped vulnerability program

This table maps the regulatory and technical requirements that shape an air-gapped scanning program to the capabilities the build must include and the evidence a reviewer will ask for. Read each row as a requirement, then check whether your offline workflow produces the record it names. Scan cadence and remediation deadlines differ by framework and are covered on the sector pages, not here.

RequirementWhat the build must doEvidence to keep
HIPAA 45 CFR 164.312 audit controlsLog scan launches, feed imports, database loads and report exports on systems that hold or assess ePHI-connected assetsTimestamped logs of scan and import activity, reviewed on a set schedule
FTC Safeguards 16 CFR 314.4 monitoring dutiesMonitor and log activity of authorized users who run scanners, import media and access findingsAccess logs for scanner consoles and transfer workstations, with named operators
NERC CIP-013-2 software integrity and authenticityVerify checksums or signatures of every feed, database and tool package before it crosses the isolated boundaryHash records, verification results and the approver for each transferred package
Feed version traceabilityRecord which vulnerability test, CVE, CPE and advisory data version each scan used, including Trivy database versionsA feed or database version log tied to each scan report and its import date
Scanners cannot reach the internetLoad feeds and databases from approved media or an internal registry, and configure scanners to use only internal sourcesNetwork diagrams showing the boundary, egress rules and the documented update path
Trivy offline operationUse --offline-scan so Trivy does not contact external services, with the trivy-db and trivy-java-db copied into the cache directory or mirrored in an internal registryConfiguration files or run scripts showing the offline flag and local repository settings
Mirror freshnessKeep internal registry mirrors and transferred archives current, since the Trivy documentation warns mirrors must be kept updatedUpdate schedule and the date of the last successful database refresh

How feeds and databases get across the boundary

Greenbone Community Containers load feed data such as vulnerability tests, Notus data, CVE and CPE data and CERT-Bund advisories through dedicated data containers. Those containers write the data into volumes when the stack starts, so the transfer job is to get the feed content onto the offline host in a form the data containers can read. Someone with a connected machine pulls the current feed material, verifies it, and moves it across by approved media. An administrator on the isolated side then places it into the volumes used by the Docker Compose deployment and restarts the stack so the data containers reload.

  • Who downloads: a designated operator on a connected staging host, using the feed sources the Greenbone documentation describes for the Community Feed.
  • What is copied: the feed content for tests, Notus, CVE and CPE data and advisories, plus a record of the versions and hashes captured.
  • Where it lands: the named volumes the data containers populate, on a host sized to the documented minimums of 2 CPU cores, 4 GB of RAM and 20 GB of storage, or the recommended 4 cores, 8 GB and 60 GB.
  • Failure mode if not refreshed: scans still run, but new vulnerability tests and advisories are missing, so newly published CVEs go undetected until the next transfer.
  • Scope note: Community Feed releases exclude vulnerability tests for enterprise products, so confirm which feed your licensing covers before promising coverage.

Before approving a transfer design, confirm with Greenbone which feed sources and file formats apply to your edition and how the data containers validate imported content.

Which open-source platforms fit an isolated scanning program

An isolated scanning program needs a scanner that runs without internet access, a way to refresh its data through approved media, and a place to record results. The platforms below cover host and network scanning, container and filesystem scanning, Kubernetes, findings tracking and, where network monitoring is in scope, offline updates. Each one has a different update path, so confirm the offline procedure for each before choosing.

Greenbone Community for host scanning

Greenbone Community runs the OpenVAS scanner, the Notus Scanner for installed software, and gvmd, which stores results in PostgreSQL and runs scheduled tasks. Its feed data (vulnerability tests, Notus data, CVE and CPE data and CERT-Bund advisories) is loaded by dedicated data containers into volumes at startup, so the feed must be staged in advance on the isolated side. Automation can go through the Greenbone Management Protocol with gvm-tools. Confirm that the Community Feed excludes vulnerability tests for enterprise products, which may leave gaps in your estate.

Trivy for images and filesystems

Trivy scans container images, filesystems, Git repositories and virtual machine images for OS packages, software dependencies, misconfigurations and secrets, and it can produce SBOMs. Its vulnerability, Java and checks databases are OCI artifacts you can mirror into an internal registry and select with --db-repository and related flags. For offline hosts, --offline-scan stops external calls. The mirror must be refreshed on a schedule, because stale databases produce stale results. Confirm the output formats your reporting tool accepts, including SARIF and JSON.

Trivy Operator for Kubernetes

Trivy Operator scans a Kubernetes cluster continuously, for example when a new Pod is created, and stores vulnerability, config audit, exposed secret and RBAC reports as Kubernetes custom resources. Its compliance reports cover the NSA/CISA Kubernetes Hardening Guidance, the CIS Kubernetes Benchmark and the Pod Security Standards. In an air-gapped cluster, the operator needs the same mirrored databases as the CLI, and the cluster itself must be built from images pulled in advance. Confirm how the operator fetches its databases in your environment before you rely on its reports.

Wazuh vulnerability detection

Wazuh is licensed under GPL-2.0 and documents an offline installation guide for systems without internet connectivity. Its vulnerability detection can use an offline vulnerability repository in place of the Wazuh Cyber Threat Intelligence platform, which suits agents on isolated hosts. The offline repository must be populated and updated from approved media, and you need to confirm which feeds it covers and how often the content is refreshed. Wazuh also reports endpoint telemetry, so decide whether that data may leave the enclave.

DefectDojo for central tracking

DefectDojo's OpenVAS parser imports Greenbone reports in CSV or XML, so results from an isolated scanner can be tracked alongside Trivy and other tools in one register. The tracking instance itself can run inside the enclave, which keeps findings and asset data on the same side of the boundary as the scans. Confirm deduplication behavior across imports from different scanners, and confirm that ticketing integrations work with systems you can reach from the isolated network, since many will not.

Security Onion for offline updates

Security Onion is useful only when network monitoring is in scope. It supports full installs without internet access, with packages and NIDS, YARA and Sigma rules carried on its ISO. The soup tool applies updates from newer ISO media in airgap mode, which fits a controlled transfer process. Its platform bundles Suricata, Zeek, osquery and the Elastic stack, so the sensor and storage sizing decisions are larger than a scanning deployment. Confirm the update cadence for rules and whether the media review process can keep pace with it.

How the air-gapped rollout runs, phase by phase

The sequence moves from scoping the isolated zones to a documented first full scan cycle, with a named output at each phase so the team can prove each step finished.

  1. Scope assets and network zones

    The security lead and network team list every host, container platform and application in the isolated networks, then group them into zones by sensitivity and by what each scanner is allowed to reach. Credentialed scanning targets, scanner placement and the people who can approve media transfers are recorded in the same pass. The output is a signed asset inventory with zone boundaries, which becomes the baseline for every later scan and for the evidence file.

  2. Build the connected staging pipeline

    On a connected machine that the team controls, the engineers pull the Greenbone feed data, the Trivy vulnerability, Java and checks databases and any container images they need, then record checksums for each artifact. The staging host is treated as a controlled transfer point, so access, logging and retention are defined before the first file leaves it. The output is a transfer manifest listing every artifact, its version or date and its hash.

  3. Deploy Greenbone and Trivy on the isolated side

    The engineers install the Greenbone Community Containers, which need at least 2 CPU cores, 4 GB of RAM and 20 GB of storage per the project guidance, with 4 cores, 8 GB and 60 GB recommended, and place Trivy on the isolated hosts. The data containers load feed content into volumes at startup, so the imported data must be placed where those volumes read it. The output is a running stack with scanner versions recorded against the manifest.

  4. Run a test import and verify it

    Before any production scan, the team imports the staged media into a test environment on the isolated side and checks that Greenbone loads its vulnerability tests and CVE data and that Trivy reads its database from the cache directory. A known test target with a known finding confirms the scanner reports what it should. The output is a verified import log and a short test report that the change owner signs before the data is used operationally.

  5. Configure registry mirroring and offline flags

    Where the environment has an internal registry, the team mirrors the Trivy OCI databases into it and points the scanner at them with the database repository and checks bundle settings, then sets offline scanning so Trivy does not contact external services. The team also confirms how Greenbone reads its feed data after import. Mirror refresh is the step most often forgotten, so the owner and the procedure for each refresh are written down. The output is a configuration record listing every repository setting, flag and mirror owner.

  6. Set a manual update and scan calendar

    Because no feed updates arrive on their own, the team writes a calendar that ties each media transfer to a scheduled scan and a review of new findings. The calendar states who approves each import, who checks the import log, and what happens when a transfer misses its window. The output is an approved calendar with named owners, linked to the change records that authorize each transfer.

  7. Run a first full cycle with evidence capture

    The team completes one full cycle from transfer through import, scan, triage and ticketing, and keeps every artifact: the transfer manifest, the signed import log, scan reports, exception decisions and remediation tickets. The cycle is reviewed against the asset inventory to confirm that every in-scope zone was covered. The output is a first-cycle evidence pack and a list of gaps to close before the calendar goes live.

Setting scan cadence when feed updates are manual

Scan cadence in an air-gapped network is limited by the slowest update path, not by the scanner schedule. A Greenbone scan task can run every night, but if the vulnerability tests, CVE and CPE data, CERT-Bund advisories and Notus data were last loaded weeks ago, the nightly results describe the past. Start by mapping each feed's transfer path end to end: who downloads it on the connected side, which media or guarded transfer carries it across, who imports it, and how long each hop takes in practice. Then set a fixed feed import calendar that every other schedule depends on, and run scans only after a successful import. For Trivy, the same logic applies to the trivy-db and trivy-java-db archives copied into the cache directory, and to any internal registry mirror that the docs say must be kept updated. The specific frequencies for imports and scans should be agreed with your auditor and your risk owner, not copied from a vendor default.

Every report should show which feed version it was produced from, and stale feeds should be detectable without reading the logs. Record the feed version or database build date for each scanner in the report header or export, and alert when the age passes the limit your policy sets. In Greenbone, the feed state is held in the data containers and volumes that load at startup, so confirm with your deployment which version identifiers gvmd and the feed reports expose and make them part of the export your auditor receives. Ask Trivy's operator or CI pipeline to log the database metadata for each run. A finding that cites a CVE is only as current as the data behind it, so the data age belongs in the report itself, next to the finding count.

Plan ad hoc scans for critical advisories that cross the boundary, and decide the trigger in advance. When a high-impact advisory arrives on an import, the team should be able to start a targeted scan of affected assets without waiting for the next calendar slot. Write the trigger down: which advisory sources count, who approves the transfer of an out-of-cycle import, and which asset groups are scanned first. Keep ad hoc scans within the same scan safety rules as scheduled ones, especially for operational technology and clinical systems. Confirm with your auditor whether an ad hoc run must be recorded as a separate event, and retain the import record, the feed version used and the scan result together so the timeline from advisory to finding can be reconstructed.

What evidence auditors and examiners ask for from an isolated program

What transfer logs and checksums do auditors expect for each data import?

Auditors expect a dated record for every import showing what moved, who approved it, and whether its integrity was verified. Keep the transfer log outside the isolated network, with the media serial number, the source system, the operator, the import date and the SHA-256 checksum recorded on the connected side before transfer and re-verified on the isolated side. Greenbone feed loads and Trivy database copies should each have their own entry. Trivy's self-hosting guidance describes downloading the trivy-db or trivy-java-db archive on a connected machine and copying it into the cache directory on the offline system, so the archive itself is the object to hash. Confirm with your assessor which hash algorithm and retention period they require, since neither is set by the tools.

How do I prove which feed or database version each scan used?

Record the feed or database version at the moment of each scan, because findings are only meaningful against the data that was current then. In Greenbone Community Containers, feed data such as vulnerability tests, Notus data, CVE and CPE data and CERT-Bund advisories is loaded by dedicated data containers into volumes at startup, so the feed state is tied to container and volume versions. gvmd stores results in PostgreSQL, so each report can be linked to the scan task that produced it. For Trivy, the report should be generated with a version or database metadata captured alongside it. Confirm with your scanner vendor which fields in each report show the feed date, since the exact output varies by component and release.

What scan scope and authentication records do examiners request?

Examiners want to see which assets were in scope, whether each scan was authenticated, and whether coverage gaps were recorded. Export the target list and asset group definitions from gvmd with each scan run, and keep the credential type used per target without storing the secrets themselves. Authenticated and unauthenticated results should be labeled, because unauthenticated scans miss many local package findings. Notus compares installed software on a host against known vulnerable versions during each scan, which is only possible when credentials allow access. Trivy reports can show which OS packages and dependencies were found in each image or filesystem, which serves as scope evidence for container targets. Ask your assessor how they define a complete scope for the isolated zone.

How is remediation tracked after findings reach DefectDojo?

DefectDojo keeps the finding history, owner, status and due date for each vulnerability, which is the record auditors use to test remediation timeliness. Its OpenVAS parser imports Greenbone reports in CSV or XML format, so results from the isolated scanner can be ingested into the same tracker as other tools. Each import creates a test with a timestamp, and status changes such as accepted risk, false positive or fixed should carry an approver and a reason. Deduplication reduces repeated entries across scans, but confirm how your configured product and engagement structure handles findings that persist across feed updates. Keep exports of closed findings with their closure evidence, since a fix verified by rescan is stronger than a ticket marked done.

Which access records should exist for the scanner and internal registry?

Maintain records of who can log in to the scanner, who can change scan configuration, and who can push or pull images from the internal registry that hosts Trivy databases. gvmd handles users and permissions and runs scheduled tasks, so its user list, role assignments and task change history are the primary scanner records. Registry access logs should show pulls of the vulnerability database images, and any push to the mirror should be traceable to a named operator and an approved transfer. Review these accounts on a schedule and retain the review record. Privileged access to the host itself is often covered by a separate PAM or logging control, so confirm where those logs are kept.

How do I show that offline settings actually blocked external calls?

Show evidence from the offline configuration and from network controls, not only from the configuration file. Trivy's --offline-scan option stops it from contacting external services, and its checks bundle is embedded in the binary for offline misconfiguration scans, so a scan log showing no outbound lookups supports the claim. Record the flag used in each scheduled job, and capture firewall or egress logs for the isolated segment showing denied outbound connections during scan windows. Wazuh's offline installation guide and its offline vulnerability repository option follow the same pattern: the configuration is documented and the network proof is retained. Test this periodically by attempting a controlled outbound connection and recording the blocked result.

Which record shows the software components and packages carried across the boundary?

A software bill of materials for each imported tool and image is the strongest record of what entered the isolated network. Trivy can generate an SBOM for a target and can also scan an existing SBOM, so SBOMs produced on the connected side can accompany the transferred media and be checked on arrival. NERC CIP-013-2 addresses verifying software integrity and authenticity of vendor software and patches, which is the requirement behind checking packages carried across isolated boundaries. For other frameworks, confirm with the assessor whether signed SBOMs or hash lists are acceptable. Store the SBOM with the transfer log entry so each import links to its components.

Which evidence formats work best for an assessor's sample?

Assessors sample individual records, so each control should produce a self-contained, dated export that can be read without the tool. Use Trivy report formats such as JSON or SARIF for machine-readable findings, and keep table output for review sessions. Export gvmd reports in the formats the scanner offers and store them with the scan configuration, feed version and task history. DefectDojo can serve as the index that links each finding to its scan, owner and closure evidence. Agree the sampling expectations with your auditor or examiner in advance, because the required period, format and completeness differ by framework and by the scope they accept.

Questions to ask an implementation partner about air-gapped scanning

Start with the connected staging host, because it is the one machine that bridges the internet and your isolated network, and a partner should be able to describe how it is hardened, logged and kept separate from production. Ask who has administrative access to it, whether it runs only the download and packaging jobs, how its outbound connections are restricted to the specific feed and registry endpoints, and where its logs go. Ask how each Greenbone feed snapshot and each Trivy database artifact is recorded with a hash, a source timestamp and the name of the person who pulled it. Ask how a compromised or stale staging host would be detected before its content crosses the boundary.

Next, ask how transfer media is verified. Under NERC CIP-013-2, procurement processes are expected to address verification of software integrity and authenticity, and the same discipline applies to any utility or regulated network that treats feeds as software inputs. Ask the partner to name the checksum or signature method used on each transfer, who compares the values on the isolated side, whether media is new for each transfer, and how the import host refuses an archive that fails verification. Ask for the written import procedure and a sample record from a previous transfer, with the identities of the people who signed each step.

Then test the licensing and the update cadence. Greenbone describes the Community Feed as free and the Greenbone Enterprise Feed as the full-featured commercial feed, and notes that Community Feed releases exclude vulnerability tests for enterprise products. Ask which feed covers your target estate, and whether the partner has confirmed that in writing. For Trivy, ask how mirrors of trivy-db, trivy-java-db and trivy-checks are refreshed, how a mirror is tested before scans rely on it, and what happens to scan results when a mirror falls behind. Ask who signs off each import, who can reject one, and how an offline update is rolled back to the previous feed or database version if a new import breaks scans. Finally, ask how DefectDojo receives Greenbone reports, who triages the resulting tickets, and how long raw reports and imported findings are retained for auditors.

How much does air-gapped vulnerability management cost and how long does it take?

What does air-gapped vulnerability management cost?

The software is often free, but the total cost comes from the people, hardware and transfer work around it. The main components are scanner infrastructure, a staging host on the connected side, registry storage for mirrored databases, feed or edition licensing, and the recurring effort to triage findings and move updates across the boundary. Open-source scanners such as Greenbone Community and Trivy carry no license fee for the core tools, but the Greenbone Community Feed excludes some enterprise product tests and some air-gapped features sit in paid editions at other vendors. Ask for a written quote that lists each component, who pays for it and which items recur each year.

What hardware do the scanners need in an isolated network?

The Greenbone Community Containers need at least 2 CPU cores, 4 GB of RAM and 20 GB of storage, with 4 cores, 8 GB of RAM and 60 GB of storage recommended. These are the documented minimums for the scanner stack alone. Storage needs grow with the feed data, the scan results history and any Trivy database mirror kept in your internal registry, so plan for the registry and the results database separately. Scanner sizing also depends on how many targets run in parallel and how often scans run. Confirm the sizing for your asset count with the implementation partner before buying hardware.

Can our team run air-gapped vulnerability management without outside help?

A team with Linux, container and network administration skills can deploy the stack alone, provided it has time for the transfer routine and triage work. The harder part is the ongoing discipline: pulling feeds and database updates on a connected machine, verifying them, moving them across the boundary under change control and keeping the mirror current. Trivy's documentation warns that internal mirrors must be kept updated, and the Greenbone feeds load from data containers at startup, so a stale transfer shows up as stale results. Decide early who owns each step, and whether an outside partner will handle the build, the runbook or only part of the operation.

What do we need to provide during the engagement?

The work depends on information only your organization holds. Expect to provide a list of network zones and their owners, the rules for what may cross the isolation boundary, and the change approval path for transfers and scanner access. You will also need an asset inventory with hostnames, addresses, operating systems and owners, plus credentials for authenticated scans where they are permitted. Ask whether your security policy allows transferred media, which approvals apply to each transfer and who signs off on scanning operational technology or sensitive hosts. Missing answers to these questions are the most common cause of schedule slippage in regulated networks.

How long does an air-gapped rollout take?

Duration depends mainly on the number of assets, the number of network zones and how many boundary crossings the design needs. A single flat network with a few hundred hosts is a different project from several segmented enclaves with separate registries and transfer points, and timelines should follow from a written scope rather than a general estimate. The phases to plan for are discovery of the asset and zone model, build of the connected staging host and isolated scanners, the transfer and mirror routine, test scans, and handover of runbooks. Ask the partner for a phased plan with dependencies on your approvals and for the assumptions behind each phase.

Does a partner replace our internal ownership of vulnerability management?

No. A partner can build, configure, document and support the platform, but accountability for risk decisions, remediation priorities and exceptions stays with your organization. Under an agreed scope, a partner may run the transfer routine, maintain the scanners and produce reports, while your teams keep sign-off on which findings are accepted, deferred or fixed. DeployOpen implements, hardens, documents and supports self-hosted open-source platforms inside the client's own networks, and it prepares evidence for compliance assessments without issuing audit reports or certifications. Written responsibilities should name which party performs each recurring task.

What recurring costs should we expect after go-live?

The recurring costs are mostly people and process, not software. Each feed or database update requires a connected machine, a verification step, a transfer and an import, so the effort repeats for as long as the environment is isolated. Other recurring items include triage of new findings, patch coordination with system owners, retention of scan records for auditors, and any support retainer. Paid editions or feeds, where they apply, add their own recurring license terms. Ask for the quote to split one-time build work from annual or monthly operating effort so that budget owners can see both.

How DeployOpen scopes and supports air-gapped vulnerability programs

DeployOpen plans, implements, customizes, integrates, hardens, documents and supports self-hosted open-source platforms inside the client's own infrastructure, including air-gapped networks. For vulnerability management, that means a scanning and tracking stack that keeps working when feed and database updates arrive only by controlled media.

How we scope

  • Written scope listing which network segments, asset classes and scanners are covered by offline updates
  • Inventory of the update path: who imports media, how often, and through which approved transfer process
  • Agreed list of integrations to DefectDojo, ticketing and reporting, with fixed deliverables before work starts
  • Engagements are fixed-scope, with scope, deliverables and timelines agreed in writing before any work begins

How we build

  • Internal mirror of Trivy databases in your own container registry, with checksum verification at each import step
  • Greenbone feed loading procedure for the data containers, with volumes staged from approved transfer media
  • Scan profiles and schedules configured for offline feed age, with alerts when feed data falls behind
  • Hardening of scanner hosts, access controls and audit logging for the systems that hold scan results

How we hand over

  • Runbooks for each media import, including steps, owners, verification records and rollback
  • Documentation of scan cadence, feed age thresholds and the evidence each scan produces for assessors
  • Tested restore and backup procedures for scanner databases and findings stores
  • Knowledge transfer sessions so your staff can run imports and scans without outside help

How we support

  • Ongoing support, upgrades and continuous testing are available as retainers, scoped in writing
  • Periodic review of feed freshness, mirror currency and release notes for components in scope
  • Security testing of the vulnerability platform itself, including applications, APIs and infrastructure
  • Compliance readiness support that prepares systems, controls and evidence for independent assessors, who issue the reports

Talk to our team.

Tell us what you're working on, whether it's a deployment, an audit, a security test or a cyber range. You'll speak with an engineer who can help you scope it.

  • 30-minute call: free, with no obligation.
  • NDA on request: we can sign before you share details.
  • Clear next steps: a scope and plan after the call.