Barnyard2: Unificar alertas de Snort en MySQL

Barnyard2 podemos decir que es un intérprete para las alertas que va recopilando snort, nos la pone en un lenguaje legible y almacenada en una base de datos MySQL. Desde la base de datos y con SQL podemos hacer diferentes estudios de las alertas que se tienen tanto en días, horas, meses o años. Vamos a proceder a sus instalación:

Primero instalamos las dependencias de Barnyard2:

sudo apt-get install -y mysql-server libmysqlclient-dev mysql-client autoconf libtool

En la configuración de MySQL nos pedirá una contraseña, en mi caso le he puesto de contraseña ‘root’ como alarde de imaginación. Crearemos una cuenta de usuario bajo el nombre de snort y la misma contraseña que el anterior.

Ahora tenemos que indicarle a Snort que nos saque el log en binario de manera de nuestro programa sea capaz de procesarlo e introducirlo en la base de datos.

sudo nano /etc/snort/snort.conf
#sobre la linea 521 ponemos:
output unified2: filename snort.u2, limit 128

Olvidamos el trabajar con vlan o mpls que entran en conflicto con ciertos módulos de salida de Barnyard2.

Descargamos e instalamos Barynard2:

cd usr/src/snort_src
wget https://github.com/firnsy/barnyard2/archive/master.tar.gz -O barnyard2-Master.tar.gz
tar zxvf barnyard2-Master.tar.gz
cd barnyard2-master
autoreconf -fvi -I ./m4

Ahora vamos a crear un enlace simbólico hacia la librería dnet.h que nuestro programa se la espera con un nombre diferentes y nos puede causar problemas:

sudo ln -s /usr/include/dumbnet.h /usr/include/dnet.h
sudo ldconfig

Ejecutamos el siguiente comando:

./configure --with-mysql --with-mysql-libraries=/usr/lib/x86_64-linux-gnu

Completamos la instalación de Barnyard2:

make
sudo make install

Comprobamos si está bien instalado con:

barnyard2 -V
#Y nos devolverá eso:
______
/ ,,_ \
|o" )~|
+ '''' +
-*> Barnyard2 <*-
Version 2.1.14 (Build 337)
By Ian Firns (SecurixLive): http://www.securixlive.com/
(C) Copyright 2008-2013 Ian Firns <firnsy@securixlive.com>

Creamos ficheros y carpetas que necesita para funcionar:

sudo cp /usr/src/snort_src/barnyard2-master/etc/barnyard2.conf /etc/snort/
sudo mkdir /var/log/barnyard2
sudo chown snort.snort /var/log/barnyard2
sudo touch /var/log/snort/barnyard2.waldo
sudo chown snort.snort /var/log/snort/barnyard2.waldo

Como hemos estado diciendo, guardamos las alertas en mysql, para ello debemos de crear la base de datos:

mysql -u root -p
create database snort;
use snort;
source /usr/src/snort_src/barnyard2-master/schemas/create_mysql
create user 'snort'@'localhost' identified by 'root';
grant create, insert, select, delete, update on snort.* to 'snort'@'localhost';
exit

Vamos al fichero de configuración de Barnyard2 a decirle donde tiene que almacenar nuestras alertas, para esto nos vamos al final de fichero y escribimos esto:

output database: log, mysql, user=snort password=root dbname=snort host=localhost sensor name=sensor01

Como la contraseña la tenemos guardada en claro, tenemos que prevenir que otros usuarios puedan leerla, para esto:

sudo chmod o-r /etc/snort/barnyard2.conf

Una vez teniendo Snort corriendo en modo NIDS, vamos a poner a funcionar ahora a Barnyard2 para ello :

sudo barnyard2 -c /etc/snort/barnyard2.conf -d /var/log/snort -f snort.u2 -w /var/log/snort/barnyard2.waldo -g snort -u snort

Explicamos las opciones:

  • -c : El path del fichero de configuración
  • -d: Donde tiene que mirar las salidas de Snort
  • -f: El nombre del fichero que tiene que buscar
  • -w: El sitio del fichero waldo (bookmark file)
  • -u: Usuario con el que se ejecuta
  • -g: Grupo con el que se ejecuta

Una vez se ejecuten un par de alarmas por Snort, miramos en nuestra base de datos y veremos como las alertas se han guardado a la perfección:

mysql -u snort -p -D snort -e "select count(*) from event"

Y listo podemos verlas por tiempo o el id de la alertas que la ha generado.

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google photo

Estás comentando usando tu cuenta de Google. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s