Rapport Supcom A

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 33

REPUBLIQUE TUNISIENNE

Ministère de l’Enseignement Supérieur et’

de la Recherche Scientifique

Université de Gabès

Ecole Nationale d’Ingénieurs de Gabès ‫المدرسة الوطنية للمهندسين بقابس‬

Département de Génie des ‫قسم هندسة اإلتصاالت والشبكات‬


Communications & des Réseaux

RAPPORT DE MINI-PROJET

Réalisé par :

MALAK BALTI

&
SIRINE ATITALLAH
Sujet :

Conception d'une solution de sécurité intelligente


pour la détection des intrusions
Soutenu le 09/05/2024 devant la commission de jury

Mme Aida Zaier Encadrant


Mme Chaima Bahhar Rapporteuse

Année Universitaire : 2022/2023


REMERCIMENT

Nous tenons à exprimer notre profonde gratitude envers notre encadrant, ZAIER AIDA, pour
son soutien indéfectible, son expertise inestimable et sa guidance tout au long de ce projet.
Sans son engagement et son accompagnement, notre travail n’aurait pas atteint son plein
potentiel. Nous sommes profondément reconnaissants pour la confiance qu’il nous a accordée
et pour avoir été un mentor exemplaire tout au long de cette expérience enrichissante de
croissance personnelle et professionnelle. Ce projet a été rendu possible grâce à son soutien
inestimable. Nous exprimons également notre reconnaissance envers ENIG pour nous avoir
offert l’opportunité d'explorer ce sujet passionnant. Enfin, nous souhaitons remercier
chaleureusement le membre du jury, Chaima Bahar, pour son évaluation attentive et ses
précieux commentaires.
TABLE DE MATIERE

INTRODUCTION GENERALE..........................................................................................1
Chapitre 1 .............................................................................................................................2
Etude Préalable de la Sécurité et de la détection d’intrusions ............................................2
1. Introduction ...............................................................................................................2
2. Les types des attaques ...............................................................................................2
2.1 Attaques par déni de service (DoS) et par déni de service distribué (DDoS) ....2
2.2 Attaque de l’homme au milieu (MitM) ..............................................................2
2.3 Le phishing ..........................................................................................................3
2.4 Attaque par injection SQL .................................................................................3
2.5. Attaque XSS (Cross-site scripting) : ..................................................................4
3. Système de détection d’intrusion (IDS) .....................................................................4
3.1 Définition .............................................................................................................4
3.2 Les différents types d'IDS ...................................................................................5
3.3 Principe ...............................................................................................................6
4. Système de prévention des intrusions (IPS) ..............................................................6
5. Le Deep Learning dans les Systèmes de Détection d'intrusion ................................7
6. Conclusion ..................................................................................................................8
Chapitre 2 .............................................................................................................................9
Fondements Théoriques et Implémentation de notre Solution de Détection d'Intrusions 9
1. Introduction ...............................................................................................................9
2. Suricata ......................................................................................................................9
2.2. Installation ..............................................................................................................9
2.3. Configuration .........................................................................................................9
3.1. Modèles utilisés ..................................................................................................... 12
3.3 Light GBM............................................................................................................ 13
Chapitre 3 ........................................................................................................................... 15
Mise en Pratique de notre Solution de Détection d'Intrusions ......................................... 15
1. Introduction .............................................................................................................15
2. Configuration et Tests de Suricata ..........................................................................15
2.1 Creation des régles par signature pour Suricata .............................................. 18
2.2 Verifier la correspondence des régles ............................................................... 18
2.3 Test de fonctionnement de Suricata ................................................................. 18
2.3.1 Scan avec Nmap............................................................................................. 18
2.3.2 Scan avec requete ICMP ............................................................................... 18
2.3.3 Attaque ping flooding avec hping3 ............................................................... 18
2.3.4 SQLI............................................................................................................... 18
3. Entraînement et Évaluation du Modèle avec LGBM .............................................19
3.1 DATASET utulisés ............................................................................................. 18
3.2. Importation des bibliothèques ...........................................................................19
3.3 Chargement du DATASET................................................................................ 18
3.4. Affichage du DATASET .................................................................................... 21
3.5. Analyse des données ........................................................................................... 22
3.6. Framework LGBM ............................................................................................. 25
Conclusion ....................................................................................................................... 26
CONCLUSION GENERALE ............................................................................................ 27
BIBLIOGRAPHIE .............................................................................................................28
Liste des figures

FIGURE 1 : attaque DOS et DDOS .............................................................................2


FIGURE 2 : attaque MitM ...........................................................................................3
FIGURE 3 : attaque XSS ..............................................................................................4
FIGURE 4 : IDS ............................................................................................................5
FIGURE 5 : Fonctionnement d’un IDS .......................................................................6
FIGURE 6 : suricata.yaml .......................................................................................... 10
FIGURE 7 : L’interface de configuration .................................................................. 11
FIGURE 8 : Etat de Suricata ..................................................................................... 11
FIGURE 9: KDDIDS .................................................................................................. 12
FIGURE 10 : Suricata Rules ...................................................................................... 16
FIGURE 11 : Test Rules ............................................................................................. 16
FIGURE 12 : Nmap scan ............................................................................................ 17
FIGURE 13 : Ping ....................................................................................................... 17
FIGURE 14 : Ping Flooding ....................................................................................... 17
FIGURE 15 : SQLMap ............................................................................................... 18
FIGURE 16: Test.php ................................................................................................. 18
FIGURE 17 : attaqueSQLI......................................................................................... 19
FIGURE 18 : KDD DATASET................................................................................... 19
FIGURE 19 : Importation des bibliothèques ............................................................. 20
FIGURE 20 : chargement de DATASET ................................................................... 20
FIGURE 21 : Col-names ............................................................................................. 21
FIGURE 22 : Affichage du DATASET ......................................................................21
FIGURE 23 : EnterCaption........................................................................................ 22
FIGURE 24 : visualisation des données ..................................................................... 22
FIGURE 25 : Classification normal/attaque .............................................................. 23
FIGURE 26 : comptage avec pourcentage ................................................................. 23
FIGURE 27 : traitement de données ..........................................................................24
FIGURE 28 : code LGBM .......................................................................................... 25
FIGURE 29 : OutputLGBM ...................................................................................... 25
FIGURE 30 : Précision ............................................................................................... 26
INTRODUCTION GENERALE

Les systèmes d'information sont aujourd'hui de plus en plus ouverts sur Internet. Cette
ouverture, a priori bénéfique, pose néanmoins un problème majeur : il en découle un nombre
croissant d'attaques. La mise en place d'une politique de sécurité autour de ces systèmes est
donc primordiale.

Outre la mise en place de pare-feu et de systèmes d'authentification de plus en plus sécurisés,


il est nécessaire, pour compléter cette politique de sécurité, d'avoir des outils de surveillance
pour auditer le système d'information et détecter d'éventuelles intrusions.
Ce que nous appelons intrusion signifie pénétration des systèmes d'information, mais aussi
tentatives des utilisateurs locaux d'accéder à de plus hauts privilèges que ceux qui leur sont
attribués, ou tentatives des administrateurs d'abuser de leurs privilèges.

Pour lutter contre ces intrusions, la conception d'une solution intelligente de détection
d'intrusion revêt une importance capitale. Cette solution combine l'utilisation de Suricata, un
système de détection et de prévention des intrusions, avec le modèle de machine learning
GBM (Gradient Boosting Machine), pour offrir une protection robuste et proactive contre les
menaces.
Nous détaillerons dans les trois chapitres suivants les différentes facettes de notre approche
pour la sécurisation des systèmes d'information. Dans le chapitre 1, nous réaliserons une étude
préalable de la sécurité et de la détection d'intrusions. Cette étude comprendra une définition
générale des types d'attaques rencontrées dans les environnements informatiques ainsi qu'une
analyse approfondie des différents types de systèmes de détection d'intrusions (IDS). De plus,
nous aborderons une approche innovante basée sur le deep learning pour renforcer la capacité
de détection des IDS.
Le chapitre 2 sera dédié à notre solution basée sur Suricata et le deep learning. Nous
procéderons à l'installation et à la configuration de Suricata, un système de détection et de
prévention des intrusions largement utilisé dans le domaine de la sécurité informatique. En
outre, nous détaillerons le jeu de données NSL-KDD que nous avons sélectionné pour
l'entraînement de notre modèle de deep learning. Nous présenterons également le framework
LGBM (Light Gradient Boosting Machine) que nous avons choisi pour sa performance et sa
robustesse.
Enfin, le chapitre 3 sera consacré à l'implémentation pratique de notre solution. Nous
fournirons des captures d'écran détaillant les différentes étapes de configuration de Suricata,
de prétraitement des données, d'entraînement du modèle de deep learning et de déploiement
de l'ensemble de la solution. Ces captures d'écran permettront une compréhension claire et
concrète du processus d'implémentation de notre solution de détection d'intrusions.

1
Chapitre 1

Etude Préalable de la Sécurité et de la détection


d’intrusions
1. Introduction

Les avantages de faire des tests d’intrusion sont nombreux car ils permettent de détecter les
failles de sécurité avant qu’un acteur malveillant ne les découvre puis les exploite. Dans ce
chapitre nous allons voir les différents types des attaques ainsi les différents types des IDS.

2. Les types des attaques


2.1 Attaques par déni de service (DoS) et par déni de service distribué
(DDoS)

Une attaque par déni de service submerge les ressources d’un système afin que ce dernier ne
puisse pas répondre aux demandes de service. Une attaque DDoS vise elle aussi les ressources
d’un système, mais elle est lancée à partir d’un grand nombre d’autres machines hôtes
infectées par un logiciel malveillant contrôlé par l’attaquant. [1]

FIGURE 1 : attaque DOS et DDOS

2.2 Attaque de l’homme au milieu (MitM)

Une attaque de l’homme du milieu est un pirate qui s’insère dans les communications entre un
client et un serveur.

2
Détournement de session :
Dans ce type d’attaque MitM, un attaquant détourne une session entre un client et un serveur
réseau. Par exemple, l’attaque pourrait se dérouler ainsi :

 Un client se connecte à un serveur.


 L’ordinateur de l’attaquant prend le contrôle du client.
 L’ordinateur de l’attaquant déconnecte le client du serveur.
 L’ordinateur de l’attaquant remplace l’adresse IP du client par sa propre adresse IP et
son propre nom de domaine et usurpe les numéros de séquence du client.
 L’ordinateur de l’attaquant poursuit le dialogue avec le serveur, le serveur croit qu’il
communique toujours avec le client. [1]

FIGURE 2 : attaque MitM

2.3 Le phishing

Le phishing est un type de cyber attaque qui utilise les e-mails, les SMS, le téléphone, les
réseaux sociaux et les techniques d’ingénierie sociale pour inciter une victime à partager des
informations sensibles, comme des mots de passe ou des numéros de compte, ou à télécharger
un fichier malveillant qui installera des virus sur son ordinateur ou son téléphone. [1]

2.4 . Attaque par injection SQL

L’injection SQL est devenue un problème courant qui affecte les sites Web exploitant des
bases de données. Elle se produit lorsqu’un malfaiteur exécute une requête SQL sur la base de
données via les données entrantes du client au serveur. Des commandes SQL sont insérées

3
dans la saisie du plan de données (par exemple, à la place du nom d’utilisateur ou du mot de
passe) afin d’exécuter des commandes SQL prédéfinies. Un exploit d’injection SQL réussi
peut lire les données sensibles de la base de données, modifier (insérer, mettre à jour ou
supprimer) les données de la base de données, exécuter des opérations d’administration de la
base de données (par exemple la fermer), récupérer le contenu d’un fichier spécifique, et, dans
certains cas, envoyer des commandes au système d’exploitation [1]

2.5. Attaque XSS (Cross-site scripting) :

Les attaques XSS utilisent des ressources Web tierces pour exécuter des scripts dans le
navigateur Web de la victime ou dans une application pouvant être scriptée. Plus précisément,
l’attaquant injecte un JavaScript malveillant dans la base de données d’un site Web. Lorsque
la victime demande une page du site Web, le site Web transmet la page à son navigateur avec
le script malveillant intégré au corps HTML. Le navigateur de la victime exécute ce script, qui
envoie par exemple le cookie de la victime au serveur de l’attaquant, qui l’extrait et l’utilise
pour détourner la session. [1]

FIGURE 3 : attaque XSS

3. Système de détection d’intrusion (IDS)

3.1 Définition

4
Un système de détection d’intrusion (IDS) est le processus qui examine l’activité du système
ou du réseau pour trouver d’éventuelles intrusions ou attaques. Les systèmes de détection
d’intrusion sont basés sur le réseau ou sur l’hôte.

Les systèmes de détection d'intrusion ou IDS peuvent se classer selon trois catégories
majeures selon qu'ils s'attachent à surveiller :

 Le trafic réseau : on parle d'IDS réseau ou NIDS (Network based IDS)


 L'activité des machines: on parle d'IDS Système ou HIDS (Host based IDS)
 Une application particulière sur la machine : on parle d'IDS Application (Application
based IDS). Contrairement aux deux IDS précédents, ils sont rares.

FIGURE 4 : IDS

3.2 Les différents types d'IDS

 Network based IDS (NIDS)


Ces outils analysent le trafic réseau; ils comportent généralement une sonde qui "écoute" sur
le segment de réseau à surveiller et un moteur qui réalise l'analyse du trafic afin de détecter
les signatures d'attaques ou les divergences face au modèle de référence. Les IDS Réseaux à
base de signatures sont confrontés actuellement à deux problèmes majeurs qui sont :
l'utilisation grandissante du cryptage, et des réseaux commutés

 Host based IDS (HIDS)


Les IDS Systèmes analysent quant à eux le fonctionnement ou l'état des machines sur
lesquelles ils sont installés afin de détecter les attaques. Pour cela ils auront pour mission
d'analyser les journaux systèmes, de contrôler l'accès aux appels systèmes, de vérifier
l'intégrité des systèmes de fichiers.

5
 Les IDS hybrides (NIDS+HIDS)
Les IDS hybrides rassemblent les caractéristiques de plusieurs IDS différents. Ils permettent,
en un seul outil, de surveiller les réseaux et les terminaux. Les sondes sont placées en des
points stratégiques, et agissent comme NIDS et/ou HIDS suivant leurs emplacements. Toutes
ces sondes remontent alors les alertes à une machine qui va centraliser le tout, et agréger/lier
les informations d'origines multiples.

3.3 Principe

Le fonctionnement d’un IDS et le processus de détection d’intrusions sont illustrés dans la


figure suivante:

a)
b)
c)
d)
e)
f)
g)
h)
i)
j)

FIGURE 5 : Fonctionnement d’un IDS

4. Système de prévention des intrusions (IPS)

Un système de prévention des intrusions (IPS) est une forme de sécurité de réseau qui sert à
détecter et prévenir les menaces identifiées. Les systèmes de prévention des intrusions
surveillent en permanence votre réseau, recherchant les éventuels actes de malveillance et

6
capturent des informations à leur sujet. L’IPS signale ces événements aux administrateurs du
système et prend des mesures préventives, telles que la fermeture des points d’accès et la
reconfiguration des firewalls pour empêcher de futures attaques

5. Le Deep Learning dans les Systèmes de Détection d'intrusion

Le deep learning, une sous-discipline de l'intelligence artificielle, représente une avancée


majeure dans le domaine de la modélisation et de l'analyse des données. Inspiré par le
fonctionnement du cerveau humain, le deep learning permet aux machines d'apprendre à
partir de données non structurées ou complexes, en identifiant des patterns et en extrayant des
caractéristiques pertinentes de manière automatique et hiérarchique. Cette capacité à
apprendre à représenter les données de manière hiérarchique est essentielle pour traiter des
informations complexes telles que des images, des vidéos ou des séquences de données
temporelles.

Dans le contexte de la sécurité informatique, le deep learning a émergé comme une solution
prometteuse pour renforcer les systèmes de détection d'intrusions (IDS). Traditionnellement,
les IDS reposent sur des règles préétablies ou sur des techniques de détection d'anomalies
pour identifier les activités suspectes. Cependant, ces approches peuvent être limitées dans
leur capacité à détecter des attaques sophistiquées et émergentes, en particulier dans un
environnement où les attaquants sont constamment en train de développer de nouvelles
stratégies pour contourner les défenses.

En intégrant le deep learning aux IDS, les chercheurs et les praticiens cherchent à surmonter
ces limites en exploitant la capacité du deep learning à apprendre des modèles à partir de
grandes quantités de données. Les modèles de deep learning peuvent être formés à reconnaître
les schémas et les comportements associés à des activités malveillantes, même lorsque ces
schémas sont complexes ou difficiles à définir à l'avance. Cette capacité permet aux IDS de
détecter de manière proactive les menaces émergentes et évolutives, améliorant ainsi la
capacité des organisations à protéger leurs systèmes informatiques contre les attaques.

En résumé, l'utilisation du deep learning dans les systèmes de détection d'intrusions représente
une approche innovante pour renforcer la sécurité informatique en permettant aux IDS de
détecter de manière proactive les menaces émergentes et sophistiquées. En exploitant la
capacité du deep learning à apprendre des modèles à partir de données complexes, cette
approche offre un potentiel considérable pour améliorer la résilience des infrastructures
informatiques contre les attaques malveillantes.

7
6. Conclusion

En conclusion, dans ce chapitre on a offert un aperçu approfondi des menaces cybernétiques


les plus répandues et des mécanismes de défense existants. Comprendre ces attaques est
essentiel pour élaborer des stratégies de sécurité efficaces. Les prochains chapitres aborderont
des solutions pratiques et des approches innovantes pour faire face à ces menaces et renforcer
la sécurité des infrastructures numériques.

8
Chapitre 2

Fondements Théoriques et Implémentation de notre


Solution de Détection d'Intrusions

1. Introduction

Dans ce chapitre, nous explorerons Suricata. Nous aborderons son installation et sa


configuration. En outre, nous présenterons notre base de données choisie pour l'entraînement
et l'évaluation de notre système, à savoir NSL-KDD. Nous discuterons également du
Framework LGBM (Light Gradient Boosting Machine) que nous avons sélectionné pour son
efficacité et sa performance dans le contexte de l'apprentissage automatique. Enfin, nous
passerons en revue les différentes bibliothèques utilisées dans notre solution,

2. Suricata

2.1. Définition

Suricata[3] est un système de détection d’intrusion (IDS) et de prévention d’intrusion (IPS)


open-source conçu pour détecter et prévenir les cyber menaces en temps réel. C’est un outil
efficace et flexible qui peut être utilisé pour surveiller le trafic réseau et identifier les activités
malveillantes, telles que les attaques réseau, les violations de données et les infections par des
logiciels malveillants. Suricata utilise une combinaison de techniques de détection basées sur
les signatures et les anomalies pour identifier les menaces, et il peut être configuré pour
alerter les administrateurs et prendre des mesures pour atténuer les menaces identifiées.

2.2. Installation
On fait l’installation à l’aide de documentation sur la page officielle du suricata
 sudo apt-get install software-properties-common
 sudo add-apt-repository ppa:oisf/suricata-stable
 sudo apt-get update
 sudo apt-get install suricata
 sudo apt-get update
 sudo apt-get upgrade suricata

2.3. Configuration

9
Le fichier « suricata.yaml » est le fichier de configuration principal de Suricata. Ce fichier
est essentiel car il permet de configurer le comportement de Suricata, y compris ses règles de
détection, ses fichiers de journalisation, ses interfaces réseau à surveiller, ses paramètres de
performance.
Il permet de configurer les :

 règles de détection : Le fichier ‘suricata.yaml‘ permet de spécifier les règles de


détection à utiliser par Suricata pour identifier les comportements malveillants sur le
réseau.
 Paramètres réseau : Vous pouvez configurer les interfaces réseau à surveiller, les
modes de capture réseau (par exemple, promiscuité), ainsi que les paramètres de
fragmentation et de réassemblage des paquets.
 Options de journalisation : Suricata génère des journaux détaillés sur les événements
détectés, les alertes, les paquets capturés, etc. Le fichier ‘suricata.yaml‘ vous permet
de spécifier les emplacements et les formats de ces journaux, ainsi que les niveaux de
verbosité.

Pour accéder au fichier suricata.yaml : (nano /etc/sricata/suricata.yaml)

FIGURE 6 : suricata.yaml

Dans l’exemple donné, HOMENET est défini comme étant l’union de trois plages d’adresses
IP :

10
192.168.0.0/16, 10.0.0.0/8 et 172.16.0.0/12:Ce sont des plages d’adresses IP privées
couramment utilisée dans les réseaux locaux domestiques et d’entreprise.

 Configuration du chemin des règles pour suricata par défaut en /var/lib/suricata/rules

Nous avons crée un nouveau fichier nommée local.rules c’est un fichier contient des règles
pour la détection par signature Et nous avons mis a jour l’interface pour la détection (pour
Ubuntu c’est généralement enp0s3)

FIGURE 7 : L’interface de configuration

 Activation du suricata: systemctl start suricata, après on verifie la status de suricata.

FIGURE 8 : Etat de Suricata

11
3. Deep Learning et IDS
3.1. Modèles utilisés

NSL-KDD[4] (NSL-KDD Dataset) est une version révisée du jeu de données KDDCup99, qui
est largement utilisé comme référence pour la détection d’intrusion dans les réseaux
informatiques. Le jeu de données KDDCup99 a été largement utilisé pour évaluer les
algorithmes de détection d’intrusion. Plus précisément, le jeu de données NSL-KDD élimine
les enregistrements en double, corrige les étiquettes incorrectes et équilibre les classes
d’intrusion. Cela permet aux chercheurs de disposer d’un jeu de données plus représentatif et
plus réaliste pour évaluer les performances des systèmes de détection d’intrusion. Le jeu de
données NSL-KDD comprend un ensemble de données d’apprentissage et un ensemble de
données de test, chacun comprenant plusieurs types d’attaques simulées ainsi que du trafic
normal. Il est largement utilisé dans la recherche académique et industrielle pour évaluer et
comparer les performances des algorithmes de détection d’intrusion.

FIGURE 9 : KDDIDS

3.2. Bibliothèques utilisées

3.2.1. Pandas
12
Pandas est une bibliothèque logicielle écrite pour le langage de programmation python pour

la manipulation et l’analyse de données.

3.2.2. Keras
Keras est une bibliothèque de logiciels open source qui fournit une interface python pour
les réseaux de neurones artificiels. Keras agit comme une interface pour la bibliothèque.

3.2.3. Numpy
NumPy est une bibliothèque pour le langage de programmation python, ajoutant la prise en
charge de grands tableaux et matrices multidimensionnels, ainsi qu’une grande collection de

Fonctions mathématiques de haut niveau pour opérer sur ces tableaux.

3.2.4. Matplotlib
Matplotlib est une bibliothèque de traçage pour le langage de programmation python et son
extension de mathématiques numériques numPy. Il fournit une API orientée objet pour
intégrer des tracés dans des applications utilisant des kits d’outils GUI à usage général tels
que Tkinter,wxPython, Qt ou GTK.

3.2.5. matplotlib.pyplot
Cette bibliothèque est utilisée pour créer des visualisations graphiques en python, offrant

une grande variété de fonctionnalités pour tracer des graphiques, des histogrammes, des
diagrammes en boîte.

3.3 Light GBM

Light GBM est un Framework d’amélioration de gradient qui utilise des algorithmes
d’apprentissage basés sur des arbres. Il est conçu pour être distribué et efficace avec les
avantages suivants:
— Vitesse d’entraînement plus rapide et efficacité accrue.

— Utilisation réduite de la mémoire.


— Meilleure précision.

— Prise en charge de l’apprentissage parallèle, distribué.


— Capable de gérer des données à grande échelle.

Le code fournit utilise la fonction ‘setup‘ de PyCaret pour effectuer plusieurs tâches de
prétraitement des données et de configuration du modèle en seulement quelques lignes:

13
1. Configuration de l’environnement de modélisation: La fonction ‘setup‘ initialise un
environnement de modélisation en spécifiant des paramètres tels que la sessionID, les données
(‘ds‘), la variable cible (‘label’),la taille de l’ensemble d’entraînement (85% de l’ensemble de
données),etc.
2 .Prétraitement des données: Plusieurs techniques de prétraitement des données sont
appliquées, notamment l’imputation des valeurs manquantes pour les caractéristiques
numériques, la normalisation des données, la création de caractéristiques polynomiales
jusqu’au degré 2, et la spécification des caractéristiques catégorielles.

3. Division des données: Les données sont divisées en ensembles d’entraînement et de test, et
les caractéristiques et les étiquettes correspondantes.

4. Conclusion

Dans cette section, nous avons exploré les aspects théoriques essentiels de notre solution de
détection d'intrusions. Nous avons commencé par aborder notre choix de la base de données
NSL-KDD pour l'entraînement et l'évaluation de notre modèle. Ensuite, nous avons examiné
les différentes bibliothèques utilisées dans notre solution. Enfin, nous avons présenté le
framework LGBM (Light Gradient Boosting Machine), sélectionné pour son efficacité et sa
performance dans le cadre de l'apprentissage automatique. Ces éléments théoriques
constituent les fondements nécessaires à la mise en œuvre d'une solution de détection
d'intrusions efficace et performante. Dans le prochain chapitre, nous passerons à
l'implémentation pratique de notre solution, mettant en œuvre les concepts théoriques abordés
dans cette section pour créer un système de détection d'intrusions fonctionnel et performant.

14
Chapitre 3

Mise en Pratique de notre Solution de Détection


d'Intrusions

1. Introduction

Dans ce chapitre, nous passerons de la théorie à la pratique en mettant en œuvre notre solution
de détection d'intrusions. Nous débuterons par la création de règles par signature pour
Suricata. Ensuite, nous procéderons à des tests de fonctionnement de Suricata pour garantir
son efficacité dans la détection des intrusions. Enfin, nous nous penchons sur l'utilisation du
modèle KDD NSL pour détecter les intrusions dans les réseaux, et mettre en pratique
l'algorithme Light GBM

2. Configuration et Tests de Suricata

2.1. création des règles par signature pour Suricata

Dans Suricata:

Chaque règle est composée de différents éléments qui spécifient les conditions à surveiller et
les actions à prendre en cas de détection d’une correspondance. Voici les significations des
principaux composants d’une règle dans Suricata:
1. Action : L’action spécifie ce qui doit être fait lorsque la règle détecte une correspondance
avec le trafic surveillé.

Les actions les plus courantes sont :‘alert‘, qui génère une alerte ; ‘drop‘,qui bloque le trafic ;
et ‘pass‘,qui autorise le trafic.
2. Option de protocole : Cette partie de la règle spécifie le protocole réseau à surveiller. Par
exemple,‘tcp‘,‘udp‘,‘icmp‘, etc.
3. Source et destination: Les adresses IP source et destination du trafic à surveiller.
4. Port: Les ports source et destination du trafic à surveiller.

5. Contenu : Le contenu est la charge utile des paquets réseau. Il peut s’agir de chaînes de
caractères spécifiques à rechercher dans le trafic, ce qui peut indiquer une activité
malveillante.

15
6. Direction : Cette option spécifie la direction du trafic à surveiller, par exemple, ‘->‘ pour le
trafic allant de la source vers la destination, ou‘<-‘pour le trafic allant de la destination vers la
source.

7. options supplémentaires : Il existe de nombreuses autres options disponibles dans les règles
Suricata, telles que ‘sid‘ (identifiant de signature), ‘msg‘ (message d’alerte), ‘classtype (type
de classe) et ‘rev‘(version de règle)

FIGURE 10 : Suricata Rules

2.2. Vérifier la correspandence des rélges


après on utlise " systemctl restart suricata" pour redémarrer les service Suricata . Pour
vérifier la correspandence des rélges on utlise : suricata -T-c /etc/suricata/suricata.yaml

FIGURE 11 : Test Rules

2.3. Test de fonctionnement de Suricata

Pour tester le bon fonctionnement du Suricata, on effectue plusieurs attaques et on observe les
alertes dans : /var/log/suricata/fast.log

16
2.3.1 Scan avec Nmap

FIGURE 12 : Nmap scan

2.3.2 Scan avec requête ICMP

FIGURE 13 : Ping

2.3.3. Attaque ping flooding avec hping3

FIGURE 14 : Ping Flooding

17
2.3.4. SQLI
Nous avons installé serveur apache2 et nous essayons de tester avec sqlmap:

Sqlmap -u ‘http://ip/test.php’

FIGURE 15 : SQLMap

Voici le contenu de test.php

Le code récupère un paramètre id de l'URL et l'utilise directement dans une requête SQL
sans vérification ni échappement, ce qui rend la requête vulnérable à une attaque SQL
Injection

FIGURE 16: Test.php

18
FIGURE 17 : attaqueSQLI

3. Entraînement et Évaluation du Modèle avec LGBM

3.1. DATASET utilisée

Nous avons utilisé cette DATASET[5] , Les données fournies représentent des enregistrements
de trafic réseau, avec des informations telles que le protocole de transport utilisé, le type de
service, le statut de la connexion, et diverses caractéristiques spécifiques à chaque transaction.
Chaque ligne correspond à une transaction individuelle, avec des champs numériques
décrivant des aspects tels que la durée de la connexion, le nombre de paquets, et le taux
d’erreur. Le dernier champ indique l’état de la connexion, distinguant entre une activité
normale et des activités suspectes ou malveillantes, comme des tentatives de déni de service.
Ces données sont généralement utilisées dans le domaine de la détection d’intrusion pour
entraîner et évaluer des algorithmes de classification visant à identifier les comportements
anormaux ou les attaques potentielles dans les réseaux informatiques.

FIGURE 18 : KDD DATASET

3.2. Importation des bibliothèques

Nous avons importé un certain nombre de bibliothèques telles que numpy, sklearn, seaborn,
pandas.Ces bibliothèques jouent un rôle essentiel dans l’exécution des programmes. De

19
nombreux ensembles de données se présentent sous la forme de CSV. Le CSV est un fichier
à valeurs séparées par des virgules qui permet de stocker des données sous forme de tableau

FIGURE 19 : Importation des bibliothèques

3.3. Chargement de DATASET

FIGURE 20 : chargement de DATASET

La variable ‘col-names‘ est une liste contenant les noms des colonnes d’un jeu de données.
Chaque élément de la liste représente le nom d’une caractéristique ou d’une variable dans le
jeu de données, telles que la durée de la connexion, le type de protocole, le service utilisé, etc.

20
FIGURE 21 : Col-names

3.4. Affichage de la base de données

FIGURE 22 : Affichage du DATASET

21
3.5. Analyse des données

L'importation de 'matplotlib.pyplot' sous le nom 'plt' permet d'utiliser les fonctionnalités de traçage de
Matplotlib dans le code. La ligne 'ds2['label'].value_counts().head(25).plot(kind='barh', figsize=(6,
6))' génère un diagramme à barres horizontales basé sur les comptages des différentes valeurs de la
colonne 'label' dans le DataFrame 'ds2', en affichant les 25 premières valeurs les plus fréquentes. La
taille de la figure est définie comme étant de 6 pouces par 6 pouces.

FIGURE 23 : EnterCaption

Ce code génère un graphique de comptage pour visualiser la distribution des classes dans la
colonne ’label’ du Data Frames, avec un titre "ClassCount"

FIGURE 24 : visualisation des données

22
FIGURE 25 : Classification normal/attaque

Ce code génère un graphique de comptage pour visualiser la distribution des classes binaires
dans la colonne ’label’ du DataFrame Y.Il ajoute également des étiquettes de pourcentage sur
chaque barre du graphique et ajuste les étiquettes d’axe y pour afficher les pourcentages
correspondants.

FIGURE 26 : comptage avec pourcentage

23
Ce code donne des pourcentages des différentes attaques estimés .

FIGURE 27 : traitement de données

24
3.6. Framework LGBM

FIGURE 28 : code LGBM

FIGURE 29 : OutputLGBM

25
On trouve une précision de 99.99%

FIGURE 30 : Précision

Conclusion

Dans ce chapitre, nous avons réalisé la mise en pratique de notre solution de détection
d'intrusions, passant par des étapes cruciales pour assurer son efficacité opérationnelle. En
créant des règles par signature pour Suricata, nous avons défini les comportements
malveillants à surveiller, tandis que les tests de fonctionnement de Suricata ont validé son
aptitude à détecter les intrusions conformément à nos attentes. De plus, l'implémentation
pratique du deep learning avec LGBM nous a permis d'entraîner et d'évaluer notre modèle,
renforçant ainsi la robustesse de notre solution. Cette étape concrète nous rapproche de notre
objectif final : offrir une protection efficace contre les menaces en milieu informatique.

26
CONCLUSION GENERALE

En conclusion, la sécurité informatique est un domaine en constante évolution, nécessitant


une vigilance permanente et des efforts continus pour faire face aux menaces émergentes. Ce
rapport a mis en lumière l'importance cruciale de comprendre les différentes techniques
d'attaques, ainsi que les outils et les technologies disponibles pour protéger les systèmes
informatiques. Nous avons exploré comment des solutions telles que Suricata et les modèles
de Deep Learning offrent des moyens prometteurs pour détecter et prévenir les intrusions,
mais il est crucial de noter que leur efficacité dépend également de l'expertise des
professionnels de la sécurité et de leur capacité à adapter ces outils aux besoins spécifiques de
chaque organisation.

En regardant vers l'avenir, plusieurs perspectives émergent. Tout d'abord, il est impératif de
continuer à suivre de près les évolutions dans le paysage des menaces informatiques et
d'adapter en conséquence nos stratégies de sécurité. Cela pourrait impliquer une recherche
continue sur de nouvelles méthodes de détection et de prévention des attaques, ainsi que le
développement de technologies plus avancées pour contrer les attaquants.

Enfin, la sécurité informatique est un effort collectif et multidimensionnel qui nécessite une
collaboration étroite entre les différents acteurs de l'écosystème numérique. Les
gouvernements, les entreprises, les institutions académiques et la société civile doivent
travailler ensemble pour partager des informations sur les menaces, développer des normes de
sécurité et promouvoir une culture de sécurité numérique.

En définitive, la sécurité informatique est un défi complexe mais surmontable, à condition que
nous restions vigilants, engagés et collaboratifs dans notre approche. En unissant nos efforts,
nous pouvons garantir la protection des données et la continuité des activités dans un monde
de plus en plus numérique et interconnecté.

27
BIBLIOGRAPHIE

https://blog.netwrix.fr/2018/07/04/les-10-types-de-cyberattaques-les-plus-courants/ [1]
http://lehmann.free.fr/RapportMain/node10.html [2]

https://noctisdark.dev/blog/labs/tp-suricata/ [3]
https://hal.science/hal-01304514/document [4]

DATASET [5]

https://github.com/Mamcose/NSL-KDD-Network-Intrusion-Detection/tree/master

28

Vous aimerez peut-être aussi