De un log a una detección que funciona en cualquier SIEM
Durante una investigación encuentras el patrón: un 4625 seguido de un 4624 desde la misma IP, o un PowerShell con -enc. Bien. Ahora conviértelo en una detección permanente. Y aquí llega el problema de siempre: la escribes en KQL y solo vale para Sentinel; tu compañero la necesita en SPL para Splunk; el de al lado, en Elastic. Tres veces el mismo trabajo, tres sitios donde se desincroniza.
Sigma: el «YAML de las detecciones»
Sigma es un formato abierto y neutral para reglas de detección. Escribes la lógica una vez, en YAML legible, y un conversor la traduce al lenguaje de tu SIEM: KQL, SPL, Lucene/EQL de Elastic, Wazuh… Es a las detecciones lo que las reglas YARA son a los ficheros: portable y compartible. Por eso las publican vendors, CERTs y proyectos como el repo oficial de reglas Sigma.
Anatomía de una regla
title: Inicio de sesión fallido seguido de éxito (posible fuerza bruta)
status: experimental
logsource:
product: windows
service: security
detection:
fallo:
EventID: 4625
exito:
EventID: 4624
condition: fallo and exito
fields: [IpAddress, TargetUserName]
falsepositives:
- VPN corporativa con reintentos legítimos
level: medium
tags:
- attack.credential_access
- attack.t1110
Las piezas que importan: logsource (de dónde salen los eventos), detection con una o varias selecciones y una condition que las combina, el level (severidad) y —clave— falsepositives y los tags de MITRE ATT&CK, que enganchan la regla a una técnica concreta.
Del log a la regla, paso a paso
- Aísla el evento en el log real: qué campos lo identifican (EventID, imagen del proceso, línea de comandos, puerto…).
- Escribe la selección con esos campos. Sé específico:
Image|endswith: '\powershell.exe'yCommandLine|contains: '-enc'es mucho mejor que buscar solo «powershell». - Define la condición (una selección, varias con
and/or, o exclusiones connot filtro). - Mapea a ATT&CK y documenta los falsos positivos que ya conoces.
- Convierte y prueba en tu SIEM antes de darla por buena.
sigma-cli, el Sigma Forge te lleva de un log real a la regla Sigma y de ahí a KQL, SPL, Lucene, EQL y Wazuh — pega el evento, ajusta la selección y copia la consulta para tu plataforma. Todo en el navegador.El enemigo real: los falsos positivos
Una regla que dispara cien veces al día no es una detección, es ruido que el analista aprende a ignorar —y ahí es donde se cuela el ataque de verdad—. Selecciones precisas, exclusiones de lo legítimo conocido, y un level honesto separan una regla útil de una que acaba silenciada.
Checklist
- ✅ ¿La detección está atada a UN SIEM? Escríbela en Sigma y conviértela.
- ✅ Selección específica (imagen + argumentos + campos), no palabras sueltas.
- ✅
conditionclara; usanotpara excluir lo legítimo conocido. - ✅ Mapea a MITRE ATT&CK y rellena
falsepositives. - ✅ Pruébala con un evento real antes de desplegarla.
Escribir en Sigma no es una capa más de trabajo: es escribir una vez en lugar de tres, y dejar la detección donde cualquiera —tú incluido dentro de seis meses— pueda leerla y llevarla a su plataforma.