
Motor de análisis semántico para detectar correcciones de vulnerabilidades en parches de controladores de kernel de Windows — 58 reglas YAML, descompilación Ghidra, trazado de alcanzabilidad y puntuación
Marco Automatizado de Inteligencia y Detección de Parches
Un motor de análisis semántico para detectar correcciones de vulnerabilidades en parches de controladores del kernel de Windows. AutoPiff utiliza reglas YAML conservadoras para identificar cambios de código relevantes para la seguridad con alta precisión y explicabilidad.
AutoPiff analiza las diferencias entre versiones vulnerables y parcheadas de controladores para detectar automáticamente:
ExFreePool)memcpy)ProbeForRead/ProbeForWrite)El proveedor publica 500 actualizaciones de controladores/año
├── 490 son cambios estéticos/de rendimiento/de características
├── 8 son correcciones de errores menores
└── 2 son correcciones de seguridad silenciosas (sin CVE asignado)
Sin automatización: Revisar manualmente 500 para encontrar 2
Con AutoPiff: Revisar 10 de alto puntaje para encontrar 2
Las correcciones de seguridad a menudo se publican sin asignación de CVE. No es factible realizar ingeniería inversa manual de cada actualización de controlador para encontrar las relevantes para la seguridad. AutoPiff resuelve esto mostrando automáticamente los cambios que importan.
| Fase | Esfuerzo manual | Con AutoPiff | Tiempo ahorrado |
|---|---|---|---|
| Emparejamiento de versiones | 5-15 min/controlador | Automático | ~100% |
| Descompilación | 2-10 min/binario | Por lotes, paralelo | ~95% |
| Coincidencia de funciones | 30-60 min/par | Instantáneo | ~100% |
| Identificación de cambios de seguridad | 2-8 horas/par | Segundos | ~99% |
| Triage y clasificación inicial | 1-2 horas | Instantáneo | ~100% |
| Generación de informes | 30-60 min | Instantáneo | ~100% |
Total: de 4-12 horas por par de controladores a 2-5 minutos
┌─────────────────────────────────────────────────────────────────┐
│ AUTOMATIZADO por AutoPiff │
│ ├── Encontrar la aguja: "Esta función cambió cerca de ExFreePool"│
│ ├── Clasificar: "Parece una corrección de use-after-free" │
│ └── Clasificar: "Puntuación 5.5 - vale la pena investigar" │
├─────────────────────────────────────────────────────────────────┤
│ AÚN MANUAL (Tu experiencia) │
│ ├── Confirmar explotabilidad: "¿Puedo realmente desencadenar esto?"│
│ ├── Análisis de causa raíz: "¿Por qué era vulnerable?" │
│ ├── Desarrollo de exploit: "¿Cómo llego a este sink?" │
│ └── Evaluación de impacto: "¿Cuál es el riesgo real?" │
└─────────────────────────────────────────────────────────────────┘
AutoPiff no reemplaza la investigación de explotación. La hace factible a escala automatizando la fase de reconocimiento.
1. Detección de parches silenciosos
2. Investigación de vulnerabilidades 1-Day
3. Auditoría de seguridad de proveedores
4. Construcción de corpus histórico de CVEs
AutoPiff se ejecuta como un pipeline de Karton con 8 etapas secuenciales más una rama paralela de triaje DriverAtlas. Cada etapa es un microservicio independiente que se comunica a través de Redis/RabbitMQ.
graph LR
sources["WinBIndex<br/>VirusTotal"]:::src --> s0["Etapa 0<br/>Monitor"]
s0 --> s14["Etapas 1-4<br/>Patch Differ"]
s0 --> triage["DriverAtlas<br/>Triage"]:::triage
s14 --> s5["Etapa 5<br/>Alcanzabilidad"]
s5 --> s6["Etapa 6<br/>Clasificación"]
s6 --> s7["Etapa 7<br/>Informe"]
s6 --> s8["Etapa 8<br/>Alertador"]
triage --> alerts["Etiquetas MWDB<br/>+ Alertas"]:::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
| Etapa | Servicio | Qué hace |
|---|---|---|
| 0 | driver-monitor | Sondea WinBIndex y VirusTotal en busca de nuevas versiones de controladores, las sube a MWDB |
| 1-4 | karton-patch-differ | Emparejamiento de versiones, descompilación con Ghidra, coincidencia de funciones, evaluación de reglas semánticas |
| 5 | karton-reachability | BFS del grafo de llamadas de Ghidra desde puntos de entrada IOCTL/IRP hasta funciones modificadas, exportación de descompilación completa |
| 6 | karton-ranking | Puntúa los hallazgos utilizando alcanzabilidad, severidad semántica y superficie de ataque |
| 7 | karton-report | Genera informes markdown estructurados, los sube a MWDB |
| 8 | autopiff-alerter | Envía alertas de Telegram para hallazgos con puntuación >= 8.0 |
| — | autopiff-driver-triage | Puntuación de superficie de ataque DriverAtlas (en paralelo a las etapas 1-4), etiqueta muestras MWDB, alertas de Telegram |
AutoPiff incluye 58 reglas en 22 categorías. Consulte Docs/semantic_rules.md para la especificación completa y Docs/SEMANTIC_RULES_REFERENCE.md para la referencia técnica.