14 - Creación de reglas con snort

[editar]
Tutorial creado por Alfon. Extraido de: http://www.nautopia.net
16 de Diciembre de 2005

Introducción


El lenguaje usado por Snort es flexible y potente, basado en una serie de normas que serán las que nos sirvan de guía para la escritura de las reglas.

Dentro de estas normas tenemos:

  • la descripción de cada regla
  • cabecera
  • opciones
  • uso de preprocesadores

Dentro del lenguaje Snort de rules (reglas) veremos el uso intensivo de nociones de TCP/IP, en concreto de TCP, flag, números de secuencia, etc, etc, por lo cual es imprescindible su repaso para una mejor comprensión.

Recomendado el uso tambíén de software de captura de paquetes tipo Ethereal o TCPdump/Windump para ver en un escenario real la función de las nociones aprendidas sobre TCP como:

  • el establecimiento de una conexión TCP (ver explicación en el cápítulo dedicado a Nmap APÉNDICE 1.1)
  • el flujo de datos
  • el uso de flags
  • conexiones half-open usadas en escaneos de puertos
  • etc.

Reglas


La reglas Snort las podemos dividir en dos secciones lógicas, a saber: cabecera de la regla y opciones:

  • La cabecera contiene la acción de la regla en sí, protocolo, IPs, máscaras de red, puertos origen y destino y destino del paquete o dirección de la operación.
  • La sección opciones contiene los mensajes y la información necesaria para la decisión a tomar por parte de la alerta en forma de opciones.

Resumiendo lo visto hasta ahora, las reglas Snort las dividiremos de la siguiente manera:

|| CABECERA ~- Acción ~- Protocolos involucrados ~- Direcciones IP ~- Números de puerto ~- Dirección de la operación || OPCIONES ~- Mensaje ~- Opciones de decisión ||


EJEMPLO 1

Veamos ahora un ejemplo de regla Snort para alertar de un escaneo nmap del tipo TCP ping:

alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"Escaneo ping con nmap";flags:A;ack:0; reference:arachnids,28;classtype:attempted-recon; sid:628; rev:1;)

Analicemos esta alerta:

CABECERA

  • Acción de la regla: alert
  • Protocolo: tcp
  • Direccion IP origen: $EXTERNAL_NET (toda la red)
  • Puerto IP origen: any (cualquiera)
  • Direccion IP destino: $HOME_NET (toda nuestra red)
  • Puerto IP destino: any (cualquiera)
  • Dirección de la operación: -> (puede ser ->, <-, <>)

OPCIONES

  • Mensaje: msg
  • Opciones: flags:A;ack:0; reference:arachnids..(1)

Un poco de teoría:

  • flags:A  Establece el contenido de los flags o banderas TCP, en este caso ACK (puede tener varios valores y operadores que veremos más adelante).
  • ack:  Caso particular para valor ACK=0, es el valor que pone nmap para TCP ping scan.
  • reference:arachnids,28  Referencia un a un Advisory, alerta tipo Bugtrac, etc.
  • classtype:attempted-recon  Categoría de la alerta según unos niveles predefinidos y prioridades (veremos más adelante las categorías).
  • sid:628  Identificación única para esta regla snort según unos tramos determinados.
  • rev:1  Identificación de la revisión o versión de la regla.

EJEMPLO 2

En el manual oficial del Snort como primer ejemplo tenemos:

alert tcp any any -> 192.168.1.0/24 111 (content:"|00 01 86 a5|"; msg: "mountd access";)

Acceso al demonio de administración mountd de UNIX, el cual tiene tiene diversos problemas de desbordamiento de memoria intermedia, que permiten a un atacante remoto obtener privilegios de administrador en los sistemas vulnerables.

Dos consideraciones:

  1. El orden de la sección opciones. Primero las opciones y después el mensaje. El orden, pues, es indiferente.
  2. La opción 'content'. Es una de las opciones más importantes ya que nos permite la búsqueda de contenidos dentro del campo datos del paquete IP. Se puede añadir 'nocase' para que la búsqueda de los datos no sea sensible a las mayúsculas. Estos datos pueden estar en formato hexadecimal, texto plano o binario.
[editar]

5 opiniones

excelente

la verdad coincido con Pedro Chohen es un gran aporte.
Muy bueno

Buen manual y completo para comenzar en el uso de esta herramienta
Excelente

Excelente Manual muy detallado, gracias
Muy bueno.

Muy buen tutorial y quien dijo
que es poco explicito que no le eche la culpa a los demas de ser tan cerrado
ojala hubieran mas de este tipo
de verdad muy bueno.
Ids.

Un buen curso para estar en internet y gratis. Tendrían que haber más de estos.

Tutoriales relacionados con 'Taller de Sistemas de detección de intrusiones SNORT'

Vamos a ver cómo funciona Snort en todas sus facetas, instalación y configuración (sistemas Windows),... Más »
Una de las actividades más comunes en la administación de una red o administración de... Más »

Autor y licencia de 'Taller de Sistemas de detección de intrusiones SNORT'


Tutorial de Alfon. Extraido de: http://www.nautopia.net CopyLeft
Debe reconocer los créditos de la obra de la manera especificada por el autor o el licenciador.
Este contenido ha sido recopilado por el equipo de Wikilearning. Todo el contenido recopilado se ha obtenido respetando y comunicando en nuestro site la licencia de cada fuente.
Wikilearning tiene permiso expreso por escrito de los autores para publicar los contenidos que ha extraído de otras webs, incluyendo su uso comercial.