Introducción

Aunque los primeros tipos de Sistemas de Detección de Intrusos en la Red se remontan a principios de la década de 1980, el concepto de IDS despegó cuando Martin Roesch creó su sistema de IDS gratuito y de código abierto SNORT. Debido a su diseño ligero y a sus flexibles opciones de despliegue, la base de usuarios de Snort creció rápidamente en los años siguientes (hasta 400.000 en la actualidad).

En 2001, Martin Roesch fundó la empresa Sourcefire (adquirida por Cisco en 2013) para un producto IDS comercial basado en SNORT. Sin embargo, la versión original de SNORT, gratuita y de código abierto, siguió estando disponible y se sigue utilizando ampliamente en las redes de todo el mundo. Mientras tanto, algunos competidores han ganado terreno en el ámbito de los IDS de código abierto, sobre todo Suricata IDS.

¿Cuáles son las principales diferencias entre ellos, y qué podemos esperar en el futuro de SNORT?

Reglas

Una solución IDS es tan buena como las reglas disponibles que puede aplicar al tráfico monitorizado. Snort siempre ha tenido mucho apoyo de la comunidad, y esto ha llevado a un conjunto de reglas sustancial, actualizado regularmente. La sintaxis de las reglas es bastante sencilla, y la estructura del programa permite que cualquiera pueda implementar reglas personalizadas en su IDS o compartirlas con la comunidad.

Algunas partes comerciales también desarrollan reglas SNORT, que pueden adquirirse por una cuota mensual o anual. Algunos ejemplos son las reglas SO/VRT de Talos (liberadas gratuitamente después de un mes) y CrowdStrikes Threat Intelligence Services.

Suricata puede utilizar las mismas reglas que SNORT. Muchas, pero no todas, las reglas de VRT siguen funcionando. Suricata tiene su propio conjunto de reglas, inicialmente liberado para los suscriptores de pago, pero disponible libremente después de 30 a 60 días: Amenazas Emergentes. Estas reglas de Suricata hacen más uso de las características adicionales que ofrece Suricata, como la detección de protocolos agnósticos de puertos y la detección automática de archivos y la extracción de archivos.

Detección de aplicaciones

Desde los primeros días de la existencia de Snort, se ha dicho que Snort no es «consciente de las aplicaciones». Simplemente mira el tráfico que coincide con sus reglas y toma una acción (alerta, eliminación, etc.) cuando hay una coincidencia. Los preprocesadores ayudan dando forma al tráfico en un formato utilizable para que se apliquen las reglas: por ejemplo, realizando la descompresión y decodificación, pero no había necesidad de que Snort entendiera qué aplicación generaba los datos.

Sin embargo, los requisitos empresariales han cambiado con el tiempo y para adaptarse al mercado, Snort lanzó OpenAppID en su versión 2.9.7 en 2014. OpenAppID permite la detección de aplicaciones a través de los llamados Detectores de Capa 7. Aunque la existencia de una aplicación conocida no siempre es un incidente de seguridad directo (el uso de Dropbox, por ejemplo), sí permite conocer mejor lo que existe dentro de la red. No sólo se pueden encontrar aplicaciones previamente desconocidas, sino que también se puede descartar su tráfico o alertar sobre él vinculando un AppID a una regla SNORT IDS/IPS tradicional.

Suricata trabaja de forma ligeramente diferente en este espacio. Soporta reglas de detección de la capa de aplicación y puede, por ejemplo, identificar el tráfico HTTP o SSH en puertos no estándar basados en protocolos. También aplicará ajustes de registro específicos del protocolo a estas detecciones.

No hay realmente un producto mejor o peor en este espacio, realmente depende de lo que la empresa está buscando, y qué sistema llena mejor las lagunas en la detección. Debido a que ambos son completamente de código abierto, la configuración de un entorno de prueba es relativamente rápida y barata.

Multihilo

Una de las principales ventajas de Suricata es que fue desarrollado mucho más recientemente que Snort. Esto significa que tiene muchas más características a bordo que son prácticamente imperdibles en estos días. Una de esas características es el soporte para multithreading.

El aumento del tráfico de red a lo largo de los años ha sido seguido de cerca por las demandas de procesamiento de los dispositivos IDS (medido en paquetes por segundo). Afortunadamente, Suricata soporta multithreading fuera de la caja. Snort, sin embargo, no soporta el multithreading. No importa cuántos núcleos tenga una CPU, sólo un núcleo o hilo será utilizado por Snort.

Hay una solución bastante complicada: ejecutar múltiples instancias de SNORT de un solo hilo, todas alimentando el mismo registro. Sin embargo, los gastos generales añadidos para gestionar este proceso (AutoFP) y el alto coste del hardware, significan que esta configuración rara vez se encuentra en entornos de producción. SNORT3 soportará el multithreading, pero todavía está en fase Alpha, funcionando como Snort++. Por supuesto, no se aconseja utilizar un producto en fase Alpha en un entorno de producción. El multithreading es, sin duda, un argumento de peso para considerar Suricata sobre Snort.

Extracción de archivos

Suricata soporta la extracción de archivos. Esta es una característica increíblemente útil que permite la extracción automática de los archivos seleccionados una vez que se activa una regla que contiene la opción «filestore». Por ejemplo, es posible extraer todos los archivos .pdf o todos los archivos .png de un solo píxel y almacenarlos en una carpeta preconfigurada para su posterior análisis manual, búsquedas en VirusTotal o incluso el sandboxing automatizado.

Alternativas

Aunque Snort y Suricata son sin duda los sistemas de detección de intrusos de código abierto más populares, existen algunas alternativas. La mencionada versión actualizada de SNORT3 parece muy prometedora, con su soporte para multithreading, identificación de servicios y un lenguaje de reglas más sencillo. Esto ha estado en desarrollo durante muchos años. Sin embargo, la etapa Alpha se remonta a 2014, y aún no se ha fijado una fecha de lanzamiento para una versión de producción.

También hay alternativas a las soluciones IDS/IPS tradicionales, pero estas a veces pueden funcionar de manera ligeramente diferente. El Bro Network Security Monitor (ahora conocido como Zeek), por ejemplo, es más bien un sistema de detección de anomalías. Mientras que Snort y Suricata trabajan con firmas IDS tradicionales, Bro/Zeek utiliza scripts para analizar el tráfico.

Una ventaja significativa de Bro/Zeek es que estos scripts también permiten flujos de trabajo altamente automatizados entre diferentes sistemas, un enfoque que permite tomar decisiones mucho más granulares que las antiguas acciones de pass o drop. Sin embargo, su configuración puede llegar a ser bastante complicada.

Conclusión

Hay varias buenas opciones de IDS de código abierto por ahí. Sin embargo, debido a sus diferencias, no todas las soluciones funcionarán en todos los entornos. La selección de los mejores productos debe basarse en qué otros productos de seguridad, potencialmente superpuestos, ya están instalados, qué tipo de tráfico atraviesa la red, la cantidad de tráfico y el conjunto de habilidades del personal de TI disponible.

Deja una respuesta

Tu dirección de correo electrónico no será publicada.