2.1 KiB
2.1 KiB
Signal Normalization Pipeline
Module
Attestor
Status
IMPLEMENTED
Description
Signal normalization exists through the existing scoring engine and determinization evidence system, handling CVSS, KEV, EPSS, and other signal providers.
Implementation Details
- Evidence Predicate:
src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/EvidencePredicate.cs-- evidence predicate capturing normalized signal data (CVSS scores, KEV status, EPSS probability). - Finding Summary:
Predicates/FindingSummary.cs-- summary of a finding with normalized severity from multiple signal sources. - Scan Context Info:
Predicates/ScanContextInfo.cs-- scanner context capturing which signal providers contributed data. - Verdict Inputs:
Statements/VerdictInputs.cs-- records normalized signals as inputs to verdict decisions. - Verdict Decision:
Statements/VerdictDecision.cs-- decision incorporating normalized signal data. - Statement Builder:
Builders/StatementBuilder.cs-- builds attestations capturing normalized signal data. - Content-Addressed IDs:
Identifiers/ContentAddressedIdGenerator.cs-- generates deterministic IDs from normalized signal payloads. - RFC 8785 Canonicalizer:
Json/Rfc8785JsonCanonicalizer.cs-- deterministic serialization of signal data. - Tests:
__Tests/StellaOps.Attestor.ProofChain.Tests/SignalNormalizationTests.cs
E2E Test Plan
- Create an
EvidencePredicatewith CVSS v3.1, CVSS v4.0, and EPSS data and verify all signals are captured - Normalize a finding with multiple signal sources and verify
FindingSummaryproduces a consistent severity - Verify
ScanContextInfocaptures the signal providers (NVD, CISA KEV, EPSS) and their versions - Build a verdict with normalized signals as
VerdictInputsand verify the decision references all signal sources - Canonicalize signal data via
Rfc8785JsonCanonicalizerand verify deterministic output - Generate a content-addressed ID from normalized signals and verify it is deterministic
- Verify signal normalization handles missing signals gracefully (e.g., no EPSS data available)