2.3 KiB
2.3 KiB
VEX Consumption from SBOM Documents (Embedded VEX Extraction)
Module
Concelier
Status
IMPLEMENTED
Description
Extracts embedded VEX statements from CycloneDX and SPDX SBOMs, evaluates per-statement trust based on source provenance and evidence quality, resolves conflicts when multiple VEX sources disagree, and generates consumption reports. This is distinct from the known "VEX Multi-Source Consensus Engine" which merges standalone VEX documents; this feature specifically processes VEX embedded within SBOM documents.
Implementation Details
- Modules:
src/Concelier/__Libraries/StellaOps.Concelier.SbomIntegration/Vex/,src/Concelier/__Libraries/StellaOps.Concelier.SbomIntegration/Parsing/ - Key Classes:
VexConsumptionReporter(src/Concelier/__Libraries/StellaOps.Concelier.SbomIntegration/Vex/VexConsumptionReporter.cs) - generates consumption reports from extracted VEX statementsVexConsumptionPolicyLoader(src/Concelier/__Libraries/StellaOps.Concelier.SbomIntegration/Vex/VexConsumptionPolicyLoader.cs) - loads trust and precedence policies for VEX evaluationVexConflictResolver(src/Concelier/__Libraries/StellaOps.Concelier.SbomIntegration/Vex/VexConflictResolver.cs) - resolves conflicts between embedded VEX statementsVexConsumptionOptions(src/Concelier/__Libraries/StellaOps.Concelier.SbomIntegration/Vex/VexConsumptionOptions.cs) - configuration for VEX consumption behaviorParsedSbomParser(src/Concelier/__Libraries/StellaOps.Concelier.SbomIntegration/Parsing/ParsedSbomParser.cs) - extracts embedded VEX from CycloneDX and SPDX SBOMs
- Interfaces:
IVexConsumptionReporter,IVexConsumptionPolicyLoader,IVexConflictResolver - Source: SPRINT_20260119_020_Concelier_vex_consumption.md
E2E Test Plan
- Parse a CycloneDX SBOM with embedded VEX statements and verify all VEX entries are extracted
- Parse an SPDX SBOM with embedded VEX and verify extraction works across formats
- Verify per-statement trust evaluation: VEX from a vendor SBOM receives higher trust than from a third-party
- Verify conflict resolution: two embedded VEX statements with conflicting status for the same CVE are resolved with rationale
- Verify consumption report:
VexConsumptionReportergenerates a report listing all consumed VEX statements with trust scores