Reglas y Motor de Detección en Snort

REGLAS: Son los patrones que se buscan dentro de los paquetes de datos, es el motor de detección para comparar los paquetes recibidos y generar alertas en caso de existir coincidencia en los contenidos de los paquetes y firmas.

CATEGORIAS DE REGLAS SNORT:

  • Reglas de protocolo: Son las dependientes del protocolo que se está analizando.
  • Reglas de contenido genéricas: Permite especificar patrones para buscar en el campo de datos del paquete. Esto es muy útil para buscar exploits los cuales suelen terminar en cadena de tipo bin/sh.
  • Reglas de paquete malformados: Especifica la cabecera de los paquetes las cuales indican que están cometiendo algún tipo de anomalía. Este tipo de regla no mira en el contenido sino que primero se comprueban las cabeceras.
  • Reglas IP: Se aplica directamente sobre la capa IP, y son comprobadas para cada datagrama IP, si el datagrama luego es TCP, UDP, ICMP se realizará un análisis del datagrama con su correspondiente capa de protocolo.

PERSONALIZACION DE REGLAS: La forma más fácil de limitar el tráfico de las alertas es desactivar reglas que no se aplican en nuestro sistema. Esto lo hacemos entrando a la configuración de Snort en el directorio /etc/snort/rules/.

Snort permite mucha versatilidad para crear nuevas reglas. Modificando nuestras propias reglas minimizaremos los falsos positivos. La idea es crear varias reglas avanzadas en función de los servicios que se desea monitorizar. Se pueden escribir reglas para:

  • Registrar el acceso hacia o desde determinados servidores.
  • Buscar determinados tipos de nombres de archivos en nuestra organización.
  • Vigilar determinados tipos de tráfico que no pertenecen a nuestra propia red.

La escritura de reglas de Snort es fácil de aprender y nos permite añadir funcionalidades al programa, sin muchos conocimientos de programación. Las reglas snort son simplemente declaraciones de texto dentro de un archivo de reglas.

En su forma básica, una regla de Snort consta de 2 partes: un encabezado, las opciones.

accion, protocolo, red origen, puerto origen, direccion, red destino, puerto destino.

CABECERA DE UNA REGLA: La cabecera permite establecer el origen y destino de la comunicación sobre dicha información realizar una determinada acción.

DESCRIPCION DE LA ESTRUCTURA DE LA CABECERA

Protocolo. Permite establecer el protocolo de comunicaciones que se va a utilizar. Los posibles valores son: TCP, UDP, IP e ICMP.

Red de origen y red de destino. Permite establecer el origen y el destino de la comunicación.

Puerto de origen y destino. Permite establecer los puertos origen y destino de la comunicación. Indica el número de puerto o el rango de puertos aplicado a la dirección de red que le precede.

Dirección. Permite establecer el sentido de la comunicación.

Acción. Permite indicar la acción que se debe realizar sobre dicho paquete. Los posibles valores son:

  • alert: Genera una alerta usando el método de alerta seleccionado y posteriormente loggea el paquete.
  • log: Comprueba el paquete.
  • pass: Ignora el paquete.
  • activate: Alerta y luego activa otra regla dinámica.
  • dynamic: Permanece ocioso hasta que se active una regla, entonces actúa como un inspector de reglas.

LA OPCIONES DE LAS REGLAS: Hay 4 tipos de opciones:

  • Meta-data. Proporciona la información sobre la regla pero no tiene ningún efecto durante la detección.
  • Payload. Busca patrones (firmas) dentro de la carga útil del paquete.
  • Non-Payload. Busca patrones dentro de los demás campos del paquete, que no sean carga útil (por ejemplo, la cabecera).
  • Post-detection. Permite activar reglas específicas que ocurren después de que se ejecute una regla.

OPCIONES DE LAS REGLAS:

Msg: Informa al motor de alerta qué mensaje debe mostrar.

Flow: Se usa con los flujos TCP, para indicar qué reglas deberían aplicarse.

Content. Permite que Snort realice una búsqueda sensitiva para un contenido específico del payload del paquete.

Referente. Define un enlace a sistemas de identificación de ataques externos, como bugtraq, con id 788.

Classtype. Indica qué tipo de ataques intentó el paquete.

EJEMPLOS DE PERSONALIZACIÓN DE REGLAS

A continuación se muestran varios ejemplos de reglas y de formas de personalizar estas reglas:

Por ejemplo, se puede generar el mensaje “Ping” como alerta, ante la presencia de ICMP de la siguiente forma:

alert icmp any any -> any any (msg: «Ping»;)

OPTIMIZACIÓN DE REGLAS

Las reglas poseen una naturaleza recursiva, si un patrón de una regla coincide y si ninguna de las opciones posteriores falla.

MOTOR DE DETECCION:

El motor de detección es la parte más importante de Snort. Su responsabilidad es descubrir cualquier actividad de intrusión existente en un paquete. Para ello, el motor de detección emplea las reglas de Snort.

El motor de detección es la parte de tiempo crítico de Snort. Los factores que influyen en el tiempo de respuesta y en la carga del motor de detección son los siguientes:

  • Las características de la máquina.
  • Las reglas definidas.
  • Velocidad interna del bus usado en la máquina Snort.
  • Carga en la red.

El motor de detección puede aplicar las reglas en distintas partes del paquete. Estas partes son las siguientes:

  • La cabecera IP. Puede aplicar las reglas a las cabeceras IP del paquete.
  • La cabecera de la capa de Transporte. Incluye las cabeceras TCP, UDP e ICMP.
  • La cabecera del nivel de la capa de Aplicación. Incluye cabeceras DNS, FTP, SNMP y SMPT.
  • Payload del paquete. Esto significa que se puede crear una regla que el motor de detección use para encontrar una cadena que esté presente dentro del paquete.

ANTIGUO MOTOR DE DETECCIÓN

La estructura del antiguo motor de detección de Snort se basa en una lista enlazada tridimensional de reglas con sus cabeceras y funciones de detección.

Las reglas son a su vez una lista enlazada de la cabecera de la regla, llamada RuleTreeNodes (RTN). Cada RTN es una lista enlazada de reglas que comparten una misma cabecera, llamada OptTreeNodes (OTN). A su vez, cada OTN es una lista enlazada de funciones de detección, llamada OptFpList. Cuando llega un paquete al motor de detección, éste recorre la lista enlazada RTN, si coincide con ésta, el motor de detección recorre la lista enlazada OTN para esta RTN. El motor de detección comprueba cada una de las funciones del OptFpList de la OTN. Si todas estas funciones en la OTN emparejan, se dispara una alarma.

NUEVO MOTOR DE DETECCIÓN:

El nuevo motor de detección de Snort introducido en la versión 2.0, parte con un requisito inicial, que Snort sea capaz de funcionar en redes Gigabyte, y para que esto sea posible se ha reescrito totalmente el motor de Snort para que este sea capaz de gestionar tráfico a GigaBytes.

El nuevo motor de detección construye cuatro grupos de reglas, una para el protocolo TCP, para UDP, para ICMP y para IP.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.