Snort:Detection analyse:Barnyard
Barnyard
Description
Barnyard est une couche applicative qui exploite les événements générés par Snort au format « unifié ». Barnyard permet de prendre en charge l’inscription des événements en base de données et libère donc des resources à Snort qui peut davantage se concentrer sur la détection des intrusions.
Installation de Barnyard
Pour installer Barnyard, procédez comme suit :
# cd /usr/local/src # wget http://snort.org/dl/barnyard/barnyard-0.2.0.tar.gz # tar xvzf barnyard-0.2.0.tar.gz # cd barnyard-0.2.0 # ./configure --enable-mysql # make # make install # cp /usr/local/src/barnyard-0.2.0/etc/barnyard.conf /etc/snort
Remarque :
Si vous obtenez une erreur du type suivant :
ERROR: unable to find mysqlclient library,
éditez le fichier configure et remplacez la ligne
LIBS="${LIBS} -lz -lssl -lmysqlclient"
par
LIBS="${LIBS} -lmysqlclient".
Modification de paramétrage de Snort (écriture de logs unifiés)
Nous allons maintenant modifier le fichier de configuration de Snort pour qu’il ne génère plus les événements en base de données directement mais sous forme de logs au format unifié.
# vim /etc/snort/snort.conf
Commentez la ligne (en la faisant précéder d’un #)
#output database: log, mysql, user=snort password=snortpassword dbname=snort host=localhost
Et décommentez les 2 lignes suivantes (supprimer le # qui precede ces 2 lignes) :
output alert_unified: filename snort.alert, limit 128 output log_unified: filename snort.log, limit 128
Détruire maintenant le process Snort par la commande kill (récuperation du process id par la commande ps aux | grep snort).
# ps aux | grep snort snort 2323 0.0 24.4 84864 62788 ? Ss 22:00 0:01 /usr/local/bin/snort -Dq -u snort -g snort -c /etc/snort/snort.conf root 3523 0.0 0.2 2868 696 pts/0 R+ 22:25 0:00 grep snort # kill 2323
Puis relancer Snort pour que les modifications soient prises en compte :
# /usr/local/bin/snort -A full -Dq -u snort -g snort -c /etc/snort/snort.conf
Paramétrage de Barnyard
Ouvrez le fichier de configuration de Barnyard :
# vim /etc/snort/barnyard.conf
Puis modifier les lignes suivantes :
config hostname: debian config interface: eth0 output log_acid_db: mysql, database snort, server localhost, user snort, password mysnortpassword, detail full
Les paramètres sont explicités dans le tableau suivant :
Paramètre | Description |
---|---|
Config hostname | Nom de l’hôte |
Config interface | Nom de l’interface à surveiller |
Output |
|
Il est possible de créer un fichier WAL (Write Ahead Logging) afin d’indiquer à Snort la dernière position dans les logs.
Au préalable, se rendre dans le repertoire /var/log/snort afin de récupérer le timestamp courant :
# cd /var/log/snort # ls -la total 12 drwxr-xr-x 2 snort root 4096 2008-04-16 01:01 . drwxr-xr-x 9 root root 4096 2008-04-16 01:10 .. -rw-r----- 1 snort snort 0 2008-04-16 01:01 alert -rw-r--r-- 1 root root 0 2008-04-16 01:01 snort.log -rw-r----- 1 root root 0 2008-04-16 01:00 snort.log.1208300408 -rw-r----- 1 root root 24 2008-04-16 01:01 snort.log.1208300491 # vi /etc/snort/barnyard.waldo
Puis ajouter les lignes suivantes (en remplaçant le timestamp de la troisième ligne par celui que vous aurez obtenu) :
/var/log/snort snort.log 1208300491 0
Description de barnyard.waldo
Ligne | Description |
---|---|
1 | Répertoire de stockage des logs |
2 | Préfixe commun pour le nom des logs |
3 | Timestamp associé au format particulier des logs de Snort |
4 | Compteur |
Démarrez ensuite Barnyard par la commande suivante :
# /usr/local/bin/barnyard \ -c /etc/snort/barnyard.conf \ -g /etc/snort/gen-msg.map \ -s /etc/snort/sid-msg.map \ -d /var/log/snort \ -f snort.log \ -w /etc/snort/barnyard.waldo &
Vérifiez que les événements sont correctement enregistrés en base de données (requête SQL ou avec BASE) :
# mysql -u root -p -D snort -e "SELECT COUNT(*) FROM event" Enter password: <<Password>> +----------+ | COUNT(*) | +----------+ | 101 | +----------+
BASE
|
[Sommaire] |
[Suivant]
Contre mesure
|