PlatformPlatform architectureProduct tourProduct graphRisk intelligenceContinuous governanceEvidence & auditDeploymentIntegrationsExecutive view
BOM SuiteSBOMCBOMQBOMAIBOMHBOMBOM Governance
SolutionsSecurityComplianceSupply chain riskQuantum readinessAI governanceDigital trust
ComplianceCERT-InRBISEBI / CSCRFMeitYNISTEU CRAEU AI ActCERT-In SBOM guide
IndustriesBanking & Financial ServicesGovernment & Public SectorDefence & Critical InfrastructureHealthcareIndian enterprises
ResourcesResource centreSBOM resourcesCBOM resourcesQBOM resourcesAIBOM resourcesHBOM resourcesProgramme & regulationBlog
CompanyAboutSecurity & trustContact
Request a DemoTalk to an expert
Guide3 min readReviewed September 20268 sources

HBOM generation: collecting hardware and firmware inventory

An HBOM is assembled, not scanned. Good generation combines what the supplier declares with what the device reports, and records which is which.

Key takeaways
  • Use four sources: supplier HBOMs, in-band OS tools, out-of-band management interfaces and procurement records.
  • Redfish FirmwareInventory covers platform firmware that does not execute in the host OS.
  • Normalise identifiers (manufacturer, part number, CPE, serial) before merging data.
  • Model firmware as a child of the hardware it runs on, as CycloneDX recommends.

Four sources of truth

SourceExamplesStrengthLimitation
Supplier HBOMOEM declaration using CISA taxonomy fieldsSub-component detail, provenance, part numbers [1]Design-time; may not reflect field changes
In-band collectiondmidecode, lshw, fwupdSerials, firmware versions, installed modules [2][3]Relies on what firmware reports [4]
Out-of-band collectionRedfish on BMCs, vendor management APIsAgentless firmware inventory [5]Coverage varies by vendor and model
Procurement recordsPurchase orders, delivery notes, RMA recordsContracted supplier and quantitiesRarely component-level

Step 0: decide scope and depth

Decide which estates come first and how deep each HBOM should go. For most organisations, replaceable modules and all firmware-bearing components are the right depth for operational HBOMs; component-level detail with locations is reserved for critical products, where the CISA taxonomy’s provenance fields matter most.

Step 1: start from the supplier declaration

Where suppliers provide HBOMs, they are the most reliable source for what sits below the management interface: sub-assemblies, component manufacturers, manufacturing and assembly locations, and date codes. The CISA framework recommends a parent-child structure in which a product breaks down into assemblies and components, each linked by part identifiers [1]. Ask for it in procurement (see HBOM procurement requirements).

Step 2: collect in band

On hosts you control, lshw reports memory configuration, firmware version, mainboard and CPU details [2], dmidecode reads SMBIOS for manufacturer, model, serial and BIOS version [4], and fwupdmgr get-devices lists devices fwupd can see, with their firmware [3]. Record the tool and version with each observation so that later reviewers know how a value was obtained.

Step 3: collect out of band

For servers, Redfish is the most consistent route. Its update service exposes a FirmwareInventory collection for platform firmware that “does not execute within a host operating system” and a SoftwareInventory collection for host-executed components such as drivers; entries include version, manufacturer, release date and links to related hardware resources [5]. A request to /redfish/v1/UpdateService/FirmwareInventory on a BMC returns the collection without an agent on the host.

Step 4: normalise identifiers

Merging only works if identifiers agree. Normalise manufacturer names, keep both supplier and manufacturer part numbers (the CISA taxonomy distinguishes them [1]), record serial numbers for instances, and assign CPE names where they exist; CPE 2.3 distinguishes hardware from operating systems and applications through its part attribute [6]. A consistent unique identifier per component also satisfies one of CERT-In’s minimum elements [7].

Step 5: express it in CycloneDX or SPDX

In CycloneDX, represent the physical part as a device component and its firmware as a firmware component; the specification says “a hardware device containing firmware SHOULD include a component for the physical hardware itself” [8]. Nest sub-assemblies as child components and use dependencies for relationships. Attach hashes to firmware images where available. The CycloneDX for hardware BOMs article gives an example.

Step 6: mark provenance of each value

Keep a property on each field or component that says whether it was declared by the supplier, observed in band or observed out of band. When the sources disagree, for example a different firmware version or an unexpected module, that disagreement is a finding, not noise. It feeds directly into HBOM validation.

Step 7: regenerate on change

Regenerate the operational HBOM after firmware updates, part replacements and RMAs, and on a schedule. Each run becomes a new version that can be compared with the last, which is the basis of HBOM management.

How IntelliXBOM helps

IntelliXBOM generates and ingests HBOMs in CycloneDX and SPDX, merges supplier and collected data, and keeps each run as a version with component-level diffs. It then correlates devices and firmware with vulnerabilities, EOL dates and business services.

Frequently asked questions

Can an HBOM be generated automatically?

The operational part can, using in-band tools and management interfaces such as Redfish. Sub-component detail and provenance usually have to come from the supplier, so a complete HBOM combines automated collection with supplier declarations.

Which format should I use for a generated HBOM?

CycloneDX and SPDX both work. CycloneDX has explicit device and firmware component types; SPDX 3.0 has device and firmware software purposes. Use the same format family as your SBOMs so the inventories can be linked.

How often should an HBOM be regenerated?

After every firmware update, part replacement or RMA, and on a regular schedule to catch unrecorded changes. Keeping each run as a version lets you compare states over time.

Sources

  1. A Hardware Bill of Materials (HBOM) Framework for Supply Chain Risk Management (September 2023)CISA ICT SCRM Task Forcewww.cisa.gov/sites/default/files/2023-09/A%20Hardware%20Bill%20of%20Materials%20Framework%20for%20Supply%20Chain%20Risk%20Management%20(508).pdf
  2. lshw, Hardware Listerlshw project (GitHub)github.com/lyonel/lshw
  3. fwupd, firmware update daemonfwupd project (GitHub)github.com/fwupd/fwupd
  4. Dmidecodedmidecode project (Savannah)www.nongnu.org/dmidecode/
  5. DSP2062, Redfish Firmware Update White PaperDMTFwww.dmtf.org/sites/default/files/standards/documents/DSP2062_1.0.0.pdf
  6. NIST IR 7695, Common Platform Enumeration: Naming Specification Version 2.3NISTcsrc.nist.gov/pubs/ir/7695/final
  7. Technical Guidelines on SBOM, QBOM & CBOM, AIBOM and HBOM, Version 2.0 (9 July 2025)CERT-In, Government of Indiawww.cert-in.org.in/PDF/TechnicalGuidelines-on-SBOM,QBOM&CBOM,AIBOM_and_HBOM_ver2.0.pdf
  8. CycloneDX v1.6 JSON ReferenceOWASP CycloneDXcyclonedx.org/docs/1.6/json/

Sources checked in September 2026. Regulations and guidance change; always refer to the issuing body’s current publication. This content is for general information and is not legal advice.

Related HBOM guides

Across the BOM Suite

Put your HBOM under governance.Hardware & firmware trust with continuous correlation and timestamped evidence.