Interface Bill of Materials (IBOM) framework prototype. Companion to: "Interface Bill of Materials (IBOM): A Framework for Hardware-Software Interface Lifecycle Assurance in Cyber-Physical Supply Chains" — SCORED '26.
- RQ1: Machine-readable hardware-software interface representation spanning L1–L5
- RQ2: Automated drift detection across 6 controlled scenarios (6/6 = 100%)
- RQ3: Full pipeline in <15ms; 88.9% precision/recall on MMIO edge extraction
ibom-prototype/
├── hsig/ # HSIG = (V, E, P) formal model — nodes, edges, graph
├── parsers/ # SVD parser, firmware analyzer (LLVM pass sim), HLS parser
├── drift/ # classify_drift() algorithm + 6 injection scenarios
├── serializers/ # IBOM JSON serializer (paper Section 7.2 schema)
├── eval/
│ ├── fixtures/ # STM32F407-style CMSIS-SVD fixture
│ └── stm32f4_demo.py # Full end-to-end demo
└── output/ # Generated IBOM JSON + drift report
cd ibom-prototype
python3 eval/stm32f4_demo.pyRequires: Python 3.11+, networkx (pip install networkx)
| Metric | Value |
|---|---|
| L4 interface nodes | 35 |
| Total HSIG edges | 66 |
| CONSUMES precision | 88.9% |
| CONSUMES recall | 88.9% |
| Drift detection rate | 6/6 (100%) |
| SBOM-only detection rate | 0/6 (0%) |
| Total pipeline time | <15ms |
- MMIO address shift → brake registers enter CAN external-accessible range (CWE-1189)
- HLS optimization trap → pipeline-ii=1 shifts THRESHOLD register 0x10→0x18
- Timer peripheral retired with active firmware consumers
- Unvalidated DMA channel added without conformity assessment
- ABS IRQ_STATUS access mode changed read-write → write-only
- CAN gateway trust boundary weakened — ACCESS_LIMIT shifted
All 6 detected by IBOM. All 6 missed by SBOM-only analysis.
See output/ibom_brakecontrol_baseline.json for a complete generated IBOM document
conforming to the paper's Section 7.2 schema with BOM-triad PURL cross-referencing.
CycloneDX Issue #959: CycloneDX/specification#959 ENISA CRA consultation: June 2026