Snort. Roberto Gómez Cárdenas rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez. Snort. Escrito por Martín Roesch (1998)



Documentos relacionados
Semana 3: Con Con r t o r l de Acceso

Una ACL es una lista secuencial de sentencias de permiso o denegación que se aplican a direcciones IP o protocolos de capa superior.

La herramienta nmap. Nmap. Roberto Gómez Cárdenas La herramienta nmap. Dr.

Revisión práctica de IDS. por Sacha Fuentes

Seguridad en Redes (Monitoreo y Control)

Sistemas de Detección de Intrusos

INSTALACION Y CONFIGURACION DE UN NIDS (SNORT) EN UBUNTU

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

UNIVERSIDAD DE ALCALÁ - DEPARTAMENTO DE AUTOMÁTICA Área de Ingeniería Telemática LABORATORIO DE COMUNICACIÓN DE DATOS (CURSO 2011/2012)

Firewalls, IPtables y Netfilter

Guía de Instalación. Instalación rápida de la Consola Maestra de VEO y el Agente Remoto para los Usuarios

Intrusion Detection/Prevention Systems SNORT.

IS23 Mantenimiento de Instalaciones Informáticas Práctica 7. Análisis de redes

Acronis License Server. Guía del usuario

Examen Cisco Online CCNA4 V4.0 - Capitulo 5. By Alen.-

Redes (IS20) Ingeniería Técnica en Informática de Sistemas. CAPÍTULO 8: El nivel de transporte en Internet

Hacking Ético. Módulo II Fase 2: Técnicas activas de obtención de información: Escaneo

GUIA DE LABORATORIO # Nombre de la Practica: Antivirus Laboratorio de Redes Tiempo Estimado: 2 Horas y 30 Minutos

Curso de PHP con MySQL Gratis

Linux, Solaris, monitorear y controlar sus sistemas. Se mezcla

Guía de diagnóstico Software WIRESHARK para la captura de tramas Ethernet Centro de Competencia Técnica

DHCP. Dynamic Host Configuration Protocol. Protocolo de Configuración Dinámica de Host. Administración de Redes de Computadores

TELECOMUNICACIONES Y REDES

Lección 5: Seguridad Perimetral

Qué es un servicio de Proxy?

Utilidad de configuración y actualización de Software para el SS5660

Comisión Nacional de Bancos y Seguros

3.1 Introducción a Wireshark

MultiBase y Cosmos. Particularidades sobre la instalación del motor de base de datos en modo cliente servidor. BASE 100, S.A.

Guía del usuario - escan para Linux Servidor de archivo

La Pirámide de Solución de TriActive TRICENTER

Laboratorio de Redes de Computadores

Ingeniería de Software. Pruebas

Redes I Soluciones de la Práctica 1: /etc/network/interfaces, tcpdump y wireshark

Snort. monitorizar los eventos ocurridos en un determinado sistema informatico o red en busca de intentos

Software Intel para administración de sistemas. Guía del usuario del Paquete de administración de servidores modulares Intel

Agente local Aranda GNU/Linux. [Manual Instalación] Todos los derechos reservados Aranda Software [1]

Dispositivos de Red Hub Switch

Servidor FTP. Ing. Camilo Zapata Universidad de Antioquia

Router Teldat. Protocolo TELNET

HERRAMIENTA PARA EL MAPEO DE LA RED

CAPITULO IV. HERRAMIENTAS DE CÓDIGO ABIERTO

Práctica de Seguridad en Redes

Bloque IV: El nivel de red. Tema 10: Enrutamiento IP básico

Escuela de Ingeniería Electrónica CAPITULO 11. Administración avanzada de los NOS

Donde puedo instalar GFI EventsManager en mi red?

Internet Information Server

Capítulo 5. Cliente-Servidor.

UNIVERSIDAD DE OVIEDO

REDES DE COMPUTADORES REDES Y SISTEMAS DISTRIBUIDOS

Router Teldat. Facilidad Sniffer

Guía de instalación y configuración de IBM SPSS Modeler Social Network Analysis 16


Introducción. Objetivo. Implementar un detector de malware con software libre empleando el protocolo Netflow.

EL MODELO DE ESTRATIFICACIÓN POR CAPAS DE TCP/IP DE INTERNET

Objetivo: Introducción conceptual y aplicación básica de los lenguajes del lado del servidor.

WINDOWS : TERMINAL SERVER

Práctica 3: Estudio de los protocolos HTTP, SMTP, POP3 e IMAP mediante un analizador de red: Wireshark

Reflexión. Inicio. Contenido

Router Teldat. Protocolo TELNET

Introducción a las Redes de Computadoras. Obligatorio

smartblz pesaje computarizado Manual de Uso y referencias técnicas

Seguridad de la información: ARP Spoofing

Cortafuegos ( Firewall ) Arquitecturas de cortafuegos Juan Nieto González IES A Carballeira -

Tema: Analizador de tráfico

MANUAL DE USUARIO AVMsorguar

Direcciones IP IMPLANTACIÓN DE SISTEMAS OPERATIVOS 1º ASIR. En redes IPv4.

Protocolo ARP. Address Resolution Protocol

Preliminares. Tipos de variables y Expresiones

Administración de servicios Internet Intranet

UNIDAD DIDACTICA 12 CONFIGURACIÓN DE IPTABLES EN GNU/LINUX

Eurowin 8.0 SQL. Manual de la FIRMA DIGITALIZADA

SIIGO Pyme. Templates. Cartilla I

Luis Eduardo Peralta Molina Sistemas Operativos Instructor: José Doñe Como crear un Servidor DHCP en ClearOS

Práctica de laboratorio 4.5.2: Protocolos de la capa de Transporte TCP/IP, TCP y UDP Diagrama de topología

OBSERVER Que topologías para el Análisis y Monitoreo de Redes contempla?

Guía de Instalación para clientes de WebAdmin

Diego Auyón Redes 27 de Mayo de Port Scanning

WireShark. Este instructivo describe el uso del programa WireShark (antes llamado Ethereal) para examinar paquetes en una red de datos.

Lista de Control de Acceso (ACL) LOGO

Redes Locales: El protocolo TCP/IP

Telnet Comunicaciones 1. Luis Alfredo da Silva Gregori Gonzalez Rhamin Elrhouate July 2014

COMO CONFIGURAR UNA MAQUINA VIRTUAL EN VIRTUALBOX PARA ELASTIX

Componentes de Integración entre Plataformas Información Detallada

ARQUITECTURA DE REDES Laboratorio. Práctica 3. Analizadores de protocolos. Manual de Wireshark. Grado en Ingeniería Informática Curso 2011/12

LABORATORIO DE RC: PRÁCTICA 4: IMPLEMENTACIÓN DE UN CLIENTE DE CORREO

Arquitectura de Redes y Sistemas de Telecomunicación

AGREGAR COMPONENTES ADICIONALES DE WINDOWS

Sistema de Control de Accesos

Ing. Ma. Eugenia Macías Ríos. Administración de Redes

Capítulo VI. Conclusiones. En este capítulo abordaremos la comparación de las características principales y

Introducción a las Redes de Computadoras

Universidad Autónoma de Nuevo León Facultad de Ciencias Físico Matemáticas. Laboratorio de Seguridad en aplicaciones web

INFORME TECNICO PREVIO SOFTWARE DE SOPORTE ANALIZADOR DE REDES

Servicio de VPN de la Universidad de Salamanca

El proceso de Instalación de Microsoft SQL Server 2008

DIPLOMADO EN SEGURIDAD INFORMATICA

Transcripción:

Roberto Gómez Cárdenas rogomez@itesm.mx http://homepage.cem.itesm.mx/rogomez Lámina 1 Escrito por Martín Roesch (1998) fundador de sourcefire (www.sourcefire.com) Es una version ligera de IDS de red que se basa en libpcap, y corre en UNIX Gratuito Puede lograr búsquedas de contenido en paquetes de IP después a través de un logging, le avisa al administrador de seguridad si ha habido alguna actividad inusual Lámina 2 Cárdenas 1

SNORT Provee a los administradores de seguridad con la información suficiente para tomar decisiones adecuadas. Puede ayudar cuando se encuentran hoyos de seguridad y no se haya liberado su parche o cuando por pólitica de seguridad no se pueda instalar el parche sin antes ser probado. Disponible bajo la licencia GNU (General Public License) y su código fuente está disponible. Lámina 3 SNORT Sniffer basado en libpcap que puede ser utilizado como NIDS ya que cuenta con capacidad de analizar, a través de reglas, el contenido completo de cada paquete que circula por la red. Utiliza reglas definidas por el administrador de seguridad para buscar patrones y detectar actividad hostil (buffer overflows, STEALTH portscans, CGI attacks, etc.) dentro de la red. Existen bases de datos conocidas con las huellas de ataques más comunes (http://www.whitehats.com/ids/index.html) Lámina 4 Cárdenas 2

SNORT vs TCPdump Porqué se puede decir que SNORT no es un simple sniffer? SNORT es distinto a TCPdump ya que éste no tiene capacidad de analizar el payload de los paquetes. SNORT puede decodificar hasta la capa de aplicación, por lo tanto también, capa transporte, capa red, capa enlace. La salida que entrega SNORT es más legible que la entregada por TCPdump. Lámina 5 SNORT Los 3 elementos básicos de SNORT son: 1. decodificador de paquetes 2. motor de detección 3. subsistema de logeo y alerta Lámina 6 Cárdenas 3

Plataformas corre en casi cualquier versión de UNIX, incluyendo: Linux (originalmente desarrollado para y en) OpenBSD FreeBSD Solaris HP-UX AIX. Windows ( porque no? ) Plataformas de hardware como Sparc, Alpha y los x86. Lámina 7 Donde se obtiene Versión actual 2.6 Página snort http://www.snort.org Las firmas se pueden bajar de http://www.snort.org http://www.whitehats.ca http://www.silicondefense.com Lámina 8 Cárdenas 4

Bajar y compilar Instalando snort en ambientes Unix (.src.rpm,.rpm,.src.tar.gz) Reglas actuales Libnet (si no se tiene instalado) Unix: http://www.packetfactory.net/libnet Windows: netgroup-serv.polito.it Libpcap (si no se tiene instalado) Unix: Windows: www.tcpdump.org/release/libpcap netgroup-serv.polito.it/winpcap Lámina 9 Archivos instalados /root/downloads/snort-2.4.3/etc/ contiene los archivos de configuración /var/log/snort contendrá las bitácoras generadas por snort NO lo instala es necesario crearlo /usr/bin/snort contiene el ejecutable de snort Lámina 10 Cárdenas 5

Pasos previos para usar snort Crear el directorio de bitacoras mkdir /var/log/snort Bajar los archivos de reglas http://www.snort.org/pub-bin/downloads.cgi subscription release, registered user release, unregistered user release, Community Rules Instalar los archivos de reglas cd /root/downloads/snort-2.4.3/ tar -zxvf snortrules-pr-2.4.tar.gz se crearán dos directorios: ~/rules y ~/doc/signatures Trasladarse al directorio donde se encuentran las reglas y el archivo de configuracion cd /root/downloads/snort-2.4.3/etc snort Lámina 11 Una prueba rápida Ejecutar siguiente comando dentro del directorio /etc/snort toto@cognac:3> snort A console * Desde otra máquina, utilice nmap para generar eventos para que los detecte snort toto@tequila:3> nmap Sp <IP máquina con snort> Se debe ver una alerta como la que sigue: 03/27-15:18:06.911226 [**] [1:469:1] ICMP PING NMAP [**] [Classification: Attempted Information Leak] [Priority: 2] {ICMP} 192.168.1.20 -> 192.168.1.237 Lámina 12 * posible tener definir ubicación archivo configuracio: snort -A console -c etc/snort.conf Cárdenas 6

Modos operación snort sniffer solo lee los paquetes que circulan por la red y los despliega packet logger almacena paquetes en el disco network intrusion detection system analiza tráfico que coincida con una regla definida y realiza una determinada acción especificada en la regla Lámina 13 Modo sniffer snort v despliega los encabezados de los paquetes TCP/IP en la pantalla solo despliega los encabezados de IP y TCP/UDP/ICMP nada más snort vd despliega tanto los datos como los encabezados snort vde lo mismo que antes, y además despliega los encabezados de la capa de enlace Lámina 14 Cárdenas 7

Modo packet logger Posible almacenar paquetes en el disco, para lo cual es necesario especificar un directorio snort dev l./log Capturar paquetes relativos a la red 192.168.1.0 tipo C, todos los paquetes serán registrados en los subdirectorios del directorio log snort dev l./log h 192.168.1.0/24 En redes alta velocidad, es posible almacenar paquetes en forma más compacta (modo binario: formato tcpdump) snort l./log b Lámina 15 Leyendo lo almacenado Posible leer lo almacenado con un snifer que soporte fomato binario tcpdump tcpdump o ethereal Se puede usar snort con la opción r, que lo pone en modo playback Paquetes en formato tcpdump pueden ser procesados por snort snort dv r packet.log Lámina 16 Cárdenas 8

Modo NIDS Para habilitar el modo de detección de intrusos en red es necesario teclear: snort dev l./log h 192.168.1.0/24 c snort.conf donde snort.conf es el archivo de las reglas si no se especifica directorio salida, se tomará como default /var/log/snort No se recomienda la opción v En muchos casos no es necesario verificar los encabezados de enlace de datos snort d h 192.168.1.0/24 l./log -c snort.conf Lámina 17 Elementos configuración snort Existen tres formas de indicarle a como actuar snort.conf configura variables, preprocesadores, salidas y conjuntos de reglas activas archivos.rules define las huellas (signatures) actuales opciones a nivel línea de comandos, las cuales sobreescriben las opciones en el archivo snort.conf correrá con el archivo snort.conf por default se aconseja configurarlo de acuerdo a la actividad de la red monitoreada de esta forma se puede ahorrar tiempo al examinar los resultados Lámina 18 Cárdenas 9

Ejemplo archivo snort.conf # Step #1: Set the network variables: # var HOME_NET $eth0_address var EXTERNAL_NET $HOME_NET # Step #2: Configure preprocessors preprocessor frag2 preprocessor bo # Step #3: Configure output plugins # # output log_tcpdump: snort.log # output trap_snmp: alert, 7, trap -v 2c -p 162 mytraplistener mycommunity # Step #4: Customize your rule set include $RULE_PATH/finger.rules include $RULE_PATH/ftp.rules include $RULE_PATH/telnet.rules include $RULE_PATH/smtp.rules include $RULE_PATH/rpc.rules include $RULE_PATH/rservices.rules include $RULE_PATH/dos.rules include $RULE_PATH/ddos.rules include $RULE_PATH/dns.rules include $RULE_PATH/tftp.rules Lámina 19 Comentarios snort.conf La indica a snort: cual es la red local que herramientas usar para preprocesar paquetes paquetes fragmentados/defragmentados que herramientas usar para formatear las bitácoras de salida por ejemplo: habilitar XML Mayoría opciones: dejar la opción por default y solo ajustar la dirección red local, por ejemplo: var HOME_NET [192.168.1.0/24,10.120.0.0/16] Lámina 20 Cárdenas 10

Diseño reglas en snort Archivos y sintaxis Lámina 21 Archivos de reglas bad-traffic.rules exploit.rules scan.rules finger.rules ftp.rules telnet.rules smtp.rules rpc.rules rservices.rules dos.rules ddos.rules dns.rules web-coldfusion.rules web-cgi.rules tftp.rules web-frontpage.rules web-iis.rules web-misc.rules web-attacks.rules sql.rules x11.rules icmp.rules netbios.rules misc.rules backdoor.rules shellcode.rules policy.rules porn.rules info.rules icmp-info.rules attack-responses.rules local.rules virus.rules Lámina 22 Cárdenas 11

Ejemplo archivo.rules alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"icmp ISS Pinger"; content:" 495353504e475251 ";itype:8;depth:32; reference:arachnids,158; classtype:attempted-recon; sid:465; rev:1;) alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"icmp L3retriever Ping"; content: "ABCDEFGHIJKLMNOPQRSTUVWABCDEFGHI"; itype: 8; icode: 0; depth: 32; reference:arachnids,311; classtype:attempted-recon; sid:466; rev:1;) alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"icmp Nemesis v1.1 Echo"; dsize: 20; itype: 8; icmp_id: 0; icmp_seq: 0; content: " 0000000000000000000000000000000000000000 "; reference:arachnids,449; classtype:attempted-recon; sid:467; rev:1;) alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"icmp PING NMAP"; dsize: 0; itype: 8; reference:arachnids,162; classtype:attempted-recon; sid:469; rev:1;) alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"icmp icmpenum v1.1.1"; id: 666; dsize: 0; itype: 8; icmp_id: 666 ; icmp_seq: 0; reference:arachnids,450; classtype:attempted-recon; sid:471; rev:1;) Lámina 23 Comentarios reglas Si un paquete coincide con el criterio especificado por una regla lo almacena en un archivo de bitácora Si un paquete no coincide con ninguna regla no hace nada no es necesario preocuparse por el tráfico que snort no esta configurado para reconocer Posible aumentar las capacidades de snort incorporar reglas nuevas de los diferentes sitios que proporcionan una regla posible crear sus propias reglas Lámina 24 Cárdenas 12

Reglas de snort Flexibles y fáciles de modificar. Un ejemplo de regla: alert tcp any any -> 192.168.1.0/24 111 ( content:" 00 01 86 a5 ; msg mountd access ; ) Elementos antes paréntesis comprenden el encabezado de la regla. Elementos dentro paréntesis son las opciones de la regla palabras antes : son keywords esta sección no es forzosa para todas las reglas Lámina 25 Encabezados de las reglas Contiene información que define el quien, donde y que de un paquete la acción a tomar si un paquete cumple con la regla Formato: accion protocolo IP puerto -> IP puerto El primer elemento en una regla es la acción de la regla. Se tienen definidas acciones por default Lámina 26 Cárdenas 13

Acciones por default accion protocolo IP puerto -> IP puerto alert genera una alerta usando el método de alerta seleccionado y envía a una bitácora el paquete log envía a una bitácora el paquete pass ignora el paquete activate alerta y activa otro regla dinámica dynamic permanecer inactiva hasta activarse por otra regla, entonces actuar como una regla de tipo log Lámina 27 Protocolos accion protocolo IP puerto -> IP puerto Existen cuatro protocolos que snort analiza buscando un comportamiento sospechoso Los protocolos actuales son: TCP UDP ICMP IP Se piensa incluir en un futuro ARP,IGRP, GRE. OSPF, RIP, IPX Lámina 28 Cárdenas 14

Las direcciones IP accion protocolo IP puerto -> IP puerto Información dirección IP entrada y salida Palabra any puede definir cualquier dirección Operador negación! cualquier dirección excepto la especificada Lista de direcciones [ IP1, IP2,... IP3 ] Formadas por dirección numérica IP y bloque CIDR bloque CIDR indica el netmask que debe aplicarse a las direcciones de las reglas cada paquete que entra es probado contra la regla /24: red clase C, /16 red clase B, /32 dirección específica Lámina 29 Ejemplos direcciones Ejemplo dirección con bloque CIDR 192.168.1.0/24 bloque direcciones 192.168.1.0 a 192.168.1.255 Ejemplo negación alert tcp!192.168.1.0/24 any -> 192.168.1.0/24 111 \ ( content: 00 01 86 a5 ; msg: peligro ; ) Ejemplo rango direcciones: alert tcp![ 192.168.1.0/24, 10.1.1.0/24] any -> [ 192.168.1.0/24, 10.1.1.0/24] 111 \ ( content: 00 01 86 a5 ; msg: peligro ; ) Lámina 30 Cárdenas 15

Numeros de puerto accion protocolo IP puerto -> IP puerto Especificación del puerto de entrada y de salida. Pueden especificarse de varias formas any, puertos estáticos, rangos y negación Keyboard any: cualquier número de puerto Puertos estáticos: un solo número de puerto, (21 para ftp, 80 para http, 23 para telnet) Rangos puertos: operador : Negación puerto: operador! Lámina 31 Ejemplos números de puerto log udp any any -> 192.168.1.0/24 1:1024 tráfico proveniente de cualquier puerto y cuyo puerto destino varía entre 1 y 1024 log udp any any -> 192.168.1.0/24 :6000 tráfico proveniente de cualquier puerto dirigido a puertos menores o iguales a 6000 log udp any :1024 -> 192.168.1.0/24 500: tráfico proveniente de puertos privilegiados menores o iguales a 1024 dirigido a puertos mayores o iguales a 500 Lámina 32 Cárdenas 16

El operador de dirección accion protocolo IP puerto Indica la orientación o dirección del tráfico de la regla que se esta aplicando. Las direcciones y puertos del lado izquierdo corresponden a tráfico proveniente del host origen y del lazo derecho al host destino Existe un operador bidireccional <> considerar los pares dirección/puerto tanto en una orientación destino como origen usado para analizar una conversación de los dos lados (telnet, ftp, pop3) ejemplo -> IP puerto log!192.168.1.0/24 any <> 192.168.1.0/24 23 Lámina 33 Opciones de las reglas Forman el corazón de la máquina de detección de intrusión. Todas las opciones están separadas por el caracter ; Las keywords de las opciones están separadas por el carácter : Cuenta con 35 keywords Lámina 34 Cárdenas 17

Los keywords de las opciones msg logto ttl tos id ipoption fragbits dsize flags seq ack itype icode icmp_id icmp_seq content content-list offset depth nocase session rpc resp react reference sid rev classtype priority uricontent tag ip_proto sameip stateless regex Lámina 35 Significado algunos keywords Keyword msg logto ttl, tos, id flags rpc priority sameip content seq,ack Significado imprime un mensaje en las alertas y bitácoras envía paquete a archivo usuario en lugar archivo usual prueba los campos encabezado IP por un valor en específico prueba los valores de las banderas TCP prueba identificador de severidad de la regla verifica de la dirección fuente es igual a la destino busca por un patrón dentro del payload verifica en el campo TCP por un valor específico Lámina 36 Cárdenas 18

Aclaraciones sobre algunos keywords msg indican a la maquina de alerta y bitacoras el mensaje a imprimir con el paquete caracater \ para indicar carácter que pueda conincidir con las reglas de snort formato: msg: <texto mensaje> ejemplo: alert tcp any any -> any 21 ( msg: ataque sobre servidor ftp ) Lámina 37 Referencias y clasificación ataques reference referencias para sistemas externos de identificación de ataques sid identificación única de reglas de snort rev identificación de forma única de revisiones classtype clasifica alertas para formar clases de ataques priority asigna niveles de severidad a las reglas alert tcp any any -> any 80 (msg: Intento ataque a servicio HTTP ; reference:arachnids,ids411; classtype:attempted-admin; priority:10,; sid:1000983; rev:1); Lámina 38 Cárdenas 19

El keyword content content definición reglas buscan por contenido específico en el payload del paquete posible buscar por texto y datos binarios texto binario: encerrado entre caracteres pipe y representados en código hexadecimal varias reglas de contenido puede ser especificadas en una sola regla carácter! especificar que no se busca por dicho contenido formato: content: [!] "<content string>"; ejemplos: alert tcp any any -> any 139 (content:" 5c 00 P 00 I 00 P 00 E 00 5c ";) alert tcp any any -> any 80 (content:!"get";) Lámina 39 Parámetros de búsqueda de contenido nocase ignorar mayúsculas formato: nocas ejemplo: alert tcp any any -> any 21 (msg:"ftp ROOT"; content:"user root"; nocase;) rawbytes verificar datos paquetes raw, ignorando la decodificación hecha por los preprocesadores formato: rawbytes ejemplo: alert tcp any any -> any 21 (msg: "Telnet NOP"; content: " FF F1 "; rawbytes;) Lámina 40 Cárdenas 20

Definiendo profundidad de búsqueda depth especifica cuanto dentro del paquete debe ir a buscar el patrón especificado valor de 5 implica que busque los primeros 5 bytes del payload formato: depth: <number>; offset especifica donde empezar a buscar dentro de un paquete valor de 5 implica paquete busca después de 5 bytes dentro del paquete formato: offset: <number>; ejemplo: alert tcp any any -> any 80 (content: "cgi-bin/phf"; offset:4; depth:20;) Lámina 41 Hasta donde buscar distance especifica cuanto debe ignorar el paquete antes de empezar a buscar por el patrón especificado distancia relativa al match previo formatodistance: <byte count>; ejemplo: alert tcp any any -> any any (content:"abc"; content: "DEF"; distance:1;) within asegurarse que al menos N bytes se encuentran entre pattern matches usando content a usar en combinación con distance formato: within: <byte count>; ejemplo alert tcp any any -> any any (content:"abc"; content: "EFG"; within:10;) Lámina 42 Cárdenas 21

Ejemplo opciones reglas alert tcp any any -> 192.168.1.0/24 any ( flags: A; ack: 0; msg: Escaneo ping con NMAP ; reference: arachnids,28; classtype: attempetd-recon; sid:628; rev:1;) ) flags:a Establece el contenido de los flags o banderas TCP, en este caso ACK ack:0 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 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. Lámina 43 Ejemplos reglas snort Un ejemplo de content alert tcp any any -> 192.168.1.9/24 143 ( content: 90C8 C0FF FFFF /bin/sh ; msg: IMAP buffer overflow ); Un ejemplo de rpc alert tcp any any -> 192.168.1.0/24 111 ( rpc: 100000,*,3; msg: RPC getport (UDP) ;) Infección de CodeRed alert tcp $EXTERNAL_NET any -> $HTTP_SERVERS 80 ( msg: "WEB-IIS cmd.exe access"; flags: A+; content: "cmd.exe"; nocase; classtype: web-application-attack; sid: 1002; rev: 2; ) Lámina 44 Cárdenas 22

Más ejemplos de reglas Combinando varias opciones alert tcp $EXTERNAL_NET 27374 -> $HOME_NET any ( msg: "BACKDOOR subseven 22"; flags: A+; content: " 0d0a5b52504c5d3030320d0a "; reference: arachnids,485; reference: url.www.hackfix.org/subseven/; sid: 103; classtype: misc-activity; rev: 4; ) Un servidor de SQL Microsoft comprometido alert tcp $EXTERNAL_NET any -> $SQL_SERVERS 1433 ( msg: "MS-SQL xp_cmdshell - program execution"; content: "x 00 p 00 _ 00 c 00 m 00 d 00 s 00 h 00 e 00 l 00 l 00 "; nocase; flags: A+; classtype:attempted-user; sid:687; rev:3; ) Lámina 45 Las alertas Formatos Lámina 46 Cárdenas 23

Formato tcpdump Los formatos de las alertas 11:53:49:869667 eth0 > 192.168.0.231.12242 > 192.168.1.10.www: s 6373380:6373380(0) win 8192 <mss 1460, nop, nop, sackok> (DF) Formato snort [**] IDS024 RPC portmap-request-ttdbserv [**] 07/27 13:33:58.314512 10.0.0.69:896 -> 192.168.38.15:111 UDP TTL:64 TOS: 0x0 ID:33481 Len 64 [**] rwwwshell CGI access attempt [**] 06/10 07:55:01.284025 62.0.183.93:1526 -> 208.237.191.52:80 TCP TTL:64 TOS: 0x0 ID:4816 DF *****PA* Seq: 0xF3156AC9 Ack: 0x9B63081 Win: 0x7078 47 45 54 20 2F 63 67 69 2D 62 69 6E 2F 72 77 77 Get /cgi-su 77 73 68 65 6C 6C 2E 70 6C 20 48 54 54 50 2F 31 bin/rww 2E 30 0A 0A 02 00 00 00 wshell.pl Lámina 47 Formato TCPdump 11:53:49:869667 eth0 > 192.168.0.231.12242 > Tiempo Interfaz Dirección y puerto origen 192.168.1.10.www: s 6373380:6373380(0) win 8192 Dirección y puerto destino Flag Set Número de secuencia <mss 1460, nop, nop, sackok> (DF) Bytes en el paquete Tamaño en la ventana OPCIONES mss: Maximum Segment Size Don t Fragment Lámina 48 Cárdenas 24

Formato (1) [**] IDS024 RPC portmap-request-ttdbserv [**] Nombre de la alerta 07/27 13:33:58.314512 10.0.0.69:896 -> 192.168.38.15:111 Fecha y tiempo FUENTE DESTINO Dirección y puerto Dirección y puerto origen orientación destino tráfico UDP TTL:64 TOS: 0x0 ID:33481 tipo protocolo time to live tipo de servicio identificador de sesión Len 64 longitud Lámina 49 Formato (2) [**] rwwwshell CGI access attempt [**] Nombre de la alerta 06/10 07:55:01.284025 62.0.183.93:1526 -> 208.237.191.52:80 Fecha y tiempo FUENTE TCP TTL:64 TOS: 0x0 ID:4816 DF protocolo time to live servicio id sesión don t fragment DESTINO *****PA* Seq: 0xF3156AC9 Ack: 0x9B63081 Win: 0x7078 banderas # de secuencia # acknowledgement tamaño ventana 47 45 54 20 2F 63 67 69 2D 62 69 6E 2F 72 77 77 Get /cgi-su 77 73 68 65 6C 6C 2E 70 6C 20 48 54 54 50 2F 31 bin/rww 2E 30 0A 0A 02 00 00 00 wshell.pl HTTP/1.0... hex payload Formato comprensible por el humano Lámina 50 Cárdenas 25

Salidas de una sesion telnet Salida TCPdump de una sesión telnet Salida snort de una sesión telnet Lámina 51 Software relacionado Lámina 52 Cárdenas 26

Snarf ACID Demarc Ethereal SQL Software relacionado con snort y producido por terceros Lámina 53 Snarf Producido por Silicon Defense Es un programa en Perl que toma archivos de alertas de y produce reportes en formato HTML La salida esta dirigida a una inspección de diagnóstico Silicon Defense también proporciona sensores con soporte comercial Página: http: www.silicondefense.com/software/snortsnarf/ Lámina 54 Cárdenas 27

Lámina 55 ACID Analysis Console for Intrusion Databases (ACID) Máquina de análisis basada en PHP Busqueda y procesamiento en un base de datos de eventos de seguridad generados por diferentes IDSes, firewalls y herramientas de monitoreo de red. Generador de queries e interfaz de busqueda, visualizador de paquetes (decodificador), administrador de alertas, generador de gráficas y estadísticas Página: http://acidlab.sourceforge.net/ Lámina 56 Cárdenas 28

Lámina 57 Lámina 58 Cárdenas 29

Demarc Consola de administración de NIDS Integra con el poder y conveniencia de una interfaz centralizada para todos los sensores de red. Monitorea todos los servidores/hosts para asegurarse que servicios de red como correo y web permanezcan accesibles todo el tiempo. Monitorea bitacoras de sistema en busca de entradas anormales que pueden indicar intrusos o malfuncionamiento del sistema Página http://www.demarc.com Lámina 59 Lámina 60 Cárdenas 30

Lámina 61 Ethereal No es un elemento de Es uno de los mejores GUI, open source, para visualizar paquetes Paquetes http://www.ethereal.com Para windows: www.ethereal.com/distribution/win32/ethereal-setup- 0.9.2.exe Para Unix: www.ethereal.com/download.html Red Hat Linux RPMs: ftp.ethereal.com/pub/ethereal/rpms/ Lámina 62 Cárdenas 31

SQL Módulo para enviar salidas a una variedad de bases de datos SQL. Módulo desarrollado por Jed Pickel. Después es posible consultar la base de datos a través de queries los resultados dependen de la base de datos El formato es database: <log alert>, <database type>, <parameter list> Lámina 63 Cárdenas 32