Projet
Projet
Réseaux Informatique
RAPPORT DE PROJET
THEME :
Réalisé par :
- LKOURD OMAR
-HECHOUCHE OUSSAMA
Année 2023-2024
1
Remerciements
Tout d'abord, Je dois remercier Dieu de m'avoir donné une seconde chance de vivre
après avoir vu la mort de mes propres yeux suite à un accident et le courage de
terminer ce travail.
A mon Encadrant
Je tiens à remercier mon encadrant M. MOUAATAZ HAMDOU pour m'avoir
accepté pour mener à bien ce projet de fin d'études et pour son temps précieux, ses
conseils et sa disponibilité tout au long de ce travail.
A mes Professeurs
J'adresse mes remerciements à tous les professeurs pour leurs conseils et leurs critiques
qui ont guidé ma réflexion au cours de mes recherches.
A mon Famille
Je tiens à exprimer ma profonde gratitude à mes parents qui m'ont soutenu tout au
long de mon projet. Ainsi que toutes les familles et amis pour leur soutien indéfectible.
2
Dédicaces
A ma Famille
Je dédie ce travail à ma famille, mon père, ma mère et mes frères J'espère être
à la hauteur de leurs attentes et ne jamais les décevoir.
A mon Encadrant
A mon encadrant M. MOUAATAZ HAMDOU vous m'avez beaucoup aidé dans
A mes Amis
A tous mes chers amis qui m'aident et m'encouragent.
A mes amis Oussama hechouche, et Oussama el boubkraoui, pour leur soutien.
A tous les camarades de département, compagnons de ces années d'études je leur souhaite
bonne chance
3
Résumé
Les attaques deviennent de plus en plus courantes, et les données stockées sur Internet sont
maintenant plus ciblées que jamais. Assurer la protection des informations critiques est
d'une importance capitale. Dans le cadre de cet effort, mon projet vise à développer une
approche basée sur l'apprentissage automatique pour la détection des intrusions sur le
réseau. Plus précisément, je propose de combiner les algorithmes NIDS (Network Intrusion
Detection System) avec les CNN (Convolutional Neural Network) afin d'identifier et de
prévenir les attaques quotidiennes auxquelles nous sommes confrontés sur les réseaux.
Cette approche innovante représente une solution prometteuse pour détecter et atténuer
efficacement les menaces de cybersécurité. En utilisant la base de données kdd99 comme
référence pour mon étude, je peux mettre en œuvre l'apprentissage en profondeur en
utilisant l'algorithme CNN, car il s'est avéré être le plus précis parmi les trois méthodes
(DNN, RNN, CNN).
Mots-clés
Summary
Attacks are becoming increasingly common, and data stored on the Internet is now more
targeted than ever. Ensuring the protection of critical information is of utmost importance.
In support of this effort, my project aims to develop a machine learning-based approach for
network intrusion detection. Specifically, I propose to combine NIDS (Network Intrusion
Detection System) algorithms with CNN (Convolutional Neural Network) to identify and
prevent the daily network attacks we face. This innovative approach represents a promising
solution to detect and mitigate cybersecurity threats effectively. By utilizing kdd99 as the
foundational database for my study, I can implement deep learning using the CNN
algorithm, as it has proven to be the most accurate among the three methods (DNN, RNN,
CNN).
Key-words
Network Security, IDS, Deep Learning, Machine Learning, Neural Network and
DNN, CNN, RNN, KDD99
4
Liste des figures
5
Liste des tableaux
6
Liste des abréviations
7
Table des matières
8
3.2.2 Couche de pooling ....................................................................................................36
3.2.3 Couche de Full connected.........................................................................................37
3.3 Les Data-set d‟évaluation des IDSs base sur Deep Learning ..........................................37
3.4 Travaux connexes pour la détection d‟intrusion base sur l‟Apprentissage automatique 38
3.5 Conclusion .......................................................................................................................39
Bibliographie ...................................................................................................... 59
9
Introduction Générale
Internet est devenu l'un des outils les plus importants et la meilleure source d'information dans
notre monde actuel. Il joue un rôle clé dans les activités éducatives, créatives et commerciales.
Cependant, avec cette dépendance croissante à Internet, la protection des données contre les
intrusions est devenue primordiale.
La sécurité sur Internet est l'une des principales préoccupations de notre époque, car il fait
face à diverses menaces. C'est pourquoi des systèmes de détection d'intrusion (IDS) ont été
développés pour protéger ces données et les utilisateurs. Les administrateurs réseau
personnalisent ces systèmes pour empêcher les attaques malveillantes, les rendant ainsi
essentiels dans la gestion de la sécurité.
Il existe différentes méthodes pour détecter les anomalies et les comportements malveillants,
notamment l'utilisation d'apprentissage automatique avec des réseaux de neurones artificiels,
également connus sous le nom d'apprentissage profond. L'apprentissage automatique est une
approche qui utilise des étapes séquentielles de traitement de l'information pour identifier des
motifs et apprendre des caractéristiques ou des représentations.
Dans l'ensemble, l'apprentissage automatique joue un rôle essentiel dans la détection des
intrusions. Il est largement utilisé dans divers domaines tels que la reconnaissance de la
parole, la modélisation de graphes, la surveillance des motifs, la vision par ordinateur, le
traitement du langage naturel et le traitement du signal. Les avancées dans les algorithmes
d'apprentissage offrent un potentiel pour améliorer les capacités des systèmes de détection
d'intrusion, augmenter les taux de détection et réduire les fausses alarmes. Cependant, il est
important de noter que la mise en œuvre de l'apprentissage automatique dans les opérations de
détection d'intrusion présente certaines limites qu'il convient de prendre en compte.
10
'' Je sais que l'adoption correcte de l'apprentissage automatique
dans les opérations IDS est difficile en raison des divers héritages
des approches précédentes. Et c'est peut- être en partie parce que
j'utilise des modes d'apprentissage automatiques supervisés par des
réseaux de neurones traditionnels (CNN) ou que j'entends parler de
la complexité des modes d'apprentissage automatiques.''
11
Chapitre 1 : Un Système de Détection
d’Intrusion
12
Chapitre 01 : Un Système de Détection d'Intrusion
Chapitre 1
1.1 Introduction
Surtout avec le développement rapide de la technologie des réseaux et des réseaux sans fil, la
sécurité de ces réseaux et des terminaux qui y sont connectés contre diverses menaces est
devenue un problème important.
Toutes les informations affectées par les technologies Internet et les informations stockées
dans des bases de données et transmises sur le réseau doivent être protégées. Les intrusions
sont de véritables menaces qui peuvent être des activités non autorisées ou des utilisations
malveillantes de ressources d'information qui enfreignent les politiques de sécurité.
Les systèmes et les techniques traditionnels de prévention des intrusions comme les pare-feu,
le cryptage et le contrôle d'accès sont dans la plupart du temps inefficaces face à l'évolution
des nouvelles menaces sophistiquées. Comment surmonter les défis du cybersécurité,
identifier les intrusions et protéger nos données est un problème clé qui ne doit jamais être
contourné. Un nouveau concept de détection d'intrusion a été proposé par James Anderson en
1980, dans le but d'identifier toute activité non autorisée dans un réseau [1].
Ce chapitre présente les systèmes de détection d'intrusion (IDS) et définit un modèle de base
pour ces systèmes. Il a également détaillé la taxonomie (IDS) et présenté une analyse des
différentes techniques de détection possibles et des différentes mesures d'évaluation du
système (IDS).
13
Chapitre 01 : Un Système de Détection d'Intrusion
Les systèmes de détection d‟intrusions surveillent et analysent les activités d‟un réseau,
analysent ses configurations et ses vulnérabilités, et vérifient l‟intégrité des fichiers. Ils
peuvent reconnaître des schémas d‟attaque classiques. Pour ce faire, ils analysent les
comportements anormaux et suivent les violations de règles par les utilisateurs. Certains
systèmes industriels de détection d‟intrusions peuvent également réagir à des menaces
détectées.
Un système IDS est en général à double détente. La première étape, que l‟on peut qualifier de
passive, intervient sur la machine. Il s‟agit de l‟inspection des fichiers de configuration du
réseau, notamment pour détecter les paramètres déconseillés et les violations de règles. La
seconde étape, que l‟on peut qualifier d‟active, intervient sur le réseau. Ici, les mécanismes
réutilisent des méthodes d‟attaque identifiées et enregistrent les réactions [2].
14
Chapitre 01 : Un Système de Détection d'Intrusion
Comme le montre la figure 4.1, un IDS n'inclut pas nécessairement tous ses composants
complètement indépendants. Certains IDS combinent ces composants en un seul module,
tandis que d'autres ont plusieurs instances de ces modules [3].
15
Chapitre 01 : Un Système de Détection d'Intrusion
Plusieurs taxonomies d'IDS ont été proposées dans la littérature. Une nouvelle perspective sur
ces taxonomies d'IDS a été présentée par Liao et al [4]. Adoptée selon les normes. Il est
représenté par quatre taxonomies principales, comme le montre la figure 1.2.
16
Chapitre 01 : Un Système de Détection d'Intrusion
Figure 1.3 – Taxonomie des systèmes de détection d’intrusion proposée par Liao et al [4].
A. Type de données : Les informations ou les données d'entrée à analyser par le système
sont des caractéristiques essentielles des IDS avant d'entamer le processus de détection,
les données proviennent des trafics réseau filière ou sans fil, les Systèmes IDS se base sur
ces données sont
17
Chapitre 01 : Un Système de Détection d'Intrusion
appelés Network-based IDS (NIDS). Elles peuvent aussi être des données des machines
hôtes comme les log générées par le système d'exploitation ou par les applications, les
Systèmes IDS basés sur ces données sont appelés Host-based IDS (HIDS). Un autre type
d'IDS apparaît récemment, c'est le Cloud-based IDS basé sur les données du cloud
computing [5].
● Distribue : les données sont collectées à l'aide de plusieurs capteurs situés à différents
endroits.
C. Outil de collection : Leur rôle est d'accéder aux données brutes, de les filtrer et de ne
renvoyer que les informations intéressantes à l'analyseur IDS. Cet outil peut fonctionner
sur des capteurs externes ou des agents logiciels système.
18
Chapitre 01 : Un Système de Détection d'Intrusion
signature d'intrusion correspond à une signature précédente déjà dans la base de données de
signature.
Les IDS peuvent également être classés selon la méthode de détection utilisée. Elles se
divisent en trois catégories : détection basée sur la signature, détection basée sur les anomalies
et détection hybride [6].
19
Chapitre 01 : Un Système de Détection d'Intrusion
B. Le type de réponse :
● Passive : Une réponse d'intrusion passive est une alerte ou un message qui avertit un
administrateur système (opérateur) lorsqu'une attaque est détectée.
C. La fréquence d’analyse :
● Périodique : Il stocke une grande quantité de données pendant une certaine période de
temps, puis démarre le processus de reconnaissance.
● Continu : La détection est Continu pour toutes les activités et tous les événements qui
se produisent afin d'améliorer les niveaux de sécurité dans les contextes sensibles.
20
Chapitre 01 : Un Système de Détection d'Intrusion
● IDS basé sur l’hôte : Surveiller et collecter les caractéristiques des hôtes contenant des
informations sensibles, des serveurs exécutant des services publics et des activités
suspectes.
● IDS basé sur réseaux : Capturer le trafic réseau sur les segments de réseau
Analysez l'activité des applications et des journaux pour détecter les incidents suspects.
● Système basé sur l’analyse du comportement du réseau : Cette classe des systèmes se
diffère à la classe précédente (IDS basés sur des réseaux), ce système inspecte le
comportement du trafic réseau pour reconnaître les attaques avec des flux de trafic
inattendus, comme DDos attaques, malware et des services AP inattendus.
● Système Hybride : adoptée Les technologies précédentes pour atteindre l‟objectif d‟une
détection plus complète et plus précise.
21
Chapitre 01 : Un Système de Détection d'Intrusion
Détection d'anomalies et détection de signature. Cependant, pour voir les propriétés globales
de mon approche de détection, il n'y a pas beaucoup de différence entre les propriétés de ces
deux classes. Une classification de cinq sous clades a été proposée par (Liao et al) [4]. Il a une
vue approfondie des propriétés statistiques basées sur des statistiques, des modèles, des règles,
des états et des heuristiques.
Les approches basées sur les statistiques consistent principalement en des caractéristiques de
données statistiques telles que des seuils prédéfinis, des moyennes, des écarts-types et des
probabilités d'identification des intrus. Se concentrer sur la reconnaissance basée sur des
motifs À propos des méthodes de classification des modèles par attaque connue. Les
techniques basées sur des règles sont principalement appliquées sur la base de " if-then " ou "
if-then-else " pour créer des modèles et des profils d'intrus connus. Les méthodes basées sur
l'état utilisent des machines à états finis dérivé du comportement du réseau pour identifier les
attaques telles que l'analyse de protocoles et les modèles de processus de Markov.
La finale est une approche heuristique, appliquant des techniques d'intelligence artificielle
inspirées de concepts biologiques tels que le système immunitaire, les algorithmes génétiques
et l'intelligence en essaim. Des recherches récentes combinent ces différentes approches de
détection dans des approches sophistiquées pour obtenir une plus grande précision et
efficacité [4].
A. La précision : Les systèmes IDS détectent avec précision les attaques sans générer de
fausses alarmes. L'inexactitude se produit lorsque ma déclaration d'un comportement
légitime dans mon environnement est anormale ou bénéfique.
C. La complétude : il s'agit d'une fonctionnalité IDS qui détecte toutes les attaques.
22
Chapitre 01 : Un Système de Détection d'Intrusion
E. La rapidité : Un IDS doit être rapide en termes d'analyse et d'exécution pour minimiser le
temps de réponse et empêcher les attaques de modifier la source de vérification ou de
perturber les opérations du système [7].
En général, les systèmes IDS nécessitent des taux de détection élevés pour empêcher les
attaques avant qu'elles ne compromettent le système. [8]
23
Chapitre 01 : Un Système de Détection d'Intrusion
1.6 Conclusion
24
Chapitre 2 : Apprentissage Automatique
25
Chapitre 02 : Apprentissage Automatique
Chapitre 2
Apprentissage Automatique
2.1 Introduction
L'apprentissage automatique est une branche de l'intelligence artificielle (IA) qui donne aux
ordinateurs la capacité d'apprendre sans être explicitement programmée. Les chercheurs dans
ce domaine doivent comprendre comment fonctionne le cerveau humain et comment le
traitement de l'information est observé dans le système nerveux biologique pour donner aux
machines la capacité d'apprendre à partir des données, de les interpréter et de prendre des
décisions éclairées. Communication autant que possible.
Les méthodes d'apprentissage automatique ont été appliquées avec succès dans plusieurs
produits TIC (reconnaissance d'images, traduction automatique, diagnostics médicaux, etc.) et
divers autres domaines techniques (voitures autonomes, robots intelligents, etc.) ces dernières
années. Cependant, la performance de ce dernier dépend implicitement de la qualité des
données d'apprentissage. Une étape importante appelée features ingénierie est nécessaire. Il
est défini comme une méthode prescrite par les experts du domaine pour sélectionner les
caractéristiques ou les propriétés de données importantes de chaque problème. Pour cette
raison, avec la disponibilité des métadonnées, un nouveau processus d'apprentissage
automatique appelé apprentissage en automatique a été utilisé pour apprendre des
représentations et des caractéristiques implicitement abstraites [10].
26
Chapitre 02 : Apprentissage Automatique
2.2.1 Fonctionnement
Typiquement, pour chacun de ces types de réseaux, l'architecture d'un réseau profond
est organisée en couches de neurones : une couche d'entrée (Input Layer), une ou plusieurs
couches cachées (Hidden Layer) et une couche de sortie (Output Layer).
Chaque paire de couches adjacentes est connectée. Les liens entre eux sont appelés pieds. Les
"neurones" d'une même couche sont souvent appelés "nœuds" et n'ont pas de connexion. La
figure
2.1 illustre de l'architecture standard d'un modèle de réseau neuronal profond.
27
Chapitre 02 : Apprentissage Automatique
● Deep Learning pour l’apprentissage supervisé : Ceci est utilisé lorsque les données
d'étiquetage ciblées sont disponibles. Il s'agit de modèles profondément différenciés
tels que les réseaux de neurones profonds (DNN), les réseaux de neurones récurrents
(RNN) et les réseaux de neurones convolutifs (CNN).
● Deep Learning pour l’apprentissage non-supervisé : Utiliser lorsque les données
d'entrée ne sont pas étiquetées. Le but des modèles génératifs est de regrouper des
données selon un certain critère de similarité à des fins de reconnaissance ou de
synthèse de modèles.
28
Chapitre 02 : Apprentissage Automatique
Le concept de base de la perception a été introduit par Rosenblatt en 1958 [16]. Perception
calculant une sortie unique à partir de plusieurs entrées à valeur réelle (xi) en formant une
combinaison linéaire basée sur les poids d'entrée (w) et en exécutant la sortie via une fonction
d'activation non linéaire. Mathématiquement possible, Il s'écrit:
Avec :
29
Chapitre 02 : Apprentissage Automatique
On va discuter cet algorithme de Deep Learning avec plus de détails et plus d'explications
dans le Chapitre 3.
Les RNN ont un état interne (ou mémoires) qui prend en compte les données
actuellement visualisées, plus tout ou partie des données précédemment visualisées (déjà
fournies au réseau) pour ajuster les décisions. L'idée clé de base de ces réseaux est d'utiliser le
calcul itératif à travers des boucles dans l'architecture du réseau. La sortie du réseau est la
combinaison de son état interne (mémoire d'entrée) et de la dernière entrée, tandis que l'état
interne change pour s'adapter à ses nouvelles données d'entrée. Cela permet aux informations
de rester en mémoire (voir la figure 2.2).
30
Chapitre 02 : Apprentissage Automatique
Ces propriétés rendent également les réseaux récurrents appropriés lorsque l'existence d'un
formulaire n'est pas la seule information d'identification, mais, par exemple, l'ordre
d'occurrences. Ils conviennent aux tâches qui traitent des données séquentielles, telles que :
les données textuelles ou données avec des propriétés transitoires.
Une description mathématique du processus de transfert de mémoire est :
(2-3)
𝑂𝑡 = ð(W ℎ𝑡 + 𝑏𝑦)
Un bloc de réseau neuronal, examine une entrée xt et génère une valeur mage O indice
t. Une boucle de rétroaction se produit à chaque pas de temps, chaque état caché t contient des
traces non seulement de l'état masqué précédent, mais également de tous ceux qui ont précédé
h indice, t moins 1 fin indiquées longtemps que la mémoire peut persister.
Avec :
31
Chapitre 02 : Apprentissage Automatique
● δ : est une fonction de non-linéarités appelées fonctions d‟activation. (soit une fonction
sigmoïde logistique ou tanh( qui est un outil standard de changement d‟échelle pour
condenser
des valeurs très grandes ou très petites dans un espace logistique, ainsi que pour rendre les
gradients exploitables pour la rétro-propagation.
Les réseaux RNN ont des pas de temps longs. En effet, la mise à jour des pondérations
pour tenir compte de l'état précédemment enregistré rend le gradient de plus en plus petit
pendant l'apprentissage, et après quelques étapes, l'erreur ne peut pas se propager jusqu'à la fin
du réseau. je ne peux pas mettre à jour les poids car il n'y a pas de différence significative
dans les résultats. Ce problème RNN est appelé gradients de fuite. Pour résoudre ce problème,
une architecture de mémoire à longue durée de vie (LSTM) pour les réseaux de neurones
récurrents et une étape supplémentaire appelée unité récurrente fermée (GRU) ont été
développées au milieu des années 1990 par les chercheurs allemands Sepp Hocheriez et
Jürgen Schmid Huber. Ces étapes ont été utilisées pour améliorer les performances et la
précision du RNN.
Une idée clé du schéma LSTM est l'état de la cellule. Il a la capacité de supprimer ou d'ajouter
des informations sur l'état des cellules. Cette technologie est régulée par des structures
appelées gâtés. Il peut s'agir d'une fonction sigmoïde, avec une valeur de 1 signifiant que
toutes les informations sont transmises ayant une valeur de 0 signifiant l'inverse. Les
architectures LSTM et GRU fonctionnent de manière similaire. Cependant, GRU utilise
moins de paramètres d'entraînement, prend moins de mémoire et s'entraîne plus rapidement
que LSTM. Bien que LSTM soit plus précis sur un ensemble de données de séquences plus
longues. Les cellules LSTM sont les plus efficaces pour conserver les informations utiles
pendant la rétro-propagation du gradient. Cela a permis de corriger les différences entre les
prédictions sortantes et les catégories de référence en calculant le gradient d'erreur pour
32
Chapitre 02 : Apprentissage Automatique
chaque neurone de la dernière couche à la première. La figure 2.3 montre quatre couches
interactives (Sigmoïde et Tanh), trois portes et une opération ponctuelle agissant sur un
vecteur x dans une cellule LSTM au temps t.
33
Chapitre 02 : Apprentissage Automatique
2.4 Conclusion
34
Chapitre 3 : La détection
d’intrusion basée sur
l’Apprentissage Automatique
35
Chapitre 03 : La détection d’intrusion basé sur l’Apprentissage Automatique
Chapitre 3
Automatique
3.1 Introduction
Les systèmes de détection basés sur les signatures identifient les intrusions en comparant le
comportement surveillé avec des modèles prédéfinis d'intrusion. En revanche, les systèmes
basés sur les anomalies se basent sur une connaissance du comportement normal pour détecter
les déviations ou les activités suspectes.
Les techniques d'apprentissage en profondeur peuvent être appliquées à ces deux types de
détection en exploitant leur capacité à extraire des relations non linéaires de niveau supérieur
entre les données, ce qui permet d'identifier les comportements inhabituels par rapport aux
activités bénignes.
Cependant, ces méthodes exigent de vastes quantités de données pour détecter et identifier
différentes classes de modèles. Dans ce chapitre, j'ai exploré et analysé diverses capacités de
détection d'intrusion basées sur l'apprentissage en profondeur, incluant les ensembles de
données utilisés, l'architecture du réseau et les métriques des résultats obtenus.
36
Chapitre 03 : La détection d’intrusion basé sur l’Apprentissage Automatique
37
Chapitre 03 : La détection d’intrusion basé sur l’Apprentissage Automatique
Une fonction d'activation non linéaire est appliquée immédiatement après chaque
couche convolutée. Deep CNN avec fonction d'activation “Rectified Linear Units ReLU”,
renvoie x pour toutes les valeurs où x > 0 et 0 pour toutes les valeurs où x <= 0. Utilisez des
unités pour vous entraîner plusieurs fois plus vite que vos pairs “Tanh Units” [23].
38
Chapitre 03 : La détection d’intrusion basé sur l’Apprentissage Automatique
39
Chapitre 03 : La détection d’intrusion basé sur l’Apprentissage Automatique
À la fin d'un CNN se trouve une ou plusieurs couches entièrement connectées (tous les
nœuds de la première couche sont connectés à tous les nœuds de la couche suivante(. Ils
consistent à effectuer une classification basée sur les caractéristiques extraites de la
convolution. La couche finale contient une fonction d'activation softmax qui renvoie une
valeur de probabilité comprise entre 0 et 1 pour chaque étiquette de classe que le modèle tente
de prédire. Dans certaines architectures de réseau CNN modernes, les couches entièrement
connectées peuvent être remplacées par plusieurs couches de mise en commun moyennes
(average-pooling). En conséquence, ces réseaux sont c'est le nombre total de paramètres et
peut mieux éviter le sur- apprentissage [24].
3.3 Les Data-set d’évaluation des IDSs base sur Deep Learning :
Les ensembles de données utilisés dans les études publiées pour l'application de
l'apprentissage en automatique dans la cybersécurité jouent un rôle important dans la
validation de toutes les approches DL proposées. Certains de ces ensembles de données ne
sont pas facilement accessibles en raison de problèmes de confidentialité. Les ensembles de
données dédiés à la détection des attaques de cybersécurité comprennent [25]:
● Benchmark Data-sets : Ces ensembles de données sont accessibles au public à des fins
de
recherche et pour l‟évaluation des performances des algorithmes proposés.
● Data-sets Privé : Les données sont collectées à partir de sources publiques et en
temps réel sont considérés comme des ensembles de données privés. Ces ensembles de
données ne sont pas accessibles au public à des fins de recherche.
● En temps réel : Les données sont collectées dans un environnement en temps réel et
sont considérés comme real-time data-sets.
● Collectés à partir de sources accessibles au public : Ces données sont collectées à
partir de diverses sources accessibles au public. Dans la plupart des cas, ces Data-sets
ne sont pas accessibles au public à des fins de recherche.
40
Chapitre 03 : La détection d’intrusion basé sur l’Apprentissage Automatique
Selon [26] [14] [25] Parmi les ensembles de données accessibles au public qui sont largement
utilisés comme des benchmark il y a : DARPA, le KDD99, le NSL-KDD et l‟ADFA-LD.
41
Chapitre 03 : La détection d’intrusion basé sur l’Apprentissage Automatique
Tableau 3.2 – Travaux antérieurs connexes pour la détection d’intrusion basé sur
l’apprentissage automatique.
3.5 Conclusion
Du tableau 3.2, on conclut que l'algorithme CNN est le plus précis et le plus efficace
pour détecter les intrusions simplement en comparant la performance de la masseuse pour
chaque algorithme, et pour cela, on doit utiliser l'algorithme CNN comme algorithme
principal pour mon étude sur la détection d'intrusion à l'aide de l'apprentissage en profondeur.
42
Chapitre 4 : Conception et réalisation
43
Chapitre 04 : Conception et Réalisation
Chapitre 4
Conception et réalisation
4.1 Introduction
Les systèmes de détection d'intrusion basés sur l'apprentissage en profondeur ont été
largement étudiés dans la recherche. Dans le chapitre précédent, j'ai discuté des différentes
méthodes d'apprentissage en profondeur qui ont été appliquées avec succès à la détection
d'intrusion en utilisant divers ensembles de données dédiés à la cybersécurité. Cependant, les
performances de ces systèmes dépendent fortement de l'ensemble de données utilisées, et il
n'existe pas de modèle de référence universel pour la détection d'intrusion.
Dans cette étude, j'ai choisi un ensemble de données récent fournies par le département
américain d'information et d'informatique de l'Université de Californie (UCI), appelé KDD99,
pour l'utiliser dans le cadre du troisième concours international d'outils de découverte de
connaissances et d'exploration de données.
Comme conclu dans le chapitre 3, j'ai utilisé des modèles d'apprentissage en profondeur
(CNN) en cybersécurité pour permettre aux IDS de faire face à différents types d'attaques
réseau, en particulier pour identifier les activités DDoS malveillantes dans le trafic réseau
réel. J'ai commencé par un CNN simple pour classifier ce type d'attaque réseau afin de
résoudre le problème de détection des différentes attaques DDoS possible avec un taux de
détection très élevé et un taux d'alarme négligeable. J'ai évalué les performances des
approches de détection proposées en utilisant différentes mesures d'évaluation des
algorithmes d'apprentissage profonds, telles que la précision, le rappel, le score F1, le taux de
détection et le taux de fausse alarme.
44
Chapitre 04 : Conception et Réalisation
4.2.1 Anaconda :
L'apprentissage en profondeur est un domaine avec des exigences de disponibilité des
ressources matérielles (en particulier les GPU) capables d'effectuer des calculs intensifs. Tout
d'abord, on a commencé à configurer un environnement de développement Python local à
l'aide de la plate-forme Anaconda [34].
Afin de déplacer notre travail vers l'apprentissage en profondeur, j‟ai dû passer au cloud. Ces
derniers fournissent des ressources de calcul et de stockage importantes au-delà des
ordinateurs. Selon les besoins, le cloud peut donner accès à des processeurs graphiques GPU
entièrement gratuits. Google Colab est l'un des outils cloud d'apprentissage automatique les
plus utilisés [35].
45
Chapitre 04 : Conception et Réalisation
Les frameworks TensorFlow et Keras ont été choisis pour implémenter la méthode
d'apprentissage en profondeur proposée. TensorFlow est une bibliothèque d'apprentissage en
profondeur open source développée par Google et utilisée pour effectuer des opérations
mathématiques complexes et diverses autres tâches de modélisation d'architecture
d'apprentissage en profondeur. Les calculs peuvent être facilement répartis sur plusieurs
plates-formes telles que les CPU et les GPU.
Keras est une API de haut niveau pour la création et la formation de modèles d'apprentissage
en profondeur basés sur Python. Il a été montré pendant le but de digérer une vérification
rapide. Parmi ces avantages:
● J‟ai pu passer de l'idée au résultat dans les délais les plus courts. Et c'est la clé d'une
recherche efficace.
● Prend en charge les réseaux convolutifs (CNN) et les réseaux récurrents (RNN), ainsi
que les combinaisons des deux éléments Il n'y a pas de fichier de configuration de
modèle séparé, tout est déclaré dans le code.
Keras fournit toutes les fonctionnalités générales nécessaires pour créer des modèles
d'apprentissage en profondeur, mais pas autant que TensorFlow, qui propose des opérations
plus avancées pour mieux contrôler le développement de types de modèles spécifiques. Cela
m'a aidé également à mieux comprendre ce qui se passe à l'intérieur du réseau DL. Pour tirer
le meilleur parti des deux mondes, j'ai utilisé TensorFlow comme backend pour Keras. RAM.
46
Chapitre 04 : Conception et Réalisation
Figure 4.1 – Les 10 frameworks Deep learning les plus Populaire [36].
4.3 Dataset
La base de données KDD99 est une base de données de référence bien connue dans le
domaine des systèmes de détection d'intrusion (IDS). Fourni par le département américain
d'information et d'informatique de l'Université de Californie (UCI), L'ensemble de données a
été créé par l'armée américaine en 1999 et a été largement utilisé dans la recherche pour
évaluer les performances de différents algorithmes d'apprentissage automatique et technique
d'exploration de données pour détecter les intrusions sur le réseau.
47
Chapitre 04 : Conception et Réalisation
d'apprentissage contient 4 898 431 connexions réseau, tandis que l'ensemble de tests contient
311 029 connexions réseau. Les deux ensembles sont étiquetés avec cinq types d'attaques
différents : Denial of Service (DoS), Probe, User to Root (U2R), Remote to Local (R2L) et
Normal [37] .
La répartition des données est très déséquilibrée, avec une majorité de connexions normales
(97,06 %) et une minorité de connexions malveillantes. L'attaque DoS est le type d'attaque le
plus fréquent, représentant 80 % des connexions malveillantes. Bien que l'ensemble de
données KDD99 ait été largement utilisé dans la recherche, il a également été critiqué pour
ses limites, notamment son environnement simulé irréaliste, ses scénarios d'attaques obsolètes
et l'absence de définition claire de ce qui constitue une attaque réussie [38].
48
Chapitre 04 : Conception et Réalisation
L'ensemble des données KDD99 est un ensemble de données volumineux et complexes avec
de nombreuses fonctionnalités et types d'attaques. Pour le rendre plus accessible, une version
retraitée appelée "kddcup.data_10_percent" a été créée. Cette version contient un échantillon
aléatoire de 10 % de l'ensemble de données d'origine, ce qui réduit le coût et le temps de
calcul nécessaires pour créer des modèles d'apprentissage automatique tout en fournissant un
échantillon représentatif. L'utilisation de la version retraitée permet également de comparer et
d'évaluer plus facilement les méthodes de détection d'intrusion sur le terrain.
49
Chapitre 04 : Conception et Réalisation
Tableau 4.3 – Caractéristiques du trafic calculées à l'aide d'une fenêtre de temps de deux
secondes [39].
Continu : Ils représentent des entités avec des valeurs numériques qui peuvent prendre
n'importe quelle valeur dans une plage. Les exemples incluent la durée d'une connexion
réseau, les octets transférés ou le temps entre les paquets.
50
Chapitre 04 : Conception et Réalisation
Pour retraiter notre base de données KDD99, je dois passer à 5 étapes très importantes,
car elles sont essentielles pour préparer notre base de données d'abord pour y travailler et
appliquer des fonctions pour atteindre notre objectif.
Les étiquettes de l'ensemble de données KDD99 sont catégorielles, ce qui signifie qu'elles
représentent des classes ou des catégories discrètes (c'est-à-dire normales ou l'un des
nombreux types d'attaques). Cependant, la plupart des algorithmes d'apprentissage
automatique cependant, la plupart des algorithmes d'apprentissage automatique nécessitent
des étiquettes numériques comme entrées. Par conséquent, la troisième étape du prétraitement
de l'ensemble de données KDD99 consiste à encoder les étiquettes catégorielles en nombre
entier à l'aide de techniques telles que l'encodage d'étiquettes ou l'encodage ordinal.
51
Chapitre 04 : Conception et Réalisation
Dans certains cas, l'encodage d'étiquettes catégorielles sous forme d'entier peut créer une
fausse hiérarchie ou relation entre les classes, ce qui peut nuire aux performances des modèles
d'apprentissage automatiques. L'encodage à chaud est une technique qui peut être utilisée pour
représenter des variables catégorielles sous forme de vecteurs binaires, où chaque vecteur
représente une seule classe et a une valeur de 1 dans la position correspondante et de 0
ailleurs. Par conséquent, la quatrième étape du prétraitement de l'ensemble de données
KDD99 consiste à coder à chaud les étiquettes catégorielles.
Le jeu de données KDD99 contient des entités avec différentes plages des valeurs. Certains
algorithmes d'apprentissage automatique sont sensibles à l'échelle des caractéristiques d'entrée
et peuvent produire des résultats sous-optimaux si les caractéristiques ne sont pas mises à
l'échelle ou normalisées. Par conséquent, la dernière étape du prétraitement du jeu de données
KDD99 consiste à mettre à l'échelle les entités d'entrée à l'aide de techniques telles que la
mise à l'échelle min-max ou la normalisation, ce qui peut amener toutes les entités à une
échelle similaire et aider les algorithmes à converger plus rapidement et à produire de
meilleurs résultats.
52
Chapitre 04 : Conception et Réalisation
4.4 Réalisation :
La classe séquentielle est un type de modèle Keras qui fournit un moyen simple et intuitif de
construire et de former des réseaux de neurones, composés de nœuds interconnectés qui
transforment les données d'entrée en sortie utile.
La première étape de la création d'un modèle de réseau neuronal convolutif (CNN) consiste à
ajouter la couche convolutive 1D initiale, qui est responsable de l'apprentissage et de
l'extraction des caractéristiques des données d'entrée.
Les couches Pooling sont utilisées pour réduire la dimensionnalité de la sortie des couches
convolutives et empêcher le surajustement. La mise en pool maximale est un type courant de
couches de mise en pool où la valeur maximale est conservée tandis que les autres valeurs
sont ignorées, ce qui permet de conserver des fonctionnalités importantes tout en réduisant la
taille des données.
L'ajout d'une deuxième couche convolutive 1D à un modèle CNN peut améliorer ses
performances en appliquant des filtres convolutifs supplémentaires à la sortie de la première
couche. Cependant, trop de couches peuvent entraîner un surajustement, il est donc important
d'équilibrer le nombre de couches avec la taille de l'ensemble de données et la complexité du
problème.
53
Chapitre 04 : Conception et Réalisation
L'ajout d'une deuxième couche de regroupement à un modèle CNN peut aider à extraire les
fonctionnalités les plus pertinentes et à réduire les calculs. Cependant, trop de couches de
regroupement peuvent entraîner la perte de fonctionnalités importantes, il est donc important
d'équilibrer le nombre avec la complexité du problème et la taille de l'ensemble de données.
La mise en commun moyenne peut être utilisée à la place de la mise en commun maximale.
Dans un modèle CNN, après les couches de convolution et de regroupement, la sortie doit
être aplatie dans un tableau unidimensionnel afin de pouvoir être transmise à une couche
entièrement connectée. L'opération d'aplatissement prend la sortie multidimensionnelle des
couches de convolution et de mise en commun et la convertit en une seule dimension afin que
la couche entièrement connectée puisse la traiter. Cette étape est essentielle pour transmettre
la sortie du CNN aux couches entièrement connectées pour les tâches de classification ou de
régression.
L'ajout d'une couche entièrement connectée à un modèle CNN permet d'effectuer la tâche
finale de classification ou de régression en apprenant les relations complexes entre les
caractéristiques et la sortie. La couche contient un ensemble de neurones entièrement
connectés à la couche précédente, et le nombre de neurones dépend de la complexité du
problème et de la taille de l'ensemble de données.
Une couche d'abandon dans un modèle CNN abandonne au hasard certains neurones pendant
l'entraînement, réduisant la dépendance à l'égard d'un seul neurone et encourageant le modèle
à apprendre des fonctionnalités plus robustes. Il peut aider à prévenir le surajustement et est
généralement ajouté après les couches entièrement connectées.
54
Chapitre 04 : Conception et Réalisation
La couche de sortie dans un modèle CNN est la couche finale qui prend la sortie de la couche
précédente et applique une fonction d'activation pour la mapper à une distribution de
probabilité sur des classes possibles ou des cibles de régression. La fonction d'activation et le
nombre de neurones dans la couche de sortie dépendent du problème à résoudre.
J. Compiler le modèle :
K. Imprime un résumé:
● On crée 3 modèles CNN avec chacun d'eux et des paramètres différents dans chaque
couche, tels que (la convolution, la mise en commun, la fonction d'activation dense de
la connexion complète, le taux d'abandon, la fonction d'activation dense de la sortie et
enfin l'optimiseur).
Pendant la formation, le modèle est présenté avec un lot de données de formation et les
prévisions de sortie sont comparées aux valeurs de sortie réelles à l'aide de la fonction de
perte. L'optimiseur ajuste ensuite les poids et les biais du modèle afin de réduire la perte. Ce
processus est répété pour plusieurs époques, le modèle voyant les données d'apprentissage
plusieurs fois.
55
Chapitre 04 : Conception et Réalisation
Voici quelques concepts et techniques clés impliquées dans la formation d'un modèle CNN :
● La taille du lot : détermine le nombre d'échantillons utilisés dans chaque lot d'apprentissage.
● Dropout : il s'agit d'une technique qui fait tomber aléatoirement certains neurones
pendant l'entraînement pour éviter le surajustement.
● Arrêt précoce : il s'agit d'une technique pour arrêter l'entraînement plus tôt si la perte de
validation ne s'améliore plus.
● Augmentation des données : peut être utilisée pour augmenter artificiellement la taille de
l'ensemble de données d'apprentissage.
● Apprentissage par transfert : implique l'utilisation d'un modèle préformé comme point
de départ pour la formation d'un nouveau modèle.
Bien que le processus de formation d'un réseau de neurones puisse être difficile, un réglage et
une optimisation minutieux peuvent aboutir à des modèles très précis pour une variété
d'applications.
Selon les paramètres qu'on a choisis dans chaque modèle CNN, on a créé selon les
performances de la machine d'exécution qu'on utilise, je peux voir que le temps d'exécution
pour former chaque modèle CNN est différent, le 3ème modèle étant le plus rapide suivi du
1er modèle et je voulais que le 2ème modèle a pris le plus de temps pour s'entraîner.
56
Chapitre 04 : Conception et Réalisation
57
Chapitre 04 : Conception et Réalisation
58
Chapitre 04 : Conception et Réalisation
D'après les résultats, la perte de test représente la valeur de perte moyenne des prédictions du
modèle sur l'ensemble de données de test. Des valeurs inférieures indiquent de meilleures
performances, car cela signifie que les prédictions du modèle sont plus proches des valeurs
réelles.
Il est important de noter que l'évaluation des performances d'un modèle uniquement basée sur
la perte et la précision des tests peut ne pas fournir une compréhension complète de ses
capacités. Il est recommandé de considérer d'autres métriques d'évaluation et également
d'effectuer une validation croisée ou d'évaluer les performances du modèle sur des données
invisibles pour obtenir une évaluation plus complète.
59
Chapitre 04 : Conception et Réalisation
Par la suite, le modèle choisi a subi des tests rigoureux pour valider ses capacités. Trois tests
spécifiques ont été menés pour évaluer l'efficacité du modèle dans la détection de divers types
d'intrusion sur le réseau. Le premier test consistait à simuler une attaque "schtroumpf", qui a
abouti à une détection réussie de l'intrusion par le modèle CNN. Dans le deuxième test, une
attaque "Neptune" a été utilisée et le modèle a identifié avec précision l'intrusion, soulignant
sa robustesse dans la détection de différents types d'intrusion.
Enfin, un test avec un trafic réseau normal a été effectué et le modèle CNN l'a reconnu avec
succès comme non intrusif. Ces tests complets ont confirmé la fiabilité et l'efficacité du
modèle IDS basé sur CNN, fournissant des preuves convaincantes de son inclusion dans notre
étude en tant que solution précieuse pour la détection des intrusions à l'aide de l'ensemble de
données KDD99.
60
Chapitre 04 : Conception et Réalisation
4.5 Conclusion:
Le chapitre a démontré l'efficacité du modèle CNN pour détecter avec précision les intrusions
et différencier le trafic réseau normal. Ces résultats fournissent des informations précieuses
pour de nouvelles recherches sur la détection des intrusions et contribuent aux progrès de la
cybersécurité.
61
Conclusion Générale
Conclusion Générale
En conclusion, cette recherche sur les systèmes de détection d'intrusion réseau (IDS) a
fourni des informations précieuses dans le domaine. L'étude a porté sur les concepts
fondamentaux, les principes de l'apprentissage automatique et la conception, la mise en
œuvre et l'évaluation d'un outil IDS.
Les résultats mettent en évidence le rôle essentiel que joue IDS dans l'atténuation et la
réponse aux menaces potentielles dans les environnements réseau. En utilisant des
techniques d'apprentissage automatiques, un outil IDS robuste a été développé, présentant
des performances fiables dans la détection et l'alerte contre les intrusions.
62
Bibliographie
Bibliographie
[1] Ni Gao, Ling Gao, Quanli Gao et Hai Wang, «An Intrusion Detection Model Based on Deep Belief
Networks,» In 2014 Second International Conference on Advanced Cloud and Big Data, vol. IEEE, p.
247– 252, 2014.
[3] Maxime Labonne, «Anomaly-based network intrusion detection using machine learning,
Cryptography and Security [cs.CR],» 2020. [En ligne]. Available: https://theses.hal.science/tel-
02988296. [Accès le 16 07 2023].
[4] Wood , Mark et Erlinger, Michael, «Intrusion Detection Message Exchange Requirements,» Harvey
Mudd College, 03 2007. [En ligne]. Available: https://tools.ietf.org/html/rfc4766. [Accès le 27 12
2022].
[5] Hung-Jen Liao, Chun-Hung Richard Lin, Ying-Chih Li, «Intrusion detection system : A
comprehensive review,» Jornal of Network and Computer Applications, pp. 16-24, 2013.
[6] Chiba Zouhair, Noreddine Abghour, Khalid Moussaid, Amina El Omri et Mohamed Rida, A
review of intrusion detection systems in cloud computing. In Security and Privacy in Smart
Sensor Networks, Casablanca,: IGI Global, 2018, pp. 253-283.
[7] Hervé Debar, Marc Dacier et Andreas Wespi, «A revised taxonomy for intrusion detection
systems,» In Annales des télécommunications, vol. 55, pp. 361-378 Springer, 2000.
[8] Liran Lerman, Olivier Markowitch et Gianluca Bontempi, Les systèmes de détection d’intrusion basés sur
du machine learning, 2008.
[9] Nassima Chaibi, Baghdad Atmani et Mostéfa Mokaddem, «A Convolutional Neural Network With
Feature Selection Based Network Intrusion Detection,» 1st National Conference on Applied
Computing and Smart Technologies ACST’21, pp. 12-13, 2021.
63
Bibliographie
[10] Nicholas Carlini et David Wagner, «Towards evaluating the robustness of neural,» In 2017
ieee symposium on security and privacy (sp), pp. 39-57, 2017.
[11] Li Deng, «A tutorial survey of architectures, algorithms, and applications for deep learning,»
APSIPA Transactions on Signal and Information Processing, p. 3, 2014.
[12] Weibo Liu, Zidong Wang, Xiaohui Liu, Nianyin Zeng, Yurong Liu et Fuad E Alsaadi, «A survey of
deep neural network architectures and their applications,» chez Neurocomputing, 234, 2017,
pp. 11-26.
[13] Li Deng, Dong Yu et al, «Deep learning : methods and applications.,» Foundations and Trends in
Signal Processing, pp. 197-387, 2014.
[14] Mohamed Amine Ferrag, Leandros Maglaras, Sotiris Moschoyiannis et Helge Janicke, «Deep
learning for cyber security intrusion detection : Approaches, datasets, andc omparative study,»
Journal of Information Security and Applications, p. 50, 2020.
[15] Hassan Hadi, Al-Maksousy, Michele C Weigle et Cong Wang, «Nids : Neural network based
intrusion detection system,» In 2018 IEEE International Symposium on Technologies for Homeland
Security (HST), vol. IEEE, pp. 1-6, 2018.
[16] Frank Rosenblatt, «The perceptron : a probabilistic model for information storage and
organization in the brain.,» Psychological review, vol. 65(6) :386, 1958.
[17] Ian Goodfellow, Yoshua Bengio et Aaron Courville, «Deep Learning,» MIT Press, p. 326, 2016.
[19] Pradeep BV, «What is the fundamental difference between CNN and RNN?,» [En ligne]. Available:
https://ai.stackexchange.com/questions/4683/what-is-the-fundamental-difference-between-cnn-
and- rnn. [Accès le 15 06 2023].
[20] Lukman Zaman, Surya Sumpeno et Mochamad Hariadi, «Analisis Kinerja LSTM dan GRU sebagai
Model Generatif,» vol. 8, p. 2, 2019.
[21] Jiuxiang Gu, Zhenhua Wang, Jason Kuen, Lianyang Ma, Amir Shahroudy, Bing Shuai, Ting Liu,
Xingxing Wang, Gang Wang, Jianfei Cai et al, «Recent advances in convolutional neural
networks,» Pattern Recognition, vol. 77, p. 354–377, 2018.
[22] Djallel Hamouda, «Intrusion Detection System for Cyber Security,» [En ligne].
Available: https://www.researchgate.net/figure/Larchitecture-dun-modele-de-
reseau-neuronal- convolutif_fig4_367053422. [Accès le 15 06 2023].
64
Bibliographie
[23] Alex Krizhevsky, Ilya Sutskever, Geoffrey E Hinton, «Imagenet classification with deep
convolutional neural networks,» In Advances in neural information processing systems, pp.
1097-1105, 2012.
[24] Kwangjo Kim, Muhamad Erza Aminanto et Harry Chandra Tanuwidjaja, Network Intrusion
Detection Using Deep Learning : A Feature Learning Approach. Springer, 2018.
[25] Soman KP, Mamoun Alazab et al., «A comprehensive tutorial and survey of applications of
deep learning for cyber security,» 2020.
[26] Ansam Khraisat, Iqbal Gondal, Peter Vamplew et Joarder Kamruzzaman, «Survey of intrusion
detection systems : techniques, datasets and challenges,» Cybersecurity, p. 2, 2019.
[31] Kehe Wu, Zuge Chen et Wei Li, «A novel intrusion detection model for a massive network
using convolutional neural networks,» IEEE Access, 6, p. 50850–50859, 2018.
[32] Jihyun Kim et Howon Kim, «Applying recurrent neural network to intrusion detection with hessian
free optimization,» In International Workshop on Information Security Applications, vol. Springer,
p. 357– 369, 2015.
[33] Tuan A Tang, Lotfi Mhamdi, Des McLernon, Syed Ali Raza Zaidi et Mounir Ghogho, «Deep learning
approach for network intrusion detection in software defined networking,» In 2016 International
Conference on Wireless Networks and Mobile Communications (WINCOM), vol. IEEE, p. 258–263,
2016.
[34] « The World's Most Popular Data Science Platform,» Anaconda , [En ligne].
Available: https://www.anaconda.com/. [Accès le 01 05 2023].
[35] E. Bisong, «Google colaboratory,» chez Building Machine Learning and Deep Learning Models on
Google Cloud Platform, Springer, 2019, pp. 59-64.
65
Bibliographie
[36] J. Hale, «Deep Learning Framework Power Scores 2018,» [En ligne]. Available:
https://towardsdatascience.com/deep-learning-framework-power-scores-2018-23607ddf297a.
[Accès le 2 5 2023].
[37] M. Tavallaee, E. Bagheri, W. Lu et A. Ghorban, «A detailed analysis of the KDD CUP 99 data set,»
chez IEEE Symposium on Computational Intelligence for Security and Defense Applications,
Ottawa, ON, Canada, 2009.
[38] M. L. Laboratory, «DARPA intrusion detection evaluation dataset,» 1999. [En ligne]. Available:
https://www.ll.mit.edu/r-d/datasets/1999-darpa-intrusion-detection-evaluation-dataset. [Accès
le 01 05 2023].
[40] Karen Scarfone et Peter Mell, «Guide to intrusion detection and prevention systems,» Technical
report, National Institute of Standards and Technology, 2012.
66