
Motore di analisi semantica per il rilevamento di correzioni di vulnerabilità nelle patch dei driver del kernel Windows — 58 regole YAML, decompilazione Ghidra, tracciamento della raggiungibilità e punteggio
Automated Patch Intelligence and Finding Framework
Un motore di analisi semantica per rilevare correzioni di vulnerabilità nelle patch dei driver del kernel Windows. AutoPiff utilizza regole YAML conservative per identificare le modifiche al codice rilevanti per la sicurezza con elevata precisione e spiegabilità.
AutoPiff analizza le differenze tra le versioni vulnerabili e quelle corrette dei driver per rilevare automaticamente:
ExFreePool)memcpy)ProbeForRead/ProbeForWrite)Il fornitore rilascia 500 aggiornamenti driver/anno
├── 490 sono modifiche estetiche/di funzionalità/prestazioni
├── 8 sono correzioni di bug minori
└── 2 sono correzioni di sicurezza silenziose (nessun CVE assegnato)
Senza automazione: revisione manuale di 500 per trovare 2
Con AutoPiff: revisione di 10 con punteggio alto per trovare 2
Le patch di sicurezza sono spesso rilasciate senza assegnazione CVE. La reverse engineering manuale di ogni aggiornamento del driver per trovare quelli rilevanti per la sicurezza non è fattibile. AutoPiff risolve questo problema individuando automaticamente le modifiche che contano.
| Fase | Sforzo manuale | Con AutoPiff | Tempo risparmiato |
|---|---|---|---|
| Abbinamento versioni | 5-15 min/driver | Automatico | ~100% |
| Decompilazione | 2-10 min/binario | In batch, parallelo | ~95% |
| Matching funzioni | 30-60 min/coppia | Istantaneo | ~100% |
| Identificazione modifiche di sicurezza | 2-8 ore/coppia | Secondi | ~99% |
| Triage e classificazione iniziale | 1-2 ore | Istantaneo | ~100% |
| Generazione report | 30-60 min | Istantaneo | ~100% |
Totale: da 4-12 ore per coppia di driver a 2-5 minuti
┌─────────────────────────────────────────────────────────────────┐
│ AUTOMATIZZATO da AutoPiff │
│ ├── Trova l'ago: "Questa funzione è cambiata vicino a ExFreePool"│
│ ├── Classifica: "Sembra una correzione use-after-free" │
│ └── Classifica: "Punteggio 5.5 - vale la pena indagare" │
├─────────────────────────────────────────────────────────────────┤
│ ANCORA MANUALE (La tua competenza) │
│ ├── Conferma sfruttabilità: "Posso davvero attivarlo?" │
│ ├── Analisi delle cause profonde: "Perché era vulnerabile?" │
│ ├── Sviluppo exploit: "Come raggiungo questo sink?" │
│ └── Valutazione dell'impatto: "Qual è il rischio nel mondo reale?"│
└─────────────────────────────────────────────────────────────────┘
AutoPiff non sostituisce la ricerca sugli exploit. La rende fattibile su larga scala automatizzando la fase di ricognizione.
1. Rilevamento di patch silenziose
2. Ricerca di vulnerabilità 1-Day
3. Audit di sicurezza del fornitore
4. Creazione di un corpus CVE storico
AutoPiff funziona come una pipeline Karton con 8 fasi sequenziali più un ramo parallelo di triage DriverAtlas. Ogni fase è un microservizio indipendente che comunica tramite Redis/RabbitMQ.
graph LR
sources["WinBIndex<br/>VirusTotal"]:::src --> s0["Fase 0<br/>Monitor"]
s0 --> s14["Fasi 1-4<br/>Patch Differ"]
s0 --> triage["DriverAtlas<br/>Triage"]:::triage
s14 --> s5["Fase 5<br/>Raggiungibilità"]
s5 --> s6["Fase 6<br/>Classificazione"]
s6 --> s7["Fase 7<br/>Report"]
s6 --> s8["Fase 8<br/>Alerter"]
triage --> alerts["MWDB Tags<br/>+ Avvisi"]:::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
| Fase | Servizio | Cosa fa |
|---|---|---|
| 0 | driver-monitor | Sonda WinBIndex e VirusTotal per nuove versioni di driver, carica su MWDB |
| 1-4 | karton-patch-differ | Abbinamento versioni, decompilazione Ghidra, matching funzioni, valutazione regole semantiche |
| 5 | karton-reachability | BFS del grafo delle chiamate Ghidra dai punti di ingresso IOCTL/IRP alle funzioni modificate, esportazione decompilazione completa |
| 6 | karton-ranking | Valuta i risultati usando raggiungibilità, gravità semantica e superficie d'attacco |
| 7 | karton-report | Genera report markdown strutturati, carica su MWDB |
| 8 | autopiff-alerter | Invia avvisi Telegram per risultati con punteggio >= 8.0 |
| — | autopiff-driver-triage | Valutazione superficie d'attacco DriverAtlas (parallelo a 1-4), tagga campioni MWDB, avvisi Telegram |
AutoPiff include 58 regole in 22 categorie. Vedi Docs/semantic_rules.md per le specifiche complete e Docs/SEMANTIC_RULES_REFERENCE.md per il riferimento tecnico.
| Categoria | Esempio di rilevamento |
|---|---|
bounds_check | Aggiunto controllo lunghezza prima di memcpy |
lifetime_fix | Assegnazione null dopo ExFreePool |
user_boundary_check | Aggiunto ProbeForRead/ProbeForWrite |
int_overflow | Utilizzo helper matematici sicuri |
state_hardening | Operazioni refcount interlocked |
ioctl_input_validation | Nuovi controlli dimensione/tipo negli handler dispatch |
pool_type_hardening | Migrazione a NonPagedPoolNx |
privilege_check | Aggiunto SeSinglePrivilegeCheck |
Il motore delle regole tiene traccia di oltre 50 simboli API pericolosi in 8 gruppi di sink: