Cómo detectar ataques de red con Suricata en Elastic Search

Cómo detectar ataques de red con Suricata en Elastic Search

por Raúl Unzué

Monitoriza tu red con Suricata y Elastic

Si te interesa la ciberseguridad y ya has jugado un poco con Kali Linux, seguramente habrás oído hablar de Suricata. Es un motor IDS/IPS (Sistema de Detección/Prevención de Intrusos) que analiza el tráfico en tiempo real y detecta ataques, escaneos, malware y un largo etcétera.

El problema es que, aunque Suricata genera montones de datos útiles (logs, alertas, estadísticas…), verlos “a pelo” en archivos JSON no es lo más cómodo del mundo. Ahí entra en juego Elastic Stack, el trío Elasticsearch + Logstash + Kibana (ELK), que permite almacenar, procesar y visualizar los eventos de Suricata en tiempo real, con dashboards, filtros y gráficas.

En esta guía te voy a enseñar cómo conectar Suricata (ya instalado en Kali Linux) con Elastic, sin dar vueltas innecesarias. La idea es que acabes con un sistema donde puedas abrir Kibana y ver tus alertas de red en tiempo real.

Requisitos previos

Antes de empezar, asegúrate de tener:

  • Kali Linux con Suricata ya instalado ("sudo apt install suricata").
  • Un servidor (o máquina) con Elastic Stack funcionando (puede ser local o remoto).
  • Conexión de red entre ambos (Kali <-> Elastic).
  • Acceso root o permisos sudo.

Geeknetic Cómo detectar ataques de red con Suricata en Elastic Search 1

 

Configurar Suricata para exportar logs en formato JSON

Por defecto, Suricata ya genera logs en /var/log/suricata/eve.json.

Abre su configuración principal:

┌──(kali㉿kali)-[~]└─$ sudo su -┌──(root㉿kali)-[~]
 └─# nano /etc/suricata/suricata.yaml

Geeknetic Cómo detectar ataques de red con Suricata en Elastic Search 2

Busca la sección "outputs:" y asegúrate de tener algo así:

outputs: - eve-log: enabled: yes
 filetype: regular # o unix_stream si lo prefieres
 filename: /var/log/suricata/eve.json types: - alert
 - http - dns - tls - ssh - flow

Guarda y reinicia Suricata:

sudo systemctl restart suricata

Para verificar que está generando eventos:

sudo tail -f /var/log/suricata/eve.json

Si ves líneas con {"timestamp":...,"event_type":"alert",...}, todo bien.

Geeknetic Cómo detectar ataques de red con Suricata en Elastic Search 3

 

Enviar logs de Suricata a Elastic con Filebeat

El método más sencillo y limpio de integración es Filebeat, un agente ligero que toma los logs y los manda a Elasticsearch o Logstash.

Instala Filebeat en Kali Linux

Instalamos la clave de Elastic y añadimos el repositorio:

curl -fsSL https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elastic.gpg
 echo "deb [signed-by=/usr/share/keyrings/elastic.gpg arch=amd64] https://artifacts.elastic.co/packages/8.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-8.x.list

Geeknetic Cómo detectar ataques de red con Suricata en Elastic Search 4

Actualizamos paquetes e instalamos:

apt updateapt install filebeat -y

Geeknetic Cómo detectar ataques de red con Suricata en Elastic Search 5

Habilitamos servicios:

sudo systemctl enable filebeatsudo systemctl start filebeat
 sudo systemctl status filebeat

Geeknetic Cómo detectar ataques de red con Suricata en Elastic Search 6

Configurar Filebeat para Suricata

Habilitamos para que Filebeat sea capaz de trabajar con Suricata

sudo filebeat modules enable suricata
 sudo nano /etc/filebeat/modules.d/suricata.yml

Geeknetic Cómo detectar ataques de red con Suricata en Elastic Search 7

Las rutas del fichero deben apuntar al fichero eve.json donde residen las trazas capturadas:

var.paths: - /var/log/suricata/eve.json

Geeknetic Cómo detectar ataques de red con Suricata en Elastic Search 8

Adicionalmente, configuramos las salidas a Elastic desde el siguiente fichero:

sudo nano /etc/filebeat/filebeat.yml
output.elasticsearch: hosts: ["http://IP-ELASTIC:9200"] username: "elastic"
 password: "tu_contraseña"

Pruebas de conexión de Filebeat a Elastic

Comprueba que está disponible:

sudo filebeat test output

Que nos debería arrojar algo como:

elasticsearch: Successfully connected

Geeknetic Cómo detectar ataques de red con Suricata en Elastic Search 9

Enviar logs de Suricata a Filebeat

Para realizar una prueba puedes lanzar una traza personalizada de la siguiente forma:

Geeknetic Cómo detectar ataques de red con Suricata en Elastic Search 10

Posteriormente, comprueba que la traza existe:

sudo cat /var/log/suricata/eve.json

Geeknetic Cómo detectar ataques de red con Suricata en Elastic Search 11

Ahora lanza en modo debug Filebeat para comprobar que enviaste la traza:

sudo filebeat -e

Nos debería entregar un mensaje de este estilo:

... Successfully published event: {"@timestamp":"...","message":"Test Suricata Event - Pronetic",...}

 

Revisar en Kibana las trazas de Suricata

Para poder revisar desde el panel de Kibana las trazas de ejemplo, accedemos a la consola web:

Geeknetic Cómo detectar ataques de red con Suricata en Elastic Search 12

Iremos desde el menú superior izquierda, Management -> Dev Tools:

Geeknetic Cómo detectar ataques de red con Suricata en Elastic Search 13

Y lanzamos la siguiente consulta:

Geeknetic Cómo detectar ataques de red con Suricata en Elastic Search 14

El resultado tendría que mostrar:

"hits" : { "hits" : [ { "_source" : { "alert" : {
 "signature" : "Test Suricata Event - Pronetic",
 "category" : "Generic Test" },
 "src_ip" : "192.168.2.100", "dest_ip" : "8.8.8.8" } } ]}

Ya tenemos Suricata enviando a Elastic correctamente.

Suricata + Elastic, empieza a montar tu propio SOC

Integrar Suricata con Elastic no es solo “por tener gráficas bonitas o acumular logs”. Es una forma de convertir tu detección de intrusiones en información útil y visual, que puedes analizar sin volverte loco buscando entre miles de líneas JSON.

Con esta configuración básica ya tendrás un mini-SOC casero, Suricata vigilando el tráfico y Elastic ayudándote a entender qué está pasando. Desde ahí puedes escalar con más sensores, alertas automáticas, correlaciones con otros logs, pero lo importante es que ya tienes la base sólida montada.

Fin del Artículo. ¡Cuéntanos algo en los Comentarios!

Redactor del Artículo: Raúl Unzué

Raúl Unzué

Soy un apasionado de la virtualización con más de 20 años de experiencia, especializado en soluciones como VMware(premio vExpert y vExpert Pro desde 2013), Proxmox e Hyper-V. Durante mi carrera, he ayudado a empresas a optimizar sus infraestructuras TI mientras comparto mis conocimientos como redactor IT. Mi objetivo es traducir lo complejo en algo práctico y accesible, combinando teoría con experiencia real. Si te interesa la virtualización, las herramientas TI o simplemente aprender algo nuevo, espero ayudarte con mis artículos.