martes, 27 de mayo de 2008

Fallo en seguridad en SNORT

Salto de restricciones a través de valores TTL en Snort


Se ha descubierto un fallo de seguridad en Snort que podría permitir a
un atacante remoto saltar restricciones de seguridad.

Snort es uno de los IDS (Sistema de Detección de Intrusiones) más
extendidos. Distribuido de forma gratuita como Open Source, Snort puede
detectar muchos de los patrones de ataque conocidos basándose en el
análisis de los paquetes de red según unas bases de datos de firmas,
además de reglas genéricas. Habitualmente la función de estos detectores
es la de alertar sobre actividades sospechosas a través de cualquier
mecanismo, aunque en ocasiones puede usarse para lanzar medidas
destinadas a mitigar de forma automática el posible problema descubierto
por el sensor.

El fallo reside en el reensamblado de paquetes IP fragmentados. Cuando
Snort recibe paquetes fragmentados compara sus valores TTL. Snort tiene
un valor predefinido para la diferencia de valores TTL entre paquetes,
si el valor de la diferencia entre el primero de ellos y el resto es
mayor que este valor los descartará y no aplicará ningún filtro o examen
sobre ellos. Un atacante remoto podría aprovechar este fallo para saltar
restricciones de seguridad modificando los valores TTL de los paquetes
IP.

El problema se ha confirmado en Snort 2.8 y 2.6. Snort 2.4 no es
vulnerable. Como contramedida en el archivo de configuración snort.conf,
se puede establecer el valor ttl_limit a 255 con la siguiente línea:
preprocessor frag3_engine: ttl_limit 255

Además el fallo queda corregido en la versión 2.8.1 disponible en el
repositorio:
cvs.snort.org

mas informacion en:
http://labs.idefense.com/intelligence/vulnerabilities/display.php?id=701

lunes, 19 de mayo de 2008

SNORT con base de datos en MYSQL

MYSQL Base de datos

ahora pondremos el snort a funcionar con un base de datos en mysql.

primero instalaremos el paquete snort-mysql

#apt-get install snort-mysql


y pasamos a la configuracion de mysql

#mysql
>create user snort identified by 'xxxx'(password);

>grant all on snort.* to snort@localhost identified by 'xxxx'(password);

>flush privileges


La base de datos llamada snort se crea por defecto con la instalcion el paquete snort-mysql.
En los comandos pasados lo que hicimos fue primero crear el usuario snort , luego garantizarle al usuario snort permiso sobre todas la tablas almacenadas en el mysql .

ahora en el archivo snort.conf descomentaremos la linea que habias comentado anteriormente

output database: log, mysql, user=snort password=sena dbname=snort host=localhost


cambiando los parametros poniendo el nombre de la base de datos el nombre de del usuario y el password

#snort -c snort/snort.conf

luego con este comando iniciamos el snort y si todo esta bien el snort cargara sin ningun prolema.

jueves, 15 de mayo de 2008

SNORT Configuracion y Analisis de Ataques

En esta entrada vamos a explicar como fue la instalacion, configuracion y puesta en funcionamiento de snort.

primero instalamos el snort

#apt-get install snort

en la instalacion nos hara unas preguntas sobre el rango de direcciones que queremos analizar, le damos la opcion any que analize todas las direcciones ip de todos los rangos internos y externos.

luego pasamos a la configuracion que por el momento es algo muy basico, nos vamos al directorio #cd /etc/snort y este sera el archivo de configuracion del snort hay varias opciones como snort.debian.conf

DEBIAN_SNORT_STARTUP="boot"
DEBIAN_SNORT_HOME_NET="any"
DEBIAN_SNORT_OPTIONS=""
DEBIAN_SNORT_INTERFACE="eth0"
DEBIAN_SNORT_SEND_STATS="true"
DEBIAN_SNORT_STATS_RCPT="root"
DEBIAN_SNORT_STATS_THRESHOLD="1"


que seria una configuracion muy basica escuchara en la eth0 y analizara los paquetes desde cualquier destino

Pero ahora nos concentraremos en el snort.conf que es el archivo de configuracion de snort
# output database: log, mysql, user=root password=test dbname=db host=localhost

comentamos esta linea para decirle que no use una base de datos mysql sino que las alertas las genere en el directorio por defecto /var/log/snort/alert

#snort -c /etc/snort/snort.conf &

con este comando inicamos el snort manualmete y nos saldran todas las opciones que se correran con el snort y en caso de problemas los errores que tengas.Esta seria la configuracion basica del snort y haora vamos a hacer unas pruebas para probar el funcionamiento del snort ,haciendo un nmap desde un equipo en esta red y y el snort nos debe generan una alerta sobre este posible ataque.

como se puede ver en la imagen las alertas se generaron por que se hizo un analisis de puertos (NMAP) y como el snort toma esto como un posible ataque desde la direccion 10.3.16.107 que es la ip desde donde se hizo el presunto ataque, se generaron las alertas que nos demuestarn que nuestro snort tiene un buen funcionamiento