Inicio / Wikis / Tutoriales / Taller de Sistemas de detección de intrusiones SNORT - Introducción a SNORT

Taller de Sistemas de detección de intrusiones SNORT - Introducción a SNORT

(1 opiniones)
Tutorial creado por Alfon. Extraido de: http://www.nautopia.net
16 de Diciembre de 2005
FirewallHackingSeguridad informática

7 - Introducción a SNORT

Snort es un IDS o Sistema de detección de intrusiones basado en red (NIDS). Implementa un motor de detección de ataques y barrido de puertos que permite registrar, alertar y responder ante cualquier anomalía previamente definida como patrones que corresponden a ataques, barridos, intentos aprovechar alguna vulnerabilidad, análisis de protocolos, etc conocidos. Todo esto en tiempo real.

Snort (www.snort.org) está disponible bajo licencia GPL, gratuito y funciona bajo plataformas Windows y UNIX/Linux. Es uno de los más usados y dispone de una gran cantidad de filtros o patrones ya predefinidos, así como actualizaciones constantes ante casos de ataques, barridos o vulnerabilidades que vayan siendo detectadas a través de los distintos boletines de seguridad.

Este IDS implementa un lenguaje de creación de reglas flexible, potente y sencillo. Durante su instalación ya nos provee de cientos de filtros o reglas para backdoor, ddos, finger, ftp, ataques web, CGI, escaneos Nmap....

Puede funcionar como sniffer (podemos ver en consola y en tiempo real qué ocurre en nuestra red, todo nuestro tráfico), registro de paquetes (permite guardar en un archivo los logs para su posterior análisis, un análisis offline) o como un IDS normal (en este caso NIDS).

En este taller daremos una importancia mayor a su funcionamiento como NIDS y, sobre todo, a la creación personalizada de reglas e interpretación de las alertas.

La colocación de Snort en nuestra red puede realizarse según el tráfico quieren vigilar: paquetes que entran, paquetes salientes, dentro del firewall, fuera del firewall... y en realidad prácticamente donde queramos.

Una característica muy importante e implementada desde hace pocas versiones es FlexResp. Permite, dada una conexión que emita tráfico malicioso, darla de baja, hacerle un DROP mediante el envío de un paquete con el flag RST activa, con lo cual cumpliría funciones de firewall, cortando las conexiones que cumplan ciertas reglas predefinidas. No sólo corta la conexiones ya que puede realizar otras muchas acciones. Veremos más adelante su funcionamiento y ejemplos.

Formato de la cabecera (header) del TCP

Cabecera paquete TCP

  • Puerto origen (16 bits). Puerto de la máquina origen. Al igual que el puerto destino es necesario para identificar la conexión actual.
     
  • Puerto destino (16 bits). Puerto de la máquina destino.
     
  • Número de secuencia (32 bits). Indica el número de secuencia del primer byte que trasporta el segmento.
     
  • Número de acuse de recibo (32 bits). Indica el número de secuencia del siguiente byte que se espera recibir. Con este campo se indica al otro extremo de la conexión que los bytes anteriores se han recibido correctamente.
     
  • Posición de los datos (4 bits). Longitud de la cabecera medida en múltiplos de 32 bits (4 bytes). El valor mínimo de este campo es 5, que corresponde a un segmento sin datos (20 bytes).
     
  • Reservado (6 bits). Bits reservados para un posible uso futuro.
     
  • Bits de código o indicadores (6 bits). Los bits de código determinan el propósito y contenido del segmento. A continuación se explica el significado de cada uno de estos bits (mostrados de izquierda a derecha) si está a 1:
URG. El campo Puntero de urgencia contiene información válida.

ACK. El campo Número de acuse de recibo contiene información válida, es decir, el segmento actual lleva un ACK. Observemos que un mismo segmento puede transportar los datos de un sentido y las confirmaciones del otro sentido de la comunicación.

PSH. La aplicación ha solicitado una operación push (enviar los datos existentes en la memoria temporal sin esperar a completar el segmento).

RST. Interrupción de la conexión actual.

SYN. Sincronización de los números de secuencia. Se utiliza al crear una conexión para indicar al otro extremo cual va a ser el primer número de secuencia con el que va a comenzar a transmitir (veremos que no tiene porqué ser el cero).

FIN. Indica al otro extremo que la aplicación ya no tiene más datos para enviar. Se utiliza para solicitar el cierre de la conexión actual.
  • Ventana (16 bits). Número de bytes que el emisor del segmento está dispuesto a aceptar por parte del
    destino.
     
  • Suma de verificación (24 bits). Suma de comprobación de errores del segmento actual. Para su cálculo se utiliza una pseudo-cabecera que también incluye las direcciones IP origen y destino.
     
  • Puntero de urgencia (8 bits). Se utiliza cuando se están enviando datos urgentes que tienen preferencia sobre todos los demás e indica el siguiente byte del campo Datos que sigue a los datos urgentes. Esto le permite al destino identificar donde terminan los datos urgentes. Nótese que un mismo segmento puede contener tanto datos urgentes (al principio) como normales (después de los urgentes).
     
  • Opciones (variable). Si está presente únicamente se define una opción: el tamaño máximo de segmento que será aceptado.
     
  • Relleno. Se utiliza para que la longitud de la cabecera sea múltiplo de 32 bits.
     
  • Datos. Información que envía la aplicación.
     

También se puede usar junto a MySQL o Microsoft SQL, ejecutando consultas SQL a una base de datos. Guarda logs también en formato XML.

No se limita sólo al análisis de los protocolos típicos como ftp, smtp, http, pop3, telnet ... , además analiza otros: ethernet, arp, decnet, lat, rarp ...


 

Recompone tráfico fragmentado, analiza tráfico tipo BackOrifice (independientemente del puerto usado), es capaz de "ver" datos del tipo decode o unicode, traceroute, pings.....

Puede actuar como antivirus, aunque esta opción no es muy recomendable. Es mejor dejar esta tarea a aplicaciones preparadas para ello.

Snort como sniffer se basa en las librerías de captura de paquetes libcap que provee a snort de la capacidad de sniffer de paquetes. En windows la librería sería WinPCAP http://winpcap.polito.it/ .

Snort puede, para su fácil configuración y gestión, usarse mediante una interfaz gráfica. Aquí hablaremos de IDScenter.

IDSCenter, ahora en su versión 1.09 Beta 2, es una interface gráfica que nos sirve para configurar todas las características de Snort como las alertas, tests, reglas, variables, funcionamiento junto a MySQL o BlackIce Defender, rotación de logs, notificaciones via mail o sonido, plugins, preprocesadores, FlexResp ...

  EJEMPLO de funcionamiento básico en los tres modos:

  • Usando Snort en modo IDS:

Snort -l log -dev -h 192.168.4.0/24 -c snort.conf

(Revisemos el contenido de la carpeta log)

  • Usando Snort en modo sniffer:

Snort -dev

  • Usando Snort en modo Packet Logger (registro de paquetes):

Snort -dev -l log

(Revisemos el contenido de la carpeta log)

      EXPLICACIÓN DE LAS OPCIONES UTILIZADAS:

-l log lo usamos para volcar la información la carpeta log que se supone está ubicada en C:\Snort\log. En esta carpeta se estructurarán una serie de directorios con el nombre de la dirección IP del host que genere el tráfico o intrusión. También creará en esta carpeta un archivo (alert.ids) donde registrará las alarmas que genere así como un archivo de registro de escaneado de puertos (si se da el caso), etc.

Contenido de un alert.ids:

 

-dev imprime en pantalla la dirección IP y cabeceras TCP/UDP/ICMP, los datos que pasan por la interface de red con información bastante detallada.

-h 192.168.4.0/24 es el home network (nuestra red).

-c snort.conf indicamos que SNORT use el fichero de configuración de Snort con la lista de archivos de reglas y otros parámetros. Esta opción tiene una variante al cambiarse el archivo snort.conf por uno de reglas o rules personalizada.

Snort puede obtener los datos desde una interface de red -i eth0 o desde un archivo -r nombarchivo. Normalmente no hará fata indicarle la interface de red.

Valora este capítulo: (1 opiniones)
Autor y licencia de 'Taller de Sistemas de detección de intrusiones SNORT - Introducción a SNORT'
Alfon Extraído de: http://www.nautopia.net

Creative Commons License
Esta obra está bajo una licencia de Creative Commons.
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.

Opiniona sobre 'Taller de Sistemas de detección de intrusiones SNORT - Introducción a SNORT' (1)

Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.

Opina sobre este tutorial



* Valoración:
* Nombre:
* Correo electrónico:
* Título:
* Comentario:

Wikis relacionados con 'Taller de Sistemas de detección de intrusiones SNORT - Introducción a SNORT'

El propósito de este articulo es de mostrarnos una amplia y precisa descripción de lo... Más »
En este modulo algunas de las clasificaciones básicas de sistemas serán temporalmente introducidas mientras que... Más »
Los sistemas de información de consultoría han sido vistos como una opción muy atractiva para... Más »
Esta teoría surgió con los trabajos del biólogo alemán Ludwing Von Bertalonffy, publicados entre 1950... Más »
Un sistema informático utiliza ordenadores para almacenar datos, procesarlos y ponerlos a disposición de quien... Más »
¿Estás seguro de que deseas eliminar este capítulo?