2.3 KiB
2.3 KiB
Function-Level Reachability for VEX Decisions
Module
Attestor
Status
IMPLEMENTED
Description
Multi-language call graph extraction (binary, Java, Python, Node, PHP, Ruby, JavaScript) is implemented with function-level evidence models (MicroWitness predicates, call path nodes, reachability witness payloads).
Implementation Details
- MicroWitness Predicates:
src/Attestor/__Libraries/StellaOps.Attestor.ProofChain/Predicates/-- function-level evidence:BinaryMicroWitnessPredicate.cs-- complete micro-witness with binary, CVE, and function refsMicroWitnessBinaryRef.cs-- binary referenceMicroWitnessCveRef.cs-- CVE referenceMicroWitnessFunctionEvidence.cs-- function-level evidence with call-stack positionMicroWitnessSbomRef.cs-- SBOM component cross-referenceMicroWitnessTooling.cs-- analysis tool metadataMicroWitnessVerdicts.cs-- function-level verdicts
- Reachability Witness:
Statements/ReachabilityWitnessPayload.cs(with.Path) -- call paths.ReachabilityWitnessStatement.cs-- in-toto wrapper. - Call Path Nodes:
Statements/WitnessCallPathNode.cs,WitnessPathNode.cs-- path nodes with function details. - VEX Integration:
Generators/VexProofIntegrator.cs(with.Helpers,.Metadata) -- integrates reachability evidence into VEX decisions.VexVerdictProofPayload.cs-- combined VEX + reachability proof. - Tests:
__Tests/StellaOps.Attestor.ProofChain.Tests/BinaryMicroWitnessPredicateTests.cs
E2E Test Plan
- Create a
BinaryMicroWitnessPredicatewith function evidence showing a vulnerable function is reachable and verify the micro-witness is well-formed - Create function evidence with
MicroWitnessFunctionEvidenceat different call-stack depths and verify depth tracking - Link micro-witness evidence to a VEX decision via
VexProofIntegratorwith status "not_affected" (function unreachable) and verify the proof payload - Link micro-witness evidence to a VEX decision with status "affected" (function reachable) and verify
- Create witnesses from multiple language call graphs and verify
MicroWitnessToolingcaptures per-language analysis tools - Verify
MicroWitnessSbomRefcorrectly links function evidence to SBOM component entries - Create
MicroWitnessVerdictsfor multiple functions and verify per-function reachability verdicts