jueves, 17 de marzo de 2011
Sagan 0.1.8 con Barnyard2 support en Snorby 2.2.5
Es una herramienta para visualizar los logs en realtime, ademas usa una serie de reglas (tipo snort) para detectar anomalias en la red.
Ademas existen varios front ends para snort que pueden ser usados por sagan como es el Snorby, Base, Sguil, etc .. En este caso vamos a usar Snorby
Vamos con los paquetes necesarios, primero actualizamos
# aptitude update
# aptitude upgrade
Necesitamos el paquete PCRE
aptitude install libpcre3-dev libpcre3
Paquetes opcionales:
Si deseas recibir alertas en tu correo
# aptitude install libesmtp-dev
Si deseas guardar la info en una base de datos mysql
# aptitude install libmysqlclient15-dev
Si deseas usar postgresql
#aptitude install postgresql-server-dev-8.4
Security Information Management System
#aptitude install libprelude-dev
Log normalizing library
#aptitude install liblognorm-dev
Para este caso vamos a usar el mysql
*************
Bajamos el sagan http://sagan.softwink.com/download
La version actual es la 0.1.8 con soporte unified2
Compilamos e instalamos
# ./configure --disable-postgresql
# make && make install
Ahora sigue la configuracion del syslog-ng, si no lo tenemos lo instalamos de los repositorios
# aptitude install syslog-ng
Ahora sagan tiene dos formas de tratar los datos entrantes, por medio de FIFO o program mode:
- FIFO (First In/First Out),
Syslog-ng envia los eventos al archivo /var/run/sagan.fifo, de este modo Sagan logra leer este archivo.
Para ello se debe crear el archivo
mkfifo /var/run/sagan.fifo
ls -l /var/run/sagan.fifo
prw------- 1 root root 0 mar 17 17:56 /var/run/sagan.fifo
Debemos modificar el syslog-nd.conf, y añadir las lineas correspondientes segun el archivo ejemplo de la pagina de sagan http://sagan.softwink.com/syslog-ng-fifo.txt
- Program mode
significa que Sagan tomara los eventos via standard input (stdin)
Igualmente reemplazamos el archivo syslog-ng.conf o usamos el dado por la pagina del autor
http://sagan.softwink.com/syslog-ng-program.txt
En mi caso escogo el modo FIFO y renombro el syslog-ng.conf que viene por default y uso el archivo ejemplo syslog-ng.conf de la pagina sagan.
Ahora vamos a modificar el archivo de configuracion sagan.conf, que debe estar en
/usr/local/etc/sagan.conf
Modificamos
sagan_host 192.168.0.2 --> poner la ip de la PC
Si deseamos loggearnos a una base de datos snort;
# [Required if logging to a Snort database]
; sagan_hostname sagan
; sagan_interface syslog
; sagan_filter none
; sagan_detail 1
; maxdb_threads 50
; output database: log, mysql, user=sagan password=secret dbname=snort_db host=192.168.0.1
#Vamos a usar el Unified2 output plugin
output unified2: filename sagan.log, limit 128
En mi caso comente lo siguiente
porque al ejecutar el sagan me salia violacion de segmento:
#normalize: cisco, $RULE_PATH/cisco-normalize.rulebase
#normalize: openssh, $RULE_PATH/openssh-normalize.rulebase
#normalize: smtp, $RULE_PATH/smtp-normalize.rulebase
#normalize: dns, $RULE_PATH/dns-normalize.rulebase
#normalize: imap, $RULE_PATH/imap-normalize.rulebase
Reglas de Sagan
Para poder usar las reglas dadas por sagan hay que descargarlo de:
http://sagan.softwink.com/rules/sagan-rules-current.tar.gz
Y copiamos los archivos a la ruta definida por la variable $RULE_PATH
var RULE_PATH /usr/local/etc/sagan-rules
Creamos la carpeta sagan-rules y copiamos los archivos ahi
Creamos el usuario sagan luego, lo hacemos propietario de los archivo con el comando chown
debian:~# chown -R sagan.sagan /var/log/sagan
debian:~# chown -R sagan.sagan /var/run/sagan
debian:~# chown -R sagan.sagan /var/run/sagan.fifo
Configurando Barnyard2
Copiamos el archivo de ejemplo de la pagina de sagan
https://wiki.softwink.com/bin/view/Main/Barnyard2HowTo
Y modificamos la ultima linea con los datos respectivos de la base de datos.
creamos el archivo
# touch /var/log/barnyard2/barnyard2-sagan.waldo
# chown -R sagan.sagan /var/log/barnyard2/barnyard2-sagan.waldo
Ejecutamos sagan
# /usr/local/bin/sagan
Ejecutamos el Barnyard2
# /usr/local/bin/barnyard2 -c /usr/local/etc/barnyard2.conf -d /var/log/sagan -f sagan.log -w /var/log/barnyard2/barnyard2-sagan.waldo -S /usr/local/etc/sagan-rules/sagan-sid-msg.map -C /usr/local/etc/sagan-rules/classification.config
Si todo sale bien sale un mensaje como este:
Despues de un rato vemos que aparece el sensor y los respectivos eventos
Vamos a la interface del snorby y vemos la aparicion de un sensor mas:
Vemos los eventos de ese sensor
Y los detalles
PD: A veces tenia el problema que al momento de ejecutar el barnyard2 me salia un mensaje como este:
WARNING: Can't extract timestamp extension from 'sagan.log'using base 'sagan.log'
Waiting for new data
WARNING: Can't extract timestamp extension from 'sagan.log'using base 'sagan.log'
Esto sucede porque hay un sagan.log que tiene informacion acerca del funcionamiento de sagan y el unified2 tambien se llama sagan.log.
Para solucionarlo modificamos el archivo sagan.conf en la parte de unified2
output unified2: filename sagan.u2, limit 128
Y el comando quedaria asi:
# /usr/local/bin/barnyard2 -c /usr/local/etc/barnyard2.conf -d /var/log/sagan -f sagan.u2 -w /var/log/barnyard2/barnyard2-sagan.waldo -S /usr/local/etc/sagan-rules/sagan-sid-msg.map -C /usr/local/etc/sagan-rules/classification.config
Ahora si no habria conflictos de ningun tipo
Fuente:
Help from Champ Clark III Sagan's creator
https://wiki.softwink.com/bin/view/Main/SaganHOWTO
http://muchikon.blogspot.com/2010/07/sagan-en-debian.html
Suscribirse a:
Comentarios de la entrada (Atom)
No hay comentarios.:
Publicar un comentario