• No se han encontrado resultados

SNORT. Camilo Hernández Hernández Universidad Distrital Francisco José de Caldas DESARROLLO DE CONTENIDOS IDS TIPOS DE IDS

N/A
N/A
Protected

Academic year: 2021

Share "SNORT. Camilo Hernández Hernández Universidad Distrital Francisco José de Caldas DESARROLLO DE CONTENIDOS IDS TIPOS DE IDS"

Copied!
13
0
0

Texto completo

(1)

SNORT

Camilo Hernández Hernández

Universidad Distrital Francisco José de Caldas

[email protected]

RESUMEN

En este documento se examina una de las herramientas para proteger una red informática más específicamente el detector de intrusos snort, en él se analizan los diferentes modos de

funcionamiento y las distintas alertas que puede producir

PALBRAS CLAVE: Informática, red, seguridad, snort

I. INTRODUCCION

La seguridad de una red es uno de los pilares más importantes en un empresa, proteger esta es uno de los objetivos principales de la herramienta snort, un detector de intrusiones con gran flexibilidad y que permite

configurarlo para adaptarlo a las necesidades de cada red informática

II. DESARROLLO DE CONTENIDOS  IDS o TIPOS DE IDS o ARQUITECTURA DE UN IDS o POSICION DE UN IDS  SNORT o SNIFFER o PACKET LOGGER o IDS SNORT o ALERTAS SNORT

(2)

IDS

Un IDS (Intrusion Detection System –Sistema de Detección de Intrusos) es una herramienta de seguridad que intenta detectar o monitorizar los eventos ocurridos en un determinado sistema informático en busca de intentos de comprometer la seguridad de dicho sistema.

 Un IDS o Sistema de Detección de Intrusiones es una herramienta de seguridad que intenta detectar o monitorizar los eventos ocurridos en un determinado sistema informático o red informática en busca de intentos de comprometer la seguridad de dicho sistema.

 Los IDS buscan patrones previamente definidos que impliquen cualquier tipo de actividad sospechosa o maliciosa sobre nuestra red o host.

 Los IDS aportan a nuestra seguridad una capacidad de prevención y de alerta anticipada ante cualquier actividad sospechosa. No están diseñados para detener un ataque, aunque sí pueden generar ciertos tipos de respuesta ante éstos.

 Los IDS aumentan la seguridad de nuestro sistema, vigilan el tráfico de nuestra red, examinan los paquetes analizándolos en busca de datos sospechosos y detectan las primeras fases de cualquier ataque como pueden ser el análisis de nuestra red, barrido de puertos, etc.

TIPOS DE IDS

1. HIDS (Host IDS)

Protege contra un único Servidor, PC o host. Monitorizan gran cantidad de eventos, analizando actividades con una gran precisión, determinando de esta manera qué procesos y usuarios se involucran en una determinada acción. Recaban información del sistema como ficheros, logs, recursos, etc., para su posterior análisis en busca de posibles incidencias.

Todo ello en modo local, dentro del propio sistema. Fueron los primeros IDS en desarrollar por la industria de la seguridad informática.

(3)

2. NIDS (Net IDS)

Protege un sistema basado en red. Actúan sobre una red capturando y analizando paquetes de red, es decir, son sniffers del tráfico de red. Luego analizan los paquetes capturados, buscando patrones que supongan algún tipo de ataque.

Bien ubicados, pueden analizar grandes redes y su impacto en el tráfico suele ser pequeño. Actúan mediante la utilización de un dispositivo de red configurado en modo promiscuo (analizan, “ven” todos los paquetes que circulan por un segmento de red aunque estos nos vayan dirigidos a un determinado equipo). Analizan el tráfico de red, normalmente, en tiempo real. No sólo trabajan a nivel TCP/IP, también lo pueden hacer a nivel de aplicación.

Por el tipo de respuesta podemos clasificarlos en:

Pasivos: Son aquellos IDS que notifican a la autoridad competente o administrador de la red mediante el sistema que sea, alerta, etc. Pero no actúa sobre el ataque o atacante.

Activos: Generan algún tipo de respuesta sobre el sistema atacante o fuente de ataque como cerrar la conexión o enviar algún tipo de respuesta predefinida en nuestra configuración.

Snort puede funcionar de las dos maneras.

MECANISMOS DE DETECCIÓN DE UN ATAQUE

Un IDS usa alguna de las dos siguientes técnicas para determinar que un ataque se encuentra en curso:

Heurística

Un IDS basado en heurística, determina actividad normal de red, como el orden de ancho de banda usado, protocolos, puertos y dispositivos que generalmente se interconectan, y alerta a un administrador o usuario cuando este varía de aquel considerado como normal, clasificándolo como anómalo.

Patrón

Un IDS basado en patrones, analiza paquetes en la red, y los compara con patrones de ataques conocidos, y pre configurados. Estos patrones se denominan firmas. Debido a esta técnica, existe un periodo de tiempo entre el descubrimiento del ataque y su patrón, hasta que este es finalmente configurado en un IDS. Durante este tiempo, el IDS será incapaz de identificar el ataque

.

ARQUITECTURA DE UN IDS

(4)

1. La fuente de recogida de datos. Estas fuentes pueden ser un log, dispositivo de red, o como en el caso de los IDS basados en host, el propio sistema.

2. Reglas que contienen los datos y patrones para detectar anomalías de seguridad en el sistema.

3. Filtros que comparan los datos snifados de la red o de logs con los patrones almacenados en las reglas.

4. Detectores de eventos anormales en el tráfico de red.

5. Dispositivo generador de informes y alarmas. En algunos casos con la sofisticación suficiente como para enviar alertas vía mail, o SMS.

POSICIÓN DEL IDS

Dificultades

Un problema de los IDS es cuando queremos implementarlos en redes conmutadas ya que no hay segmento de red por donde pase todo el tráfico. Otro problema para un IDS son las redes con velocidades de tráfico muy altas en las cuales es difícil procesar todos los paquetes.

Colocación

Si colocamos el IDS antes del cortafuego capturaremos todo el tráfico de entrada y salida de nuestra red. La posibilidad de falsas alarmas es grande.

La colocación detrás del cortafuego monitorizará todo el tráfico que no sea detectado y parado por el firewall o cortafuegos, por lo que será considerado como malicioso en un alto porcentaje de los casos. La posibilidad de falsas alarmas muy inferior.

Algunos administradores de sistemas colocan dos IDS, uno delante y otro detrás del cortafuegos para obtener información exacta de los tipos de ataques que recibe nuestra red ya que si el cortafuegos está bien configurado puede parar o filtras muchos ataques.

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 (http://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 flexibles, potente y sencilla. Durante su instalación ya nos provee de cientos de filtros o reglas para backdoor, ddos, finger, ftp, ataques web, CGI, escaneos Nmap….

(5)

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

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.

Al colocar snort en una terminal obtenemos los comandos que nos permitirán manejarlo

-*> Snort! <*-

Version 2.0.0-ODBC-MySQL-FlexRESP-WIN32 (Build 72) By Martin Roesch ([email protected], www.snort.org)

1.7-WIN32 Port By Michael Davis ([email protected], www.datanerds.net/~mike) 1.8 - 2.0 WIN32 Port By Chris Reid ([email protected]) USAGE: snort [-options] <filter options>

snort /SERVICE /INSTALL [-options] <filter options> snort /SERVICE /UNINSTALL

snort /SERVICE /SHOW Options:

-A Set alert mode: fast, full, console, or none (alert file alerts only) -b Log packets in tcpdump format (much faster!)

-c <rules> Use Rules File <rules>

-C Print out payloads with character data only (no hex) -d Dump the Application Layer

-e Display the second layer header info

-E Log alert messages to NT Eventlog. (Win32 only) -f Turn off fflush() calls after binary log writes -F <bpf> Read BPF filters from file <bpf>

-h <hn> Home network = <hn> -i <if> Listen on interface <if> -I Add Interface name to alert output

-k <mode> Checksum mode (all,noip,notcp,noudp,noicmp,none) -l <ld> Log to directory <ld>

-L <file> Log to this tcpdump file

-n <cnt> Exit after receiving <cnt> packets -N Turn off logging (alerts still work)

-o Change the rule testing order to Pass|Alert|Log -O Obfuscate the logged IP addresses

-p Disable promiscuous mode sniffing

-P <snap> Set explicit snaplen of packet (default: 1514) -q Quiet. Don't show banner and status report

-r <tf> Read and process tcpdump file <tf>

-R <id> Include 'id' in snort_intf<id>.pid file name -s Log alert messages to syslog

-S <n=v> Set rules file variable n equal to value v -T Test and report on the current Snort configuration -U Use UTC for timestamps

-v Be verbose

-V Show version number

-W Lists available interfaces. (Win32 only) -w Dump 802.11 management and control frames

-X Dump the raw packet data starting at the link layer -y Include year in timestamp in the alert and log files -z Set assurance mode, match on established sesions (for TCP) -? Show this information

<Filter Options>

are standard BPF options, as seen in TCPDump

Uh, you need to tell me to do something... : No such file or directory

(6)

SNIFFER

Con esta opción -v iniciamos snort en modo sniffer visualizando en pantalla las cabeceras de los paquetes TCP/IP, es decir, en modo sniffer. Esta opción el modo verbouse y mostrará las cabeceras IP, TCP, UDP y ICMP.

C:\Snort20\bin>snort -v Running in packet dump mode Log directory = log

Initializing Network Interface \Device\NPF_{604C8AE3-5FAC-45A5-BFAA-81175A8C32BF} --== Initializing Snort ==--

Initializing Output Plugins!

Decoding Ethernet on interface \Device\NPF_{604C8AE3-5FAC-45A5-BFAA-81175A8C32BF} --== Initialization Complete ==--

-*> Snort! <*-

Version 2.0.0-ODBC-MySQL-FlexRESP-WIN32 (Build 72) By Martin Roesch ([email protected], www.snort.org)

1.7-WIN32 Port By Michael Davis ([email protected], www.datanerds.net/~mike) 1.8 - 2.0 WIN32 Port By Chris Reid ([email protected]) 05/21-11:00:28.593943 ARP who-has 192.168.2.92 tell 192.168.2.60

05/21-11:00:28.594419 ARP who-has 192.168.2.8 tell 192.168.2.60 05/21-11:00:28.594544 ARP who-has 192.168.2.93 tell 192.168.2.60 05/21-11:00:30.467265 192.168.2.5:1025 -> 192.168.2.1:139 TCP TTL:128 TOS:0x0 ID:16685 IpLen:20 DgmLen:104 DF

***AP*** Seq: 0x6B703 Ack: 0x2266A0C Win: 0x2238 TcpLen: 20

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 05/21-11:00:30.467731 192.168.2.1:139 -> 192.168.2.5:1025

TCP TTL:128 TOS:0x0 ID:47513 IpLen:20 DgmLen:1500 DF

Si queremos, además, visualizar los campos de datos que pasan por la interface de red, añadiremos -d.

C:\Snort20\bin>snort -vd Running in packet dump mode Log directory = log

Initializing Network Interface \Device\NPF_{604C8AE3-5FAC-45A5-BFAA-81175A8C32BF} ...

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 05/21-11:06:18.943887 192.168.4.5:3890 -> 192.168.4.15:8080

TCP TTL:128 TOS:0x0 ID:33216 IpLen:20 DgmLen:40 DF

***A**** Seq: 0xE3A50016 Ack: 0x8B3C1E4D Win: 0xFAF0 TcpLen: 20

=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+ 05/21-11:06:18.962018 192.168.4.5:3890 -> 192.168.4.15:8080

TCP TTL:128 TOS:0x0 ID:33217 IpLen:20 DgmLen:681 DF

***AP*** Seq: 0xE3A50016 Ack: 0x8B3C1E4D Win: 0xFAF0 TcpLen: 20 47 45 54 20 68 74 74 70 3A 2F 2F 77 77 77 2E 6F GET http://www.x 6D 65 6C 65 74 65 2E 63 6F 6D 2E 62 72 2F 73 75 xxxx.com.br/xx 70 65 72 6F 6D 65 6C 65 74 65 2F 64 6F 77 6E 6C xxxxxxx/downl 6F 61 64 73 2F 64 65 66 61 75 6C 74 2E 61 73 70 oads/default.asp 20 48 54 54 50 2F 31 2E 30 0D 0A 55 73 65 72 2D HTTP/1.0..User- 41 67 65 6E 74 3A 20 4D 6F 7A 69 6C 6C 61 2F 34 Agent: Mozilla/4

(7)

2E 30 20 28 63 6F 6D 70 61 74 69 62 6C 65 3B 20 .0 (compatible; 4D 53 49 45 20 36 2E 30 3B 20 57 69 6E 64 6F 77 MSIE 6.0; Window 73 20 4E 54 20 35 2E 30 29 20 4F 70 65 72 61 20 s NT 5.0) Opera 37 2E 31 31 20 20 5B 65 6E 5D 0D 0A 48 6F 73 74 7.11 [en]..Host 3A 20 77 77 77 2E 6F 6D 65 6C 65 74 65 2E 63 6F : www.xxxxx.co 6D 2E 62 72 0D 0A 41 63 63 65 70 74 3A 20 74 65 m.br..Accept: te 78 74 2F 68 74 6D 6C 2C 20 69 6D 61 67 65 2F 70 xt/html, image/p 6E 67 2C 20 69 6D 61 67 65 2F 6A 70 65 67 2C 20 ng, image/jpeg, 69 6D 61 67 65 2F 67 69 66 2C 20 69 6D 61 67 65 image/gif, image 2F 78 2D 78 62 69 74 6D 61 70 2C 20 2A 2F 2A 3B /x-xbitmap, */*; 71 3D 30 2E 31 0D 0A 41 63 63 65 70 74 2D 4C 61 q=0.1..Accept-La ...

Añadiendo la opción -e, snort nos mostrará información más detallada. Nos mostrará las cabeceras a nivel de enlace.

PACKET LOGGER

Con estas opciones y dependiendo del tráfico en nuestra red, veremos gran cantidad de

información pasar por nuestra pantalla, con lo cual sería interesante registrar, guardar estos datos a disco para su posterior estudio. Entraríamos entonces en snort como packet logger o registro de paquetes.

C:\Snort20\bin>snort -dev -l ./log

La opción -l indica a snort que debe guardar los logs en un directorio determinado, Dentro de la carpeta log se creará una estructura de directorios donde se archivarán los logs.

Podemos indicar la ip de la red a registrar ( -h ) y que el formato de los logs sea en modo binario ( -b ), es decir, el modo que entiende TCPDump o Windump, para estudiar más a fondo con los potentes filtros de estos programas los logs de snort. La salida del logs en el caso de la opción de salida binaria ya no será una estructura de directorios, si no, un sólo archivo.

C:\Snort20\bin>snort -vde -l ./log -h 192.168.4.0/24 Running in packet logging mode

Log directory = ./log

C:\Snort20\bin>snort -l ./log -b Running in packet logging mode Log directory = ./log

Usando la opción -b no hará falta indicarle IP alguna de nuestra red ( -h ). Guardará todo en un mismo archivo y recogerá datos de toda nuestra red. Tampoco serán necesarias las opciones -de y por supuesto, tampoco la opción -v.

El archivo generado por snort en modo binario también podemos leerlo con este usando la opción

-r nombrearchivo.log.

Otra opción a toma en cuenta es -i para indicar a snort que interface de red usar en el caso de que tengamos dos o más. Se hace de distinta forma dependiendo si usamos snort para Win32 o para Linux/UNIX. Para averiguar las interfaces de que disponemos, en Win32 usaremos la opción -W.

(8)

C:\Snort20\bin>snort -vde -i # snort -vde -i eth0

C:\Snort20\bin>snort -W

ALERTAS

Snort genera varios tipos de alertas

Fast: El modo Alerta Rápida nos devolverá información sobre: tiempo, mensaje de la alerta, clasificación, prioridad de la alerta, IP y puerto de origen y destino. Formato ASCII.

snort -A fast -dev -l ./log -h 192.168.4.0/24 -c /etc/snort.conf

09/19-19:06:37.421286 [**] [1:620:2] SCAN Proxy (8080) attempt [**] [Classification: Attempted Information Leak] [Priority: 2] …

{TCP} 192.168.4.3:1382 -> 192.168.4.15:8080

Full: El modo de Alerta Completa nos devolverá información sobre: tiempo, mensaje de la alerta, clasificación, prioridad de la alerta, IP y puerto de origen/destino e información completa de las cabeceras de los paquetes registrados. Formato ASCII.

snort -A full -dev -l ./log -h 192.168.4.0/24 -c /etc/snort.conf [**] [1:620:2] SCAN Proxy (8080) attempt [**]

[Classification: Attempted Information Leak] [Priority: 2]

09/19-14:53:38.481065 192.168.4.3:3159 -> 192.168.4.15:8080 TCP TTL:128 TOS:0×0 ID:39918 IpLen:20 DgmLen:48 DF ******S* Seq: 0xE87CBBAD Ack: 0×0 Win: 0×4000 TcpLen: 28 TCP Options (4) => MSS: 1456 NOP NOP SackOK

Información de la cabecera del paquete:

TCP TTL:128 TOS:0×0 ID:39918 IpLen:20 DgmLen:48 DF ******S* Seq: 0xE87CBBAD Ack: 0×0 Win: 0×4000 TcpLen: 28 TCP Options (4) => MSS: 1456 NOP NOP SackOK

Console: El modo de Alerta por Consola como su nombre lo indica nos muestra directamente las alertas en la consola donde se encuentre activo snort, Muestra la misma información que el tipo de alerta fast

(9)

TCPdump: nos devuelve información de las alertas en formato binario. De esta forma Snort se ejecuta más rápido. Además, con el formato binario tcpdump, podemos realizar un análisis más pausado y profundo con herramientas como Wireshark. Este tipo de alerta se activa de la forma output log_tcpdump: tcpdump.log.

Unified: Los logs se registran en modo binario. Snort de ejecuta de forma más rápida. Se usa generalmente para la exportación de los datos a otros programas. Este tipo de alerta se activa de la forma -b.

MODOS DE ALERTA

Snort tiene 3 modos de alerta. Por defecto en formato pcap, ascii y none .Tanto el formato ascii como pcap son enviados y guardados por Snort en la carpeta especificada con el comando –l

Formato pcap:

Puede ser interpretado por analizadores tales como Windump/Tcpdump o Wireshark para su mejor comprensión y análisis.

Desde Wireshark tan solo tendremos que ir a File > Open y abrir el archivo pcapdel volcado de la alerta.

(10)

Formato ascii:

Es el formato antiguo de logging y bastante interesante ya que diferencia el volcado de las alertas atendiendo a las direcciones IP causantes de dichas alertas. Se establece entonces una estructura de directorios o carpetas en/log con las direcciones IP:

Dentro de cada carpeta tenemos los volcados de las alertas correspondientes en formato ascii con todo el contenido de los paquetes:

Cualquiera de estos archivos se abre con el Bloc de notas, Notepad o similar. Los tres modos de alertas los podemos establecer con -K

-K pcap (por defecto)

-K ascii

 -K none

FORMATOS DE ALERTAS

Si activamos la salida de las alertas en modo Fasty abrimos el archivo alerts.ids tenemos:

03/02-11:04:35.256648 marca de tiempo

1:382:7 numeración asociada a la descripción de la alerta

ICMP PING Windows nombre dela alerta

Classifications: Misc activity clasificación de la alerta contenida en el archivo

(11)

Priority: 3 prioridad de la alerta

ICMP protocolo asociado a la generación de la alerta

192.168.1.5 origen que genera la alerta

192.168.1.239 destino de quien genera la alerta Para elmodo Full:

1:382:7 numeración asociada a la descripción de la alerta

ICMP PING Windows nombre de la alerta

Classifications: Misc Activity clasificación de la alerta contenida en el archivo classification.config.

Priority: 3 prioridad de la alerta

Esta parte que viene a continuación correspondería con Frame Wireshark de que nos muestra información completa de la trama capturada. Tamaño total, etc. y Ethernet.

03/02-11:06:05.314380 marca de tiempo

0:4:75:ED:89:DF -> 0:15:C5:89:85:5B direcciones físicas MAC de origen y destino

type:0×800 corresponde a Type IP

len:0x4A corresponde a Frame Length. Tamaño del frame o paquete (74 bytes)

Esta parte corresponde a Internet Protocol (IP) e Internet Control Message Protocol (ICMP) con información de los campos de las cabeceras:

192.168.1.5 -> 192.168.1.239 origen y destino

ICMP protocolo

TTL:128 tiempo de vida

TOS:0×0 tipo de servicio

ID:56307 Identificador de sesión

IpLen:20 corresponde con la cabecera IPTamaño de la cabecera o Header Length (20 bytes).

DgmLen:60 corresponde con total Length (60)

Type:8 Code:0 ID:1280 Seq:12288 ECHO corresponde a ICMP, tipo código, identificador y se trata de un Ping Echo request

Paralelamente, e independientemente de modo de alerta, y si hemos activado la opción -K ascii,

(12)

El paquete tal como lo capturaríamos con TCPdump, Windump, etc. con la salida hexadecimal de la cabecera ICMP.

Para el modo tcpdump, tendremos en nuestra carpeta una serie de archivos del tipo

tcpdump.log.1267531201. Si lo abrimos con Wireshark tendremos:

CONCLUSION

Snort es un gran detector de intrusiones que configurado, es una excelente herramienta para proteger nuestros sistemas informáticos, sus diferentes tipos de alerta permiten que un usuario que no conozca demasiado del tema pueda entender claramente cuando el sistema está recibiendo un ataque, por lo que se puede usar para entender el comportamiento de un atacante si es posible también predecir su siguiente movimiento,

(13)

REFERENCIAS

http://www.snort.org/

http://es.wikipedia.org/wiki/IDS

http://es.wikipedia.org/wiki/SNORT

Referencias

Documento similar