Vous êtes sur la page 1sur 40

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

Vous aimerez peut-être aussi