Vous êtes sur la page 1sur 40

TP Mise en place d'une sonde IDS

01/03/2022 Soufiane TAZARINE @ 2021 1


1 Mise en place d'une sonde IDS : 2h30

Introduc)on

Mise en œuvre et configura1on du système de détec1on d’intrusion Snort

Snort est un logiciel de détec0on d'intrusion qui se base sur des signatures pour repérer les intrusions. Il peut
fonc0onner en mode sniffer (capture le trafic et l'affiche), packet logger (capture le trafic et le stocke), NIDS (en
temps réel).

• Appar0ent actuellement à Sourcefire


• L’un des plus ac0fs NIDS Open Source
• Détec0on basée sur les signatures
• Dernière Snort 2.9.15.1
• hJps://www.snort.org/
• Publié sous licence GNU GPL
• Doc : hJps://www.snort.org/#documents

01/03/2022 Soufiane TAZARINE @ 2021 2


1 Mise en place d'une sonde IDS : 2h30

Objec)fs du TP

q Comprendre le rôle d’un système de détec0on d’intrusion dans un réseau


q Installer Snort et effectuer les configura0ons nécessaires au bon fonc0onnement du système
q Effectuer des tests avec Snort dans ses différents modes
q Lancer des aJaques simples et analyser les alertes générées par Snort
q Apprendre à écrire de nouvelles règles personnalisées

01/03/2022 Soufiane TAZARINE @ 2021 3


1 Mise en place d'une sonde IDS : 2h30
VM victime
VM Debian en mode NAT
Prérequis Protégée par SNORT

q Une machine hôte 192.168.230.6

q U0liser une VM de type Debian en mode NAT

q L’ou0l snort eth0

q L’ou0l nmap Flux d’attaques


bridge100
q Dans ce TP, voici l’environnement u0lisé : Attaquant
Machine hôte

192.168.230.1

01/03/2022 Soufiane TAZARINE @ 2021 4


1 Mise en place d'une sonde IDS : 2h30

Positionnement de l’IDS dans une

Ques1on 0

a) Qu’est ce qu’un NIDS et comment fonctionne-t-il ?

b) Quelle est la différence entre un IDS et IPS ?

c) Dans le schéma ci-contre, quel NIDS générera la plus


d’alerte : External NIDS ou Internal-NIDS ? Justifier la
réponse

01/03/2022 Soufiane TAZARINE @ 2021 5


TP Prise en main de Snort

01/03/2022 Soufiane TAZARINE @ 2021 6


1 Mise en place d'une sonde IDS : 2h30

Installation

q Nous allons installer l’outil snort avec la commande suivante

apt-get install snort

q La commande « snort » permet de lancer l’outil et les options permettent des spécifier le mode de
lancement

01/03/2022 Soufiane TAZARINE @ 2021 7


1 Mise en place d'une sonde IDS : 2h30

Par)e 1 : Modes de fonc)onnement

q Nous allons nous intéresser aux trois modes :


1. Mode Sniffer,
2. Mode Packet logger
3. Mode NIDS

Exercice demandé :

q Lancer Snort dans les différents modes et analyser les résultats :

01/03/2022 Soufiane TAZARINE @ 2021 8


1 Mise en place d'une sonde IDS : 2h30

Remarques importantes :

- Si Snort n’affiche rien, il faudrait générer un flux. Exemple : naviguer sur un site web avec le
navigateur pour générer un flux HTTP

- Pour arrêter le monitoring : ctrl+c ou ctrl+z

- Les captures d’écran demandées dans le rapport ne doivent pas être très longues, merci de capture
seulement un extrait.

- Veuillez adapter les commandes du TP à votre environnement : adressage réseau, nom de


l’interface, commande debian vs autres distribution,…Etc.

01/03/2022 Soufiane TAZARINE @ 2021 9


1 Mise en place d'une sonde IDS : 2h30

Configuration de l’environnement 192.168.230.1 192.168.230.6

Ma machine victime doit être en


mode NAT

Pour ce TP, le réseau NAT est


192.168.230.0/24

01/03/2022 Soufiane TAZARINE @ 2021 10


1 Mise en place d'une sonde IDS : 2h30

Configura)on de l’environnement

Il faudrait configurer snort pour la prise en


compte de ces éléments :

• HOME_NET => machine à superviser

• EXTERNAL_NET => machine attaquante

nano /etc/snort/snort.conf

01/03/2022 Soufiane TAZARINE @ 2021 11


1 Mise en place d'une sonde IDS : 2h30

1) Mode Sniffer (ou Dump Mode) : op)on -v

q Nous allons lancer le mode sniffer afin de


capturer de paquets et les visualiser

snort -v

q -v : verbose Ques1on 1

Choisir un packet détecté par snort et le décrire, en citant :


• l’IP et port source
• l’IP et port destination
• le protocol couche transport
01/03/2022 Soufiane TAZARINE @ 2021 12
1 Mise en place d'une sonde IDS : 2h30

1) Mode Sniffer (ou Dump Mode) :


op)on -vd

q Le mode Dump permet d’afficher


jusqu'aux paquets IP
snort -vd

q -vd : verbose Dump Question 2

Décrire la différence entre le mode (-v) et (-vd). Que


voyons-nous de plus ?

01/03/2022 Soufiane TAZARINE @ 2021 13


1 Mise en place d'une sonde IDS : 2h30

1) Mode Sniffer (ou Dump Mode) : op)on -


vde

q Le mode Dump permet d’afficher


l’intégralité des paquets reçus

snort -vde

q -vde => e : affichage de la couche 2 Question 3

Décrire la différence entre le mode (-vd) et (-


vde). Que voyons-nous de plus ?

01/03/2022 Soufiane TAZARINE @ 2021 14


1 Mise en place d'une sonde IDS : 2h30

2) Mode packet logger

q Le mode Packet Logger permet la capture puis


le stockage de la capture dans le fichier test.log
et y rajoutera une suite de chiffre dans le nom

snort -de -L /var/log/test.log

q Pour lire les fichiers, nous uolisons également Question 4


snort (Apenoon : adapter le nom du fichier)
Pour quelle raison les adresses MAC sont

snort -de -r /var/log/test.log.xxxxxxxxxxxx affichées dans les échanges logés par snort ?

01/03/2022 Soufiane TAZARINE @ 2021 15


1 Mise en place d'une sonde IDS : 2h30

2) Mode packet logger

q Le mode Packet Logger permet la capture puis


le stockage de la capture dans le fichier
today.log avec spécificaoon du réseau concerné

snort -de -L /var/log/today.log -h 192.168.230.

q AQen)on : penser à adapter le paramètre


« 192.168.230. » avec votre réseau local

01/03/2022 Soufiane TAZARINE @ 2021 16


1 Mise en place d'une sonde IDS : 2h30

3) Mode NIDS « Network Intrusion Detection System Mode »


Attention : changer le
q Le mode NIDS permet de détecter les intrusions grâce à snort
nom de l’interface si
celle-ci est différente
snort -i eth0 -dve -c /etc/snort/snort.conf -A fast de eth0
q -i eth0 : interface où Snort doit écouter

q -c /etc/snort/snort.conf : le fichier de configuraGon de Snort qui doit contenir les


règles de détecGon
Question 5
Qu’est ce que c’est qu’un scan de
q -A mode d’alerte (fast, full et none)
q -A fast : mode d'alerte rapide, affiche l'alerte dans un format simple avec port sur un réseau ?
l'horaire, le message d'alerte, les adresses IP et les ports sources et
desGnaGons Comment se déroule cette activité
q -A full : mode d'alerte par défaut, si vous ne spécifiez rien ceci sera de scan ?
automaGquement uGlisé
q -A none : ne remonte aucune alertes

01/03/2022 Soufiane TAZARINE @ 2021 17


4 Configuration des régles de détection

01/03/2022 Soufiane TAZARINE @ 2021 18


1 Mise en place d'une sonde IDS : 2h30

Par$e 2 : Ajout de nouvelles règles

Les règles de Snort sont


composées de deux paroes
disonctes :
• le header
• les op)ons.

Le header permet de spécifier le type d’alerte à générer (alert, log...) et d’indiquer les champs de
base nécessaires au filtrage : le protocole (TCP, UDP ou ICMP), l'orientaoon du trafic auquel la
règle s'applique (Unidirecoonnel ou Bidirecoonnel) ainsi que les adresses IP et ports sources et
desonaoon.

01/03/2022 Soufiane TAZARINE @ 2021 19


1 Mise en place d'une sonde IDS : 2h30

Par$e 2 : Ajout de nouvelles règles

Les op)ons, spécifiées entre parenthèses, permepent d’affiner l’analyse, en


décomposant la signature en différentes valeurs à observer parmi certains champs du
header ou parmi les données.

Les opoons de règle forment le cœur du moteur de détecoon d'intrusion de Snort.


Toutes les opoons de règle de Snort sont séparées les unes des autres par un caractère
point-virgule " ; »

01/03/2022 Soufiane TAZARINE @ 2021 20


1 Mise en place d'une sonde IDS : 2h30

Par$e 2 : Ajout de nouvelles règles

Les mots clés des op)ons de règle sont séparés de leurs arguments avec un caractère deux points "
: " . Ci- dessous les différentes opoons de règle disponibles dans Snort :

q msg - affiche un message dans les alertes et journalise les paquets


q Ql - teste la valeur du champ TTL de l'entête IP
q ipop)on - regarde les champs des opoons IP pour des codes spécifiques
q fragbits - teste les bits de fragmentaoon de l'entête IP
q dsize - teste la taille de la charge du paquet contre une valeur
q flags - teste les drapeaux TCP pour certaines valeurs
q seq - teste le champ TCP de numéro de séquence pour une valeur spécifique
q ack - teste le champ TCP d'acquipement pour une valeur spécifiée
q itype - teste le champ type ICMP contre une valeur spécifiée

01/03/2022 Soufiane TAZARINE @ 2021 21


1 Mise en place d'une sonde IDS : 2h30

Par$e 2 : Ajout de nouvelles règles

q icode - teste le champ code ICMP contre une valeur spécifiée


q icmp_id - teste la champ ICMP ECHO ID contre une valeur spécifiée
q icmp_seq - teste le numéro de séquence ECHO ICMP contre une valeur spécifique
q content - recherche un moof dans la charge d'un paquet
q content-list - recherche un ensemble de moofs dans la charge d'un paquet
q offset - modifie l'opoon content, fixe le décalage du début de la tentaove de correspondance de
moof
q session - affiche l'informaoon de la couche applicaove pour la session donnée
q sid – idenofiant de signature contenue dans la base de signature

ac)on protocole SourceIP SourcePort -> des)na)onIP des)na)on port (opoon1 ; opoon2 ;)

01/03/2022 Soufiane TAZARINE @ 2021 22


1 Mise en place d'une sonde IDS : 2h30

1/ Ajout d’une règle pour détecter le ping

nous allons une nouvelle règle qui génère une Ques1on 6


alerte si une machine dans votre réseau reçoit un a) Que signifie le mot « flooding » dans le
ping echo (type 8, code 0). domaine de la cybersécurité ?
b) A quoi sert le protocole ICMP ? Et de
Pour ajouter la règle, créer un fichier MyRule.rules
quelle couche du modèle TCP/IP fait-il
dans le répertoire /etc/snort/rules/ :
partie ?
alert icmp $EXTERNAL_NET any -> $HOME_NET any c) Décrire l’attaque « ICMP » flooding ?
(msg: "aQen)on requête echo"; sid: 10000002; rev: 1;
itype: 8; icode: 0;) d) Connaissez-vous d’autres attaques de
flooding ?

01/03/2022 Soufiane TAZARINE @ 2021 23


1 Mise en place d'une sonde IDS : 2h30

Ajout d’une règle pour détecter le ICMP flooding

Sauvegardez le fichier, ouvrez /etc/snort/snort.conf


et ajouter la ligne (la dernière ligne des includes)
include $RULE_PATH/MyRule.rules

Question 7
Snort inclus déjà plusieurs fichiers, comme
par exemple : include $RULE_PATH/web-
php.rules
D’où viennent ces fichiers et à quoi
servent-ils pour snort ?

01/03/2022 Soufiane TAZARINE @ 2021 24


1 Mise en place d'une sonde IDS : 2h30

1/ Ajout d’une règle pour détecter le ping ECHO

Relancer Snort (commande pou Debian)

Systemctl restart snort.service

01/03/2022 Soufiane TAZARINE @ 2021 25


1 Mise en place d'une sonde IDS : 2h30

1/ Ajout d’une règle pour détecter le ping ECHO

De la même manière que l’apaque de scan de réseau précédente, nous allons lancer trois
terminaux :

1) Lancer la détection snort (sur la Machine snort -i eth0 -dve -c /etc/snort/snort.conf -A full
cible)

2) Visualiser les alertes en temps réel (sur la tail -f /var/log/snort/alert


Machine cible aussi)

3) Lancer l’attaque (depuis la machine ping -i 0 -s 10000 192.168.230.6


attaquante)

01/03/2022 Soufiane TAZARINE @ 2021 26


1 Mise en place d'une sonde IDS : 2h30

Machine cible

Machine attaque
Terminal 1

Terminal 2

Terminal 2

01/03/2022 Soufiane TAZARINE @ 2021 27


1 Mise en place d'une sonde IDS : 2h30

1/ Ajout d’une règle pour détecter le ping ECHO

Terminal 1 Terminal 3

Terminal 2

01/03/2022 Soufiane TAZARINE @ 2021 28


1 Mise en place d'une sonde IDS : 2h30

1/ Ajout d’une règle pour détecter le ping ECHO

Ques1on 8
Décrire ce qui s’est passé durant cette
attaque.
D’où vient le message : « attention
requete echo » ?
Qui est à l’orgine de l’attaque ?
(Adresse IP)

01/03/2022 Soufiane TAZARINE @ 2021 29


1 Mise en place d'une sonde IDS : 2h30

Pour informa)on, il est possible de générer des alertes en spécifiant le type de


la machine apaquante.

Par exemple : machine apaquante de type windows :

alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:"PING from Windows"; content:"|
61 62 63 64 65 66 67 68 69 6a 6b 6c 6d 6e 6f 70|";itype:8;depth:32;sid:1000001;)

Règle pour détecter si le ping est généré par un système linux :

alert icmp $EXTERNAL_NET any -> $HOME_NET any (msg:" Ping OpenBSD-Linux ";
content: "|10 11 12 13 14 15 16 17 18 19 1a 1b 1c 1d 1e 1f |"; itype: 8; depth: 32; sid :
1000002 ;)

01/03/2022 Soufiane TAZARINE @ 2021 30


1 Mise en place d'une sonde IDS : 2h30

2/ Ajout d’une règle pour détecter l’ICMP Flooding

Uoliser le paramètre detecoon_Filter pour détecter les ICMP Flooding

alert icmp any any -> $HOME_NET any (msg:"aQaque de ICMP flood"; sid:1000006;
rev:1; classtype:icmp-event; detec)on_filter:track by_dst, count 100 , seconds 5;)

Nous allons filtrer l’apaque


• count : spécifie le nombre d’occurrences provoquant l’alerte, le seuil de détecoon
(toutes les 100 requêtes ici)
• Seconds : spécifie l’intervalle de temps, dans lequel on comptabilise : (toutes les
secondes, si plus de 100 requêtes)
• track by_dst : vérifie le nombre de paquet pour chaque desonaoon

01/03/2022 Soufiane TAZARINE @ 2021 31


1 Mise en place d'une sonde IDS : 2h30

Retestons avec une nouvelle aQaque de ping flooding !

Dans le fichier MyRules, commencer par commenter l’ancienne règle d’alerte et ajouter la
nouvelle règle.

01/03/2022 Soufiane TAZARINE @ 2021 32


1 Mise en place d'une sonde IDS : 2h30

1) Lancer la détection snort snort -i eth0 -dve -c /etc/snort/snort.conf -A full


2) Visualiser les alertes en temps réel
tail -f /var/log/snort/alert

3) Lancer l’attaque (depuis la machine ping -f 192.168.230.6


attaquante)

01/03/2022 Soufiane TAZARINE @ 2021 33


1 Mise en place d'une sonde IDS : 2h30

Résultat de détecoon :

Visualiser le fichier d’alerte

Ques1on 9
a) Décrire ce qui s’est passé durant cette attaque.
b) En quoi cette attaque est différente de la première
(ping echo)
c) Pourquoi cette attaque est plus dangereuse que la
première ?

01/03/2022 Soufiane TAZARINE @ 2021 34


1 Mise en place d'une sonde IDS : 2h30

3/ Ajout d’une règle pour détecter l’AQaque Syn-Flooding

D’abord, ajouter cepe règle à votre fichier MyRules.rules

alert TCP any any -> $HOME_NET any (msg:"TCP SYN flood attaque detectée"; flags:S;
threshold: type threshold, track by_dst, count 1000 , seconds 60; sid: 5000002;)

1) Lancer la détecoon snort snort -i eth0 -dve -c /etc/snort/snort.conf -A full

2) Visualiser les alertes en temps réel


tail -f /var/log/snort/alert

3) Lancer l’apaque (depuis la machine apaquante) nmap -sS 192.168.230.6

01/03/2022 Soufiane TAZARINE @ 2021 35


1 Mise en place d'une sonde IDS : 2h30

Résultat du TCP Syn Flooding

Question 10
a) Rappeler le déroulement de l’initiation d’une session TCP, avec les flags
utilisés ?
b) Comment une attaque TCP SYN Flooding peut elle impacter un serveur ?
c) Décrire ce qui s’est passé durant cette attaque de TCP SYN Flooding

01/03/2022 Soufiane TAZARINE @ 2021 36


1 Mise en place d'une sonde IDS : 2h30

3/ Détec)on de scan NMAP

q Terminal 1 : Nous allons lancer snort en mode sniffer

snort -i eth0 -dve -c /etc/snort/snort.conf -A full


A'en(on : vous devez
scanner votre réseau
(dans l’environnement
q Terminal 2 :Analysons le fichier alert de snort (commande tail
pour voir les alerts en temps réel pendant le scan) du TP : pour cet
exemple c’est
192.168.230.0/24)
tail -f /var/log/snort/alert

01/03/2022 Soufiane TAZARINE @ 2021 37


1 Mise en place d'une sonde IDS : 2h30

3/ Détec)on de scan NMAP

D’abord, ajouter cepe règle à votre fichier MyRules.rules

alert ip any any -> $HOME_NET any (msg: "scanner NMAP en cours ";sid:10000005; rev:2; )

1) Lancer la détecoon snort snort -i eth0 -dve -c /etc/snort/snort.conf -A full

2) Visualiser les alertes en temps réel


tail -f /var/log/snort/alert

3) Lancer l’apaque (depuis la machine apaquante) nmap -sV -p- 192.168.230.6

01/03/2022 Soufiane TAZARINE @ 2021 38


1 Mise en place d'une sonde IDS : 2h30

3) Mode NIDS

q Analysons le fichier alert de snort (commande tail pour voir les alerts en temps réel pendant
le scan)

Question 11
Expliquer le déroulement de ce scan de ports.
Quel protocole a été détecté ? TCP ou UDP ?
01/03/2022 Soufiane TAZARINE @ 2021 39
1 Mise en place d'une sonde IDS : 2h30

Exercice 1 :

Ecrire et tester une règle snort pour la détection de l’attaque UDP Flooding

- Le message d’alerte doit être : « détection attaque UDP flooding »

- Astuce : pour réaliser l’attaque, utiliser l’option -sU de nmap

01/03/2022 Soufiane TAZARINE @ 2021 40

Vous aimerez peut-être aussi