PDF de programación - 4.snort

Imágen de pdf 4.snort

4.snortgráfica de visualizaciones

Actualizado el 21 de Marzo del 2018 (Publicado el 15 de Enero del 2018)
553 visualizaciones desde el 15 de Enero del 2018
5,1 MB
31 paginas
Creado hace 8a (01/10/2012)
Capítulo 3: Snort

4. Snort

4.1. Introducción

En este capítulo se explicará en detalle todo lo relativo a Snort. Para entender la aplicación en
profundidad no se pueden obviar sus orígenes ni la filosofía que ha perseguido desde sus inicios
Martin Roesch, su creador.

No menos importante será comprender la situación de la época, las necesidades que existían y qué
tipo software podía plantearse como una solución interesante que supliera ciertas carencias. Se
hablará también del concepto de Open Source, que ha ido de la mano de Snort desde sus inicios y al
que hoy en día aún permanece fiel.

Una vez repasada la historia de Snort, sus orígenes y la filosofía que ha seguido, en lo que resta de
capítulo se hará un recorrido por las entrañas de Snort, estudiando sus componentes principales y
conociendo el rol que juega cada uno. En primer lugar, realizando una descripción teórica para cada
componente y posteriormente situando y analizando cada uno de ellos en el código fuente de Snort.
Esta explicación, a nivel de desarrollador, facilitará posteriormente la comprensión del trabajo
realizado durante el proyecto.

4.2. Historia

En una arquitectura de seguridad de red los Sistemas de Detección de Intrusos de Red (NIDS) son
una parte importante que monitoriza el tráfico de la red, detectando actividades sospechosas y
alertando a los administradores del sistema de la presencia de posible tráfico hostil. Los primeros
NIDS comerciales cumplían con esta labor pero contaban con diferencias importantes entre ellos, lo
que resultaba una solución muy cara para cualquier organización que quisiera contar con un sistema
que aprovechara los aspectos más destacados de cada uno. Snort fue diseñado para tratar de
solventar estos problemas.

Las ideas originales en las que se basa el desarrollo de Snort vienen del movimiento Open Source,
cuyo pionero fue Richard Stallman durante la década de los 80. Open Source defiende la idea de
que todo software debería proporcionar su código fuente y a su vez ser desarrollado por
comunidades formadas por personas interesadas en el proyecto. Esta ideología y la convicción de
que el camino del software libre proporciona mejores aplicaciones fue elaborada en profundidad en
la obra de Eric S. Raymond, “The Cathedral and the Bazaar”, considerado como el tratado
fundamental del desarrollo de software libre. Raymond explica cómo una aplicación desarrollada en

1

Capítulo 3: Snort

base a ideas Open Source puede ser superior a una equivalente que siga métodos propietarios
tradicionales. El proyecto Snort confía en esta ideología para llevar a cabo su desarrollo y hasta
ahora ha conseguido estar a la cabeza, o en una posición muy alta, de las tecnologías basadas en
detección y prevención de intrusos.

Snort fue lanzado en 1998 por Martin Roesch e inicialmente declarado como un “lightweight”
intrusion detection technology. Un lightweight IDS debería ser multi-plataforma, tener un bajo
impacto en el sistema y ser fácilmente configurable por un administrador de sistemas que necesite
implementar una solución de seguridad específica en un breve intervalo de tiempo. Por aquel
entonces, Snort llenó un importante hueco en el ámbito de los sistemas de seguridad de red. Se
trataba de una aplicación ligera capaz de monitorizar pequeñas redes TCP/IP y de detectar una
amplia variedad de tráfico sospechoso, así como ataques ya conocidos. También podía proporcionar
suficiente información a los administradores del sistema para que tomaran decisiones en cuanto a
actividades sospechosas. Snort también tenía la capacidad de solventar rápidamente los agujeros
potenciales que pudieran surgir en un entorno de seguridad de red, ya que cuando se descubría un
ataque los sistemas propietarios tardaban bastante tiempo en publicar una nueva base de firmas que
lo solventara, mientras que con Snort se podía actuar con mayor rapidez.

Básicamente, Snort es un analizador de paquetes de red que funciona como sistema de detección de
intrusos y está basado en la librería libpcap, una interfaz de sistema para la captura de paquetes que
se creó como parte de la aplicación tcpdump. Esta librería permite a los desarrolladores poder
recibir paquetes de la capa de enlace de datos y trabajar sobre ellos. La principal característica que
distingue a Snort de tcpdump es la inspección del payload del paquete. Esto permite a Snort detectar
un gran abanico de actividades hostiles, incluyendo buffer overflows, escaneo de vulnerabilidades
CGI o cualquier otra que pueda ser detectada en el payload.

En la actualidad, Snort ha evolucionado hasta ser considerado un estándar de facto en prevención y
detección de intrusos, contando con más de 4 millones de descargas y cerca de 400.000 usuarios
registrados y convirtiéndose en la tecnología de prevención de intrusos con mayor despliegue
mundial. Usa un lenguaje de reglas flexible para detectar tráfico en tiempo real, así como un motor
de detección basada en arquitectura modular.

El poder y expansión de Snort se debe en gran parte a la influencia y al alcance de la comunidad de
usuarios de Snort, ya que entre ellos existe un gran número de programadores que testean y
publican resultados y opiniones acerca de las funcionalidades de Snort y del conjunto de reglas.
Como aventuró Eric Raymond en su obra, y posteriormente se comprobó en el desarrollo de
GNU/Linux, cuando en una comunidad Open Source se detectan fallos, se responde ante ellos de
forma más rápida y eficiente que en un entorno de desarrollo propietario.

Gracias al hecho de ser una aplicación Open Source, Snort cuenta con la ventaja de ser un sistema
configurable y adaptable a necesidades concretas, por lo que puede ser una buena solución si se
busca un sistema personalizado. Este es uno de los motivos por los que grandes organismos, como
gobiernos y organizaciones militares, han decidido implementar sus propios sistemas de detección
de intrusos utilizando Snort en lugar de aplicaciones propietarias que en muchos casos no alcanzan
el mismo rendimiento ni las prestaciones de Snort.

2

Capítulo 3: Snort

4.3. Componentes de Snort

En el desarrollo de una nueva
aplicación, una práctica común en el
mundo Open Source es escoger una
herramienta ya existente y
evolucionar a partir de ella para crear
algo nuevo. En el caso de Snort, esta
herramienta se trataba de tcpdump, un
capturador
de paquetes muy
extendido en sistemas Unix, el cual
obtenía los paquetes directamente de
la capa de Enlace de Datos, a través
del uso de las librerías libpcap, como
se muestra en la figura 4.1. Martin
Roesch, el creador de Snort,
aprovechó de tcpdump la habilidad de
capturar paquetes y añadió la
posibilidad de analizarlos en busca de
ataques conocidos cuyas descripciones formaran parte de una base de datos de firmas. En eso
consistía, muy resumidamente, su nueva aplicación, que con el paso de los años ha crecido en
cuanto a complejidad y funcionalidades.

Figura 4.1: Modelo OSI y captura de paquetes por parte de

tcpdump a través de las librerías libpcap.

A partir de la versión 2.9 de Snort se introduce la librería de adquisición de datos, más conocida
como DAQ (del inglés Data Acquisition). El objetivo del módulo DAQ es remplazar las llamadas
directas a las funciones de la librería libpcap por una capa abstracta, para así facilitar la ejecución de
operaciones en diversos entornos hardware y software sin necesidad de realizar cambios en Snort.
Por tanto, a partir de entonces el módulo DAQ ha sido el encargado de redirigir los paquetes a
Snort, en lugar de hacerlo el propio Snort a través de las librerías libpcap.

Snort está formado por varios componentes que se muestran en la figura 4.2, cada uno de ellos es el
encargado de llevar a cabo una tarea específica. En el momento en que circula un paquete por la
red, este es capturado por el módulo DAQ, que lo reenvía posteriormente a Snort. A partir de aquí,
recorre cada componente de Snort en el siguiente orden:

1. Packet Decode Engine (motor de descodificación de paquetes o simplemente descodificador
de paquetes): Una vez que el modulo DAQ envía el paquete a Snort, este pasa por el
descodificador de paquetes (Packet Decoder), que se encarga de almacenar toda la
información de cada paquete que llegue de la red, como por ejemplo protocolos, IPs de
origen y destino, etc., en una estructura de datos para su posterior procesamiento.

2. Preprocessor (preprocesador): Los preprocesadores fueron introducidos en la versión 1.5 de
Snort. Gracias a ellos se pueden ampliar las funcionalidades de Snort permitiendo a usuarios
y programadores crear módulos (plug-ins) dentro de Snort de una manera sencilla. Una vez
que se descodifica el paquete, se ejecutan los preprocesadores, que pueden analizar e incluso
modificar el paquete en cuestión, dependiendo del objetivo de cada preprocesador. También,
pueden lanzar alertas, clasificar o descartar un paquete antes de enviarlo al motor de
detección (Detection Engine), que cuenta con un alto coste computacional.

3

Capítulo 3: Snort

Figura 4.2: DAQ y Componentes de Snort. Flujo de datos desde la capa de enlace de datos hasta la

salida de Snort.

3. Detection Engine (Motor de detección): Este componente es considerado como el corazón
de Snort. Toma información del Packet Decoder y de los preprocesadores e inspecciona el
contenido del paquete para compararlo a través de su módulo, o plug-in, de detección
(Detection) con los patrones de la base de firmas.

4. Output (Salida de Snort): Cuando se ha detectado un paquete sospechoso, ya sea porque un
preprocesador lo ha decidido o porque cumple con una regla concreta, este módulo de salida
genera una alerta, en el formato que se especifique en el archivo de configuración de Snort.

A continuación se expli
  • Links de descarga
http://lwp-l.com/pdf8321

Comentarios de: 4.snort (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad