Installation de Snort sous Windows 7

Installation de Snort sous Windows 7
Sommaire
Introduction : ....................................................................................... 2
Les règles Snort : ................................................................................. 2
L’entête d’une règle Snort ............................................................... 2
Les options d’une règle Snort .......................................................... 3
Les alertes de Snort ............................................................................. 3
Exemple de règle Snort : .................................................................. 4
1. Téléchargement de l’installateur Snort et des règles ................. 5
2. Installation de Snort ....................................................................... 7
3. Configuration de Snort ................................................................ 12
a. Etape 1 : configuration des variables réseaux : ........................ 13
b. Etape 2 : configuration du décodeur : ....................................... 14
c. Etape 4: Configuration des bibliothèques chargées
dynamiquement.................................................................................. 14
4. Test de Snort ................................................................................. 16
Liens utiles : ........................................................................................ 20
KHALID BOURICHE
1
Introduction :
Snort est un outil de détection d’intrusion IDS (Intrusion Detection System) open
source. Il effectue en temps réel des analyses de trafic et journalise (log) les
paquets IP transitant sur son réseau. Snort est considéré comme l’un des meilleurs
outils de détection d’intrusions sur le marché car il se base sur l’emploi des règles
de sécurité qui sont maintenues à jour par une communauté très actives.
Les modes de fonctionnement de Snort sont en nombre de trois :
1. sniffer de paquets
2. logger de paquets
3. système de détection/prévention d'intrusions
Les règles Snort :
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.
1. L’entête d’une règle Snort
L’entête d’une règle Snort est décomposé en différentes sections, son architecture
est présentée comme suit :
Action
Protocole Adresse
Port
Direction Adresse
Port
 Action: La partie action de la règle dit à Snort quoi faire quand il trouve
un paquet qui correspond aux critères de la règle.
 Protocole: La partie protocole est utilisée pour appliquer la règle sur les
paquets pour un protocole particulier seulement.
 Adresse: Les parties de l'adresse définissent des adresses de source et de
destination.
 Port: En cas de protocole TCP ou UDP, les parties concernant les ports
déterminent les ports source et destination d'un paquet sur lequel la règle
est appliquée. En cas de protocoles de couche réseau comme IP et ICMP,
les numéros de port sont sans signification.
 Direction: La partie de la direction de la règle détermine lesquels des
adresses et des numéros de port sont utilisés comme source et lesquels
sont utilisés comme destination.
KHALID BOURICHE
2
2. Les options d’une règle Snort
Les options d’une règle Snort se trouvent dans les parenthèses contenues dans la
règle Snort. Toutes les options de règle de Snort sont séparées les unes des autres
par un caractère point-virgule ";". Elles suivent généralement un format ayant un
mot-clé dans la liste ( ACK, CLASSTYPE, CONTENT, OFFSET, DEPTH,
CONTENT-LIST, DSIZE, FLAGS, FRAGBITS, ICMP_ID, ICMP_SEQ, ITYPE,
ICODE, ID, IPOPTS, IP_PROTO, LOGTO, MSG, PRIORITY, REACT,
REFERENCE, RESP, REV, RPC, SAMEIP, SEQ, FLOW, SESSION, SID, TAG,
TOS, TTL, URICONTENT) suivie par argument. Les mots clés des options de
règle sont séparés de leurs arguments avec un caractère deux points ":".
Les alertes de Snort
Quand un paquet répond aux critères d'une règle, alors Snort peut : soit journaliser
l'entrée d'un fichier journal, soit envoyer une alerte. Snort a une variété de modes
d'alerte, qui sont tous détaillés ci-dessous:
 Fast Mode (“-A fast”) – Ce mode rapporte Timestamp, Alerte message, les
adresses IP source et destination, et les ports source et destination. Le
paquet actuel n’est pas journalisé en utilisant ce mode.
 Full Mode (“-A full”) – Ce mode rapporte les mêmes informations que dans
le mode rapide (Fast Mode), mais il comprend également l'en-tête du paquet.
 UNIX Socket Mode (“-A unsock”) – Ce mode permet à un administrateur
système d’envoyer des alertes à d'autres programmes en utilisant un socket
UNIX.
 Alerts to Syslog (“-s”) – Ce mode permet de stocker l'alerte dans le Syslog,
qui est l'endroit où les événements au niveau du système sont enregistrées.
 SNMP Mode – Les alertes peuvent également être envoyées sous forme de
messages SNMP, où les systèmes de gestion de réseau peuvent aider les
administrateurs système à identifier et corriger le problème.
KHALID BOURICHE
3
Exemple de règle Snort :
log udp any any -> 10.11.12.0/24 1:1024
journalise le trafic udp provenant de tous les ports et à destination de port dans
l'intervalle de 1 à 1024 du réseau 10.11.12.0/24
Important : il est très recommandé de maitriser les différents champs d’un PDU
(Paquet) IP :
L'entête IP
KHALID BOURICHE
4
1. Téléchargement de l’installateur Snort et des règles
Aller dans le site de Snort : www.snort.org et cliquer sur Get Started
Etape 1
Trouvez le package approprié pour votre système d'exploitation : le téléchargez puis l’installez.
Etape 2
Inscrivez-vous pour obtenir votre Oinkcode. Il est recommandé de vous inscrire afin de recevoir
les dernières détections d’intrusion. Pour ceux qui ne peuvent s’inscrire, créer un compte sur
Snort.org vous donnera toujours accès au registre utilisateur des paquets de règles.
KHALID BOURICHE
5
Remarque : vous devez confimer votre compte à travers le liens se trouvant dans le message qui
vous a été envoyé. Si jamais vous ne trouvez pas le message essayez de fouiller dans les spams
Téléchargez les règles portant le même numéro de la vesion : snortrules-snapshot-2970.tar.gz
KHALID BOURICHE
6
2. Installation de Snort
Lancer l’installateur : Snort_2_9_7_0_Installer.exe et suivez votre installation
Jusqu’à avoir la fenêtre suivante, cliquez ensuite sur Ok
KHALID BOURICHE
7
On installe Winpcap après l’avoir téléchargé depuis : http://www.winpcap.org
En explorant les répertoires d’installation de Snort, on remarque le répertoire
rules est par défaut vide.
KHALID BOURICHE
8
Nous allons remplir le répertoire C:\Snort\rules par le contenu des règles
téléchargées dans le fichier : snortrules-snapshot-2970.tar.gz. Pour cela,
décompressez ce fichier, puis copiez le contenu du répertoire rules dans
C:\Snort\rules.
De la même façon, nous devons mettre à jour le contenue du répertoire C:\Snort\preproc_rules par
le contenue du répertoire preproc_rules du fichier décompressé.
KHALID BOURICHE
9
Pour vérifier la version de Snort installé dans votre système. A l’invite de commande sur le répertoire
\Snort\bin , tapez la commande : Snort -V
Pour lister les interfaces disponibles, exécutez la commande : Snort -W
KHALID BOURICHE
10
On remarque que le résultat de la commande : snort –W propose d’utiliser l’une des interface 1 ou 2
à surveiller. Car notre machine Windows 7 possède réellement deux interfaces :
KHALID BOURICHE
11
3. Configuration de Snort
Le répertoire \Snort\bin\etc contient les fichiers de configuration de Snort . Nous allons, dans un
premier temps, s’intéresser au fichier : snort.conf . (éditons-le avec WordPad)
Le fichier \Snort\bin\etc\snort.conf propose un exemple de configuration sur
plusieurs étapes, nous allons paramétrer quelques paramètres pour surveiller notre
LAN.
KHALID BOURICHE
12
a. Etape 1 : configuration des variables réseaux :
Les variables IP doivent être spécifier dans ‘ipvar’ au lieu de ‘var’, l’utilisation
de ‘var’ est encore permis pour assurer la compatibilité descendante.
Nous allons donc remplacer ‘ipvar’ par ‘var’, puis nous allons fournir les listes
des adresses réseau à protéger ou un block CIDR:
# Configurez les adresses de réseau que vous protégez
var HOME_NET 10.11.12.0/24
# Configurez les adresses réseau externe. Laissez «any» dans les situations génériques.
Dans notre cas on va remplacer « anay » par tous les réseaux autre que le réseau à
protéger : « !$HOME_NET ». « ! » exprime la négation.
var EXTERNAL_NET !$HOME_NET
(Cette partie est sans changement)
…
# Dans l’environnement Windows, il est conseillé de mettre un chemin absolu vers vos
fichiers de règles :
var RULE_PATH c:\Snort\rules
# var SO_RULE_PATH ../so_rules
var PREPROC_RULE_PATH c:\Snort\preproc_rules
# If you are using reputation preprocessor set these
# Currently there is a bug with relative paths, they are relative to where snort is
# not relative to snort.conf like the above variables
# This is completely inconsistent with how other vars work, BUG 89986
# Set the absolute path appropriately
#Si vous prévoyez de ne pas créer des listes blanches et des listes #noires, vous devez les
désactiver dans votre fichier snort.conf #sinon vous aurez un message similaire au
suivant :
# [Snort-users] Warning: Can't find any whitelist/blacklist #entries. Reputation
Preprocessor disabled
#ceci est du au BUG 89986
# pour palier à ce problème, utilisez le chemin absolu comme suit :
var WHITE_LIST_PATH c:\Snort\rules
var BLACK_LIST_PATH c:\Snort\rules
KHALID BOURICHE
13
b. Etape 2 : configuration du décodeur :
Le décodage est l'un des premiers processus à travers lequel un paquet passe dans
Snort. Le décodeur a la tâche de déterminer quels sont les protocoles sous-jacents
qui sont utilisés dans le paquet (par exemple : Ethernet, IP, TCP, etc.) et enregistre
ces données ainsi que l'emplacement des données utiles (payload) dans le paquet
et la taille de ce payload pour une utilisation par les moteurs de préprocesseur et
de détection.
Dans cette étape nous allons se contenter de paramétrer le répertoire de
journalisation :
# Configure default log directory for snort to log to. For more information see snort -h command
line options (-l)
#
config logdir: c:\Snort\Log
c. Etape 4: Configuration
dynamiquement
des
bibliothèques
chargées
Il s’agit dans cette étape de préciser le chemin absolu des bibliothèques :
# path to dynamic preprocessor libraries
dynamicpreprocessor directory c:\Snort\lib\snort_dynamicpreprocessor
# path to base preprocessor engine
dynamicengine c:\Snort\lib\snort_dynamicengine\sf_engine.dll
# path to dynamic rules libraries
#dynamicdetection directory /usr/local/lib/snort_dynamicrules
KHALID BOURICHE
14
Le fichier complet (snort.conf) de configuration est à télécharger sur le lien
suivant : Snort.conf
Créons maintenant les fichiers white.list et black.list dans le répertoire référencé
dans le fichier de configuration :
Soit donc : c:\Snort\rules\white.list et c:\Snort\rules\black.list
Dans notre cas nous allons créer ces deux fichiers mais nous n’allons rien y mettre.
c:\Snort\rules\white.list
Faites la même opération pour le fichier : c:\Snort\rules\black.list
KHALID BOURICHE
15
4. Test de Snort
Exécutez ensuite la commande ci-après pour tester votre configuration :
snort –i 2 –c c:\Snort\etc\snort.conf –A console -T
Signification des options de la commande Snort :
 –i 2: il s’agit de la deuxième interface à surveiller (Dans notre cas, il s’agit
de eth1)
 –c c:\Snort\etc\snort.conf : indique à Snort le chemin du fichier de
configuration
 –A console : Indique à Snort d’ Envoyer des alertes "Fast-style" vers la
console (écran).
 -T : Permet de tester votre nouvelle configuration avant de délivrer un
rechargement, car une configuration incorrecte entraînera toujours une
erreur fatale.
KHALID BOURICHE
16
Créons maintenant des règles Snort qui permettent de surveiller notre réseau
10.11.12.0/24 contre les connexions employant la commande Ping (protocole
ICMP) et celles employant le Web (protocole http) de port 80/TCP.
Pour cela, nous allons utiliser la topologie simple suivante :
 L’adresse IPv4 de l’interface de Windows 7 est : 10.11.12.2/24
 L’adresse IPv4 de l’interface de Windows Server 2008 est : 10.11.12.1/24
Pour cela, écrivons
c:\Snort\rules\local :
les
deux
lignes
suivantes
dans
le
fichier
:
La commande: snort –i 2 –c c:\Snort\etc\snort.conf –A console permet de
capturer le trafic suivant :
KHALID BOURICHE
17
KHALID BOURICHE
18
La commande: snort –c c:\Snort\etc\snort.conf –A console permet de
journaliser le trafic suivant :
KHALID BOURICHE
19
Liens utiles :


http://www.inetdoc.net/pdf/Session2k8.analyse.rapport.pdf
http://www.gatoux.com/SECTION2/p5.php
KHALID BOURICHE
20