0% ont trouvé ce document utile (0 vote)
156 vues28 pages

Project Snort

Transféré par

housseinahmednah
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
156 vues28 pages

Project Snort

Transféré par

housseinahmednah
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 28

Project Snort & IDSCenter

Théorie :
 Qu'est-ce qu'un système de détection d'intrusion ?
 Introduction à Snort
 Qu'est-ce que les règles Snort (Rules) ?
 Syntaxe des règles Snort
 Comment fonctionne Snort ?
 Placement de Snort IDS sur le réseau
 À propos de notre environnement de laboratoire

Démonstration pratique :
 Installation de Snort
 Comment examiner le manuel de Snort
 Configuration de Snort
 Tester notre fichier de configuration
 Créer des règles de base
 Comment exécuter Snort
 Essayer avec SSH
 Comment utiliser Snorpy
 Essayer avec FTP
 Examiner les règles communautaires
 Essayer avec MS17
 Examiner les journaux avec Wireshark.
 Conclusion

Systèmes de Détection d'Intrusion (IDS)


 La détection d'intrusion est le processus de découverte active des
menaces/attaques/intrusions sur un réseau, des hôtes ou des
services.
 Il existe deux types de solutions IDS basées sur le placement :
un IDS basé sur l'hôte (HIDS) est configuré sur un hôte
individuel sur un réseau, et un IDS réseau (NIDS) est placé au
sein d'un réseau pour surveiller le trafic à destination et en
provenance de tous les hôtes sur un réseau.
 Un IDS est un système/hôte implanté dans un réseau pour
capturer le trafic et identifier les activités malveillantes basées
sur des règles prédéfinies. Ensuite, cette activité malveillante est
enregistrée, et une notification est envoyée aux parties
concernées pour les informer d'une intrusion.
 Les systèmes de détection d'intrusion sont généralement associés
à des fonctionnalités de prévention des intrusions, où des règles
spécifiques peuvent être définies pour bloquer les paquets
malveillants ou intrusifs.
Introduction à Snort
 Snort est un système IDS/IPS populaire, gratuit et open-source
utilisé pour effectuer l'analyse du trafic/protocole, la
correspondance de contenu, et qui peut être utilisé pour détecter
et prévenir diverses attaques basées sur des règles prédéfinies.
 Snort est en développement actif et compte des milliers
d'utilisateurs et de contributeurs qui développent des règles pour
maintenir Snort à jour avec les dernières attaques.
 Snort dispose de trois modes de fonctionnement principaux :
o Sniffing de paquets : Collecte et affiche le trafic réseau,
comme le fait Wireshark.
o Journalisation de paquets : Collecte et enregistre le trafic
réseau dans un fichier.
o Détection d'intrusion réseau : Analyse les paquets et
compare le trafic aux signatures.

 Snort détecte le trafic malveillant ou les attaques en utilisant la


correspondance de motifs.
 Lorsqu'il est actif, Snort capture les paquets, les réassemble, les
analyse et détermine ce qu'il faut faire avec le paquet en fonction
de règles prédéfinies.
 Les règles Snort sont très similaires à une règle de pare-feu
typique, c'est-à-dire qu'elles sont utilisées pour faire
correspondre l'activité réseau à des motifs ou signatures
spécifiques et, par conséquent, prendre une décision sur l'envoi
d'une alerte ou le rejet du trafic (dans le cas d'un IPS).
 Snort dispose d'un grand nombre de règles créées par la
communauté, qui sont très utiles pour commencer.

Règles Snort
Snort propose trois types de règles/ensembles de règles :

 Règles communautaires : Ensembles de règles gratuits créés


par la communauté Snort.
 Règles enregistrées : Ensembles de règles gratuits créés par
Talos. Pour les utiliser, une inscription à un compte est requise.

Talos est L'auteur des ensembles de règles officiels de Snort

 Règles uniquement sur abonnement : Ces ensembles de règles


nécessitent un abonnement payant actif pour être accessibles et
utilisés.

En outre, il est possible de rédiger nos propres règles en fonction de


nos besoins spécifiques.

Syntaxe des règles Snort

Comment fonctionne Snort ?


Placement de Snort IDS sur le réseau

À propos de notre environnement de laboratoire


Démonstration pratique :

1-Installation de Snort
sudo apt-get install snort

Spécifiez la plage d'adresses pour le réseau local.


Vous pouvez vérifier cela en tapant `ip a` dans le terminal.

snort --version
Comment examiner le manuel de Snort

man snort

Les flags les plus importants de Snort

1. -c (Fichier de Configuration)

 Description : Spécifie le fichier de configuration pour Snort.


 Exemple : snort -c /etc/snort/snort.conf
 Importance : Ce flag est essentiel car il indique à Snort quel fichier de configuration
utiliser. Ce fichier contient les règles et les paramètres qui déterminent comment Snort
analyse le trafic réseau.

2. -i (Interface)

 Description : Spécifie l'interface réseau à écouter.


 Exemple : snort -i eth0
 Importance : Ce flag permet de choisir l'interface réseau que Snort va surveiller, ce
qui est crucial pour diriger Snort vers la bonne source de trafic.

3. -l (Répertoire de Logs)

 Description : Spécifie le répertoire où Snort doit enregistrer ses fichiers de log.


 Exemple : snort -l /var/log/snort
 Importance : La journalisation est essentielle pour l'analyse et les enquêtes médico-
légales. Ce flag garantit que les logs de Snort sont stockés dans un emplacement
désigné pour un accès et une révision faciles.

4. -A (Mode d'Alerte)

 Description : Définit le mode d'alerte (ex. : full, fast, console).


 Exemple : snort -A fast
 Importance : Ce flag contrôle la verbosité et le format des alertes générées par Snort.
Différents modes sont utiles pour différents besoins opérationnels, comme la
surveillance en temps réel ou la journalisation détaillée.

5. -K (Mode de Log)

 Description : Définit le mode de log (ex. : ascii, pcap).


 Exemple : snort -K pcap
 Importance : Ce flag détermine le format dans lequel les paquets sont enregistrés. Par
exemple, utiliser pcap permet d'analyser les logs plus tard avec des outils comme
Wireshark.

6. -T (Tester la Configuration)

 Description : Teste le fichier de configuration pour détecter des erreurs sans démarrer
Snort.
 Exemple : snort -T -c /etc/snort/snort.conf
 Importance : Ce flag est utile pour vérifier que le fichier de configuration est correct
avant de déployer Snort dans un environnement réel, évitant ainsi les problèmes
potentiels pendant l'opération.

7. -D (Mode Daemon)

 Description : Exécute Snort en arrière-plan en tant que daemon.


 Exemple : snort -D -c /etc/snort/snort.conf -i eth0
 Importance : Exécuter Snort en tant que daemon est important pour une surveillance
continue et non supervisée sur les systèmes de production.

8. -q (Mode Silencieux)

 Description : Supprime la sortie console.


 Exemple : snort -q -c /etc/snort/snort.conf
 Importance : Ce flag est utile pour réduire le bruit de sortie de la console, surtout
lorsque Snort est exécuté en arrière-plan ou intégré dans un système plus large.S

Configuration de Snort :

ls -la /etc/snort/

"Il est conseillé de toujours faire une sauvegarde au cas


où vous détruiriez le fichier original."
sudo cp /etc/snort/snort.conf /etc/snort/snort-
test.conf
sudo vim /etc/snort/snort-test.conf

 ipvar :

 Description : Il s'agit d'une directive utilisée dans la configuration de


Snort pour définir une variable qui représente une ou plusieurs adresses
IP.
 Usage : Permet de simplifier la configuration en utilisant des variables
pour représenter des adresses ou des plages d'adresses IP dans les règles et
les paramètres de Snort.

 HOME_NET :
 Description : HOME_NET est une variable standard utilisée dans les
fichiers de configuration de Snort pour désigner le réseau interne ou le
réseau protégé que vous surveillez.
 Usage : Cette variable est utilisée dans les règles de Snort pour identifier
le trafic entrant ou sortant de votre réseau interne.

Il est recommandé de définir HOME_NET avec une plage d'adresses IP


spécifique correspondant à votre réseau interne.

Ce réglage indique que HOME_NET inclut toutes les adresses IP de la plage


192.168.1.0 à 192.168.1.255.

EXTERNAL_NET :

 Description : EXTERNAL_NET est une variable standard utilisée dans les


fichiers de configuration de Snort pour désigner le réseau externe, c'est-à-
dire tout ce qui n'appartient pas au réseau interne ou protégé
(HOME_NET).
 Usage : Cette variable est utilisée dans les règles de Snort pour identifier
le trafic en provenance ou à destination de réseaux externes.

Tester notre fichier de configuration

sudo snort -T -i enp0s3 -c /etc/snort/snort-


test.conf
On a expliqué déjà les flags suivants :

-T : (Tester la Configuration)
 Description : Teste le fichier de configuration pour détecter des erreurs
sans démarrer Snort.

-i : (Interface)

 Description : Spécifie l'interface réseau à écouter.

-c : (Fichier de Configuration)

Description : Spécifie le fichier de configuration pour Snort

 4057 Snort rules read : Snort a lu un total de 4057 règles.


o 3383 detection rules : Parmi ces règles, 3383 sont des règles de détection,
utilisées pour identifier des activités suspectes ou malveillantes.
o 0 decoder rules : Il n'y a pas de règles de décodage. Les règles de décodage
sont utilisées pour interpréter les données de certains protocoles.
o 0 preprocessor rules : Il n'y a pas de règles de préprocesseur. Les
préprocesseurs sont utilisés pour préparer les données avant leur analyse par
les règles de détection.
o 3383 Option Chains linked into 949 Chain Headers : 3383 chaînes d'options
sont liées à 949 en-têtes de chaîne. Les chaînes d'options sont des éléments de
règles qui décrivent les actions à prendre lorsque des conditions spécifiques
sont rencontrées.

Détail des Comptes de Ports de Règles


Le tableau montre le nombre de règles par type de port et par protocole :

 src (source) :
o tcp : 151 règles
o udp : 18 règles
o icmp : 0 règle
o ip : 0 règle
 dst (destination) :
o tcp : 3306 règles
o udp : 126 règles
o icmp : 0 règle
o ip : 0 règle
 any (n'importe quelle adresse) :
o tcp : 383 règles
o udp : 48 règles
o icmp : 52 règles
o ip : 22 règles
 nc (non-classifié) :
o tcp : 27 règles
o udp : 8 règles
o icmp : 15 règles
o ip : 20 règles
 s+d (source et destination) :
o tcp : 12 règles
o udp : 5 règles
o icmp : 0 règle
o ip : 0 règle

Maintenant, nous allons désactiver ces règles et créer notre propre règle.

Pour désactiver les lignes de 597 à 717, nous utilisons l'éditeur Vim car il facilite
le processus, notamment lorsqu'il y a beaucoup de lignes.

:597,717s/^/#

 :597,717 : Cette partie spécifie la plage de lignes à modifier, de la ligne 597 à


la ligne 717.
 s : C'est l'abréviation de "substitute" (substituer). Elle indique que nous allons
faire une substitution sur la plage de lignes spécifiée.
 /^/ : Le symbole ^ représente le début de chaque ligne. La commande
s/^/#/ indique donc de remplacer le début de chaque ligne par le caractère #.

 # : C'est le caractère ajouté au début de chaque ligne sélectionnée pour les


commenter.
Là, on reprend la commande passée pour tester notre fichier de
configuration.

sudo snort -T -i enp0s3 -c /etc/snort/snort-


test.conf

Snort a lu un total de 0 règles.

Créer des règles de base

sudo vim /etc/snort/rules/local.rules

Maintenant, nous allons écrire les règles ici.


alert icmp any any -> $HOME_NET any (msg:”
Détection d’un ping ICMP”; sid:100001; rev:1;)
 alert : C'est le type d'action à entreprendre lorsque la règle est déclenchée.
Dans ce cas, une alerte sera générée.

 icmp : C'est le protocole réseau concerné par cette règle. Ici, c'est ICMP
(Internet Control Message Protocol), souvent utilisé pour le diagnostic et le
contrôle à distance des réseaux.

 any : Ce mot-clé spécifie n'importe quelle adresse IP ou port pour l'adresse


source et de destination.

 any : Indique également n'importe quelle adresse IP ou port pour l'adresse de


destination et d'origine.

 -> $HOME_NET any : Cette partie spécifie la direction du trafic.


$HOME_NET est une variable qui représente l'ensemble des adresses IP internes
du réseau local surveillé. Any signifie que n'importe quel port est autorisé en
tant que port de destination.

 (msg :"Détection d'un ping ICMP" ; : C'est un message d'alerte qui sera
inclus dans le log ou la notification lorsque la règle est déclenchée. Ici, il indique
la détection d'un ping ICMP.

 sid : 100001 ; : C'est l'identifiant unique de la signature de la règle. Chaque


règle Snort a un SID qui permet de l'identifier de manière unique.

 rev :1;) : C'est la version de la règle. Cette règle spécifique est en version 1.

Là, on va tester la règle qu'on a mise en place.


sudo snort -A fast -q -i enp0s3 -l /var/log/snort -c
/etc/snort/snort-test.conf
 -A fast : Indique à Snort d'utiliser un mode d'analyse rapide pour traiter le trafic réseau.
Cela permet à Snort de réduire la charge de traitement tout en fournissant une détection
efficace.
 -q : Mode silencieux, réduit la quantité de messages de journalisation sur la sortie
standard.

 -l /var/log/snort : Indique le répertoire où Snort va enregistrer les fichiers


journaux générés par ses activités de détection d'intrusion.

On a fait un ping vers l'adresse de la machine pour voir si elle va capturer le trafic ou pas.

Nous constatons clairement que nous avons capté le trafic.

Essayer avec SSH

Ajouter une autre règle :


Comment utiliser Snorpy

Snorpy est un outil basé sur le web conçu pour faciliter l'écriture, la gestion et la
validation des règles pour Snort. Snort utilise des règles pour identifier et réagir
aux activités malveillantes dans le trafic réseau. La création et la gestion de ces
règles peuvent être complexes et fastidieuses, et c'est là que Snorpy intervient.

Je remplis les cases nécessaires, puis je copie la commande en bas.


Essayer avec FTP

Ajoutez la commande dans la règle locale.


Examiner les règles communautaires

Ce que nous allons faire maintenant, c'est enlever les commentaires que nous avons mis
précédemment, car ces règles sont très importantes

Maintenant, nous allons télécharger des règles


Beaucoup de règles ont été écrites par la communauté.
Essayer avec MS17
EternalBlue est une vulnérabilité de sécurité dans le protocole SMB (Server
Message Block) de Microsoft, spécifiquement dans les versions 1.0 (SMBv1)
utilisées par les systèmes Windows. Elle a été rendue publique en 2017 après
avoir été exploitée par l'outil d'attaque du même nom, développé par la
National Security Agency (NSA) des États-Unis et ensuite divulgué par le groupe
de hackers Shadow Brokers.
Ajouter la règle dans les règles locales.

J'utilise Metasploit sur Kali Linux pour exploiter la vulnérabilité MS17-010 sur mon système
Windows 7 afin de vérifier si Snort parvient à détecter cette activité malveillante.
Snort est actuellement en mode d'écoute.

L'attaque a été exécutée avec succès en utilisant l'exploit EternalBlue.


Snort a détecté l'accès au partage IPC$ via SMB, ce qui est un indicateur de l'attaque
EternalBlue en cours.

Examiner les journaux avec Wireshark.

Les paquets ICMP.


Les paquets SSH.

Les paquets SMB.

Conclusion :
À travers l'utilisation de Snort, nous avons pu mettre en place un système
robuste de détection d'intrusions réseau. En configurant des règles spécifiques
et en surveillant activement le trafic, nous avons identifié plusieurs tentatives
d'intrusion et d'exploitation potentielles, telles que l'utilisation de l'exploit
MS17-010 et la surveillance des paquets ICMP et SSH. Ces détections nous ont
permis de renforcer la sécurité de notre réseau en identifiant et en réagissant
efficacement aux menaces. Snort s'est avéré être un outil précieux dans notre
arsenal de sécurité, offrant une visibilité essentielle sur les activités suspectes
et jouant un rôle crucial dans la protection de nos systèmes contre les attaques.

Source :

1-https://www.zenarmor.com/docs/linux-tutorials/how-to-
install-and-configure-snort-on-ubuntu-linux

2- https://muneneroy.medium.com/installing-configuring-
snort-ids-ips-on-ubuntu-896706425307

3- https://snort.org/

4- https://wiki.monitoring-fr.org/securite/snort/snort-ubuntu-
install.html

5- http://snorpy.cyb3rs3c.net/

6- https://wiki.wireshark.org/Snort

7- https://chatgpt.com/

Vous aimerez peut-être aussi