Snort:Detection analyse:Barnyard

From aldeid
Jump to navigation Jump to search

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ètreDescription
Config hostnameNom de l’hôte
Config interfaceNom de l’interface à surveiller
Output
  • Log_acid_db : type de base de données (MySQL)
  • Database : nom de la base de données de Snort (snort)
  • Server : nom du serveur (localhost)
  • User : nom d’utilisateur pour la connexion à la base de données Snort
  • Password : mot de passe associé
  • Detail : niveau de detail (full)

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

LigneDescription
1Répertoire de stockage des logs
2Préfixe commun pour le nom des logs
3Timestamp associé au format particulier des logs de Snort
4Compteur

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]
Contre mesure