semi implemented and features implemented save checkpoint

This commit is contained in:
master
2026-02-08 18:00:49 +02:00
parent 04360dff63
commit 1bf6bbf395
20895 changed files with 716795 additions and 64 deletions

View File

@@ -0,0 +1,42 @@
# Symbol Mappers for .NET/JVM/Node/Python
## Module
Scanner
## Status
IMPLEMENTED
## Description
Symbol mapping with sink matchers and entrypoint classifiers exists for Java, Python, JavaScript, and Node ecosystems.
## Implementation Details
- **Java Symbol Mapping**:
- `src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Java/JavaCallGraphExtractor.cs` - `JavaCallGraphExtractor` building call graphs from Java bytecode
- `src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Java/JavaSinkMatcher.cs` - `JavaSinkMatcher` matching Java methods against known vulnerability sinks (e.g., SQL injection, command injection, deserialization)
- `src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Java/JavaEntrypointClassifier.cs` - `JavaEntrypointClassifier` classifying Java entrypoints (Spring Controllers, Servlets, main methods)
- **Python Symbol Mapping**:
- `src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Python/PythonCallGraphExtractor.cs` - `PythonCallGraphExtractor` building call graphs from Python AST
- `src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Python/PythonSinkMatcher.cs` - `PythonSinkMatcher` matching Python functions against known vulnerability sinks
- `src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Python/PythonEntrypointClassifier.cs` - `PythonEntrypointClassifier` classifying Python entrypoints (Flask routes, Django views, CLI entry)
- **JavaScript Symbol Mapping**:
- `src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/JavaScript/JavaScriptCallGraphExtractor.cs` - `JavaScriptCallGraphExtractor` building call graphs from JavaScript/TypeScript
- `src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/JavaScript/JsSinkMatcher.cs` - `JsSinkMatcher` matching JS functions against known vulnerability sinks
- `src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/JavaScript/JsEntrypointClassifier.cs` - `JsEntrypointClassifier` classifying JavaScript entrypoints (Express routes, event handlers)
- **.NET Symbol Mapping**:
- `src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/DotNet/DotNetCallGraphExtractor.cs` - `DotNetCallGraphExtractor` building call graphs from .NET assemblies
- **PHP Symbol Mapping**:
- `src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Php/PhpCallGraphExtractor.cs` - `PhpCallGraphExtractor` building call graphs from PHP
- `src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Php/PhpSinkMatcher.cs` - `PhpSinkMatcher` matching PHP functions against vulnerability sinks
- `src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Php/PhpEntrypointClassifier.cs` - `PhpEntrypointClassifier` classifying PHP entrypoints
- **Ruby Symbol Mapping**:
- `src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Ruby/RubyCallGraphExtractor.cs` - `RubyCallGraphExtractor` building call graphs from Ruby
- `src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Ruby/RubySinkMatcher.cs` - `RubySinkMatcher` matching Ruby methods against vulnerability sinks
- `src/Scanner/__Libraries/StellaOps.Scanner.CallGraph/Extraction/Ruby/RubyEntrypointClassifier.cs` - `RubyEntrypointClassifier` classifying Ruby entrypoints (Rails controllers, Rack apps)
## E2E Test Plan
- [ ] Extract a Java call graph and verify `JavaSinkMatcher` correctly identifies SQL injection sinks (e.g., `Statement.executeQuery`)
- [ ] Verify `JavaEntrypointClassifier` correctly classifies Spring `@RequestMapping` methods as HTTP entrypoints
- [ ] Extract a Python call graph and verify `PythonSinkMatcher` identifies dangerous function calls (e.g., `eval`, `subprocess.call`)
- [ ] Verify `JsSinkMatcher` identifies Node.js sinks like `child_process.exec` and `eval`
- [ ] Verify `.NET` call graph extraction handles both framework-dependent and self-contained applications
- [ ] Verify all sink matchers and entrypoint classifiers produce deterministic results for the same input