viernes, julio 18, 2008

Snort SP 3.0

Snort es un IDS (software de detección de intrusiones) de fuentes abiertas, ampliamente probado y desplegado en a lo largo del mundo, de cuyo desarrollo se encarga actualmente Sourcefire.

Actualmente se está reescribiendo todo el software, evolucionando hacia una nueva arquitectura por varios motivos:

  • Limpieza de código.
  • Hacer que Snort sea consciente del entorno de red en el que se está utilizando para que sea capaz de priorizar alarmas, detectar posibles ataques basados en técnicas de evasión y reducir en todo lo posible la configuración manual.
  • Modularizar Snort, dividiéndose en un framework y en una serie de motores de análisis y captura de datos los cuales utilizan los servicios básicos que provee el framework.
  • Añadir un shell que permita configurar el sistema sin necesidad de parar los procesos del IDS.
  • Soporte de multihilo, para poder paralelizar y aprovechar los microprocesadores multinúcleo que exitsten en la actualidad.
El nuevo Snort se ha implementado en los siguientes módulos:
  • Módulos de captura de tráfico, validación de protocolos, normalización y reemsablado de flujos de datos. Este módulo se comunica con el resto de la platarforma de Snort a través de un API definido que permite aislar el resto del sistema de la implementación de la captura de datos.
  • Módulo encargado de generar la gestión de eventos y generación de registros.
  • Módulo que llaman Attribute Management System, y que llamaría de inteligencia de red. Almacena información sobre la red que está protegiendo Snort, para poder generar los eventos necesarios y que tengan la prioridad adecuada.
  • Módulos de análisis. Aquí se implementa los diferentes motores de análsiis. Por ejemplo el motor de reglas tradicional de Snort u otro motor con reglas basadas en el lenguaje de scripting Lua. Se comunica con Snort a través de un API bien definido, lo que permite ampliarse con nuevos motores de manera modular. Estos motores de análisis se ejecutan en diferentes hilos, lo cual permite aprovechar el paralelismo que tienen los microprocesadores actuales.
  • El planificador es el director de orquesta de todo el sistema, encargado de controlar los flujos de información entre los diferentes módulos.
  • Snortd y el shell. Este proceso ofrece servicios de marshaling a los objetos que se instancian en el framework y la línea de comandos, implementadas en Lua.

Las fuentes de esta nueva versión están disponibles para descargarlas y probarlas. Es importante leer el archivo Readme.txt, que contiene información importante para compilar la plataforma correctamente.

Actualmente esta implementación aporta:

  • Interce basado en un shell implementado con Lua.
  • Soporte nativo para IPv6, MPLS y GRE (y por supuesto IPv4 :D).
  • Soporte para operar en modo inline.
  • Subsistemas para adquisición de datos, decodificadores y analizadores de tráfico.
  • Ejecución multihilo.
  • Incremento de rendimiento.

No hay comentarios: