Uno de los problemas clásicos de cualquier SIEM es el ruido. Wazuh es una herramienta poderosa, pero en un entorno activo puede generar cientos de alertas al día — la mayoría irrelevantes. El reto no es detectar más, es detectar mejor.
En mi home lab, esto se volvió un problema real: abría el dashboard y encontraba alertas de autenticación SSH, escaneos de red internos, actualizaciones automáticas de paquetes… todo mezclado con lo que sí importa.
La solución fue conectar Wazuh con N8N y construir un pipeline de enriquecimiento antes de que cualquier alerta llegue a mi bandeja de entrada.
La arquitectura
El flujo es simple:
- Wazuh detecta un evento y lo registra en su motor de alertas
- Un webhook activa N8N vía la integración de alertas de Wazuh
- N8N enriquece la alerta: consulta la IP en una lista de reputación, verifica si el host origen es conocido, y clasifica la severidad real
- Si pasa el filtro, llega a Telegram o correo. Si no, se archiva en silencio
Con este esquema, dejé de ver alertas de mis propios scripts de monitoreo, de los escaneos programados de Nmap internos, y de los falsos positivos del agente de AdGuard.
Configurar el webhook en Wazuh
En /var/ossec/etc/ossec.conf, agrega una integración personalizada:
<integration>
<name>custom-n8n</name>
<hook_url>http://tu-ip-n8n:5678/webhook/wazuh</hook_url>
<level>7</level>
<alert_format>json</alert_format>
</integration>
El nivel 7 filtra desde el principio las alertas de baja prioridad. Puedes ajustarlo según tu entorno.
El workflow en N8N
El nodo de entrada recibe el JSON de Wazuh. Los campos más útiles son rule.level, rule.description, agent.name y data.srcip.
Con un nodo IF evalúo tres condiciones antes de notificar:
- ¿El agente origen está en mi lista de hosts de confianza?
- ¿La IP de origen tiene reputación negativa en AbuseIPDB?
- ¿La regla se disparó más de 3 veces en los últimos 5 minutos?
Solo si la alerta pasa todas las condiciones relevantes, el workflow continúa hacia la notificación. Las demás se registran en un nodo de log pasivo conectado a un Google Sheet para revisión posterior.
El resultado
En la primera semana pasé de ~300 notificaciones diarias a menos de 60. Y lo más importante: las 60 que llegan son relevantes. Dejé de tener fatiga de alertas y empecé a leer cada una con atención.
El 80% de reducción no significa ignorar el 80% de los eventos — significa procesarlos en silencio y solo escalar lo que merece atención humana. Esa distinción es exactamente lo que diferencia un SOC eficiente de uno que vive apagando incendios.
Próximo paso
Estoy integrando Ollama para que N8N haga un resumen en lenguaje natural de cada alerta antes de enviarla. La idea es recibir un mensaje que diga “acceso SSH fallido desde IP con historial de ataques en Italia, tercer intento en 2 minutos” en lugar de un JSON crudo.
Si tienes preguntas sobre la configuración o quieres adaptar este flujo a tu entorno, escríbeme.