Skip to content

Hardware/Firmware Evidence Ingest

agent-bom has strong software and model supply-chain coverage. The remaining hardware supply-chain gap is evidence that already exists outside agent-bom: vendor hardware/firmware SBOMs, signed firmware attestations, BMC/BIOS inventory exports, and CMDB/EDR feeds.

agent-bom ingest hardware maps that operator-provided evidence onto the unified graph so a host, its firmware (BIOS/BMC/NIC), its GPUs, and any firmware or GPU-driver advisory become first-class, traversable nodes.

Evidence ingest, not firmware scanning

This is not a firmware scanner. agent-bom does not probe BMC/IPMI, read BIOS, or run any device-side agent. It ingests a JSON document you already have and projects it onto the graph. Generating that evidence (vendor inventory exports, signed attestations, OCSF/CMDB feeds) is out of scope.

Usage

# Map evidence onto the graph and stream the graph JSON to stdout
agent-bom ingest hardware evidence.json

# Human-readable summary instead of the raw graph
agent-bom ingest hardware evidence.json -f table

# Write the graph export to a file
agent-bom ingest hardware evidence.json -o hardware-graph.json

Sensitive identifiers are redacted by default

Device and GPU serial numbers are hashed by default — only a stable, salt-free SHA-256 serial_fingerprint is stored, and the raw value is dropped (serial_redacted: true). The fingerprint is stable enough to correlate the same device across evidence files without revealing the serial. No raw firmware signature blobs are stored — only the attestation posture (signed/verified), declared algorithm, and provenance.

To retain raw serials (for example on a single-tenant operator workstation), opt in explicitly:

agent-bom ingest hardware evidence.json --capture-serials

Input contract — agent-bom.hardware-evidence/v1

{
  "schema_version": "agent-bom.hardware-evidence/v1",
  "source": "vendor-inventory-export",
  "hosts": [
    {
      "host_id": "stable-operator-id",
      "hostname": "gpu-node-01",
      "vendor": "Acme",
      "model": "PowerEdge R760",
      "serial": "ABC123",
      "bios_version": "2.10.1",
      "bmc_version": "7.10.30",
      "firmware": [
        { "component": "nic-firmware", "version": "22.5.1", "vendor": "Acme", "signed": true }
      ],
      "gpus": [
        { "model": "A100", "driver_version": "550.54.15", "cuda_version": "12.4", "serial": "GPU-abc", "mig_mode": "enabled" }
      ],
      "attestation": {
        "source": "tpm-quote",
        "signed": true,
        "verified": true,
        "provenance": "vendor-signed",
        "signature_algorithm": "ecdsa-p256"
      },
      "advisories": [
        { "id": "CVE-2024-0001", "severity": "high", "affects": "bios", "fixed_version": "2.11.0", "title": "BIOS privilege escalation" },
        { "id": "NV-2024-0002", "severity": "critical", "affects": "gpu:A100", "title": "GPU driver OOB write" }
      ]
    }
  ]
}

host_id is optional; the hostname is used when it is absent. Every field except the host identifier is optional.

Graph mapping

Evidence Graph node Notes
Host RESOURCE (resource_kind=hardware_host) Carries vendor/model, BIOS/BMC versions, attestation posture, redacted serial
BIOS / BMC / firmware component RESOURCE (resource_kind=firmware) Linked to the host with PART_OF
GPU RESOURCE (resource_kind=gpu) Driver/CUDA/MIG attributes; linked to the host with PART_OF
Advisory VULNERABILITY Linked with AFFECTS to the precise asset

The advisory affects selector connects an advisory to the asset it impacts: host, bios, bmc, firmware:<component>, or gpu:<model>. Unknown or empty selectors fall back to the host so an advisory is never orphaned. This is what lets a firmware or GPU-driver advisory connect to the affected host/GPU asset.

Compliance evidence

Host and firmware nodes carry compliance_tags derived from the attestation state — hardware-attestation-verified, hardware-attestation-signed-unverified, or hardware-attestation-unverified — and firmware components are tagged firmware-signed / firmware-unsigned. These flow through the graph as durable, queryable compliance evidence alongside software findings.