Analyseur de code statique basé sur l'AST avec cartographie relationnelle agentique alimentée par LLM pour découvrir les chemins RCE Python et les chaînes de désérialisation profondes sur l'IA, les LLM, la robotique, la science des données, l'apprentissage automatique et l'apprentissage profond (mais sans s'y limiter).

Bien au-delà d'un scanner traditionnel, il fournit un framework générique et haute performance pour auditer plus de 120 bibliothèques et formats—y compris YAML, Msgpack, CBOR, et des hooks JSON personnalisés—où la confiance traditionnelle dans la sérialisation « sûre » masque des vecteurs RCE critiques basés sur la logique. En résolvant les imports, les alias et les attributs pointés complexes, l'outil sert d'amplificateur de signal à haute fidélité qui priorise les chemins de code dangereux dans les architectures distribuées modernes et les dépôts AI/ML.
Le projet fonctionne via un workflow modulaire et multi-phasé qui passe de la détection brute à l'audit technique approfondi. Après le scan SAST initial à haute vélocité, l'écosystème s'appuie sur des mappeurs de relations spécialisés pour tracer les flux d'exécution et des processeurs de résultats pour générer des rapports de sécurité détaillés. Cette approche systématique garantit que chaque découverte est contextualisée dans l'architecture globale de l'application, transformant une télémétrie à haut volume en actifs de recherche exploitables et en jalons structurés qui simplifient la cartographie des surfaces d'attaque au niveau de l'infrastructure.
À son niveau le plus avancé, Deserializer intègre un agent de sécurité IA autonome (Phase 4), explicitement conçu pour naviguer les limitations de « self-command-injection » et synthétiser des guides de reproduction fonctionnels, basé sur l'API d'inférence HuggingFace, un LLM local (comme llama.cpp), ou une API compatible OpenAI.
À mesure que le projet évolue, il continue de définir la frontière de la recherche automatisée sur les vulnérabilités en comblant le fossé entre l'analyse statique d'arbres syntaxiques abstraits, le mapping de relations, le reporting, et le développement d'exploits fonctionnels basé sur la recherche documentée.
Deserializer soutient directement la recherche en sécurité en localisant les chemins RCE et de désérialisation non sécurisée à travers divers projets et environnements à grande échelle d'IA, de robotique et de data science, comme Genesis World (v0.2.1), MuJoCo (v3.7.0), LeRobot (v0.5.1), Brax (v0.14.2), TensorFlow (v2.21.0), LangGraph (v1.1.6), VibeVoice (v0.0.1), Hugging Face Hub (v1.11.0), PyGlove (v0.4.5), et bien d'autres.
Ses capacités ont directement alimenté la découverte de vulnérabilités critiques dans des frameworks leaders de l'industrie, prouvant son efficacité dans l'audit d'environnements MLOps complexes et d'IA agentique.
Le projet est structuré en quatre phases distinctes, chacune conçue pour faire passer l'analyse d'une télémétrie automatisée à haut volume à une recherche en sécurité profonde et fonctionnelle :
| Phase | Titre | Outillage / Moteur | Objectif |
|---|---|---|---|
| 1 | Détection à haute vélocité | deserializer.py (Triple-Pass) | Effectuer un SAST à grande échelle pour identifier les points de désérialisation potentiels. |
| 2 | Mapping de relations | Processeurs de résultats / Mappeurs | Contextualiser les découvertes en traçant les flux d'exécution et les interdépendances des composants. |
| 3 | Synthèse technique | Documentation de recherche | Formaliser les découvertes en rapports techniques, cartographiant les surfaces d'attaque au niveau de l'infrastructure. |
| 4 | Agent IA autonome | Agent de sécurité IA | Automatiser la découverte de 0-day et générer des guides de reproduction/exploits fonctionnels en utilisant l'API d'inférence HuggingFace, un LLM local (comme llama.cpp), ou une API compatible OpenAI. |
Une carte de haut niveau de l'organisation du dépôt et de l'objectif technique de chaque répertoire spécialisé :
agent/docs/exploit_development/modules/reports/research/templates/Ce scanner dispose d'un moteur d'exécution parallèle haute performance construit sur le concurrent.futures.ProcessPoolExecutor de Python. Il est conçu pour s'étendre sur tous les cœurs CPU disponibles (contrôlable via le flag -j ou --concurrency), ce qui lui permet de scanner des dizaines de milliers de fichiers en quelques secondes.
SetConsoleCtrlHandler natif via ctypes pour garantir que Ctrl+C est 100 % réactif, même pendant un traitement intensif.ctypes pour un support natif des couleurs ANSI dans les environnements CMD et PowerShell modernes.[!WARNING] Avertissement de performance : Lors de l'analyse de fichiers extrêmement volumineux ou complexes (par exemple, plus de 1 Mo, 2 Mo, ou 3 Mo), l'outil peut subir des ralentissements significatifs ou sembler « bloqué » pendant le parsing d'arbres AST profonds. Si vous rencontrez de tels goulots d'étranglement, envisagez d'utiliser les flags
--timeout(pour ignorer les fichiers lents) et--max-size(pour ignorer les fichiers énormes) afin de maintenir la vélocité du scan.