Sitio para la difusión de conocimiento informático. 

Twitter RSS

Integrando Snort a Prelude SIEM (debian/ubuntu)

Integrando Snort a Prelude SIEM (debian/ubuntu)

La versión de Snort 2.9.1.2 es la última versión de Snort que podemos compilar con la opción “–enable-prelude”, con el fin de habilitar el plugin que integra nativamente Snort a Prelude-Manager. En esta publicación mostraremos como integrar las siguientes versiónes de Snort a Prelude-Manager utilizando el plugin de syslog y csv de Snort para que la herramienta SIM de prelude, Prelude-lml, pueda analizar dichos archivos y enviar los eventos a Prelude-Manager.

1) Instalar Snort
2) Configurar Snort
3) Instalar Prelude-lml
4) Configurar Prelude-lml
5) Configurar Snort para que actualice las reglas automáticamente

 

1) Instalar Snort

– Nos creamos un usuario en www.snort.org para tener nuestro OinkCode (lo veremos en nuestro perfil de Snort una vez creado el usuario), descargar snort y sus reglas. Actualmente la versión estable es la 2.9.7.2.

– Resolvemos dependencias:
apt-get install libpcap-dev
apt-get install libpcre3 libpcre3-dev libpcre++-dev libpcre++0
apt-get install libdumbnet1 libdumbnet-dev
apt-get install libdaq-dev libdaq0
apt-get install liblz-dev liblzma5
apt-get install liblzma5 liblzma-dev
apt-get install flex
apt-get install bison

– Extraemos y compilamos snort:
tar -xvzf snort-2.9.7.2.tar.gz
cd snort-2.9.7.2/
./configure
Si tenemos todas las dependencias resueltas procedemos a la instalación:
make & make install

– Creamos los siguientes directorios de Snort:
mkdir /usr/local/etc/snort, mkdir /var/log/snort, mkdir /usr/local/lib/snort_dynamicrules

– Copiamos los archivos del tar.gz que están dentro de “etc/” a la carpeta “/usr/local/etc/snort”, y eliminamos los archivos con nombres “Makefile”.

 

2) Configurar Snort

– Editamos el archivo de configuración /usr/local/etc/snort/snort.conf, y modificamos los siguientes parámetros para habilitar todos los preprocesadores y reglas:
ipvar HOME_NET 192.168.0.0/24 <— Acá configuramos nuestra de red.
var RULE_PATH /usr/local/etc/snort/rules
var SO_RULE_PATH /usr/local/etc/snort/so_rules
var PREPROC_RULE_PATH /usr/local/etc/snort/preproc_rules
var WHITE_LIST_PATH /usr/local/etc/snort/rules
var BLACK_LIST_PATH /usr/local/etc/snort/rules
descomentamos  preprocessor sfportscan
output alert_csv: /var/log/snort/alert.csv default 1G
output alert_syslog: log_local7 LOG_NOTICE

descomentamos:
include $PREPROC_RULE_PATH/preprocessor.rules
include $PREPROC_RULE_PATH/decoder.rules
include $PREPROC_RULE_PATH/sensitive-data.rules
y descomentamos todas las “dynamic library rules”.

– Dscargamos las reglas desde snort.org y las descomprimimos en el directorio /usr/local/etc/snort:
La última versión de reglas al momento de escribir esta publicación eran las siguientes: snortrules-snapshot-2972.tar.gz
tar -xvzf snortrules-snapshot-2972.tar.gz
cd snortrules-snapshot-2972/
mv rules /usr/local/etc/snort/
mv so_rules /urs/local/etc/snort/
mv preproc_rules /usr/local/etc/snort

– Creamos un simple script de inicio de Snort:
creamos el archivo  /etc/init.d/snort, le damos permisos de ejecución: chmod 755 /etc/init.d/snort, lo agregamos al incio del sistema Lo agregamos al inicio del sistema: update-rc.d snort enable, y copiamos el siguiente contenido:

#! /bin/sh

### BEGIN INIT INFO
# Provides: snort
# Required-Start: $remote_fs $syslog
# Required-Stop: $remote_fs $syslog
# Default-Start: 3 4 5
# Default-Stop:
# Short-Description: Snort IDS – www.snort.irg
### END INIT INFO

case “$1” in
start)
# Reemplazamos la interface eth0 por la intefrace que
# recibira el trafico copidao desde el perto SPAN del switch:
/usr/local/bin/snort -c /usr/local/etc/snort/snort.conf -i eth0
;;
stop)
pc -C snort -o pid= | xargs kill
;;
restart)
/etc/init.d/snort stop
sleep 1
/etc/init.d/snort start
;;
*)
echo “Usage: /etc/init.d/snort {start|stop|restart}”
exit 1
;;
esac
exit 0

– Iniciamos snort: /etc/init.d/snort start

 

3) Instalar Prelude-lml

– Instalamos Prelude-lml desde apt-get: apt-get install prelude-lml

-Editamos el archivo de configuración “prelude-lml.conf” y agregamos lo siguiente:
[format=snort-csv]
time-format = “%m/%d-%H:%M:%S”
prefix-regex = “^(?P<timestamp>.{15}).(\d+) ,?”
file = /var/log/snort/alert.csv

– Editamos el archivo “prelude-lml/rules/pcre.rules” y agregamos los siguiente:
regex=snort:;                           include = snort-syslog.rules;
regex=( ,+);                            include = snort-csv.rules;

– Descargamos las reglas y las copiamos al directorio /etc/prelude-lml/rules/:
cd /etc/prelude-lml/rules
wget http://www.seguridadx.com/archivos/snort-csv.rules
wget http://www.seguridadx.com/archivos/snort-syslog.rules

 

4) Configurar Prelude-lml

– Integramos Prelude-lml a nuestro Prelude-Manager:
1) Abrimos una ventana en la consola Prelude y ejecutamos el comando “prelude-admin registration-server prelude-manager”
2) En otra ventana en el IDS y ejecutamos: “prelude-admin register “snort-ids” “idmef:w” IP_DE_Prelude-Manager –uid 0 –gid 0″
3) copiamos la clave del paso en uno en la ventana del paso dos, y por último aceptamos dando “y” en la ventana del paso 1.
4) Editamos el archivo de configuración de prelude-lml.conf y descomentamos la línea que dice [prelude] y luego configuramos la IP de nuestra consola Prleude Manager.
5) Iniciamos Prelude-lml: /etc/init.d/prelude-lml start
6) Lo registramos a los inicios del sistema: update-rc.d prelude-lml enable

 

5) Configurar Snort para que actualice las reglas automáticamente

Creamos un archivo en la carpeta /usr/local/snort/etc/ con el siguiente contenído y le damos permisos de ejecución:
– vi snort-update.sh
– chmor 755 snort-update.sh
– crontab -e, y agregamos: 0 12 * * * /usr/local/etc/snort/snort-update.sh
– Scritp snort-update.sh:
#!/bin/bash
# Script para descargar firmas de SNORT

if [ -d /tmp/snort-update ]; then
cd /tmp/snort-update
else
mkdir /tmp/snort-update
cd /tmp/snort-update
fi

# Debemos obtener nuestro OINKCODE
# correspondiente anuestro usuario creado
# en www.snort.org:
ONIKCODE=1b1cf0d7e995935b5a1667a5bbfb230492e44117

# Directorios de reglas:
RULEDIR=”/usr/local/etc/snort/rules”
SORULEDIR=”/usr/local/etc/snort/rules/so_rules”
PREPROCDIR=”/usr/local/etc/snort/rules/preproc_rules”

# WGET:
WGET=$(whereis wget | awk ‘{ print $2 }’)

$WGET https://www.snort.org/rules/snortrules-snapshot-$VER.tar.gz?oinkcode=1b1cf0d7e995935b5a1667a5bbfb230492e44117 -O snortrules-snapshot-new.tar.gz
$WGET https://www.snort.org/downloads/community/community-rules.tar.gz -O snortrules-community-new.tar.gz
tar -xvzf snortrules-snapshot-new.tar.gz
tar -xvzf snortrules-community-new.tar.gz
if [ -d rules ]; then
cp -r rules/* $RULEDIR
fi
if [ -d so_rules ]; then
cp -r so_rules/* $SORULEDIR
fi
if [ -d preproc_rules ]; then
cp -r preproc_rules/* $PREPROCDIR
fi
if [ -d community-rules ]; then
cp -r community-rules/community.rules $RULEDIR
fi

# Habilitación automática de reglas. Ej:
sed -i ‘s/^# alert/alert/g’ $RULEDIR/backdoor.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/botnet-cnc.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/browser-webkit.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/ddos.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/exploit-kit.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/exploit.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/indicator-compromise.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/indicator-scan.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/malware-backdoor.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/malware-cnc.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/malware-other.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/malware-tools.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/p2p.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/scan.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/spyware-put.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/virus.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/web-activex.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/web-attacks.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/web-cgi.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/web-iis.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/web-php.rules
sed -i ‘s/^# alert/alert/g’ $RULEDIR/browser-plugins.rules
/etc/init.d/snort stop
/etc/init.d/snort start
rm -r /tmp/snort-update/etc
rm -r /tmp/snort-update/rules
rm -r /tmp/snort-update/so_rules
rm -r /tmp/snort-update/preproc_rules
rm -r /tmp/snort-update/community-rules
rm snortrules-snapshot-new.tar.gz
rm snortrules-community-new.tar.gz

 

 
Home Linux OS Prelude SIEM Integrando Snort a Prelude SIEM (debian/ubuntu)