
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:
- Router MikroTik: Encargado de gestionar el tráfico de red y redirigir el tráfico sospechoso hacia Suricata para su análisis.
- 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.
En Debian podemos comprobar el modo promiscuo si lanzamos el siguiente comando:
ip link show
Para habilitarlo lanzamos el siguiente comando en nuestra tarjeta:
ip link set ens2 promisc on
- Suricata: Configurado para analizar el tráfico de red en busca de patrones o comportamientos sospechosos.
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:
- Identificar la interfaz de origen:
/interface ethernet print
- 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:
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
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
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”:
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
Los rangos de red de nuestra LAN:
HOME_NET: "[192.168.2.0/24,192.168.216.0/24,192.168.217.0/24]"
outputs: - fast: enabled: yes
filename: fast.log
append: yes
Reiniciamos y habilitamos el servicio:
systemctl restart suricatasystemctl status suricatasystemctl enable suricata
Actualizamos las reglas y la configuración con:
suricata-update
Los ficheros de reglas se encuentran en la ruta “/etc/suricata/rules”:
Podemos crear una de prueba en un nuevo fichero “suricata.rules”:
Reiniciamos servicios nuevamente:
Hacemos una prueba de ping:
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
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!