3.8 KiB
3.8 KiB
Binary SBOM and Build-ID to PURL Mapping
Module
Scanner
Status
IMPLEMENTED
Description
Binary call graph extraction, patch verification with signature stores and evidence models, and binary index service extensions for the scanner worker.
Implementation Details
- Binary Call Graph Extraction:
src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Binary/BinaryCallGraphExtractor.cs- Extracts call graphs from native binariessrc/Scanner/__Libraries/StellaOps.Scanner.CallGraph/DependencyInjection/CallGraphServiceCollectionExtensions.cs- DI registration
- Patch Verification:
src/Scanner/__Libraries/StellaOps.Scanner.PatchVerification/IPatchVerificationOrchestrator.cs- Orchestrator interfacesrc/Scanner/__Libraries/StellaOps.Scanner.PatchVerification/PatchVerificationOrchestrator.cs- Orchestrates patch verification workflowsrc/Scanner/__Libraries/StellaOps.Scanner.PatchVerification/Services/IPatchSignatureStore.cs- Interface for patch signature storagesrc/Scanner/__Libraries/StellaOps.Scanner.PatchVerification/Services/InMemoryPatchSignatureStore.cs- In-memory signature store implementationsrc/Scanner/__Libraries/StellaOps.Scanner.PatchVerification/Services/EvidenceIdGenerator.cs- Generates evidence IDs for patch verification results
- Patch Verification Models:
src/Scanner/__Libraries/StellaOps.Scanner.PatchVerification/Models/PatchVerificationResult.cs- Result modelsrc/Scanner/__Libraries/StellaOps.Scanner.PatchVerification/Models/PatchVerificationEvidence.cs- Evidence modelsrc/Scanner/__Libraries/StellaOps.Scanner.PatchVerification/Models/PatchVerificationContext.cs- Context modelsrc/Scanner/__Libraries/StellaOps.Scanner.PatchVerification/Models/PatchVerificationStatus.cs- Status enumsrc/Scanner/__Libraries/StellaOps.Scanner.PatchVerification/Models/PatchVerificationOptions.cs- Optionssrc/Scanner/__Libraries/StellaOps.Scanner.PatchVerification/Models/DsseEnvelopeRef.cs- DSSE envelope reference
- Worker Integration:
src/Scanner/StellaOps.Scanner.Worker/Extensions/BinaryIndexServiceExtensions.cs-BinaryIndexServiceExtensionsregisteringIBinaryVulnerabilityService,IBinaryFeatureExtractorsrc/Scanner/StellaOps.Scanner.Worker/Processing/BinaryLookupStageExecutor.cs- Binary lookup stage during scansrc/Scanner/StellaOps.Scanner.Worker/Processing/BinaryVulnerabilityAnalyzer.cs- Binary vulnerability analysissrc/Scanner/StellaOps.Scanner.Worker/Processing/BinaryFindingMapper.cs- Maps binary findings to unified finding model
- Build-ID Index:
src/Scanner/StellaOps.Scanner.Analyzers.Native/Index/OfflineBuildIdIndex.cs- Offline build-ID to PURL indexsrc/Scanner/StellaOps.Scanner.Analyzers.Native/Index/IBuildIdIndex.cs- Interface for build-ID indexsrc/Scanner/StellaOps.Scanner.Analyzers.Native/Index/BuildIdIndexEntry.cs- Index entry modelsrc/Scanner/StellaOps.Scanner.Analyzers.Native/Index/BuildIdLookupResult.cs- Lookup result model
E2E Test Plan
- Scan a container image with native binaries containing ELF build-IDs and verify build-ID to PURL mapping resolves correctly
- Verify binary call graph extraction produces a valid call graph for native binaries via
BinaryCallGraphExtractor - Trigger patch verification on a scanned binary and verify
PatchVerificationOrchestratorproduces evidence with status and signature references - Verify binary vulnerability findings are mapped to the unified finding model and appear in scan results
- Verify the offline build-ID index (
OfflineBuildIdIndex) can resolve build-IDs without network access - Export scan results as SBOM and verify binary components include PURL identifiers derived from build-ID mapping