Snort:Detection analyse

From aldeid
Jump to navigation Jump to search

Partie détection et analyse

Méthodologie

La mise en place de Snort / Barnyard / Guardian / Oinkmaster nécessite une certaine rigueur. C’est pourquoi l’approche pédagogique suivante est retenue :



Le document traitera également de la mise à jour des règles de Snort (Oinkmaster) et présentera les scripts de démarrage automatique de Snort, Barnyard, Guardian et Oinkmaster.

Installation de Snort

Installation de base

Nous installerons Snort à partir des sources et non à partir des packages dans la mesure où la compilation :

  • offre de plus grandes performances ;
  • permet de choisir les options de compilation ;
  • offre une plus grande stabilité ;
  • permet de s’assurer que la version installée est la plus récente.

Pour installer Snort à partir des sources, entrer les commandes suivantes :

# cd /usr/local/src
# wget http://dl.snort.org/snort-current/snort-2.8.6.tar.gz
# tar xvzf snort-2.8.6.tar.gz
# cd snort-2.8.6
# ./configure --with-mysql
# make
# make install

Remarque : vous remarquerez que nous compilons Snort avec l’option MySQL (pour insertion des événements en base de données).
Nous allons ensuite créer manuellement les repertoires dont a besoin Snort pour fonctionner :

# mkdir /etc/snort
# mkdir /var/log/snort

Puis créer le groupe snort, y ajouter l’utilisateur snort puis affecter les permissions au repertoire /var/log/snort :

# groupadd snort
# useradd –g snort snort
# chown snort /var/log/snort

Pour pouvoir bénéficier des mises à jour des règles de Snort , vous devez vous inscrire sur le portail de Snort, dans la section “Subscribe” . Par ailleurs, nous allons avoir besoin de cette inscription pour télécharger un jeu de règles.
Ceci fait, télécharger le fichier snortrules-snapshot-CURRENT.tar.gz dans le repertoire /etc/snort, puis, à partir du repertoire des sources de Snort, copier les fichiers de configurations necessaries vers /etc/snort, comme suit :

# cd /etc/snort
# wget http://www.snort.org/pub-bin/oinkmaster.cgi/<OINKCODE>/snortrules-snapshot-2860.tar.gz
# tar xzvf snortrules-snapshot-2860.tar.gz
# cp /usr/local/src/snort-2.8.6/etc/*.conf* .
# cp /usr/local/src/snort-2.8.6/etc/*.map .

Configuration de base

Nous allons dans un premier temps configurer Snort de telle manière qu’il inscrira les événements directement en base de données. Pour ce faire, éditez le fichier de configuration de Snort :

# vim /etc/snort/snort.conf

Puis modifiez les lignes suivantes (adaptez selon votre environnement si besoin) :

var HOME_NET 192.168.182.0/24
var EXTERNAL_NET !$HOME_NET
var DNS_SERVERS [212.27.54.252/32,212.27.53.252/32]
var RULE_PATH /etc/snort/rules

Ajout d’une règle d’alerte pour les tests et démarrage de Snort

Ajoutons maintenant une règle simple qui permettra de verifier le bon fonctionnement de Snort.

# vim /etc/snort/rules/local.rules

Puis inscrire la ligne suivante dans le fichier

alert icmp any any -> $HOME_NET any (msg:"ICMP test"; dsize:8; itype:8; sid:10000001;)

Pour démarrer Snort manuellement, utiliser la commande suivante :

# /usr/local/bin/snort –A full -Dq -u snort -g snort -c /etc/snort/snort.conf

Remarque :
Nous démarrons Snort avec les options suivantes :

-A : mode d’alerte généré (full, fast, none, …)
-D : démarrage de Snort en tâche de fond (daemon)
-q : mode silencieux (pas d’affichage)
-u : démarrage de Snort avec l’utilisateur snort
-g : démarrage de Snort avec le groupe snort
-c : utilisation du fichier de configuration dans /etc/snort/snort.conf

Si Snort a démarré correctement, une ligne du type suivant doit apparaître dans le fichier /var/log/syslog :

Apr  6 11:26:53 debian snort[20042]: Snort initialization completed successfully (pid=20042)

où “20042” est évidement remplacé par le numéro de process attribué par le système au moment où Snort est lancé.




Préambule
[Sommaire]
MySQL