You are on page 1of 6

S E C U R I N E T S

C l u b d e l a s é c ur i t é i n f o r m at i q ue
I N S A T

Atelier IDS

Snort
Outil de Détection d’intrusion

Introduction
Les systèmes de détection d’intrusion ou IDS pour (Intrusion Detection System) sont
indispensables pour la sécurité du réseau, ils permettent (comme leur nom l’indique) de détecter
les tentatives d’intrusions, et ceci en se basant sur une base de signatures des différentes attaques
connues, donc leur fonctionnement est semblable à celui des anti-virus.

Snort
Snort est un système de détection d'intrusions réseau en Open Source, capable d'effectuer
l'analyse du trafic en temps réel. On l'utilise en général pour détecter une variété d'attaques et de
S E C U R I N E T S
Club de la sécurité informatique
I N S A T
www.securinets.com
Tel : 20322191
S E C U R I N E T S
C l u b d e l a s é c ur i t é i n f o r m at i q ue
I N S A T

scans tels que des débordements de tampons, des scans de ports furtifs, des attaques CGI, des
scans SMB, des tentatives d'identification d'OS, et bien plus.
Snort permet d’analyser le trafic réseau, il peut être configuré pour fonctionner en plusieurs
modes :
§  Le  mode sniffer : dans ce  mode, SNORT lit  les paquets circulant sur  le réseau et les 
affiche d’une façon continue sur l’écran 
§  Le mode « packet logger » : dans ce mode SNORT journalise le trafic réseau dans des 
répertoires sur le disque 
§  Le mode détecteur d’intrusion réseau (NIDS) : dans ce mode, SNORT analyse le trafic 
du  réseau,  compare  ce  trafic  à  des  règles  déjà  définies  par  l’utilisateur  et  établi  des 
actions à exécuter 
§  Le mode Prévention des intrusions réseau (IPS) : c’est SNORT­inline.

Snort (l’architecture)

Fig ure 1: Architecture de Snort

L’architecture de SNORT est modulaire (Figure 1), elle est composée de :


·  Un  noyau  de  base  : (Packet Decoder) au démarrage, ce noyau charge un ensemble de
règles, compile,optimise et classe celles-ci. Durant l’exécution, le rôle principal du noyau
est la capture de paquets.
·  Une  série  de  pré  –  processeurs  : ceux-ci améliorent les possibilités de SNORT en
matière d’analyse et de recomposition du trafic capturé. Ils reçoivent les paquets
directement capturés, éventuellement les retravaillent puis les fournissent au moteur de
recherche de signatures.
Un ou plusieurs moteurs de détection (Detection Engine) applique une série d’analyses aux
paquets, ces analyses se composent principalement de comparaisons de différents champs des
headers des protocoles (IP, ICMP, TCP et UDP) par rapport à des valeurs précises.

S E C U R I N E T S
Club de la sécurité informatique
I N S A T
www.securinets.com
Tel : 20322191
S E C U R I N E T S
C l u b d e l a s é c ur i t é i n f o r m at i q ue
I N S A T

Après la détection d’intrusion, une série de « output plugins » permet de traiter cette intrusion
de plusieurs manières : envoie vers un fichier log, envoie d’un message d’alerte vers un serveur
syslog, stocker cette intrusion dans une base de données SQL.

Installation
L’installation de Snort n’est pas d’une grande difficulté, toutefois avant l’installation de
SNORT, on doit installer :
·  Libpcap : Librairie utilisée par Snort pour capturer les paquets
·  Gcc  : indispensable pour compiler les sources de Snort
·  BASE  :(Basic Analysis and Security Engine) (optionnel), sert à fournir une 
représentation visuelle  des données concernant les éventuelles intrusions.
On peut décomposer l’installation en deux parties :

Installation de l’outil Snort 


Commandes  Remarques 
cd /usr/local/snort 
tar ­xvzf snort­  Décompacte l’application 
2.3.3.tar.gz 
./configure  Configuration 
Make  Compilation 
make install  Installation
Sinon aussi, on peut installer Snort sous forme de fichier rpm, la commande sera dans ce cas :
rpm  ­i snort­2.3.3­2.i586.rpm

Installation des règles Snort 


Commandes  Remarques 

mkdir /etc/snort  Création du répertoire contenant la 
configuration Snort 
cp /usr/local/snort/snort.conf  Copie du fichier de config snort dans /etc/snort 
/etc/snort/snort.conf 
cp snortrules.tar.gz /etc/snort  Mise en place des règles dans le répertoire de 
configuration Snort 
cd /etc/snort  On se place dans le répertoire de configuration 
Snort 
tar ­xvzf snortrules.tar.gz  Décompactage des règles

S E C U R I N E T S
Club de la sécurité informatique
I N S A T
www.securinets.com
Tel : 20322191
S E C U R I N E T S
C l u b d e l a s é c ur i t é i n f o r m at i q ue
I N S A T

Pour un fonctionnement performant, on doit toujours mettre à jours les règles de Snort, pour
cela il suffit de télécharger les mises à jours de l’Internet (voir www.snort.org ) et procéder à
l’installation de ces règles comme expliqué ci-dessus.

Configuration et Lancement
Les règles Snort sont placées dans le répertoire /etc/snort/rules.
Il faut éditer le fichier de configuration snort (/etc/snort/snort.conf) et spécifier le
réseau sur lequel l'IDS travaille. Il faut pour cela modifier la variable HOME_NET :
var HOME_NET [192.168.0.0/24]
Dans le fichier de configuration de Snort (/etc/snort/snort.conf), il y a une série
de ‘include’. Il s'agit des règles utilisées par Snort pour détecter d'éventuelles intrusions. Il y a
des règles de telnet, ICMP, FTP, ..., On doit commenter les règles qu’on ne veut pas appliquer et
enlever le commentaire des règles qui nous intéressent.
Snort est maintenant prêt à être lancé avec, par exemple, la commande:
snort ­D ­i eth0 ­l /var/log/snort ­c /etc/snort/snort.conf
Cette ligne de commande indique que Snort sera lancé en tant que daemon (-D), il regardera
l'interface réseau eth0 (-i eth0), utilisera le répertoire /var/log/snort/ pour enregistrer les logs et
le fichier de configuration /etc/snort/snort.conf.
Remarque : pour lancer Snort à chaque démarrage, il suffit de rajouter la ligne précédente à la
fin du fichier /etc/init.d/rc.local.

Les options de la commande snort


La commande snort possède plusieurs options, parmi ces options 
on peut citer : 
Option  Description 
­v  Liste tous les paquets reçus sur 
la sortie standard. 
­c fichier  Active Snort en mode `Détection 
d’intrusion` On donne en 
paramètre le fichier de 
configuration des règles de 
détection. Par défaut, les 
alertes sont mémorisées dans le 
fichier alert. 
­D  Active snort en mode démon. 
­l répertoire  Active le mode journalisation des 
paquets et spécifie le répertoire 
où sont stockés les alertes et 
les paquets capturés. Par défaut,

S E C U R I N E T S
Club de la sécurité informatique
I N S A T
www.securinets.com
Tel : 20322191
S E C U R I N E T S
C l u b d e l a s é c ur i t é i n f o r m at i q ue
I N S A T

le répertoire /var/log/snort. 
­i carte  Spécifie la carte réseau. 
­b  Journalise les paquets au format 
binaire tcpdump. 
­r fichier  Lit un fichier au format tcpdump. 
­h réseau  Spécifie le réseau local, par 
exemple 192.168.1.0/24. 
­n nb  Traite nb paquets et s’arrête.

L’écriture des règles Snort


Snort permet l’écriture de règles personnelles et utilise un langage simple et léger de
description de règles qui est flexible et assez puissant.
Les règles Snort sont divisées en deux sections logiques, l'entête de la règle et les options de la
règle comme le montre la figure 2. L'entête de règle contient comme informations l'action de la
règle, le protocole, les adresses IP source et destination et les masques réseau, et les ports source
et destination. La section options de la règle contient les messages d'alerte et les informations sur
les parties du paquet qui doivent être inspectées pour déterminer si l'action de la règle doit être
acceptée. 

Figur e 2: For mat de la règle Snor t 

Voici un exemple de règle : 

Alert tcp any any ­> 192.168.1.0/24 80 (flags :A ;content : 
“passwd”;msg:“detection de `passwd` “;)
Cette règle permet de générer un message d’alerte “détection de passwd” lorsque le trafic à
destination d’une machine du réseau local 192.168.1.0/24 vers le port 80, contient la chaîne «
passwd » (spécifié par l’utilisation du mot-clé « content »), et que le flag ACK du header TCP est
activé (flags : A).

Tests
Notre machine dont on a installé Snort est d’adresse IP 192.168.0.2 ;
A partir de la machine d’adresse 192.168.0.1, on essaye de scanner notre machine en utilisant
la commande nmap avec l'option -sS qui permet de faire un scan de type SCAN FIN;

S E C U R I N E T S
Club de la sécurité informatique
I N S A T
www.securinets.com
Tel : 20322191
S E C U R I N E T S
C l u b d e l a s é c ur i t é i n f o r m at i q ue
I N S A T

nmap ­sF 192.168.0.2
On remarque que Snort détecte cette intrusion et enregistre dans un dossier portant l'adresse
de la machine source de l'intrusion (192.168.0.1) les logs suivants :
[**] ICMP PING NMAP [**] 
04/23­23:27:37.895549 192.168.0.1 ­> 192.168.0.2 
ICMP TTL:46 TOS:0x0 ID:9937 IpLen:20 DgmLen:28 
Type:8  Code:0  ID:32676   Seq:23169  ECHO 
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= 

[**] SCAN FIN [**] 
04/23­23:27:49.202929 192.168.0.1:59321 ­> 192.168.0.2:1 
TCP TTL:52 TOS:0x0 ID:38933 IpLen:20 DgmLen:40 
*******F Seq: 0x26F2832B  Ack: 0x0  Win: 0x400  TcpLen: 20 
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= 

[**] SCAN FIN [**] 
04/23­23:27:41.248172 192.168.0.1:59321 ­> 192.168.0.2:10 
TCP TTL:42 TOS:0x0 ID:4473 IpLen:20 DgmLen:40 
*******F Seq: 0x26F2832B  Ack: 0x0  Win: 0xC00  TcpLen: 20 
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= 
+

Conclusion
Outre la mise en place des pares feu et des systèmes d’authentification, il est de nos jours
nécessaire de mettre en place un système de détection d’intrusion.
Nous avons étudié le fonctionnement de ces systèmes en particulier nous avons pris comme
exemple l’outil Open Source Snort qui est le plus réputé en terme d’efficacité et présente une
souplesse en terme de personnalisation.
Pour une meilleure lisibilité dans la lecture des logs et les alertes; il existe plusieurs interfaces
graphiques pour Snort les plus connues sont SnartSnort et ACID.
Aussi pour une meilleure gestion des logs, Snort peut être interfacé avec un SGBD (Système
de Gestion de Base de Données) comme par exemple MySQL.

S E C U R I N E T S
Club de la sécurité informatique
I N S A T
www.securinets.com
Tel : 20322191

You might also like