Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata

Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata

por Raúl Unzué

IDS para controlar el tráfico de tu red LAN

En la actualidad, la seguridad de las redes locales (LAN) es una preocupación fundamental para cualquier organización. La detección y prevención de intrusiones se han convertido en tareas esenciales para proteger la integridad y confidencialidad de la información. En esta guía, exploraremos cómo aumentar la seguridad de tu red LAN utilizando un router MikroTik, una máquina virtual con Debian y Suricata, una potente herramienta de detección de intrusiones (IDS), de los que ya hablamos en una anterior entrada.

¿Qué es Suricata?

Suricata es un motor de detección de amenazas de red de código abierto, desarrollado por la Open Information Security Foundation (OISF). Es capaz de realizar funciones de Sistema de Detección de Intrusiones (IDS), Sistema de Prevención de Intrusiones (IPS), monitoreo de seguridad de red (NSM) y análisis de tráfico en modo offline. Su capacidad para analizar paquetes en profundidad, tanto en cabeceras como en payloads, lo convierte en una herramienta versátil y eficaz para la seguridad de redes.

¿Por qué MikroTik?

MikroTik es una compañía letona reconocida por ofrecer soluciones de hardware y software para redes. Su sistema operativo, RouterOS, permite convertir un PC o una placa RouterBOARD en un router dedicado. La combinación de MikroTik con Suricata proporciona una solución robusta para la detección y prevención de intrusiones en redes LAN. Y puede servir de ejemplo como base para una empresa tipo.

Arquitectura de la Solución

La arquitectura propuesta consta de los siguientes componentes:

  1. Router MikroTik: Encargado de gestionar el tráfico de red y redirigir el tráfico sospechoso hacia Suricata para su análisis.

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 1

  1. Máquina Virtual Debian: Alojada en un servidor o en una infraestructura de virtualización existente, donde se instalará Suricata. En esta máquina, para que se redirija el dato correctamente, tendremos que habilitar el modo promiscuo.

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 2

En Debian podemos comprobar el modo promiscuo si lanzamos el siguiente comando:

ip link show

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 3

Para habilitarlo lanzamos el siguiente comando en nuestra tarjeta:

ip link set ens2 promisc on

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 4

  1. Suricata: Configurado para analizar el tráfico de red en busca de patrones o comportamientos sospechosos.

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 5

Esta configuración permite que Suricata funcione en modo IDS, monitoreando el tráfico de red sin intervenir directamente en él, o en modo IPS, actuando sobre el tráfico malicioso detectado:

(Internet) <-> RouterOS <-> Hypervisor <-> (Puente Linux) <-> Suricata_VM

Configuración del Router MikroTik para IDS

Para que Suricata pueda analizar el tráfico de red, es necesario que el router MikroTik redirija dicho tráfico hacia la máquina donde está instalado Suricata. Esto se puede lograr mediante la técnica de Port Mirroring o utilizando la funcionalidad de sniffing de MikroTik.

Opción 1: Port Mirroring

El Port Mirroring permite copiar el tráfico de una interfaz de red a otra para su análisis. Ya os podemos adelantar que es la mejor opción, en este caso habría que colocar la máquina de Suricata, si puede ser dedicada, directamente conectada al Router.

En MikroTik, se puede configurar de la siguiente manera:

  1. Identificar la interfaz de origen:
/interface ethernet print
  1. Configurar el mirroring:
/interface ethernet switch set switch1 mirror-source=ether2 mirror-target=ether3

En este ejemplo, el tráfico de ether2 se copiará a ether3, donde estará conectada la máquina con Suricata.

Opción 2: Sniffing

Otra alternativa es utilizar la funcionalidad de sniffing de MikroTik para enviar el tráfico a una dirección IP específica. Extraemos la IP de nuestra máquina virtual:

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 6

Y generamos la regla CALEA:

/ip firewall calea add chain=forward action=sniff sniff-target=192.168.2.155

Aquí, 192.168.2.155 sería la dirección IP de la máquina con Suricata.

Una regla CALEA en RouterOS es una configuración que permite interceptar y registrar el tráfico de red que pasa por el router, en cumplimiento con la ley estadounidense "Communications Assistance for Law Enforcement Act" (CALEA). Esta funcionalidad se implementa mediante reglas específicas en el firewall del router, permitiendo a las autoridades legales supervisar las comunicaciones según lo requerido por la legislación.

En la versión 7.17 no aparecen en la interfaz gráfica, si queréis verlas tendréis que usar el siguiente comando:

/ip firewall calea print

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 7

Preparación de la Máquina Virtual Debian con Suricata

Antes de instalar Suricata, es fundamental preparar el entorno en la máquina virtual Debian. Esto incluye la actualización del sistema y la instalación de las dependencias necesarias.

Actualizar el sistema

sudo apt-get update && sudo apt-get upgrade -y

Instalación de Suricata

echo "deb http://http.debian.net/debian bookworm-backports main" > /etc/apt/sources.list.d/backports.list
 apt-get updateapt-get install suricata -t bookworm-backports jq

Vemos la versión de Suricata:

sudo suricata -V

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 8

Configuración de Suricata

Lo primero que haremos es configurar el fichero "/etc/suricata/suricata.yaml" indicando en qué interfaz tiene que escuchar. En nuestro caso, “ens2”:

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 9

Editamos el fichero y le indicamos el interfaz y la red o redes LAN de la que va a recibir el tráfico:

af-packet:  - interface: ens2

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 10

Los rangos de red de nuestra LAN:

HOME_NET: "[192.168.2.0/24,192.168.216.0/24,192.168.217.0/24]"

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 11

outputs:  - fast:      enabled: yes
       filename: fast.log
       append: yes

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 12

Reiniciamos y habilitamos el servicio:

systemctl restart suricatasystemctl status suricatasystemctl enable suricata

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 13

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 14

Actualizamos las reglas y la configuración con:

suricata-update

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 15

Los ficheros de reglas se encuentran en la ruta “/etc/suricata/rules”:

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 16

Podemos crear una de prueba en un nuevo fichero “suricata.rules”:

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 17

Reiniciamos servicios nuevamente:

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 18

Hacemos una prueba de ping:

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 19

Pruebas de funcionamiento de Suricata

En el punto anterior hemos lanzado un ping desde una de las máquinas de la LAN a un destino concreto, prueba que podemos complementar con una conexión SSH, por ejemplo. Ahora tenemos que ver si todas nuestras configuraciones funcionan, y Suricata ha registrado el evento.

Los ficheros donde se almacenan por defecto estos registros están en:

tail -f /var/log/suricata/eve.jsontail -f /var/log/suricata/fast.log

Geeknetic Aumenta la seguridad de la red LAN de tu empresa detectando intrusiones con Suricata 20

Os dejamos varios ejemplos que podéis usar:

PING:

grep '"src_ip":"192.168.2.138"' /var/log/suricata/eve.json | grep '"dest_ip":"1.1.1.1"'

SSH:

tail -n100 /var/log/suricata/eve.json| jq '.'
 tail /var/log/suricata/eve.json | jq -c 'select(.event_type == "ssh")|.ssh.client'

Podéis encontrar más ayuda en:

 

No todas las amenazas están en Internet

Implementar Suricata como sistema de detección de intrusiones (IDS) en la red LAN de tu empresa es un paso significativo hacia la mejora de la seguridad. Suricata ofrece monitoreo en tiempo real, análisis profundo de paquetes y detección de amenazas avanzadas, permitiendo identificar actividades sospechosas y responder de manera proactiva a posibles incidentes de seguridad.

Para potenciar aún más la eficacia de Suricata, es recomendable integrarlo con herramientas que faciliten la gestión y visualización de sus alertas. Dos opciones destacadas son:

Integración con ELK Stack:

ELK Stack, compuesto por Elasticsearch, Logstash y Kibana, es una solución robusta para el procesamiento y visualización de grandes volúmenes de datos. La integración de Suricata con ELK Stack permite:

  • Almacenamiento eficiente: Elasticsearch indexa y almacena las alertas de Suricata, facilitando búsquedas rápidas y eficientes.
  • Procesamiento de datos: Logstash recoge y procesa los logs de Suricata, permitiendo su transformación y enriquecimiento antes de almacenarlos en Elasticsearch.
  • Visualización intuitiva: Kibana proporciona dashboards personalizables para monitorear las alertas y tendencias de seguridad en tiempo real.

Esta integración ofrece una plataforma centralizada para el análisis y gestión de eventos de seguridad, mejorando la capacidad de respuesta ante incidentes.

Integración con Telegram:

Para recibir notificaciones inmediatas sobre las alertas de Suricata, es posible configurar su envío a través de Telegram. Esta integración permite:

  • Alertas en tiempo real: Recibir notificaciones instantáneas en dispositivos móviles o de escritorio cada vez que Suricata detecte una amenaza.
  • Acceso rápido a detalles: Cada alerta puede incluir información relevante y enlaces directos para análisis adicionales.
  • Configuración personalizada: Definir filtros y prioridades para las alertas que se desean recibir, evitando notificaciones innecesarias.

Existen scripts y servicios, como "suricata-telegram-notifier", que facilitan esta integración, permitiendo una comunicación fluida entre Suricata y Telegram.

Al combinar Suricata con ELK Stack y/o Telegram, se mejora significativamente la capacidad de monitoreo y respuesta ante incidentes de seguridad en la red, proporcionando herramientas efectivas para la protección de los activos empresariales.

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.