
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.
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.
Te puede interesar:
Cómo reparar el error HTTP 503: el servicio no está disponible
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.
¿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.