Guía paso a paso para instalar IDSTower en una Raspberry Pi 5
La solución de seguridad definitiva para hogares y pequeñas empresas
Aumente su seguridad sin salirse del presupuesto Asegure su hogar o su pequeña empresa con un sistema de detección de intrusiones asequible, eficiente y fácil de implementar utilizando IDSTower en una Raspberry Pi. En un mundo cada vez más conectado, la seguridad es primordial, ya sea para su red doméstica o para una pequeña empresa. Las amenazas cibernéticas evolucionan a diario, por lo que es esencial aplicar medidas proactivas para salvaguardar los datos confidenciales y mantener la integridad de la red. Afortunadamente, la configuración de un sistema de detección de intrusiones (IDS) ya no requiere hardware caro ni conocimientos técnicos avanzados. Con el lanzamiento de Raspberry Pi 5, ahora tiene la posibilidad de instalar potentes herramientas de seguridad como IDSTower, una solución IDS robusta, en una plataforma rentable y de bajo consumo. Este blog le guiará paso a paso para instalar IDSTower en una Raspberry Pi 5 y le explicará por qué esta configuración es ideal para usuarios domésticos y pequeñas empresas.
¿Qué son Suricata e IDSTower?
Suricata es un software de análisis de redes y detección de amenazas de código abierto y alto rendimiento utilizado por la mayoría de las organizaciones privadas y públicas e integrado por los principales proveedores para proteger sus activos.
IDSTower es una herramienta que simplifica el aprovisionamiento, la configuración y la gestión de reglas para Suricata. DSTower añade interfaces de gestión fáciles de usar, haciéndola accesible para aquellos que no tengan mucha experiencia en ciberseguridad. IDSTower incluye una licencia gratuita para un solo host, que funciona muy bien para este proyecto.
Hardware
Suricata es una herramienta de seguridad de red de alto rendimiento diseñada para la detección de intrusiones (IDS), la prevención de intrusiones (IPS), la supervisión de la seguridad de la red (NSM) y la inspección profunda de paquetes (DPI) en tiempo real. Analiza el tráfico de red en tiempo real para detectar actividades potencialmente maliciosas.
Analizar capturas de paquetes en tiempo real requiere CPU, pero también mucha memoria. Y con 8 GB de RAM y un procesador Arm Cortex-A76 de cuatro núcleos y 64 bits a 2,4 GHz, el ordenador monoplaca Raspberry Pi 5 está a la altura.
Instalación de IDSTower en una Raspberry Pi
Asegúrate de utilizar el último sistema operativo actualizado. En el momento de escribir estas líneas, yo utilizaba el Raspberry Pi OS Lite de 64 bits (¡menos es más!) basado en la versión 12 de Debian (bookworm).
Antes de empezar, también necesitarás obtener una licencia gratuita de IDSTower.
También tendrás que abrir el puerto 443 para poder acceder a la interfaz de usuario web una vez finalizada la instalación:
sudo apt install iptables-persistent
sudo iptables -I INPUT 1 -m state --state NEW -p tcp --dport 443 -j ACCEPT
sudo netfilter-persistent save
También tendrás que asegurarte de que tu interfaz de red soporta el modo promiscuo, para poder observar el tráfico en tu red:
iw phy phy0 info
netstat -i
sudo ip link set eth0 promisc on
sudo ifconfig eth0 -promisc
Instalar IDSTower en una Raspberry Pi es muy sencillo, simplemente seguí las instrucciones de Instalación en Debian 12.1 (Bookworm).
Preste atención, y asegúrese de que no hay errores durante la instalación. Al final, el script mostrará la URL de IDSTower Web UI, así como el nombre de usuario y la contraseña generados para su configuración.
Configuración de IDSTower en una Raspberry Pi
Siga las instrucciones de instalación creando su primer cluster y configurando reglas e indicadores. He utilizado la siguiente configuración:
- IDS Software para Instalar Suricata - Última versión (7) - repositorio oficial - (Requiere Internet)
- Logs Shipper Software para Instalar Filebeat - Última versión (8) - repositorio oficial - (Requiere Internet)
Elegí la configuración de Suricata "IDS + NSM" porque quiero observar el tráfico en mi red local, no sólo monitorear este host en particular. NSM son las siglas de Network Security Monitoring.
Solución de problemas IDSTower/Suricata no se cargan las reglas
Mi primera sorpresa fue descubrir que mi clúster no cargaba ninguna regla. Todo parecía en orden y todos los servicios funcionaban, pero no se cargaba ninguna regla.
Un poco de "google" me ayudó a encontrar mi primera pista:
suricatasc -v
No se pudo conectar al socket /var/run/suricata-command.socket: L178: [Errno 2] No such file or directory
tail -f /var/log/idstower/heartbeat.log
==> /var/log/idstower/heartbeat.log <==
[2024-09-20T11:21:01-0700] [Info] ==================== IDSTower Heartbeat Script ====================
[2024-09-20T11:21:01-0700] [Info] Iniciando script...
[2024-09-20T11:21:04-0700] [Info] Obteniendo métricas de suricata...
[2024-09-20T11:21:04-0700] [Advertencia] archivo de socket no encontrado: /var/run/suricata-command.socket
[2024-09-20T11:21:04-0700] [Advertencia] No se ha encontrado ningún archivo socket Suricata activo, el servicio Suricata podría estar detenido.
[2024-09-20T11:21:04-0700] [Advertencia] No se ha encontrado ningún archivo socket: /var/run/suricata-command.socket
[2024-09-20T11:21:04-0700] [Advertencia] No se pueden obtener métricas de suricata, no se ha encontrado el archivo de socket activo:
[2024-09-20T11:21:04-0700] [Info] Enviando latido a IDSTower...
[2024-09-20T11:21:04-0700] [Info] Latido enviado con éxito a IDSTower, Respuesta API: {"success":true, "statusCode":0, "data":true}
[2024-09-20T11:21:04-0700] [Info] Heartbeat de IDSTower finalizado.
[2024-09-20T11:22:01-0700] [Info] ==================== Script de Heartbeat de IDSTower ====================
[2024-09-20T11:22:01-0700] [Info] Iniciando script...
[2024-09-20T11:22:04-0700] [Info] Obteniendo métricas de suricata...
suricata -c /etc/suricata/suricata.yaml --dump-config | grep -e dir -e unix-
Supongo que el servicio Debian Bookworm no está configurando suricata-command.socket en la ubicación que el fichero de configuración espera, está en /var/run/suricata-command.socket en lugar de /var/suricata-command.socket. Además, debido a que suricata se ejecuta como root, pero IDSTower se ejecuta como el usuario idstower, también hay algunos problemas de permisos.
Para solucionarlo, ejecute el siguiente comando:
sudo chgrp idstower /var/run/suricata-command.socket
En la interfaz web de IDSTower, edite el archivo suricata.yaml (su clúster, Configs, Advanced) y descomente la línea "filename" y sustitúyala por lo siguiente:
unix-command:
enabled: auto
filename: /var/run/suricata-command.socket
Reinicie el clúster y las reglas deberían cargarse.
Integración de ElastiSearch
También elegí la opción "Enviar Eventos a ElastiSearch (Versión 2.0.0), esperando poder visualizar mis hallazgos. Sin embargo, no pude hacer funcionar ElastiSearch en la Raspi, tal vez demanda demasiados recursos. En su lugar, opté por una opción gratuita basada en la nube de Bonsai.io. Sin embargo, en el momento de escribir esto, su versión de ElastiSearch (Elasticsearch 7.10.2) no es compatible con la versión IDSTower de FileBeat Versión 8.....
Conclusión
La instalación de IDSTower en una Raspberry Pi 5 proporciona una forma potente, asequible y energéticamente eficiente de proteger su red doméstica o pequeña empresa frente a las ciberamenazas. La combinación del hardware mejorado de la Raspberry Pi 5 y las sólidas capacidades de detección de intrusiones de IDSTower la convierten en una solución ideal para cualquiera que busque un sistema de seguridad siempre activo y fácil de gestionar.
A continuación se detalla el funcionamiento de Suricata y sus componentes clave:
1. Captación y análisis del tráfico
En esencia, Suricata captura el tráfico de red y analiza los datos en tiempo real. Inspecciona los paquetes en varias capas, entre ellas:
- Capa de enlace (cabeceras Ethernet, etc.)
- Capa de red (cabeceras IP)
- Capa de transporte (TCP, UDP, etc.)
- Capa de aplicación (HTTP, FTP, SMTP, etc.)
Suricata utiliza tarjetas de interfaz de red (NIC) en modo promiscuo para capturar todo el tráfico que fluye por la red, no sólo el dirigido al dispositivo en el que está instalado.
2. Inspección profunda de paquetes (DPI)
Suricata no se limita a analizar las cabeceras de los paquetes. Realiza una inspección profunda de paquetes (DPI), lo que le permite examinar la carga útil (contenido) de los paquetes de red, posibilitando la detección de ataques a nivel de aplicación como malware, intentos de phishing o exploits basados en archivos.
- Suricata analiza muchos protocolos diferentes, como HTTP, DNS, SMB, FTP, TLS, etc.
- Puede descodificar e inspeccionar el tráfico de red en busca tanto de firmas de ataque conocidas como de comportamientos anómalos.
- DPI es crucial para detectar malware oculto en descargas de archivos u otras formas de contenido.
3. Multihilo y alto rendimiento
Suricata está diseñado para gestionar eficazmente grandes cantidades de tráfico gracias al multihilo. Puede utilizar varios núcleos de procesador simultáneamente para procesar e inspeccionar los datos de la red, lo que la hace idónea para redes empresariales y de alta velocidad.
Suricata es capaz de funcionar a velocidades de hasta Gigabit y Terabit con el hardware y la configuración adecuados.
4. Detección basada en firmas
Uno de los principales métodos de detección que utiliza Suricata es la detección basada en firmas, en la que compara el tráfico de red capturado con una base de datos de patrones de ataque predefinidos, denominados "firmas" o "reglas".
- Estas firmas suelen estar escritas en una sintaxis de reglas compatible con Snort, lo que significa que puede utilizar la amplia biblioteca de firmas desarrollada para el IDS Snort.
- Las reglas pueden detectar cosas como:
- Firmas de malware conocidas
- Intentos de escaneo de puertos
- Desbordamiento del búfer
- Ataques de inyección SQL
Una norma podría tener este aspecto:
plaintextCopy codealert tcp any any -> 192.168.1.100 80 (msg: "Ataque Web Potencial"; content: "GET"; http_method; sid:1000001;)
Esta regla comprueba las peticiones HTTP GET enviadas a un servidor web en la IP 192.168.1.100 en el puerto 80.
5. Detección basada en anomalías
Además de la detección basada en firmas, Suricata también admite la detección basada en anomalías. Esta técnica consiste en crear una línea de base de comportamiento "normal" de la red y luego marcar las desviaciones de esa línea de base como amenazas potenciales.
- Por ejemplo, si un dispositivo empieza de repente a generar un gran número de solicitudes a horas intempestivas o se comunica con direcciones IP inusuales, puede activar una alerta.
- Esto puede ayudar a detectar ataques de día cero o nuevas amenazas que no tienen firmas predefinidas.
6. Identificación y análisis de protocolos
Suricata incluye un potente motor de reconocimiento de protocolos. Incluso si el tráfico de red utiliza puertos no estándar, Suricata puede detectar el protocolo inspeccionando los datos. Esta función, denominada Identificación de Protocolos (IPP), permite a Suricata:
- Reconocer protocolos de aplicación incluso cuando no se ejecutan en sus puertos estándar (por ejemplo, tráfico HTTP que se ejecuta en un puerto no estándar).
- Analice el tráfico en la capa de aplicación, identificando protocolos como HTTP, TLS, SSH, DNS, FTP y muchos otros.
7. Seguimiento de flujos y sesiones
Suricata puede rastrear "flujos" de red (secuencias de paquetes relacionados entre dos dispositivos) en lugar de limitarse a analizar paquetes individuales. Esto le permite comprender el estado de una conexión (por ejemplo, una conexión TCP) y detectar patrones de ataque complejos quese producen en varios paquetes, como:
- Reensamblado TCP: Reconstrucción de paquetes TCP fragmentados para inspeccionar completamente la carga útil.
- Extracción de archivos: Puede extraer archivos transmitidos a través de HTTP, FTP o SMB para su posterior análisis o comprobación de la integridad de los archivos.
- Inspección TLS/SSL: Suricata puede inspeccionar el tráfico cifrado y detectar anomalías en los protocolos SSL/TLS.
8. Registro y alertas
Suricata genera registros detallados y alertas basadas en las reglas y detecciones que encuentra. Puede registrar varios tipos de datos de red, entre ellos:
- Alertas: Notificación inmediata de detecciones basadas en reglas (por ejemplo, un intento de exploit).
- Registros: Registros de tráfico, registros de conexión, registros específicos de protocolo (por ejemplo, DNS, transacciones HTTP).
- Archivos PCAP: Suricata puede almacenar datos de paquetes sin procesar en formato PCAP para su posterior análisis.
Los registros pueden exportarse a sistemas externos, incluidos:
- Sistemas SIEM (Security Information and Event Management) para correlación y análisis avanzado.
- Pila ELK (Elasticsearch, Logstash, Kibana) para una potente visualización de datos de red y alertas de seguridad.
9. Modo de sistema de prevención de intrusiones (IPS)
Cuando se configura en modo IPS, Suricata puede bloquear activamente el tráfico malicioso además de detectarlo. A diferencia del modo IDS pasivo, en el que el sistema solo alerta de posibles ataques, en el modo IPS, Suricata puede:
- Descarte o rechace paquetes sospechosos o conexiones enteras.
- Utilice el modo en línea, en el que se sitúa entre su red y el mundo exterior, bloqueando las amenazas antes de que puedan llegar a los dispositivos internos.
10. Escalabilidad y flexibilidad
Suricata es altamente configurable y puede desplegarse en diversos entornos de red, desde pequeñas configuraciones domésticas hasta grandes infraestructuras empresariales. Su flexibilidad incluye:
- Despliegues distribuidos: Suricata puede desplegarse a través de múltiples nodos para monitorizar diferentes partes de la red y enviar los resultados a un servidor centralizado.
- Integración: Suricata se integra con otras herramientas como plataformas de inteligencia de amenazas, sistemas antivirus y sistemas de detección de puntos finales.
Resumen
En esencia, Suricata trabaja capturando e inspeccionando el tráfico de red en múltiples capas (enlace, red, transporte y aplicación), utilizando técnicas de detección basadas tanto en firmas como en anomalías para identificar amenazas. Sus capacidades multihilo le permiten gestionar grandes cantidades de tráfico de forma eficiente, y proporciona varios mecanismos de registro, alerta y prevención. Tanto si se despliega como IDS o IPS, Suricata es una potente herramienta para supervisar, detectar y prevenir ataques basados en red en tiempo real.
Tagged with:
CyberSecurity linux