Tutoriales y Manuales
Entradas Mensuales
-
►
2024
(Total:
1019
)
- ► septiembre (Total: 50 )
-
►
2023
(Total:
710
)
- ► septiembre (Total: 65 )
-
►
2022
(Total:
967
)
- ► septiembre (Total: 72 )
-
▼
2021
(Total:
730
)
- ► septiembre (Total: 56 )
-
▼
febrero
(Total:
47
)
- Instalar y configurar IDS/IPS Suricata en una Rasp...
- Apple se ve obligada a agregar puntuaje de reparab...
- Vulnerabilidad crítica en vCenter de VMWare
- Anuncian un portátil modular para facilitar su re...
- La Universidad de Oxford sufre un ciberataque en u...
- Las contraseñas más utilizadas en España
- Disponible nueva versión de Kali Linux 2021.1 (com...
- Empresas de Lleida victimas de un ataque del Ranso...
- Descubren Silver Sparrow: un malware afecta a 30.0...
- Alertan ataques de suplantación de identidad en cu...
- Píxel de rastreo en los e-mails se ha convertido e...
- Granjas de minado: minar criptomonedas hace desapa...
- Programas para ver y comprobar hardware de tu PC: ...
- Kia Motors America sufre un ataque de ransomware, ...
- Estructura archivos PDF con malware - Análisis y p...
- La Policía cierra una red IPTV ilegal con 20.000 c...
- Google Presenta Preview de Android 12
- Nomenclatura procesadores CPU Amd Ryzen e Intel
- Francia impulsará la ciberdefensa tras los ataques...
- Interfaz de red eth0 a enp0s3 / eno1 - nombres de ...
- Grave vulnerabilidad en App ShareIT de Softonic
- Mozilla analiza la privacidad de las app de citas
- ¿Qué es una vCPU? Núcleos Vs Hilos
- Fallo en Telegram permitía recuperar mensajes auto...
- Proxmox VE: herramienta virtualización basada en D...
- ¿Vas a comprar un monitor? Diferencias entre panel...
- Commando VM 2.0: máquina virtual en Windows para p...
- Así hackearon con TeamViewer una planta de agua pa...
- Filtran 3.270 millones de direcciones de correos e...
- KVM – Virtualización usando el núcleo (kernel) de ...
- Podman: contenedores docker de la mano de RedHat
- Alertan graves vulnerabilidades en la pila TCP/IP ...
- Fiabilidad de una unidad SSD - Lecturas - Escritur...
- Instalar y configurar RaspBerry Pi 4 B : opciones,...
- Nueva vulnerabilidad activa para Google Chrome (y ...
- Mejores programas para medir la velocidad de tu SS...
- Primeros pasos con contenedores Docker y gestión g...
- Tipos de memorias NAND SSD: SLC, MLC, TLC, QLC
- Introducción y comandos Android Debug Bridge (adb)
- Instalar y configurar HoneyPot DShield (basado en ...
- Las 10 vulnerabilidades más explotadas y las más g...
- Instalar Kali Linux en una RaspBerry Pi 4
- Cuidado con los mods que descargas para Cyberpunk ...
- Mobile Security Framework (MobSF): Herramienta aná...
- Virtualización: Mejores programas para trabajar co...
- Vulnerabilidad crítica en la librería libgcrypt de...
- Instalar Honeypot T-Pot en una máquina virtual
-
►
2020
(Total:
212
)
- ► septiembre (Total: 21 )
-
►
2019
(Total:
102
)
- ► septiembre (Total: 14 )
-
►
2017
(Total:
231
)
- ► septiembre (Total: 16 )
-
►
2016
(Total:
266
)
- ► septiembre (Total: 38 )
-
►
2015
(Total:
445
)
- ► septiembre (Total: 47 )
-
►
2014
(Total:
185
)
- ► septiembre (Total: 18 )
-
►
2013
(Total:
100
)
- ► septiembre (Total: 3 )
-
►
2011
(Total:
7
)
- ► septiembre (Total: 1 )
Blogroll
Etiquetas
Entradas populares
-
Después de ver qué es una vCPU y la diferencia entre núcleos (cores) e hilos en los procesadores, pasamos a explicar toda la nomenclatura d...
-
En el panorama en constante evolución de la seguridad de redes, OpnSense se ha convertido en una formidable solución de firewall. Nacido de...
-
Pese a que Gemini ofrece multitudes de opciones, recientemente, se ha dado a conocer una situación fuera de lo común. Hace unos días, un es...
Instalar y configurar IDS/IPS Suricata en una RaspBerry Pi
En esta entrada del blog veremos los pasos que debemos seguir para dejar instalado Suricata en Debian pero usando una RaspBerry Pi. Suricata (tipo Snort) es un motor de red de alto rendimiento, como IDS (Intrusion Detection System), IPS (Intrusion Prevention System) y usado como sistema de monitorización de red, y por supuesto, ¡Open Source!. Hacía ya mucho tiempo que estaba esperando hablar de Suricata y qué mejor manera de hacerlo que instalando y configurando las reglas.
Este artículo detalla la instalación y configuración de IDS Suricata en una Raspberry Pi para monitorear una red local.
Detectar actividad anormal en su red local con el sistema de detección de intrusiones Suricata (IDS) en Raspberry Pi
Presentación
Suricata es un IDS (sistema de detección de intrusiones) de red basado en detecciones de firmas. Analiza el tráfico de la red para detectar actividades anormales e intentos de intrusión.
Una Raspberry Pi es un anfitrión perfecto para Suricata como parte de una pequeña red de área local.
Para monitorear todo el equipo en su red, el IDS debe poder analizar todo el tráfico en él. Esto es posible gracias al uso de un conmutador manejable que soporta la función de “duplicación de puertos” que permite duplicar el tráfico de todos los dispositivos y enviarlo al IDS.
Para poder monitorear también el tráfico de dispositivos inalámbricos, es necesario utilizar un pequeño enrutador WiFi. Este enrutador debe estar conectado a un puerto de conmutador para que el tráfico Wifi también se duplique en el IDS mediante la función de "duplicación de puertos".
Material necesario
- Raspberry Pi 3B o Pi 4 - Modelo B
- Switch administrado con puerto de duplicación Zyxel GS1200
- Enrutador Wifi TP-LINK TL-WR902AC
Arquitectura
El IDS debe poder analizar las tramas provenientes de todos los dispositivos de su red.
Para hacer esto, todo su equipo debe estar conectado al conmutador que usa la función de duplicación de puertos para transmitir todas las tramas recibidas desde el "puerto duplicado" al "puerto de análisis". La Raspberry Pi en la que está instalado Suricata IDS, por supuesto, está conectada a este "puerto de análisis".
Si también desea monitorear su equipo conectado a través de la red Wifi, no tendrá que conectarlos a la red Wifi de la caja de Internet, sino que use un pequeño enrutador Wifi también conectado al interruptor en un "puerto espejo".
Mi red local es 192.168.1.0/24 y todos mis equipos, incluidos los conectados a través del punto de acceso Wifi, pertenecen a esta red local.
Instalación de Suricata en su Raspberry Pi
Instalar el IDS de código abierto de Suricata
sudo apt install libpcre3 libpcre3-dbg libpcre3-dev build-essential libpcap-dev libyaml-0-2 libyaml-dev pkg-config zlib1g zlib1g-dev make libmagic-dev libjansson-dev rustc cargo python-yaml python3-yaml liblua5.1-dev
wget https://www.openinfosecfoundation.org/download/suricata-6.0.1.tar.gz
tar -xvf suricata-6.0.1.tar.gz
cd $HOME/suricata-6.0.1/
./configure --prefix=/usr --sysconfdir=/etc --localstatedir=/var --enable-nfqueue --enable-lua
make
sudo make install
cd $HOME/suricata-6.0.1/suricata-update/
sudo python setup.py build
sudo python setup.py install
cd $HOME/suricata-6.0.1/
sudo make install-full
sudo suricata-update
Configurar Suricata
sudo vi /etc/suricata/suricata.yaml
HOME_NET: "[192.168.0.0/24]"
Iniciar Suricata
sudo suricata -c /etc/suricata/suricata.yaml -i eth0 -S /var/lib/suricata/rules/suricata.rules
- -c <ruta>: archivo de configuración a usar
- -i <interfaz>: interfaz Ethernet para monitorear
- -S <ruta>: archivo que contiene las reglas a utilizar
alert icmp any any -> any any (msg: "ICMP Packet found";)
sudo tail -f /var/log/suricata/fast.log
01/23/2021-21:22:26.898963 [**] [1:0:0] ICMP Packet found [**] [Classification: (null)] [Priority: 3] {ICMP} 192.168.1.16:8 -> 192.168.1.25:0
02/03/2021-16:13:42.020071 [**] [1:2100498:7] GPL ATTACK_RESPONSE id check returned root [**] [Classification: Potentially Bad Traffic] [Priority: 2] {TCP} 31.3.245.133:80 -> 192.168.1.10:46196
dig a 3wzn5p2yiumh7akj.onion
02/03/2021-16:19:40.496621 [**] [1:2022048:3] ET MALWARE Cryptowall .onion Proxy Domain [**] [Classification: A Network Trojan was detected] [Priority: 1] {UDP} 192.168.1.10:37423 -> 192.168.1.1:53
Previamente hemos instalado Oinkmaster, lo utilizaremos para gestionar y mantener actualizadas las reglas. En su fichero de configuración (/etc/oinkmaster.conf) añadimos la siguiente URL:
url = http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz
Usar Suricata en modo de servicio
sudo vi /etc/systemd/system/suricata.service
# Sample Suricata systemd unit file.[Unit]Description=Suricata Intrusion Detection ServiceAfter=network.target syslog.target[Service]ExecStartPre=/bin/rm -f @e_rundir@suricata.pidExecStart=/usr/bin/suricata -c /etc/suricata/suricata.yaml -i eth0 -S /var/lib/suricata/rules/suricata.rules --pidfile @e_rundir@suricata.pidExecReload=/bin/kill -HUP $MAINPIDExecStop=/bin/kill $MAINPID[Install]WantedBy=multi-user.target
sudo systemctl enable suricata.service
sudo systemctl start suricata.service
sudo systemctl stop suricata.service
sudo systemctl restart suricata.service
sudo systemctl status suricata.service
Evitar la pérdida de paquetes
5/9/2024 -- 11:27:52 - <Notice> - Stats for 'eth0': pkts: 2142456, drop: 45765 (2.14%), invalid chksum: 0
#ring-size: 2048
ring-size: 30000
tail -f /var/log/suricata/suricata.log
1/5/2024 -- 20:51:47 - <Notice> - Stats for 'eth0': pkts: 1610546, drop: 104011 (6.46%), invalid chksum: 0
Ver archivos de registro Logs de Suricata
- suricata.log : mensajes de inicio de Suricata
- stats.log : estadísticas sobre el tráfico de su red
- fast.log : actividad sospechosa descubierta por Suricata
- eve.json : tráfico de tu red local, así como actividad sospechosa en formato JSON
Archivo de registro de actividad sospechosa
sudo tail -n 100 -f /var/log/suricata/fast.log
01/29/2021-19:25:45.132975 [**] [1:2025012:3] ET MALWARE Powershell commands sent B64 3 [**] [Classification: A Network Trojan was detected] [Priority: 1] {TCP} XXX.XXX.XXX.XXX:80 -> 192.168.1.22:4598601/29/2021-19:26:10.183249 [**] [1:2013147:3] ET SHELLCODE Possible %u4141%u4141 UTF-16 Heap Spray Attempt [**] [Classification: Executable code was detected] [Priority: 1] {TCP} XXX.XXX.XXX.XXX:80 -> 192.168.1.22:4598601/31/2021-10:08:08.889128 [**] [1:2002157:12] ET CHAT Skype User-Agent detected [**] [Classification: Potential Corporate Privacy Violation] [Priority: 1] {TCP} 192.168.1.2:53937 -> XXX.XXX.XXX.XXX:80
Rotación de archivos de registro
{dailymaxsize 1Grotate 10missingoknocompresscreatesharedscriptspostrotatesystemctl restart suricata.serviceendscript}
sudo logrotate -f /etc/logrotate.conf
Archivo de registro de tráfico de red
El tamaño del archivo de registro de tráfico de red "eve.json" puede aumentar dependiendo del tráfico de tu red.
Si solo le interesan las alertas del archivo fast.log , desactiva los registros del archivo eve.json en el archivo de configuración /etc/suricata/suricata.yaml . Pero ojo, no tendrás registros que te permitan analizar la causa de las alertas.
- eve-log:
enabled: no
Gestionar las reglas de Suricata
La eficacia de IDS Suricata se basa en una buena gestión de las reglas. Es necesario tanto para evitar falsos positivos como para asegurar que las reglas utilizadas estén actualizadas y permitan la detección de amenazas recientes.
Las reglas de Suricata activadas por defecto generan muchos falsos positivos (alertas que no son problemas reales). Recomiendo dejar que Suricata se ejecute durante unas horas usando tu equipo normalmente y analizar cuidadosamente las alertas en el archivo fast.log y deshabilitar ciertas reglas. Por ejemplo, si utiliza Dropbox o Skype en tu red, deberá desactivar las reglas correspondientes para no generar alertas innecesarias para tu red.
Para aumentar la seguridad de tus instalaciones, es posible que también deba agregar nuevas fuentes de reglas o crear tus propias reglas.
Veremos cómo manejar esto en los siguientes capítulos.
Formato de reglas
- Action (drop, alert, or pass)
- Header (protocol, ip address(es), ports)
- Options (additional qualification values to determine if the packet/flow/whatever match)
Cada regla de Suricata se compone de la siguiente manera:
opciones de encabezado de acción
- La acción corresponde a la acción realizada en caso de detección (alerta, caída, pase, etc.).
- El encabezado sirve para definir el protocolo (tcp, http, ftp, dns, tls…) así como la dirección IP y el puerto de origen y destino del tráfico involucrado en la alerta.
- Las opciones de la regla se muestran entre paréntesis y separadas por comas. Algunas opciones tienen parámetros, que se especifican mediante tu palabra clave seguida de dos puntos y el valor del parámetro.
Las reglas se identifican por tu identificador de firma, el parámetro sid .
Por ejemplo, aquí está la regla 2012647 para usar Dropbox:
# alert tls
[108.160.162.0/20,162.125.0.0/16,192.189.200.0/23,199.47.216.0/22,205.189.0.0/24,209.99.70.0/24,45.58.64.0/20] 443 -> $HOME_NET any (msg:"ET POLICY Dropbox.com Offsite File Backup in Use"; flow:established,from_server; content:"|55 04 03|"; content:"|0d|*.dropbox.com"; distance:1; within:14; threshold: type limit, count 1, seconds 300, track by_src; reference:url,www.dropbox.com; reference:url,dereknewton.com/2011/04/dropbox-authentication-static-host-ids/; classtype:policy-violation; sid:2012647; rev:5; metadata:created_at 2011_04_07, updated_at 2019_01_16;)
Puede ver las reglas editando el archivo de reglas Suricata:
sudo vi /var/lib/suricata/rules/suricata.rules
Deshabilitar ciertas reglas
Dependiendo de su uso, algunas reglas deben deshabilitarse. Por ejemplo, si permite el uso de Dropbox dentro de la red, la regla para el SID 2012647 debe estar deshabilitada.
Edite el archivo que contiene las reglas para desactivar:
sudo vi /etc/suricata/disable.conf
Agregue la lista de reglas para desactivar, identificadas por su identificador de firma (SID).
Aquí hay un ejemplo de reglas que desactivé en mi instalación:
# suricata-update - disable.conf
1:2012647 # Dropbox
1:2013504 # APT package management
1:2210044 # SURICATA STREAM Packet with invalid timestamp
1:2029706 # COVID
1:2029707 # COVID
1:2029709 # COVID
1:2027865 # DNS Query to .cloud
1:2210054 # SURICATA STREAM excessive retransmissions
1:2260000 # Applayer Mismatch protocol both directions
1:2210020 # STREAM ESTABLISHED packet out of window
1:2016150 # INFO Session Traversal Utilities for NAT
1:2027758 # DNS Query for .cc
1:2002157 # CHAT Skype User-Agent detected
Si es necesario, es posible desactivar todas las reglas que pertenecen al mismo tipo de clasificación de clases. Por ejemplo, la clasificación de decodificación de comandos de protocolo genérico genera demasiadas alertas para mi gusto y es posible deshabilitar todas las reglas en esta clasificación.
# suricata-update - disable.conf
# Disable all rules from protocol command decode class type
re:classtype:protocol-command-decode
Luego, debe actualizar las reglas (consulta Actualización de las reglas).
Agregar una nueva fuente de reglas
Es posible agregar nuevas reglas de una fuente en particular.
Primero actualice la lista de fuentes disponibles:
sudo suricata-update update-sources
Luego vea las fuentes disponibles:
sudo suricata-update list-sources
Para verificar qué fuentes ya están activadas, ejecute el siguiente comando:
sudo suricata-update list-enabled-sources
Active una nueva fuente, por ejemplo, la fuente de las reglas oisf / trafficid .
sudo suricata-update enable-source oisf/trafficid
Luego, debe actualizar las reglas (consulte Actualización de las reglas).
Actualizar las reglas
Para integrar la detección de las últimas amenazas, es necesario actualizar periódicamente las reglas de Suricata ejecutando el siguiente comando:
sudo suricata-update --disable-conf=/etc/suricata/disable.conf
Entonces todo lo que tiene que hacer es reiniciar el servicio Suricata:
sudo systemctl restart suricata.service
Puedes ver cómo exportar los datos recolectados por Suricata a Elasticsearch, y así, con Kibana o Grafana poder visualizar dicho tráfico.
Otros IDS a tener en cuenta:
- Snort : Se trata de un NIDS de código abierto, libre y gratuito, mantenido por la empresa Cisco Systems, capaz de operar tanto en dispositivos Windows como Linux y Unix y que dispone de tres modos de operación: “packet sniffer”, “packet logger” e “intrusion detection”.
- Bro (Zeek) : Anteriormente conocida con el nombre de “Bro”, se trata de un NIDS de código abierto que ofrece dos modos de operación diferentes, como son el “traffic logging” y el “analysis”. Una de sus principales características es que se puede ejecutar en la capa de aplicación de la capa OSI, ofreciendo la capacidad de analizar servicios y protocolos como DNS, HTTP o SNMP, entre otros.
- Security Onion : Este NIDS de código abierto basado en Linux proporciona visibilidad sobre el tráfico de red, detección de intrusiones y administración de registros, además de ser capaz de alertar sobre actividades sospechosas. Combina varias de las funcionalidades de otras herramientas como Snort, Zeek, Suricata, Sguil o Squert, entre otras.
- OSSEC: es de tipo HIDS, de código abierto y gratuito. Además, es multiplataforma, y sus registros incluyen también FTP, datos del servidor web y email.
Fuentes:
https://www.framboise314.fr/detection-dintrusion-ids-avec-suricata-sur-raspberry-pi/
https://www.bujarra.com/instalando-suricata/
0 comentarios :
Publicar un comentario
Los comentarios pueden ser revisados en cualquier momento por los moderadores.
Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.
Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.