
Moteur d'analyse sémantique pour détecter les correctifs de vulnérabilité dans les pilotes du noyau Windows — 58 règles YAML, décompilation Ghidra, traçage d'atteignabilité et scoring
Framework automatisé d'intelligence et de recherche de correctifs
Un moteur d'analyse sémantique pour détecter les corrections de vulnérabilités dans les correctifs de pilotes du noyau Windows. AutoPiff utilise des règles YAML conservatrices pour identifier les modifications de code pertinentes pour la sécurité avec une haute précision et une explicabilité.
AutoPiff analyse les différences entre les versions vulnérables et corrigées des pilotes pour détecter automatiquement :
ExFreePool)memcpy)ProbeForRead/ProbeForWrite)Vendor releases 500 driver updates/year
├── 490 are feature/performance/cosmetic changes
├── 8 are minor bug fixes
└── 2 are silent security fixes (no CVE assigned)
Without automation: Manually review 500 to find 2
With AutoPiff: Review 10 high-scorers to find 2
Les correctifs de sécurité sont souvent publiés sans attribution de CVE. Analyser manuellement en rétro-ingénierie chaque mise à jour de pilote pour trouver celles pertinentes pour la sécurité n'est pas réalisable. AutoPiff résout ce problème en faisant remonter automatiquement les changements qui comptent.
| Phase | Effort manuel | Avec AutoPiff | Temps gagné |
|---|---|---|---|
| Appariement de versions | 5-15 min/pilote | Automatique | ~100% |
| Décompilation | 2-10 min/binaire | Par lots, parallèle | ~95% |
| Correspondance de fonctions | 30-60 min/paire | Instatané | ~100% |
| Identification des changements de sécurité | 2-8 heures/paire | Secondes | ~99% |
| Triage et classement initiaux | 1-2 heures | Instatané | ~100% |
| Génération de rapports | 30-60 min | Instatané | ~100% |
Total : 4 à 12 heures par paire de pilotes réduites à 2 à 5 minutes
┌─────────────────────────────────────────────────────────────────┐
│ AUTOMATISÉ par AutoPiff │
│ ├── Trouver l'aiguille : "Cette fonction a changé près de │
│ │ ExFreePool" │
│ ├── Classifier : "On dirait une correction de use-after-free" │
│ └── Classer : "Score 5.5 - vaut la peine d'être investigué" │
├─────────────────────────────────────────────────────────────────┤
│ ENCORE MANUEL (Votre expertise) │
│ ├── Confirmer l'exploitabilité : "Puis-je vraiment déclencher │
│ │ cela ?" │
│ ├── Analyse des causes profondes : "Pourquoi cela était-il │
│ │ vulnérable ?" │
│ ├── Développement d'exploit : "Comment atteindre ce sink ?" │
│ └── Évaluation de l'impact : "Quel est le risque réel ?" │
└─────────────────────────────────────────────────────────────────┘
AutoPiff ne remplace pas la recherche d'exploitation. Il la rend réalisable à grande échelle en automatisant la phase de reconnaissance.
1. Détection de correctifs silencieux
2. Recherche de vulnérabilités 1-Day
3. Audit de sécurité des fournisseurs
4. Construction d'un corpus historique de CVE
AutoPiff s'exécute en tant que pipeline Karton avec 8 étapes séquentielles plus une branche parallèle de triage DriverAtlas. Chaque étape est un microservice indépendant communiquant via Redis/RabbitMQ.
graph LR
sources["WinBIndex<br/>VirusTotal"]:::src --> s0["Stage 0<br/>Monitor"]
s0 --> s14["Stages 1-4<br/>Patch Differ"]
s0 --> triage["DriverAtlas<br/>Triage"]:::triage
s14 --> s5["Stage 5<br/>Reachability"]
s5 --> s6["Stage 6<br/>Ranking"]
s6 --> s7["Stage 7<br/>Report"]
s6 --> s8["Stage 8<br/>Alerter"]
triage --> alerts["MWDB Tags<br/>+ Alerts"]:::triage
classDef src fill:#1a1a2e,stroke:#e94560,color:#eee
classDef triage fill:#1a1a2e,stroke:#e9a345,color:#eee
classDef default fill:#16213e,stroke:#0f3460,color:#eee
| Étape | Service | Fonction |
|---|---|---|
| 0 | driver-monitor | Interroge WinBIndex et VirusTotal pour les nouvelles versions de pilotes, télécharge sur MWDB |
| 1-4 | karton-patch-differ | Appariement de versions, décompilation Ghidra, correspondance de fonctions, évaluation de règles sémantiques |
| 5 | karton-reachability | BFS du graphe d'appels Ghidra depuis les points d'entrée IOCTL/IRP vers les fonctions modifiées, export complet de la décompilation |
| 6 | karton-ranking | Note les résultats en utilisant l'accessibilité, la sévérité sémantique et la surface d'attaque |
| 7 | karton-report | Génère des rapports markdown structurés, télécharge sur MWDB |
| 8 | autopiff-alerter | Envoie des alertes Telegram pour les résultats avec un score >= 8.0 |
| — | autopiff-driver-triage | Notation de la surface d'attaque DriverAtlas (parallèle à 1-4), étiquette les échantillons MWDB, alertes Telegram |
AutoPiff inclut 58 règles réparties dans 22 catégories. Voir Docs/semantic_rules.md pour la spécification complète et Docs/SEMANTIC_RULES_REFERENCE.md pour la référence technique.