De una CVE a una detección: del advisory a una regla que caza el ataque
Sale una CVE crítica, la priorizas (EPSS, KEV, tu exposición) y parcheas lo que puedes. Pero parchear tarda, y mientras tanto necesitas saber si te están atacando por ahí. El problema: un boletín de CVE describe qué se rompe, casi nunca cómo detectarlo. Este es el método para cerrar ese hueco.
El advisory tiene más pistas de las que parece
Antes de escribir nada, extrae del texto de la CVE cuatro cosas:
- Servicio y puerto: ¿es un panel web (443), SSH (22), SMB (445), un appliance en un puerto raro? Eso te dice dónde mirar.
- Vector: ¿inyección de comandos, path traversal, deserialización, subida de archivos? Eso te dice qué forma tiene la petición o el proceso.
- Resultado: ¿RCE, escalada, exfiltración? Eso te dice qué pasa después (procesos hijos, conexiones salientes).
- Producto/versión: para acotar los hosts afectados en tu inventario.
Una command injection en el API HTTP de un appliance con RCE se traduce, casi sola, en: petición sospechosa al puerto del servicio → el proceso del servicio lanza sh/cmd → conexión saliente inesperada.
De las pistas a las señales concretas
Ahora mapea cada pista a telemetría que ya tienes:
- El puerto → tu referencia de puertos te recuerda el servicio y su riesgo.
- El «qué pasa después» → en Windows, la creación de procesos (event 4688 / Sysmon 1), conexiones de red (Sysmon 3) y escritura en el registro/disco. En Linux, ejecución y conexiones salientes del proceso del servicio.
- La fase del ataque → sitúala en MITRE ATT&CK (ejecución, persistencia, movimiento lateral) para medir tu cobertura.
Un padre anómalo (un servidor web que de repente es padre de cmd.exe) suele ser mejor señal que la firma exacta del exploit: los payloads mutan, el comportamiento no tanto.
El esqueleto Sigma, y de ahí a tu SIEM
Sigma te deja escribir la regla una vez y convertirla a KQL, SPL, Elastic o Wazuh. Un esqueleto típico para el caso de arriba:
title: Posible explotación de CVE-XXXX-YYYY (RCE en el appliance)
logsource:
product: windows
category: process_creation
detection:
selection:
ParentImage|endswith: '\httpd.exe'
Image|endswith:
- '\cmd.exe'
- '\powershell.exe'
condition: selection
level: high
falsepositives:
- Scripts de administración legítimos del propio servicio
Rellena el ParentImage real, ajusta la selección y documenta los falsos positivos. Antes de subirla, mídela.
No olvides la señal de red
Muchas explotaciones se ven mejor saliendo que entrando: el appliance comprometido llamando a una IP nueva (Sysmon 3, o tus logs de firewall/proxy). Empareja la señal de host con la de red y tendrás una detección mucho más robusta que cualquier firma del payload.
Checklist
- ✅ Extrae del advisory: servicio/puerto, vector, resultado y versión.
- ✅ Traduce el «qué pasa después» a eventos que ya registras (4688, Sysmon 1/3).
- ✅ Detecta comportamiento (padre-hijo anómalo, salida de red), no solo la firma del exploit.
- ✅ Escribe en Sigma, refínala y mídela antes de subirla al SIEM.
- ✅ Empareja señal de host + señal de red.
Parchear cierra la puerta; detectar te avisa de quién intentó entrar mientras la cerrabas. Necesitas las dos.