3.5 KiB
3.5 KiB
Deterministic SBOM-to-VEX Pipeline with Signed State Transitions
Module
Policy
Status
IMPLEMENTED
Description
Full verdict pipeline determinism tests, SBOM determinism validation, determinism gate infrastructure, baseline store, and manifest writer for verifying byte-identical outputs from identical inputs.
Implementation Details
- Determinization Gate:
src/Policy/StellaOps.Policy.Engine/Gates/Determinization/DeterminizationGate.cs-- determinization gate implementationISignalSnapshotBuilderinterface for building signal snapshotsSignalSnapshotBuilder.cs-- builds signal snapshots for deterministic evaluationDeterminizationGateMetrics.cs-- metrics tracking for determinization gates
- Determinism Guard Service:
src/Policy/StellaOps.Policy.Engine/DeterminismGuard/DeterminismGuardService.cs- Static analysis via
ProhibitedPatternAnalyzerdetects non-deterministic patterns - Runtime monitoring via
RuntimeDeterminismMonitor GuardedPolicyEvaluatorwraps evaluation with pre/post determinism checks
- Static analysis via
- Determinization Library:
src/Policy/__Libraries/StellaOps.Policy.Determinization/DeterminizationOptions.cs-- configuration for determinization behaviorIDeterminizationConfigStore.cs-- persisted configuration for reanalysis rulesEvidence/-- evidence models for determinization decisionsModels/-- determinization data modelsScoring/-- scoring models for determinization
- Knowledge Snapshot Pipeline:
src/Policy/__Libraries/StellaOps.Policy/Snapshots/KnowledgeSnapshotManifest.cs-- pins all inputs (SBOM, feeds, policy) via digestsSnapshotAwarePolicyEvaluator.cs-- evaluates against frozen snapshot stateSnapshotIdGenerator.cs-- content-addressed snapshot IDs
- VEX State Transitions:
src/Policy/StellaOps.Policy.Engine/Gates/PolicyGateEvaluator.cs- Validates VEX status transitions (not_affected, affected, under_investigation, fixed)
- Requires DSSE-attested graphHash and path analysis for not_affected transitions
- Attestation Services:
src/Policy/StellaOps.Policy.Engine/Attestation/VerdictAttestationService.cs-- signs verdict decisions with DSSEPolicyDecisionAttestationService.cs-- signs policy decisionsScoringDeterminismVerifier.cs-- verifies scoring determinism
- Determinism Verification Endpoints:
src/Policy/StellaOps.Policy.Engine/Endpoints/VerifyDeterminismEndpoints.cs - Determinization Config Endpoints:
src/Policy/StellaOps.Policy.Engine/Endpoints/DeterminizationConfigEndpoints.cs
E2E Test Plan
- Run verdict pipeline twice with identical SBOM and advisory inputs; verify byte-identical output digests
- Build signal snapshot using SignalSnapshotBuilder; verify snapshot captures all evaluation signals
- Run determinism guard analysis on evaluation code; verify no prohibited patterns detected
- Modify SBOM input and re-run pipeline; verify output digest changes
- Verify VEX state transition from under_investigation to not_affected requires graphHash and pathAnalysis evidence
- Sign verdict with VerdictAttestationService; verify DSSE envelope is valid
- Verify ScoringDeterminismVerifier detects scoring drift when weights change
- POST to determinization config endpoint; verify configuration is persisted and retrievable
- Run determinization gate with signal snapshot; verify gate uses snapshot signals not live data
- Verify knowledge snapshot manifest contains content-addressed IDs for all input sources