Das Problem: Unvollständiger Code in CVE-Datenbanken
Bei der Sicherheitsanalyse von Rust-Code stoßen Forscher regelmäßig auf ein praktisches Problem: CVE-Datenbanken enthalten nur Code-Fragmente ohne Struct-Definitionen, Imports oder Cargo-Manifeste. Das führt dazu, dass etablierte Formal-Verification-Tools wie KLEE bereits beim Kompilieren scheitern – ohne aussagekräftigen Output.
Ein Forscherteam hat jetzt eine Lösung entwickelt, die Symbolic Execution mit Multi-Agent-LLM-Orchestration kombiniert. Das System besteht aus vier spezialisierten Agenten:
Die vier Rollen:
- Oracle/Validator: Strategische Planung und Koordination
- Safety Checker: Vulnerability-Analyse und Klassifikation
- Code Specialist: Generierung von FFI-Wrappern für Rust-Code
- Fast Filter: Optimierung der Ausführung und Filterung redundanter Analysen
Diese Agenten arbeiten zusammen, um aus unvollständigen Code-Fragmenten KLEE-kompatible Test-Harnesses zu synthetisieren. Dadurch wird der unvollständige Code in eine ausführbare Form überführt.
Strukturierte Vulnerability-Abfragen durch Graph Database
Das System nutzt ein Tool namens graph_klee.py, das die Symbolic-Execution-Ergebnisse in eine Graph Database überführt. Diese verlinkt CVE-Einträge, CWE-Kategorien, Fehlertypen und Ausführungspfade als typisierte Knoten und gelabelte Kanten – ermöglicht also strukturierte, Cross-CVE-Vulnerability-Anfragen.
Messbare Ergebnisse
Auf 31 realen Rust-CVEs über 11 CWE-Kategorien erreichte das System:
- 90,3% erfolgreiche Wrapper-Kompilation (konventionelle Tools: 0%)
- 1.206 kritische Fehler über 26 Dateien erkannt (83,9% Detection Rate)
- Clippy-Analyzer zum Vergleich: nur 14 Warnungen über 11 Dateien (35,5%)
Die Vierer-Agent-Architektur reduzierte Wrapper-Compilation-Fehler von 42% (Single-Agent-Baseline) auf 9,7% und erhöhte erkannte Fehler von 487 auf 1.206.
Warum die Spezialisierung zählt
Der Vergleich zwischen Single-Agent und Multi-Agent-Ansatz zeigt: Rollenverteilung und strukturiertes Context Passing erzeugen messbar bessere Ergebnisse als ein generalistisches Modell. Die Kombination aus Symbolic Execution und LLM-Orchestration adressiert konkrete Praktiker-Probleme, die bestehende Tools nicht lösen.
Der Code ist öffentlich verfügbar und ermöglicht Nachfolgeforschung zu Rust-Security-Analyse.

