2.7 KiB
2.7 KiB
Reachability Status Classification (R0-R3/UNREACHABLE through REACHABLE_PROVEN)
Module
Scanner
Status
IMPLEMENTED
Description
Reachability classification with multiple tiers (unreachable, possibly reachable, reachable static, reachable proven) and confidence scoring with deterministic modifiers.
Implementation Details
- Reachability Models:
src/Scanner/__Libraries/StellaOps.Scanner.Reachability/Dependencies/DependencyReachabilityModels.cs- Defines reachability status tiers (R0=UNREACHABLE, R1=POSSIBLY_REACHABLE, R2=REACHABLE_STATIC, R3=REACHABLE_PROVEN) with confidence scoringsrc/Scanner/__Libraries/StellaOps.Scanner.Reachability/Dependencies/ReachabilityPolicy.cs-ReachabilityPolicyconfigures classification thresholds and tier boundaries
- Static Analysis:
src/Scanner/__Libraries/StellaOps.Scanner.Reachability/Dependencies/StaticReachabilityAnalyzer.cs-StaticReachabilityAnalyzerperforms static call graph analysis for R2 classificationsrc/Scanner/__Libraries/StellaOps.Scanner.Reachability/Dependencies/ConditionalReachabilityAnalyzer.cs-ConditionalReachabilityAnalyzerhandles conditional reachability (feature flags, config-dependent paths)
- Combiner:
src/Scanner/__Libraries/StellaOps.Scanner.Reachability/Dependencies/ReachGraphReachabilityCombiner.cs-ReachGraphReachabilityCombinercombines static and runtime signals for final classificationsrc/Scanner/__Libraries/StellaOps.Scanner.Reachability/Dependencies/VulnerabilityReachabilityFilter.cs-VulnerabilityReachabilityFilterfilters vulnerabilities based on reachability status
- Reporting:
src/Scanner/__Libraries/StellaOps.Scanner.Reachability/Dependencies/Reporting/DependencyReachabilityReporter.cs- Reporter for reachability classification resultssrc/Scanner/__Libraries/StellaOps.Scanner.Reachability/Dependencies/Reporting/DependencyReachabilityReport.cs- Report modelsrc/Scanner/__Libraries/StellaOps.Scanner.Reachability/Dependencies/ReachabilityReportBuilder.cs- Builder for constructing reports
E2E Test Plan
- Scan a container with a vulnerability in unreachable code and verify it is classified as R0 (UNREACHABLE)
- Scan a container with a vulnerability in statically reachable code (call graph path exists) and verify R2 (REACHABLE_STATIC)
- Verify runtime-confirmed reachability (observed call) promotes classification to R3 (REACHABLE_PROVEN)
- Verify conditional reachability (behind feature flag or config) is classified as R1 (POSSIBLY_REACHABLE) with appropriate confidence
- Verify confidence scores are computed deterministically for the same input
- Verify the vulnerability filter correctly suppresses R0 findings from default result sets