Snort. Preprocesadores. Stream4 / Stream5. Parte 1

Pues no, no abandoné los artículos dedicadados a Snort. Seguimos, y en este caso, continuamos con la serie de dedicada a los preprocesadores. Hoy le toca el turno a Stream4 y Stream5.

snort_sm.jpg

Este preprocesador dota a Snort de la capacidad de reensamblado de paquetes TCP e inspección de estado. Posee también la capacidad de poder inspeccionar gran cantidad de conexiones TCP, pero podemos configurar para que monitorize más de 100000 conexiones de forma simultánea. Stream4 hace un seguimiento de cada una de las conexiones durante un tiempo o cantidad de paquetes previamente configurados.

Preprocesador Stream4

Stream4,  permite la detección de ataques basados en el estado de la conexión. Ataques como números de secuencia fuera de ventana, evasión de IDS, RSTs o FINs incorrectos, etc. Otra capacidad de este preprocesador es, en una captura de paquetes, la de guardar en memoria paquetes anteriores para reensamblarlos y así reconstruirr e identificar una sesión completa. De esta forma se puede detectar un ataque o código malicioso repartido en paquetes o tramas diferentes y espaciadas en el tiempo.

Preprocesador Stream5

Este preprocesador es una evolución de Stream4. Intenta sustituirlo, tanto a este como a otro preprocesador: Flow (lo veremos también). Es bastante complejo y potente.

En nuestro fichero de configuración de Snort snort.conf  podemos usar tanto Stream4 como Stream5, pero no ambos a la vez. En la última versión solo steream5. Además para usar Stream5 también tendremos que desactivar Flow.

Stream5 realiza seguimiento tanto de conexiones TCP como UDP  e incluso ICMP.

También permite a otros  preprocesadores la configuración del reesamblado de paquetes de forma dinámica, de esta forma los protocolos de capa de aplicación pueden identificar sesiones que podrían ser ignoradas y descargar información de identificación relativa a la sesión, para que pueda ser usada, más adelante, en la fase de Motor de detección por las reglas snort.

Según las directivas aplicadas a Stream5, este puede funcionar de forma diferente para inspeccionar el tráfico basándose en las diferencias de comportamiento de la pila TCP/IP. Todo esto lo realiza en base a un objetivo, ya que el comportamiento de la pila TCP/IP no es el mismo dependiendo del sistema operativo. Permite, entonces, la detección de anomalías dependiendo el S.O., para ello cuenta con una opción policy en la que indicaremos el sistema Operativo.

Configuración stream5

La configuración de stream5 se divide en 4 apartados:

  • Global configuraciones globales para TCP, UDP, ICMP
  • Configuración TCP
  • Configuración UDP
  • Configuración ICMP

Configuración global.

  • track_tcp pista de sesiones TCP. Por defecto Yes.
  • max_tcp máximo número de sesiones TCP concurrentes. Por defecto (256000). Máximo (1052672). mínimo (1).
  • memcap cantidad de memoria en bytes para almacenamiento de paquetes y datos TCP. Por defecto (8M). Máximo (1GB). Mínimo (32K).
  • track_udp pista de sesiones UDP. Por defecto Yes.
  • max_ud máximo número de sesiones UDP concurrentes. Por defecto (128000). Máximo (1052672). mínimo (1).
  • track_icmp pista de sesiones ICMP. Por defecto Yes.
  • max_icmp máximo número de sesiones ICMP concurrentes. Por defecto (64000). Máximo (1052672). mínimo (1).
  • flush_on_alert para garantizar la compatibilidad con versiones anteriores. Limpia un flujo sesión cuando dicho flujo ya ha generado la alerta. Por defecto está desactivado.
  • show_rebuilt_packets muestra un paquete en pantalla después de su recontrucción. Por defecto desactivado.
  • prune_log_max muestra un mensaje en pantalla cuando la sesión ha terminado debido a que ha consumido la cantidad de bytes especificado. Por defecto (1MB). Mínimo (0) o ilimitado/desactivado. toma en cuenta memcap.

Una configuración global para stream5 podría tener esta forma:

preprocessor stream5_global: max_tcp 9453, track_tcp yes,  
track_udp yes, track_icmp no
--------------
En la parte dos de estos preprocesadores, veremos el resto de configuraciones para stream5:
  • Configuración TCP
  • Configuración UDP
  • Configuración ICMP

y algunos ejemplos.

Esta entrada fue publicada en Seguridad y redes, Snort y etiquetada , , , , , , , , . Guarda el enlace permanente.

Deja un comentario