Sommaire
Présentation de Snort
Snort est un système de détection/prévention d’intrusion (IDS/IPS, Intrusion Detection System/Intrusion Prevention System).
Le but est de détecter des brèches sur les réseaux, ces systèmes souvent mis en amont sur les entrées/sorties vers Internet, sa fonction principale est détecter une intrusion, néanmoins il peut être mis en mode préventif et là il est capable de bloquer les éventuelles attaques.
Snort utilise un moteur de règles qui utilise comme critères les ports, les adresses IPs, les entêtes des protocoles.
Site officiel : http://www.snort.org/.
Fonctionnement
Afin d’expliquer le fonctionnement de Snort, voici un petit schéma :
Tout d’abord nous écoutons le réseau, ce qui est la première fonction de SNORT.
Lorsque le processus reçoit un message (ou une trame), le moteur la décode, dans un premier temps ce sont les directives préprocesseurs qui analysent cette trame.
Une directive préprocesseur est un programme écrit en langage C qui permet de faire une analyse plus précise des trames, généralement ces directives vérifient les anomalies dans les entêtes des trames. Si une anomalie est détectée, un message sera directement envoyé à la dernière étape.
Pendant ce temps là, c’est le moteur de détection qui a pris le relais.
Ce moteur de détection vérifie en fonction des règles qui lui sont ajoutées le message et si ce message est reconnu comme une intrusion, une alerte sera levée allant à la dernière étape.
La dernière étape est celle du stockage de l’alerte (la journalisation) soit dans un fichier soit dans une base de données. Pré-requis sous Debian Wheezy
Nous allons installer tout les paquets pré-requis afin de pouvoir compiler et installer Snort et Barnyard 2 :
root@snort-server:~# apt-get install build-essential libpcap0.8-dev libpcap0.8 libpcre3 libpcre3-dev libdumbnet-dev libdumbnet1 zlib1g-dev flex libbison-dev libtool autoconf libmysqlclient-dev
Ensuite nous allons télécharger les fichiers pour installer Snort, ici : http://www.snort.org/start/download/.
Nous allons nous placer dans le répertoire suivant :
root@snort-server:~# cd /usr/src/
Dans l’exemple, nous installons Snort 2.9.5.5 et Barnyard 2.
Installation de DAQ
DAQ pour Data AcQuisition library, cette bibliothèque remplace les bibliothèques gérant l’acquisition des paquets réseaux comme PCAP. Le but était d’offrir une couche d’abstraction dans Snort dans la capture de paquets.
root@snort-server:~# ./configure
root@snort-server:~# make
root@snort-server:~# make install
Il vous faudra une élévation de droit pour faire le make install (le reste peut-être fait en tant qu’utilisateur classique).
Normalement la fin du make install devrait ressembler à cette sortie :
Installation de DAQ
Ici il faut bien noter la localisation de DAQ.
Installation de Snort
Une fois Snort téléchargé et décompressé, il faut générer la configuration initiale, la configuration par défaut devrait être suffisante pour la plupart des installations :
root@snort-server:~#./configure
root@snort-server:~#make
root@snort-server:~#make install
Pour vérifier que snort est bien installé, nous pouvons faire un snort --version, vous devriez avoir une sortie équivalente :
Il est possible que l’erreur suivante apparaisse :
Étant donné que le paquet est bien installé, il est possible que tout simplement l’index des bibliothèques partagées ne soit pas à jour. Vous pouvez le résoudre en tapant simplement ldconfig.
Installation de Barnyard 2
Depuis la version 2.9.3, Snort ne contient plus de sortie de journalisation vers une base de données, le processus étant délégué à un autre utilitaire : Barnyard.
Une fois Barnyard téléchargé et décompressé, il faut générer la configuration initiale :
root@snort-server:~#./autogen.sh
Si vous avez une machine 64 bits :
root@snort-server:~#./configure --with-mysql --with-mysql-libraries=/usr/lib/x86_64-linux-gnu/
Sinon :
root@snort-server:~#./configure --with-mysql
Puis nous compilons et nous installons :
root@snort-server:~#make
root@snort-server:~#make install
Récupération de règles à jour
Il faut aller ici : http://www.snort.org/snort-rules/
Ici nous avons plusieurs choix :
- soit d’utiliser les règles à jour fournit par Sourcefire (payante)
- soit nous créons un compte et nous pouvons récupérer les règles avec un mois de décalage (gratuitement)
- soit nous utilisons les règles de la communauté. Pour l’exemple nous prendrons les règles de la communauté.
Il faut placer ces règles dans /etc/snort/.