Snort o Suricata. Parte 2: Instalación y configuración.

Según las estadísticas, el volumen de tráfico de la red aumenta aproximadamente un 50% cada año. Esto conduce a un aumento en la carga del equipo y, en particular, aumenta los requisitos de rendimiento de IDS/IPS. Puede comprar hardware especializado caro, pero hay una opción más barata: la introducción de uno de los sistemas de código abierto. A muchos administradores novatos les resulta difícil instalar y configurar IPS gratuitos. En el caso de Suricata, esto no es del todo cierto: puede instalarlo y comenzar a repeler ataques típicos con un conjunto de reglas gratuitas en unos minutos.

Snort o Suricata. Parte 1: elegir un IDS/IPS gratuito para proteger su red corporativa

¿Por qué necesitamos otro IPS abierto?

Considerado durante mucho tiempo el estándar, Snort ha estado en desarrollo desde finales de los noventa, por lo que originalmente era de un solo subproceso. A lo largo de los años, han aparecido todas las funciones modernas, como la compatibilidad con IPv6, la capacidad de analizar protocolos a nivel de aplicación o un módulo de acceso universal a datos.

El motor central de Snort 2.X ha aprendido a trabajar con múltiples núcleos, pero se ha mantenido como un solo subproceso y, por lo tanto, no puede aprovechar de manera óptima las plataformas de hardware modernas.

El problema se resolvió en la tercera versión del sistema, pero tomó tanto tiempo prepararlo que Suricata, escrito desde cero, logró aparecer en el mercado. En 2009, comenzó a desarrollarse precisamente como una alternativa multiproceso a Snort, que tiene características IPS listas para usar. El código se distribuye bajo la licencia GPLv2, pero los socios financieros del proyecto tienen acceso a una versión cerrada del motor. En las primeras versiones del sistema surgieron algunos problemas de escalabilidad, pero se resolvieron rápidamente.

¿Por qué Surica?

Suricata tiene varios módulos (similares a Snort): captura, captura, decodificación, detección y salida. De forma predeterminada, el tráfico capturado va antes de la decodificación en un flujo, aunque esto carga más el sistema. 

Si es necesario, los subprocesos se pueden dividir en la configuración y distribuir entre los procesadores: Suricata está muy bien optimizado para hardware específico, aunque este ya no es un nivel de CÓMO para principiantes. 
También vale la pena señalar que Suricata tiene herramientas de inspección HTTP avanzadas basadas en la biblioteca HTP. También se pueden utilizar para registrar el tráfico sin detección. El sistema también es compatible con la decodificación de IPv6, incluidos los túneles de IPv4 en IPv6, los túneles de IPv6 en IPv6 y más.

Se pueden usar diferentes interfaces para interceptar el tráfico (NFQueue, IPFRing, LibPcap, IPFW, AF_PACKET, PF_RING) y, en el modo Unix Socket, puede analizar automáticamente los archivos PCAP capturados por otro sniffer. Además, la arquitectura modular de Suricata facilita la incorporación de nuevos elementos para capturar, decodificar, analizar y procesar paquetes de red.

 También es importante señalar que en Suricata se bloquea el tráfico mediante un filtro regular del sistema operativo. GNU/Linux tiene dos opciones de cómo funciona IPS: a través de la cola NFQUEUE (modo NFQ) y a través de copia cero (modo AF_PACKET). En el primer caso, el paquete que ingresa a iptables se envía a la cola NFQUEUE, donde puede ser procesado a nivel de usuario.
 Suricata lo ejecuta de acuerdo con sus propias reglas y emite uno de los tres veredictos: NF_ACCEPT, NF_DROP y NF_REPEAT. Los dos primeros se explican por sí mismos, mientras que el último permite etiquetar paquetes y enviarlos a la parte superior de la tabla actual de iptables. 
El modo AF_PACKET es más rápido, pero impone una serie de restricciones al sistema: debe tener dos interfaces de red y funcionar como puerta de enlace. El paquete bloqueado simplemente no se reenvía a la segunda interfaz.

Una característica importante de Suricata es la posibilidad de utilizar desarrollos para Snort. El administrador tiene acceso, en particular, a los conjuntos de reglas de Sourcefire VRT y OpenSource Emerging Threats, así como al comercial Emerging Threats Pro.

 La salida unificada se puede analizar utilizando backends populares, también se admite la salida PCAP y Syslog. La configuración y las reglas del sistema se almacenan en archivos YAML, que son fáciles de leer y se pueden procesar automáticamente.
 El motor de Suricata reconoce muchos protocolos, por lo que no es necesario vincular las reglas a un número de puerto.
 Además, el concepto de flowbits se practica activamente en las reglas de Suricata. Para rastrear el disparador, las variables de sesión se usan para crear y aplicar varios contadores y banderas. 
Muchos IDS tratan diferentes conexiones TCP como entidades separadas y es posible que no vean una conexión entre ellas que indique el inicio de un ataque. Suricata intenta ver el panorama completo y en muchos casos reconoce el tráfico malicioso distribuido en diferentes conexiones. Puede hablar de sus ventajas durante mucho tiempo, será mejor que pasemos a la instalación y configuración.

¿Cómo instalar?

Instalaremos Suricata en un servidor virtual con Ubuntu 18.04 LTS. Todos los comandos deben ejecutarse en nombre del superusuario (raíz). La opción más segura es usar SSH en el servidor como un usuario normal y luego usar la utilidad sudo para elevar los privilegios. Primero necesitas instalar los paquetes que necesitamos:

sudo apt -y install libpcre3 libpcre3-dev build-essential autoconf automake libtool libpcap-dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libmagic-dev libcap-ng-dev libjansson-dev pkg-config libnetfilter-queue-dev geoip-bin geoip-database geoipupdate apt-transport-https

Conexión de un repositorio externo:

sudo add-apt-repository ppa:oisf/suricata-stable
sudo apt-get update

Instale la última versión estable de Suricata:

sudo apt-get install suricata

Si es necesario, edite el nombre de los archivos de configuración, reemplazando el eth0 predeterminado con el nombre real de la interfaz externa del servidor. La configuración predeterminada se almacena en el archivo /etc/default/suricata y la configuración personalizada se almacena en /etc/suricata/suricata.yaml. La configuración de IDS se limita principalmente a editar este archivo de configuración. Tiene muchos parámetros que, por nombre y propósito, coinciden con los análogos de Snort. Sin embargo, la sintaxis es completamente diferente, pero el archivo es mucho más fácil de leer que las configuraciones de Snort y está bien comentado.

sudo nano /etc/default/suricata

y

sudo nano /etc/suricata/suricata.yaml

¡Atención! Antes de comenzar, vale la pena revisar los valores de las variables de la sección vars.

Para completar la configuración, deberá instalar suricata-update para actualizar y cargar las reglas. Es bastante fácil hacer esto:

sudo apt install python-pip
sudo pip install pyyaml
sudo pip install <a href="https://github.com/OISF/suricata-update/archive/master.zip">https://github.com/OISF/suricata-update/archive/master.zip</a>
sudo pip install --pre --upgrade suricata-update

A continuación, debemos ejecutar el comando suricata-update para instalar el conjunto de reglas abiertas de Emerging Threats:

sudo suricata-update

Para ver la lista de fuentes de reglas, ejecute el siguiente comando:

sudo suricata-update list-sources

Fuentes de reglas de actualización:

sudo suricata-update update-sources

Revisando fuentes actualizadas:

sudo suricata-update list-sources

Si es necesario, puede incluir fuentes gratuitas disponibles:

sudo suricata-update enable-source ptresearch/attackdetection
sudo suricata-update enable-source oisf/trafficid
sudo suricata-update enable-source sslbl/ssl-fp-blacklist

Después de eso, debe actualizar las reglas nuevamente:

sudo suricata-update

Esto completa la instalación y configuración inicial de Suricata en Ubuntu 18.04 LTS. Entonces comienza la diversión: en el próximo artículo, conectaremos un servidor virtual a la red de la oficina a través de VPN y comenzaremos a analizar todo el tráfico entrante y saliente. Prestaremos especial atención al bloqueo de ataques DDoS, actividad de malware e intentos de explotar vulnerabilidades en servicios accesibles desde redes públicas. Para mayor claridad, se simularán ataques de los tipos más comunes.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *