2.8 KiB
2.8 KiB
VEX Delta Evidence and Tracking (Claim Transitions)
Module
Attestor
Status
IMPLEMENTED
Description
VEX delta predicates capturing per-CVE claim transitions (affected/not_affected/fixed) with merge traces and reason codes. Tracks changes in VEX statements between scans.
Implementation Details
- VEX Delta Predicate:
src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/VexDeltaPredicate.cs-- top-level predicate for VEX delta attestations. - VEX Delta Change:
Predicates/VexDeltaChange.cs-- individual per-CVE claim transition (e.g., affected -> not_affected) with reason code. - VEX Delta Statement:
Predicates/VexDeltaStatement.cs-- statement describing the claim transition details. - VEX Delta Summary:
Predicates/VexDeltaSummary.cs-- aggregate summary of VEX delta changes (added, removed, status_changed counts). - VEX Merge Trace:
Predicates/VexMergeTrace.cs-- trace of how VEX sources were merged, explaining conflict resolution and priority ordering. - VEX Document Reference:
Predicates/VexDocumentReference.cs-- reference to the VEX document that was the source of the change. - VEX Status Counts:
Predicates/VexStatusCounts.cs-- before and after status counts for delta comparison. - Change Trace Attestation Service:
ChangeTrace/ChangeTraceAttestationService.cs(with.Helpers,.Mapping) -- generates change trace attestations including VEX delta entries. - Change Trace Delta Entry:
Predicates/ChangeTraceDeltaEntry.cs-- entry in the broader change trace capturing a VEX delta event. - Change Trace Predicate Summary:
Predicates/ChangeTracePredicateSummary.cs-- summary of all change trace predicates including VEX deltas. - Tests:
__Tests/StellaOps.Attestor.ProofChain.Tests/
E2E Test Plan
- Create a
VexDeltaPredicatetracking a CVE transition from affected to not_affected with justification code; verify the change is captured - Create a delta with multiple transitions (3 CVEs changing status) and verify
VexDeltaSummaryreports correct counts - Verify merge trace: create a delta resulting from merging two VEX sources and verify
VexMergeTraceexplains which source took priority - Track a fixed -> affected regression and verify
VexDeltaChangecaptures the regression with reason code - Generate a change trace attestation via
ChangeTraceAttestationServicewith VEX deltas and verify the attestation includes delta entries - Verify
VexStatusCountsbefore and after: verify counts shift correctly when statuses change - Create a delta where a VEX document is removed entirely and verify all its claims appear as removed in the delta
- Verify
VexDeltaStatementdetails include the source VEX document reference viaVexDocumentReference