SeguridadInformárica Snort - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra3-snort.pdf ·...

32
Seguridad Informárica Snort Dr. Roberto Gómez Cárdenas 1 Dr. Roberto Gómez Lámina 1 Snort Roberto Gómez Cárdenas [email protected] http://homepage.cem.itesm.mx/rogomez Dr. Roberto Gómez Lámina 2 Snort 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

Transcript of SeguridadInformárica Snort - cryptomex.orgcryptomex.org/SlidesSeguridad/Herra3-snort.pdf ·...

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 1

Dr. Roberto GómezLámina 1

Snort

Roberto Gómez Cárdenas

[email protected]

http://homepage.cem.itesm.mx/rogomez

Dr. Roberto GómezLámina 2

Snort

• 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

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 2

Dr. Roberto GómezLámina 3

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 PublicLicense) y su código fuente está disponible.

Dr. Roberto GómezLámina 4

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)

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 3

Dr. Roberto GómezLámina 5

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.

Dr. Roberto GómezLámina 6

SNORT

• Los 3 elementos básicos de SNORT son:

1. decodificador de paquetes

2. motor de detección

3. subsistema de “logeo” y alerta

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 4

Dr. Roberto GómezLámina 7

Plataformas

• Snort 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.

Dr. Roberto GómezLámina 8

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

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 5

Dr. Roberto GómezLámina 9

Instalando snort en ambientes Unix

• Bajar y compilar– Snort (.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: www.tcpdump.org/release/libpcap

• Windows: netgroup-serv.polito.it/winpcap

Dr. Roberto GómezLámina 10

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

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 6

Dr. Roberto GómezLámina 11

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

Dr. Roberto GómezLámina 12

Una prueba rápida

• Ejecutar siguiente comando dentro del directorio /etc/snort

• Desde otra máquina, utilice nmap para generar eventos para que los detecte snort

• Se debe ver una alerta como la que sigue:

toto@cognac:3> snort –A console *

toto@tequila:3> nmap – Sp <IP máquina con snort>

03/27-15:18:06.911226 [**] [1:469:1] ICMP PING NMA P [**] [Classification: Attempted Information Leak] [Prior ity: 2]{ICMP} 192.168.1.20 -> 192.168.1.237

* posible tener definir ubicación archivo configuracio: snort -A console -c etc/snort.conf

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 7

Dr. Roberto GómezLámina 13

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

Dr. Roberto GómezLámina 14

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

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 8

Dr. Roberto GómezLámina 15

Modo packet logger

• Posible almacenar paquetes en el disco, para lo cual es necesario especificar un directorio

• Capturar paquetes relativos a la red 192.168.1.0 tipo C, todos los paquetes serán registrados en los subdirectorios del directorio log

• En redes alta velocidad, es posible almacenar paquetes en forma más compacta (modo binario: formato tcpdump)

snort –dev –l ./log

snort –dev –l ./log –h 192.168.1.0/24

snort –l ./log –b

Dr. Roberto GómezLámina 16

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

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 9

Dr. Roberto GómezLámina 17

Modo NIDS

• Para habilitar el modo de detección de intrusos en red es necesario teclear:

– 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 –dev –l ./log –h 192.168.1.0/24 –c snort.con f

snort –d –h 192.168.1.0/24 –l ./log -c snort.conf

Dr. Roberto GómezLámina 18

Elementos configuración snort

• Existen tres formas de indicarle a Snort 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

• Snort correrá con el archivosnort.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

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 10

Dr. Roberto GómezLámina 19

Ejemplo archivo snort.conf

# Step #1: Set the network variables:# var HOME_NET $eth0_ADDRESSvar EXTERNAL_NET $HOME_NET

# Step #2: Configure preprocessorspreprocessor frag2preprocessor 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 setinclude $RULE_PATH/finger.rulesinclude $RULE_PATH/ftp.rulesinclude $RULE_PATH/telnet.rulesinclude $RULE_PATH/smtp.rulesinclude $RULE_PATH/rpc.rulesinclude $RULE_PATH/rservices.rulesinclude $RULE_PATH/dos.rulesinclude $RULE_PATH/ddos.rulesinclude $RULE_PATH/dns.rulesinclude $RULE_PATH/tftp.rules

Dr. Roberto GómezLámina 20

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]

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 11

Dr. Roberto GómezLámina 21

Diseño reglas en snort

Archivos y sintaxis

Dr. Roberto GómezLámina 22

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

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 12

Dr. Roberto GómezLámina 23

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;)

Dr. Roberto GómezLámina 24

Comentarios reglas

• Si un paquete coincide con el criterio especificado por una regla– Snort lo almacena en un archivo de bitácora

• Si un paquete no coincide con ninguna regla– Snort 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

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 13

Dr. Roberto GómezLámina 25

Reglas de snort

• Flexibles y fáciles de modificar.• Un ejemplo de regla:

• 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

alert tcp any any -> 192.168.1.0/24 111 ( content:"|00 01 86 a5|”;

msg “mountd access”; )

Dr. Roberto GómezLámina 26

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:

• El primer elemento en una regla es la acción de la regla.

• Se tienen definidas acciones por default

accion protocolo IP puerto -> IP puerto

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 14

Dr. Roberto GómezLámina 27

Acciones por default

• 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

accion protocolo IP puerto -> IP puerto

Dr. Roberto GómezLámina 28

Protocolos

• 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

accion protocolo IP puerto -> IP puerto

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 15

Dr. Roberto GómezLámina 29

Las direcciones IP

• 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

accion protocolo IP puerto -> IP puerto

Dr. Roberto GómezLámina 30

Ejemplos direcciones

• Ejemplo dirección con bloque CIDR

– bloque direcciones 192.168.1.0 a 192.168.1.255

• Ejemplo negación

• Ejemplo rango direcciones:

alert tcp !192.168.1.0/24 any -> 192.168.1.0/24 111 \( content: “|00 01 86 a5|”; msg:”peligro”; )

192.168.1.0/24

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”; )

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 16

Dr. Roberto GómezLámina 31

Numeros de puerto

• Especificación del puerto de entrada y de salida.• Pueden especificarse de varias formas

– any, puertos estáticos, rangos y negación

• Keyboardany: 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 !

accion protocolo IP puerto -> IP puerto

Dr. Roberto GómezLámina 32

Ejemplos números de puerto

• tráfico proveniente de cualquier puerto y cuyo puerto destino varía entre 1 y 1024

• tráfico proveniente de cualquier puerto dirigido a puertos menores o iguales a 6000

• tráfico proveniente de puertos privilegiados menores o iguales a 1024 dirigido a puertos mayores o iguales a 500

log udp any any -> 192.168.1.0/24 1:1024

log udp any any -> 192.168.1.0/24 :6000

log udp any :1024 -> 192.168.1.0/24 500:

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 17

Dr. Roberto GómezLámina 33

El operador de dirección

• 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

accion protocolo IP puerto -> IP puerto

log !192.168.1.0/24 any <> 192.168.1.0/24 23

Dr. Roberto GómezLámina 34

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

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 18

Dr. Roberto GómezLámina 35

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

Dr. Roberto GómezLámina 36

Significado algunos keywords

verifica en el campo TCP por un valor específicoseq,ack

busca por un patrón dentro del payloadcontent

verifica de la dirección fuente es igual a la destinosameip

identificador de severidad de la reglapriority

prueba rpc

prueba los valores de las banderas TCP flags

prueba los campos encabezado IP por un valor en específico

ttl, tos, id

envía paquete a archivo usuario en lugar archivo usuallogto

imprime un mensaje en las alertas y bitácorasmsg

SignificadoKeyword

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 19

Dr. Roberto GómezLámina 37

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”)

Dr. Roberto GómezLámina 38

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);

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 20

Dr. Roberto GómezLámina 39

El keywordcontent

• 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";)

Dr. Roberto GómezLámina 40

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;)

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 21

Dr. Roberto GómezLámina 41

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 bytesdel 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;)

Dr. Roberto GómezLámina 42

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>;

– ejemploalert tcp any any -> any any (content:"ABC"; content: "EFG"; within:10;)

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 22

Dr. Roberto GómezLámina 43

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.

Dr. Roberto GómezLámina 44

Ejemplos reglas snort

• Un ejemplo de content

• Un ejemplo de rpc

• Infección de CodeRed

alert tcp any any -> 192.168.1.9/24 143 ( content: “|90C8 C0FF FFFF|/bin/sh”; msg: “IMAP buffer overflow”);

alert tcp any any -> 192.168.1.0/24 111( rpc: 100000,*,3; msg: “RPC getport (UDP)”;)

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; )

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 23

Dr. Roberto GómezLámina 45

Más ejemplos de reglas

• Combinando varias opciones

• 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; )

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; )

Dr. Roberto GómezLámina 46

Las alertas

Formatos

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 24

Dr. Roberto GómezLámina 47

Los formatos de las alertas

• Formato tcpdump

• Formato snort

11:53:49:869667 eth0 > 192.168.0.231.12242 > 192.16 8.1.10.www: s 6373380:6373380(0) win 8192<mss 1460, nop, nop, sackOK> (DF)

[**] IDS024 – RPC – portmap-request-ttdbserv [**]07/27 – 13:33:58.314512 10.0.0.69:896 -> 192.168.38. 15:111UDP TTL:64 TOS: 0x0 ID:33481 Len 64

[**] rwwwshell CGI access attempt [**]06/10 – 07:55:01.284025 62.0.183.93:1526 -> 208.23 7.191.52:80TCP TTL:64 TOS: 0x0 ID:4816 DF*****PA* Seq: 0xF3156AC9 Ack: 0x9B63081 Wi n: 0x7078

47 45 54 20 2F 63 67 69 2D 62 69 6E 2F 72 77 77 Get /cgi-su77 73 68 65 6C 6C 2E 70 6C 20 48 54 54 50 2F 31 bin/rww2E 30 0A 0A 02 00 00 00 wshell.pl

Dr. Roberto GómezLámina 48

Formato TCPdump

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)

TiempoInterfaz Dirección y puerto origen

Dirección y puerto destino Flag SetNúmero de secuencia Bytes en

el paquete

Tamaño en la ventana

OPCIONESDon’t Fragment

mss: Maximum Segment Size

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 25

Dr. Roberto GómezLámina 49

Formato Snort (1)

Len 64

[**] IDS024 – RPC – portmap-request-ttdbserv [**]

FUENTE

07/27 – 13:33:58.314512 10.0.0.69: 896 -> 192.168.38.15:111

Fechay tiempo

Nombre de la alerta

DESTINO

UDP TTL:64 TOS: 0x0 ID:33481

Dirección y puertoorigen

Dirección y puertodestinoorientación

tráfico

longitud

tipo protocolo

tipo de servicio

time tolive

identificador de sesión

Dr. Roberto GómezLámina 50

Formato Snort (2)

[**] rwwwshell CGI access attempt [**]

FUENTE

06/10 – 07:55:01.284025 62.0.183.93: 1526 -> 208.237.191.52:80

Fechay tiempo

Nombre de la alerta

DESTINOTCP TTL:64 TOS: 0x0 ID:4816 DF

time to live id sesiónprotocolo servicio

*****PA* Seq: 0xF3156AC9 Ack: 0x9B63081 Wi n: 0x7078

don’t fragment

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-su77 73 68 65 6C 6C 2E 70 6C 20 48 54 54 50 2F 31 bin/rww2E 30 0A 0A 02 00 00 00 wshell.pl

HTTP/1.0 ..........

hex payloadFormato comprensible por el humano

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 26

Dr. Roberto GómezLámina 51

Salidas de una sesion telnet

Salida TCPdump de una sesión telnet

Salida snort de una sesión telnet

Dr. Roberto GómezLámina 52

Software relacionado

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 27

Dr. Roberto GómezLámina 53

Software relacionado con snort y producido por terceros

• SnortSnarf

• ACID

• Demarc

• Ethereal

• SQL

Dr. Roberto GómezLámina 54

Snort Snarf

• Producido por Silicon Defense

• Es un programa en Perl que toma archivos de alertas de Snort 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/

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 28

Dr. Roberto GómezLámina 55

Dr. Roberto GómezLámina 56

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/

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 29

Dr. Roberto GómezLámina 57

Dr. Roberto GómezLámina 58

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 30

Dr. Roberto GómezLámina 59

Demarc

• Consola de administración de NIDS• Integra Snort 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 permanezcanaccesibles todo el tiempo.

• Monitorea bitacoras de sistema en busca de entradasanormales que pueden indicar intrusos o malfuncionamiento del sistema

• Página– http://www.demarc.com

Dr. Roberto GómezLámina 60

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 31

Dr. Roberto GómezLámina 61

Dr. Roberto GómezLámina 62

Ethereal

• No es un elemento de Snort

• Es uno de los mejores GUI, open source, paravisualizar 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/

Seguridad Informárica Snort

Dr. Roberto Gómez Cárdenas 32

Dr. Roberto GómezLámina 63

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 esdatabase: <log | alert>, <database type>, <parameter list>