Después de siete años de desarrollo, Cisco ha presentado la primera versión estable del sistema de prevención de ataques Snort 3 el cual fue completamente rediseñado, además de que se simplificó la configuración y el lanzamiento de Snort, asi como también la posibilidad de automatizar la configuración, simplificar el lenguaje de creación de reglas, detectar automáticamente todos los protocolos, proporcionar un shell para el control de la línea de comandos, uso activo de subprocesos múltiples con acceso compartido de diferentes controladores a una sola configuración y más.
Para quienes desconocen de Snort, deben saber que puede analizar el tráfico en tiempo real, responder a la actividad maliciosa detectada y mantener un registro de paquetes detallado para un análisis posterior de incidentes.
La sucursal de Snort 3, también conocida como el proyecto Snort++, ha repensado completamente el concepto y la arquitectura de su producto.
El trabajo en Snort 3 comenzó en 2005, pero pronto se abandonó y se reanudó solo en 2013 después de que Cisco se hiciera cargo del proyecto.
Principales novedades de Snort 3
En la nueva versión de Snort 3 se ha realizado una transición a un nuevo sistema de configuración, que ofrece una sintaxis simplificada y permite el uso de scripts para generar configuraciones dinámicamente. LuaJIT se utiliza para procesar archivos de configuración, además de que los complementos basados en LuaJIT cuentan con opciones adicionales para reglas y un sistema de registro.
Otro de los cambios que se destaca es que se ha modernizado el motor para detectar ataques, se han actualizado las reglas, se ha agregado la capacidad de vincular búferes en las reglas (búferes adhesivos) y también se utilizó el motor de búsqueda Hyperscan, que hizo posible utilizar patrones activados de forma rápida y más precisa basados en expresiones regulares en las reglas;
Además, en Snort 3 se agregó un nuevo modo de introspección para HTTP que tiene estado de sesión y cubre el 99% de las situaciones admitidas por el conjunto de pruebas HTTP Evader, además del sistema de inspección agregado para tráfico HTTP/2.
El rendimiento del modo de inspección profunda de paquetes se ha mejorado significativamente. Se agregó la capacidad de procesamiento de paquetes multiproceso, lo que permite la ejecución simultánea de múltiples subprocesos con controladores de paquetes y brinda escalabilidad lineal según la cantidad de núcleos de CPU.
Se ha implementado un almacenamiento común de tablas de configuración y atributos, el cual es compartido en diferentes subsistemas, lo que ha permitido reducir significativamente el consumo de memoria al eliminar la duplicación de información.
Por otra parte, también se destaca la transición a una arquitectura modular, la capacidad de ampliar la funcionalidad a través de la conexión de complementos y la implementación de subsistemas clave en forma de complementos reemplazables.
Actualmente hay más de 200 complementos para Snort 3, que cubren una variedad de usos, como permitirle agregar sus propios codecs, modos de introspección, métodos de registro, acciones y opciones en las reglas.
De los demás cambios que se destacan de la nueva versión:
- Se agregó soporte para archivos para anular rápidamente la configuración relativa a la configuración predeterminada.
- Se interrumpió el uso de snort_config.lua y SNORT_LUA_PATH para simplificar la configuración.
- Se agregó soporte para recargar configuraciones sobre la marcha.
- Nuevo sistema de registro de eventos que usa formato JSON y se integra fácilmente con plataformas externas como Elastic Stack.
- Detección automática de servicios en ejecución, eliminando la necesidad de especificar manualmente puertos de red activos.
- El código proporciona la capacidad de utilizar las construcciones de C++ definidas en el estándar C ++ 14 (el ensamblado requiere un compilador que admita C++ 14).
- Se agregó un nuevo controlador VXLAN.
- Búsqueda mejorada de tipos de contenido por contenido utilizando implementaciones alternativas actualizadas de los algoritmos Boyer-Moore e Hyperscan.
- Lanzamiento acelerado mediante el uso de varios subprocesos para compilar grupos de reglas;
- Se agregó un nuevo mecanismo de registro.
- Se ha agregado el sistema de inspección RNA (Real-time Network Awareness), que recopila información sobre recursos, hosts, aplicaciones y servicios disponibles en la red.
Finalmente si quieres conocer más al respecto sobre la nueva versión, puedes consultar los detalles en el siguiente enlace.