TP Mise en place d'une sonde IDS
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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’a)aques
bridge100
q Dans ce TP, voici l’environnement u0lisé : Attaquant
Machine hôte
192.168.230.1
08/11/2022 Soufiane TAZARINE @ CyberSecurity 4
1 Mise en place d'une sonde IDS : 2h30
Posi)onnement 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
08/11/2022 Soufiane TAZARINE @ CyberSecurity 5
TP Prise en main de Snort
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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 :
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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 distribu[on,…Etc.
08/11/2022 Soufiane TAZARINE @ CyberSecurity 9
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 Question 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
08/11/2022 Soufiane TAZARINE @ CyberSecurity 10
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 ?
08/11/2022 Soufiane TAZARINE @ CyberSecurity 11
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 ?
08/11/2022 Soufiane TAZARINE @ CyberSecurity 12
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 u[lisons également Question 4
snort (Agen[on : 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 ?
08/11/2022 Soufiane TAZARINE @ CyberSecurity 13
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écifica[on du réseau concerné
snort -de -L /var/log/today.log -h 192.168.230.
q AMen)on : penser à adapter le paramètre
« 192.168.230. » avec votre réseau local
08/11/2022 Soufiane TAZARINE @ CyberSecurity 14
1 Mise en place d'une sonde IDS : 2h30
3) Mode NIDS « Network Intrusion Detec)on 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 configuraJon de Snort qui doit contenir les
règles de détecJon
Ques1on 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
desJnaJons 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 ?
automaJquement uJlisé
q -A none : ne remonte aucune alertes
08/11/2022 Soufiane TAZARINE @ CyberSecurity 15
4 Configuration des régles de détection
08/11/2022 Soufiane TAZARINE @ CyberSecurity 16
1 Mise en place d'une sonde IDS : 2h30
Configuration de l’environnement 192.168.230.1 192.168.230.6
Ma machine vic[me doit être en
mode NAT
Pour ce TP, le réseau NAT est
192.168.230.0/24
08/11/2022 Soufiane TAZARINE @ CyberSecurity 17
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 aMaquante
nano /etc/snort/snort.conf
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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 par[es
dis[nctes :
• 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'orienta[on du trafic auquel la
règle s'applique (Unidirec[onnel ou Bidirec[onnel) ainsi que les adresses IP et ports sources et
des[na[on.
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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, permegent 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 op[ons de règle forment le cœur du moteur de détec[on d'intrusion de Snort.
Toutes les op[ons de règle de Snort sont séparées les unes des autres par un caractère
point-virgule " ; »
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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 op[ons de règle disponibles dans Snort :
q msg - affiche un message dans les alertes et journalise les paquets
q Ml - teste la valeur du champ TTL de l'entête IP
q ipop)on - regarde les champs des op[ons IP pour des codes spécifiques
q fragbits - teste les bits de fragmenta[on 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'acquigement pour une valeur spécifiée
q itype - teste le champ type ICMP contre une valeur spécifiée
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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 mo[f dans la charge d'un paquet
q content-list - recherche un ensemble de mo[fs dans la charge d'un paquet
q offset - modifie l'op[on content, fixe le décalage du début de la tenta[ve de correspondance de
mo[f
q session - affiche l'informa[on de la couche applica[ve pour la session donnée
q sid – iden[fiant de signature contenue dans la base de signature
ac)on protocole SourceIP SourcePort -> des)na)onIP des)na)on port (op[on1 ; op[on2 ;)
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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: "aMen)on requête echo"; sid: 10000002; rev: 1;
itype: 8; icode: 0;) d) Connaissez-vous d’autres attaques de
flooding ?
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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 ?
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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’agaque 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)
08/11/2022 Soufiane TAZARINE @ CyberSecurity 26
1 Mise en place d'une sonde IDS : 2h30
Machine cible
Machine attaque
Terminal 1
Terminal 2
Terminal 2
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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)
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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 agaquante.
Par exemple : machine agaquante 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 ;)
08/11/2022 Soufiane TAZARINE @ CyberSecurity 30
1 Mise en place d'une sonde IDS : 2h30
2/ Ajout d’une règle pour détecter l’ICMP Flooding
U[liser le paramètre detec[on_Filter pour détecter les ICMP Flooding
alert icmp any any -> $HOME_NET any (msg:"aMaque de ICMP flood"; sid:1000006;
rev:1; classtype:icmp-event; detec)on_filter:track by_dst, count 100 , seconds 5;)
Nous allons filtrer l’agaque
• count : spécifie le nombre d’occurrences provoquant l’alerte, le seuil de détec[on
(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 des[na[on
08/11/2022 Soufiane TAZARINE @ CyberSecurity 31
1 Mise en place d'une sonde IDS : 2h30
Retestons avec une nouvelle aMaque de ping flooding !
Dans le fichier MyRules, commencer par commenter l’ancienne règle d’alerte et ajouter la
nouvelle règle.
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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)
08/11/2022 Soufiane TAZARINE @ CyberSecurity 33
1 Mise en place d'une sonde IDS : 2h30
Résultat de détec[on :
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 ?
08/11/2022 Soufiane TAZARINE @ CyberSecurity 34
1 Mise en place d'une sonde IDS : 2h30
3/ Ajout d’une règle pour détecter l’AMaque Syn-Flooding
D’abord, ajouter cege 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étec[on 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’agaque (depuis la machine agaquante) nmap -sS 192.168.230.6
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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
08/11/2022 Soufiane TAZARINE @ CyberSecurity 37
1 Mise en place d'une sonde IDS : 2h30
3/ Détec)on de scan NMAP
D’abord, ajouter cege 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étec[on 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’agaque (depuis la machine agaquante) nmap -sV -p- 192.168.230.6
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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 ?
08/11/2022 Soufiane TAZARINE @ CyberSecurity 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
08/11/2022 Soufiane TAZARINE @ CyberSecurity 40