En Ubuntu encontramos una serie de opciones que nos permiten aumentar las funciones y capacidad del sistema y al tratarse de un sistema versátil que ha aganado un puesto importante tanto para usuarios finales como para servidores es ideal contar con opciones especiales de seguridad y una de ellas la logramos gracias a Suricata.
Suricata se ha desarrollado como un software de análisis de red y detección de amenazas de código abierto el cual cuenta con alto rendimiento para que sus tareas y capacidades sean explotadas al máximo ya que permite realizar un monitoreo de seguridad en aspectos como red, IPS e IDS.
- Cuenta con un potente analizador de detección y respuesta a amenazas
- Puede integrase a la red local así como a opciones de red disponibles en el mercado
- Suricata esta en la capacidad de registrar solicitudes HTTP así como registrar y almacenar certificados TLS
- Cuenta con soporte completo de captura de pcap para un posterior análisis
- Dispone de funciones de registro y análisis de TLS/SSL
- Suricata puede registrar todas las conexiones HTTP disponibles en los puertos con el fin de revisar la actividad de cada uno de ellos
- Se encarga de registrar todas las consultas y respuestas de DNS
- Suricata implementa un lenguaje de firma el cual coincide con las amenazas más populares así como con las infracciones de políticas más recurrentes
- Posee un motor que cuenta con una base de código multiproceso, limpio y escalable
- Cuenta con soporte nativo para la aceleración de hardware usando PF_RING y AF_PACKET
- Puede detectar automáticamente protocolos en cualquier puerto y luego aplicar la lógica de detección y registro en base a dicho protocolo
- Cuenta con análisis avanzado y funcionalidades disponibles para detectar elementos que no forman parte del estándar de las reglas
Veamos en este tutorial cómo instalar Suricata en Ubuntu y contra con una potente herramienta de análisis.
Cómo instalar y usar Suricata en Ubuntu
Abrimos la terminal e instalamos Suricata con el comando:
sudo apt install suricata
Ingresamos la contraseña y confirma el proceso usando la tecla S:
Validamos el estado de Suricata:
sudo systemctl status suricata
En caso de estar fallando ejecutamos lo siguiente:
sudo systemctl start suricata
Es momento de configurar Suricata de forma local en Ubuntu, para esto accedemos con algún editor al archivo de configuración de Suricata:
sudo nano /etc/suricata/suricata.yaml
Al acceder allí veremos lo siguiente:
En "HOME_NET" asignamos la IP de Ubuntu, podemos usar el comando “ip a” para ver la IP actual y en "EXTERNAL_NET" validamos que esté la opción "“!$HOME_NET“":
Guardamos los cambios con Ctrl + O y salimos del editor con Ctrl + X.
Actualizamos las reglas de Suricata:
sudo suricata-update -o /etc/suricata/rules
Por defecto Suricata cuenta con un grupo limitado de reglas de detección las cuales están alojadas en el directorio /etc/suricata/rules, el anterior comando carga las reglas de amenazas emergentes (ET), para disponer de un grupo de reglas más completo.
En este caso hubo un total de 35671 las cuales habilitadas han sido 28112, eliminadas 0 y se modificaron 0.
El siguiente paso es añadir reglas de proveedores, para esto con la utilidad de actualización de suricata es posible hacerlo, en este caso debemos saber que algunos serán de pago y otros gratuitos, para ver el conjunto predeterminado de proveedores de reglas ejecutamos:
sudo suricata-update list-sources
Al final veremos todas las opciones disponibles:
Agregamos una regla usando la siguiente sintaxis:
sudo suricata-update enable-source “regla”
Al añadir el nuevo conjunto de reglas, debemos ejecutar el comando suricata-update para aplicar el cambio:
sudo suricata-update -o /etc/suricata/rules
Validamos la configuración de Suricata:
sudo suricata -T -c /etc/suricata/suricata.yaml -v
Es posible usar el conjunto de reglas de ET Open para simular una intrusión, para ello se hará uso de la función de IDS la cual a su vez usa una identificación de firma de 2100498 con el envío de una solicitud HTTP hacia testmynids.org, ejecutamos:
curl http://testmynids.org/uid/index.html
En caso de no contar con CURL ejecutamos:
sudo apt install curlAplicamos los cambios y descargamos de nuevo:
Usamos grep para validar si existen entradas:
grep 2100948 /var/log/suricata/fast.log
- -c <ruta>: es la ruta al archivo de configuración
- -T : es el archivo de configuración de prueba (se usa con -c)
- -i <dev o ip>: permite ejecutarse en modo pcap en vivo
- -r <ruta>: ejecuta Suricata con un archivo pcap en modo fuera de línea
- -s <ruta>: es la ruta al archivo de firma disponible en la configuración de suricata.yaml
- -l <dir>: es el directorio de registro por defecto
- -D: se ejecuta como demonio
- -k [all|none]: fuerza la verificación de la suma de comprobación (all) o la deshabilita (none)
- -V : permite ver la versión de Suricata
- -v: permite ver más detalles
- --list-app-layer-protos : lista los protocolos de capa de aplicación admitidos
- --list-keywords[=all|csv|<kword>] : enumera las palabras clave usadas por el motor
- --pidfile <archivo>: escribe el PID en el archivo indicado
- --disable-detection : deshabilita el motor de detección
- --build-info: muestra la información de compilación usada
Con ello podemos ver como Suricata es una opción ideal para estar preparados ante las amenazas que surgen en un mundo propenso e ellas.