5.1 KiB
5.1 KiB
Vulnerability-First Triage UX with Exploit Path Grouping and Proof Bundles
Module
Scanner (with Attestor proof bundle integration)
Status
IMPLEMENTED
Description
A vulnerability-first triage inbox where findings are grouped by exploit path similarity rather than by CVE or component. Security engineers see clusters of findings that share the same attack vector (entrypoint -> call chain -> sink), enabling batch triage. Backend triage service with DB context, reachability subgraph extraction, exploit path grouping, and proof generation exist. UI triage inbox and queue components are partially complete.
What's Implemented
- Exploit Path Grouping (Backend):
src/Scanner/__Libraries/StellaOps.Scanner.Triage/Services/IExploitPathGroupingService.cs-- interface grouping findings by exploit path similaritysrc/Scanner/__Libraries/StellaOps.Scanner.Triage/Models/ExploitPath.cs-- call chain from entrypoint to vulnerable functionsrc/Scanner/__Tests/StellaOps.Scanner.Triage.Tests/-- unit tests for exploit path grouping logic
- Triage Database and API:
src/Scanner/__Libraries/StellaOps.Scanner.Triage/Entities/TriageDbContext.cs-- EF Core database contextsrc/Scanner/__Libraries/StellaOps.Scanner.Triage/Entities/TriageFinding.cs-- finding entity with reachability classification and exploit path referencesrc/Scanner/StellaOps.Scanner.WebService/Endpoints/Triage/TriageInboxEndpoints.cs-- REST API with exploit path grouping support
- Triage Lanes:
TriageEnums.cs-- ACTIVE, BLOCKED, MUTED_REACH, MUTED_VEX - Triage Status Service:
TriageStatusService.cs-- state transitions across lanes - Evidence Integration:
ProofBundleEndpoints.cs-- evidence bundles for triage decisions - Proof Graph Service:
src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Graph/InMemoryProofGraphService.cs(with.Mutation,.Queries,.Subgraph) -- proof graph with subgraph extraction for evidence grouping - Micro Witness Evidence:
MicroWitnessFunctionEvidence.cs,MicroWitnessBinaryRef.cs,MicroWitnessCveRef.cs-- function-level reachability evidence - Reachability Witness Payload:
ReachabilityWitnessPayload.cs(with.Path),WitnessCallPathNode.cs-- witness payload with exploit call paths - Proof Spine System:
ProofSpineRequest.cs,ProofSpineResult.cs-- proof spine for evidence bundle assembly - Sigstore/Evidence Pack Builders:
SigstoreBundleBuilder.cs,ReleaseEvidencePackBuilder.cs-- builds proof bundles
What's Missing
- Triage Inbox UI Component: No Angular component implementing the vulnerability-first triage inbox with exploit path cluster view, batch triage actions, cluster expansion, sort/filter by cluster size/severity/reachability
- Exploit Path Similarity Algorithm: The
IExploitPathGroupingServiceinterface exists but the clustering/similarity algorithm completeness is unclear - Batch Triage API: No REST endpoint for applying a single triage decision to all findings in an exploit path cluster
- Cluster Statistics: No API endpoint returning per-cluster severity and reachability distributions
- Triage Dashboard: No dashboard showing triage progress (clusters triaged vs. remaining, MTTR per cluster)
- Triage Action Workflow: No triage action buttons (accept risk, suppress, escalate, remediate) with DSSE-signed action records
- Triage Priority Scoring: No scoring that prioritizes vulnerabilities by exploit path depth and reachability confidence
- Inline Proof Bundle Viewer: No inline viewer showing proof bundle contents (DSSE envelope, Rekor receipt, Merkle proof) within the triage UI
Implementation Plan
- Complete exploit path similarity algorithm using common call-chain prefix grouping with configurable similarity threshold
- Add
BatchTriageEndpointsfor applying triage decisions to entire exploit path clusters - Add cluster statistics endpoint returning per-cluster severity and reachability distributions
- Create
TriageInboxComponentinsrc/Web/with exploit path cluster view, batch actions, and filtering - Implement triage action workflow with DSSE-signed action records
- Add triage priority scoring based on path depth and confidence
- Build inline proof bundle viewer
- Create triage dashboard with progress metrics
- Add e2e tests for grouping, triage actions, and batch operations
E2E Test Plan
- Open triage inbox and verify findings are grouped by exploit path similarity
- Expand a cluster and verify all individual findings with CVE, severity, and reachability tier
- Apply batch "mute" action to entire cluster and verify all findings move to MUTED_REACH lane
- Sort clusters by highest severity and verify correct ordering
- Filter clusters by reachability tier "Confirmed"
- Open triage dashboard and verify correct counts
- Verify batch triage API returns correct affected finding count
Related Documentation
- Triage infrastructure:
src/Scanner/__Libraries/StellaOps.Scanner.Triage/ - Proof graph:
src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Graph/
Merged From
attestor/vulnerability-first-triage-ux-with-exploit-path-grouping-and-proof-bundles.md(deleted)