PDF de programación - Introducción a conceptos de IDS y técnicas avanzadas con Snort

Imágen de pdf Introducción a conceptos de IDS y técnicas avanzadas con Snort

Introducción a conceptos de IDS y técnicas avanzadas con Snortgráfica de visualizaciones

Actualizado el 7 de Diciembre del 2019 (Publicado el 7 de Junio del 2019)
305 visualizaciones desde el 7 de Junio del 2019
133,7 KB
22 paginas
Creado hace 14a (23/06/2005)
Introducción a conceptos de IDS
y técnicas avanzadas con Snort

Alejandro Gramajo
Baicom Networks

23 de junio de 2005

“Your eyes can deceive you. Don’t trust them!
Stretch out with your feelings...”
Obiwan Kenobi

Índice

1. Introducción a IDS

1.1. Tipos de IDS . . . . . . . . . . . . . . . . . . . . . . . . . . .
1.2. Técnicas de detección . . . . . . . . . . . . . . . . . . . . . .
1.3. Problemas con los IDS . . . . . . . . . . . . . . . . . . . . . .
1.4. Resumiendo . . . . . . . . . . . . . . . . . . . . . . . . . . . .

2. Snort

2.1. Open source . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.2. Add-ons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
2.3. Mejorando la performance . . . . . . . . . . . . . . . . . . . .
2.3.1. MMAPed pcap . . . . . . . . . . . . . . . . . . . . . .
2.3.2. Barnyard . . . . . . . . . . . . . . . . . . . . . . . . .
2.4. Software contrib . . . . . . . . . . . . . . . . . . . . . . . . .

3. Creando nuevas reglas

3.1. Examinando tráfico . . . . . . . . . . . . . . . . . . . . . . . .
3.2. Event thresholding . . . . . . . . . . . . . . . . . . . . . . . .

4. Modificando y rechazando paquetes

4.1. Ejemplo básico de Snort INLINE, para reescribir el payload .
4.2. Varios ejemplos mas avanzados . . . . . . . . . . . . . . . . .
4.2.1. Cambiando consultas MySQL . . . . . . . . . . . . . .
4.2.2. Rechazando consultas MySQL . . . . . . . . . . . . .
4.2.3. Evitando un buffer overflow . . . . . . . . . . . . . . .
4.2.4. Detectando un SQL injection . . . . . . . . . . . . . .

1
1
2
2
3

3
3
5
5
5
6
6

7
10
10

10
11
12
12
13
15
16

1

4.2.5. Detectando un XSS . . . . . . . . . . . . . . . . . . .
4.2.6. Devolviendo un mensaje “http” al cliente . . . . . . .

5. Para seguir pensando

5.1. Cambio de licencia para las reglas
. . . . . . . . . . . . . . .
5.2. Futuro: Detectando 0 days? . . . . . . . . . . . . . . . . . . .

6. Apéndice A

6.1. Compilando Snort usando Debian 3.0 (stable) . . . . . . . . .

16
16

17
17
17

17
17

1.

Introducción a IDS

La detección de intrusos es el proceso de monitorear computadoras o
redes, para detectar entradas no autorizadas, actividad o modificación de
archivos.

Un IDS puede también ser usado para monitorear trafico, por ej. así pue-
de detectar si un sistema esta siendo un objetivo de un ataque de red como
un DoS (denial of service).

1.1. Tipos de IDS

Existen dos grupos importantes en los tipos de IDS:

Host IDS
Orientados a examinar los datos en computadoras individuales.

Network IDS
Examinan el intercambio de datos entre computadoras. Esos paquetes
son examinados y a veces comparados contra datos empíricos para
verificar su naturaleza: mala o buena.
Como se tiende a examinar varios puntos de la red es común encon-
trarlos de forma distribuida en la red.

Hybrid IDS
Una mezcla de los dos tipos anteriores.

1.2. Técnicas de detección

Existen varios técnicas y tipos de detección para los IDS, estos son los

mas usados y destacados:

Anomalía (anomaly)
Sirve para descubrir patrones anómalos comparándolos con los consi-
derados normales.

2

Especial interés para aplicación de algoritmos genéticos, redes neuro-
nales y estadística (data mining en general [1])
Se puede separar también en “Protocol Modelling”, que buscan ano-
malías en los protocolos o configuraciones poco comunes.

Firma (signature)
Comparación de firmas almacenadas contra una porción de un paquete
de red.
Reducción del análisis, subconjunto del total.

Objetivo (target)
Generalmente a nivel de sistema operativo, buscan modificaciones en
archivos específicos, controles de accesos, uso de recursos. (HIDS en su
mayoria)

1.3. Problemas con los IDS

Cuando usamos los IDS nos encontramos con dos problemas muy impor-

tantes:

Falsos positivos
Un falso positivo es un termino aplicado a un fallo de detección en
un sistema de alertas. Sucede cuando se detecta la presencia de una
intrusión en el sistema que realmente no existe.
Principalmente se pueden dividir en 5 categorías (existen mas):

• Reactionary traffic alarms

Se detecta un comportamiento sospechoso como consecuencia de
trafico generado anteriormente (generalmente no malicioso). Ej.
ICMP network unreachable.

• Equipment-related alarms

Se detectan paquetes dentro del trafico de la red que identifica
como no “usuales”. Ej. balanceadores de carga.

• Protocol violations

Se producen por software mal programado (bugs) o que imple-
mentan de forma incorrecta o anticuada algunas partes de los
protocolos de Internet.
• Non malicious alarms

Alarmas producidas al detectar rastros de comportamientos ma-
liciosos pero que en este contexto determinado no lo son.
Ej. publicamos un shellcode en nuestra pagina web :-)

• True false positives

Toda alarma que no se encuentre en las anteriores categorías.

3

Falsos negativos
Un falso negativo es un termino que hace referencia a un fallo en el
sistema de alerta.
Sucede cuando una intrusión existe en nuestro IDS y es “permitida”
(ignorada o no detectada) por el sistema de alerta.
Ej. 0 days :-(

1.4. Resumiendo

Un sistema de intrusos para que sea útil y confiable debe producir los

mínimos falsos positivos posibles y “ningún” falso negativo.

2. Snort

2.1. Open source

Snort es rápido, flexible y un NIDS open-source. Empezó a fines de 1998

como un sniffer. Con licencia GPL version 2. 1

Por default utiliza técnicas de detección de firmas y anomalías no es-

tadística.

Puede correr en varios modos de ejecución:

Sniffer (similar al tcpdump [11])

Packet Logger

NIDS

IPS con FlexResp o Inline
Requiere libnet [13]. Para Inline se necesita libipq [12].

El “engine” del Snort esta dividido en componentes:

Decodificador del paquete (Packet Decoder)
Toma los datos de libpcap [11] o libipq.

Preprocesadores (Preprocessors o Input Plugins)

Motor de detección (Detection Engine)
Comparación contra firmas

Logging y sistema de alerta (Logging and Alerting System)

Plugins de salida (Output Plugins)

1puede cambiar a una diferente.

4

internet --> packet --> preprocessors --> detection --> logging

decoder

pcap / ipq

engine

alert

|
v

|
v

drop

output plugins

Estos componentes trabajan juntos para detectar ataques particulares y

generar una salida en algún formato requerido.

El “decodificador de paquete”, toma los paquetes de diferentes tipos de
interfaces de red, y prepara el paquete para ser “preprocesado” o enviado al
motor de detección.

Los “preprocesadores” son componentes o plugins que pueden ser usados
con Snort para arreglar, rearmar o modificar datos, antes que el “motor de
detección” haga alguna operación para encontrar si el paquete esta siendo
enviado por un intruso.

Algunos preprocesadores realizan detección buscando anomalías en los
headers de los paquetes y generando alertas. Son muy importantes porque
preparan los datos para ser analizados contra reglas en el motor de detección.
El “motor de detección” es la parte mas importante de Snort, es res-
ponsable de detectar si alguna actividad de intrusión existe en un paquete.
El motor utiliza las reglas para este propósito. Las reglas (o cadenas) son
macheadas contra todos los paquetes. Si un paquete machea una regla, la
acción descripta en la misma es tomada.

Dependiendo que detecte el motor dentro de un paquete, el “logging y
sistema de alerta”, se encarga de loguear o generar una alerta. Los logs son
almacenados en archivos de texto, archivos con formato “tcpdump” u otro
formato.

Los “plugins de salida” toman la salida del “sistema de alerta” y per-
miten almacenarlas en distintos formatos o reaccionar antes el mismo. Por
ejemplo:. enviar emails, traps SNMP, syslog, insertar en una base de datos,
etc. 2

Snort nos permite extenderlo y agregarle nuevas funciones. Posee mucha
facilidad para programar nuevos add-ons, ya sean preprocesadores o output
plugins.

2.2. Add-ons

Preprocesadores Existen mas de 14 pre-procesadores. Los mas desta-
cados son:

• port scanning (flow-portscan y sfportscan)

2SnortSam es un plug-in de salida y nos permite bloquear conexiones en router y

firewalls.

5

• frag2 (ip packet defragmentation)
• stream4 (tcp stream reassembly y stateful inspection)
• http-inspect
• arp-spoof

Estos no están integrados por default el source del Snort:

• spp-fnord (Multi-architecture mutated NOP sled detector)
• Spade [19] (Statistical Packet Anomaly Detection Engine)

Output plugins

• Database (mysql, postgres, etc)
• Syslog
• XML
• Traps SNMP
• Mensajes SMB

2.3. Mejorando la performance

Cuando analizamos tráfico en tiempo real, necesitamos mas recursos de
de “cpu” y “memoria”. Obviamente depende como almacenamos las alertas
la entrada y salida “io” de “disco” también puede ser un cuello de botella.
La creación de reglas óptimas es importante, para no demorar al motor
de detección. En la sección 3 “Creando nuevas reglas” se dan tips para
aumentar la eficacia y velocidad de las reglas.

Acá hay un detalle de dos formas de aumentar la performance de Snort.

2.3.1. MMAPed pcap

Es una reimplementación de la libpcap [9], agregándole un cambio, en
vez de copiar los paquetes de la “kernel memory” a‘ “userland memory” la
libpcap puede encolar los paquetes en un “shared buffer” que el Snort puede
leer directamente.

Este cambio aumenta la velocidad del Snort, limitando el numero de
veces que un paquete es copiado antes que el Snort pueda realizar una de-
tección sobre el. (packet decoder)

El buffer en ethernet puede tener hasta 52Mbytes.

6

2.3.2. Barnyard

El método de output plugin mas rápido es el “unified”, este loguea even-
tos en formato binario y permite guardar dos tipos de archivos, “alert” y
“log”. [10]

El primero tiene los datos del evento y el segundo el paquete en forma

detallada.

Para recolectar esta información, se puede utilizar el Barnyard [10], es
daemon que se encarga de tomar la información y enviarla a una base de
datos, archivo, etc.

2.4. Software contrib

Existen varios software para administrar los IDS, mi
  • Links de descarga
http://lwp-l.com/pdf16064

Comentarios de: Introducción a conceptos de IDS y técnicas avanzadas con Snort (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios
Es necesario revisar y aceptar las políticas de privacidad