Sécurité informatique et systèmes de détection d’intrusions
Classification et réseaux de neurones
Introduction
La classification est une technique très utilisé dans les travaux de fouille de données, la recherche d‟information, reconnaissances des formes, le diagnostic médical, apprentissage automatique, l‟aide à la décision et dans plusieurs domaines de recherche de l‟intelligence artificielle.Dans le domaine de la sécurité informatique, la classification est souvent utilisé pour classifier le trafic réseau ou les données système en deux catégories (légale ou illégale) pour le but d‟aide à la décision, Cela est réalisé en pratique par des IDS qui utilisent des méthodes de classification pour modéliser d‟une manière efficace le comportement des utilisateurs avec un nombre minimum de fausses alertes, en se basant sur différentes méthodes de l‟intelligence artificielle telle que les réseaux de neurones artificiels.Dans la première partie de ce chapitre nous nous focalisons sur la classification, les définitions et les concepts, leurs phases, types de classement (supervisée et non supervisée) et les méthodes de classement les plus utilisées de chaque types. Dans la deuxième partie, nous présentons le réseau de neurones, son historique, ses définitions, ses techniques d‟apprentissage et ses architectures, nous passons ensuite à présenter en détaille le perceptron multicouches, et nous terminons par les domaines d‟utilisation, les avantages et les inconvénients de ces réseaux.
Classification
Concepts et Définitions
La classification est le processus, qui permet de grouper des objets (observations ou individus) dans des classes (clusters) de manière à ce que les objets appartenant à la même classe soient plus similaires entre eux qu‟aux objets appartenant aux autres classes. Le calcul de la proximité entre objets se fait sur une série de variables mesurées sur tous les objets. [1]
La classification connait une large utilisation dans plusieurs domaines notamment de l‟intelligence artificielle comme l‟analyse financière (prévision d’évolution de marchés), Marketing (établir un profil client, mailing), Banque (attribution de prêts), Médecine (aide au diagnostic), Télécom (détection de fraudes). Biométrie, Robotique, Reconnaissance de forme (OCR, Transcription de la parole, Compréhension/Dialogue), Recherche d‟information (moteur internet, moteur multimédia) ou enfin la détection d‟intrusions dans des réseaux informatiques qui est le sujet de notre projet de fin d‟études.
L’architecture typique d’une application basée sur la classification
Comme la classification est un problème central en reconnaissance des formes, l‟application de cette dernière lors des travaux de développement d‟un outil de classification dans n‟importe quel domaine, doit être anticipé par d‟autres phases d‟extraction et d‟analyse des informations à classifier ,ces travaux se sont également attachés à étudier les phases montrés dans la figure (Figure2.1), dans notre travail (System de détection d‟intrusions),notre objectif est de classifier l‟ensemble des informations des connexions TCP/IP en deux sous-ensembles bien déterminés (normal ou attaque).
• Acquisition des données : D‟une manière générale, il s‟agit à ce niveau de mettre en place l‟ensemble d‟instrumentation (capteurs, matériel d‟acquisition, etc.) de façons à reproduire le phénomène observé le plus fidèlement possible. C‟est l‟opération de transformation de l‟information à traiter en signaux numériques manipulables par ordinateurs ou bien la numérisation de l‟information. Dans notre cas, il s‟agit de placer des sondes (IDS) pour écouter le trafic réseau.
• Prétraitement des données : Cette phase correspond au filtrage des informations en ne conservant que ce qui est pertinent dans le contexte d‟étude. Dans notre cas, il s‟agit de l‟enregistrement des connexions TCP/IP.
• Classification des données : Elle correspond à l‟étape de décision et pour cela plusieurs méthodes se présentent pour la résolution. Pour la classification des connexions TCP/IP nous appliquerons un algorithme basé sur les réseaux de neurones.
Taxonomie de classification
Un grand nombre de méthodes est établi pour résoudre à peu près tous les problèmes de classification, cependant du fait que certaines de ces approches partagent des caractéristiques communes, soit dans la façon d‟appréhender le problème (apprentissage supervisé ou non), soit dans la nature de la sortie réalisée (groupes disjoints ou classification flou) , la Figure 2.2 montre le regroupement de ces méthodes sous la forme d‟une hiérarchie (taxonomie). [15]
Nous donnons dans ce qui suit une rapide description des méthodes décrites dans la figure ci-dessus :
Classification exclusive : Dans la classification exclusive un objet ne peut être qu‟à une seule classe dans la partition finale.
Classification non supervisée : La classification non supervisée (clustering), consiste à affecter les individus considérés similaires au même groupe sans en connaître au préalable la structure. Les classes ne sont pas connues à l‟avance, et les exemples disponibles sont non étiquetés. Le but est donc de constituer des classes, parmi les méthodes de classification non supervisé les plus utilisées, la méthode K-Means (centres mobiles) et la méthode hiérarchique.
Classification ascendante hiérarchique (CAH)
La classification ascendante hiérarchique, a pour objectif de construire une suite de partitions emboitées des données en n classes, n-1 classes, …, 1 classe. Que l‟on visualise par exemple par un dendrogramme (Figure 2.3).
Principe :
A l´étape initiale, les « n » individus constituent des classes à eux seuls.
On calcule les distances deux à deux entre individus, et les deux individus les plus proches sont réunis en une classe.
La distance entre cette nouvelle classe et les n-2 individus restants est ensuite calculée, et à nouveau les deux éléments (classes ou individus) les plus proches sont réunis.
Figure2.3 : Exemple de dendrogramme [15] 3-1-1-2-Méthode des K-means (Centres mobiles) :
Cet algorithme fut longtemps utilisé sur les grands jeux de données en raison de sa rapidité. On s‟intéresse tout d‟abord à l‟algorithme lui même, puis à ses propriétés.
Principe : On suppose qu‟il existe K classes distinctes. On commence par designer K centres de classes µ1, …, µK parmi les individus. Ces centres peuvent être soit choisis par l‟utilisateur pour leur “représentativité”, soit désignés aléatoirement. On réalise ensuite itérativement les deux étapes suivantes :
– Pour chaque individu qui n‟est pas un centre de classe, on regarde quel est le centre de classe le plus proche. On définit ainsi K classes C1, …, CK, où Ci = {ensemble des points les plus proches du centre µi},
– Dans chaque nouvelle classe Ci, On définit le nouveau centre de classe µi comme étant le barycentre des points de Ci. [16]
L‟algorithme s‟arrête suivant un critère d‟arrêt fixé par l‟utilisateur qui peut être choisi parmi les suivants :
Soit le nombre limite d‟itérations est atteint, soit l‟algorithme converge, c‟est-a dire qu‟entre deux itérations les classes formées restent les mêmes,
Soit l‟algorithme a ”presque” converge, c‟est-à-dire que l‟inertie intra-classe ne s‟améliore quasiment plus entre deux itérations.
Figure 2. 4 : Exemple de partition obtenue par les centres mobiles [15]
Classification supervisée
Dans ce type de classification, les classes sont connues à l‟avance, et on dispose d‟un ensemble d‟objets déjà étiquetés (classés) servant l‟ensemble d‟apprentissage. Le problème est alors de générer un modèle capable d‟associer un tout nouvel objet à sa classe la plus adaptée, en se servant des exemples déjà étiquetés (exemples d‟apprentissages) , Parmi les méthodes de classification supervisée, nous citons la méthode de k plus proche voisins, la méthode d‟arbre de décision.[17] 3-1-2-1- K plus proches voisins :
K plus proches voisins est la méthode de classification supervisée la plus simple. Son principe est résumé comme suit : pour un objet x à classer (prédire la classe d’un nouveau cas), on examine la distance de x à tous les échantillons (qui définissent toutes les classes), puis on sélectionne les K plus proches échantillons et on affecte x à la classe majoritaire parmi ces K échantillons.
Arbres de décision :
Les arbres de décision sont les méthodes les plus connues en classification. Le principe de cette méthode est de réaliser la classification d‟un exemple par une suite de tests sur les attributs qui le décrivent. Concrètement, dans la représentation graphique d‟un arbre où :
Un nœud interne correspond à un test sur la valeur d‟un attribut.
Une branche part d‟un nœud et correspond à une ou plusieurs valeurs de ce test.
Une feuille est un nœud d‟où ne part aucune branche et correspond à une classe.
Une règle de décision (de la forme si . . . alors . . .) est créée pour chaque chemin partant de la racine de l‟arbre et parcourant les tests (en faisant des conjonctions) jusqu‟à la feuille qui est l‟étiquette de la classe Il y a d‟autre méthodes de la classification supervisée, tel que la méthode de réseaux de neurones et vu que nous nous basons sur ces réseaux pour réaliser notre modèle de détection d‟intrusions, ces derniers vont être étudiés en détails dans les sections suivantes de ce chapitre. [20]
Classification non exclusive: Chaque objet est associé à une de densité de probabilité qui indique pour chacune des classes la probabilité que l‟objet considéré y appartienne (la classification floue).
La classification et réseaux de neurones
Vu que la majorité des problèmes de classification sont non-linéaires, Les modèles linéaires sont incapables de résoudre de manière satisfaisante un problème de classification, ainsi cet inconvénient des modèles linéaires est important. Le réseau de neurones artificiel, aussi appelé « perceptron multicouches », permet de corriger cette situation, ce réseau sera abordé en détail dans le chapitre suivant.
Réseaux de neurones
Les réseaux de neurones artificiels nous a permis de simuler d‟une façon formelle le travail du cerveau humain, les scientifiques ont découvert presque la façon dont le travail du cerveau humain en termes d’évolutivité et la portabilité de la mémoire d’apprentissage et la capacité de distinguer les objets et la capacité de prendre des décisions et comme nous le savons, le cerveau est constitué de milliards de neurones interconnectés entre eux d’une manière très complexe par les cellules neuronales, ce qui forme un énorme réseau de neurones associés les uns aux autres.
Cette corrélation entre les cellules nerveuses donne à ces dernières la capacité de stocker et fournir des informations, des images, audio et succession de signaux qui reçoivent à travers les différents neurones, les réseaux de neurones permettent également d‟apprendre par la répétition et l’erreur.
Concepts et Définitions:
Historique :
L‟histoire des réseaux de neurones artificiels revient au1943, où Mac Cullochet Pittsont proposé des neurones formels mimant les neurones biologiques et capables de mémoriser des fonctions booléennes simples.
Les réseaux de neurones artificiels réalisés à partir de ce type de neurones sont ainsi inspirés du système nerveux. Ils sont conçus pour reproduire certaines caractéristiques des mémoires biologiques par le fait qu‟ils sont massivement parallèles, capables d‟apprendre et de mémoriser l‟information dans les connexions entres neurones, capables de traiter des informations incomplètes.
En 1949, Hebb a mis en évidence l‟importance du couplage synaptique dans l‟apprentissage par renforcement ou dégénérescence des liaisons inter-neuronales lors de l‟interaction du cerveau avec le milieu extérieur.
Le premier modèle opérationnel est le perceptron simple inspiré du modèle visuel et capable d‟apprentissage. Il a été proposé en 1958 par Rosenblatt.
Les limites du Perceptron monocouche du point de vue performance ont été montrées en 1969 par
les mathématiciens Minsky et Papert.
Les travaux de Hopfield en 1982 ont montrés que des réseaux de neurones artificiels étaient capables de résoudre des problèmes d‟optimisation et ceux de Kohonen (1982) ont montré qu‟ils étaient capables des résoudre des tâches de classification et de reconnaissance. [18]
Neurone biologique :
Le neurone est une cellule composée d‟un corps cellulaire et d‟un noyau. Le corps cellulaire se ramifie pour former ce que l‟on nomme les dendrites, celles-ci sont parfois assez nombreuses que l‟on parle alors de chevelure dendritique ou d‟arborisation dendritique. C‟est par les dendrites que l‟information est acheminée de l‟extérieur vers le soma (corps du neurone).L‟information traitée par le neurone est propagée ensuite le long de l‟axone (unique) pour être transmise aux autres neurones. La transmission entre deux neurones n‟est pas directe. En fait, il existe un espace inter-cellulaire de quelques dizaines d‟Angströms (10-9 m) entre l‟axone du neurone afférent et les dendrites (on dit une dendrite) du neurone différent. La jonction entre deux neurones est appelée la synapse (Figure2.5) [19]
|
Table des matières
– Introduction générale
Chapitre 1 : Sécurité informatique et systèmes de détection d’intrusions
– Introduction
I- La sécurité informatique
1. Définitions
2-Buts des attaques informatique
3- Les différentes classes d’attaques informatiques
3.1-Classification selon l’effet de l’attaque
3.2- Classification selon la source de l’attaque
3.3-Classification selon la cible de l’attaque
4- Exemples d’attaques
5-Mécanismes de défense contre les attaques II-Systèmes de détection et de prévention des intrusions
1-Historique
2-SYSTEMES DE DETECTION D’INTRUSIONS (IDS)
3- Architecture DES IDS et Principes de fonctionnement
3.1-Architecture DES IDS
3.2- Principe de fonctionnement des IDS
4- Emplacement de l’IDS
5- Classification des IDS
5.1-Méthodes de détection
5.2-Comportement après la détection
5.3-Emplacement de données
5.4-Fréquence d’utilisation
6- Les avantages d’utilisation des IDS
7- Les limites actuelles de la détection d’intrusions
8-Conclusion
Chapitre 2 : Classification et réseaux de neurones
Introduction
I- Classification
1-Concepts et Définitions
2-L’architecture typique d’une application basée sur la classification
3-Taxonomie de classification
3-1-Classification exclusive
3-1-1Classification non supervisée
3-1-2- Classification supervisée
3-2-Classification non exclusive
4-La classification et réseaux de neurones
II-Réseaux de neurones
1-Concepts et Définitions
1-1. Neurone biologique
1-2. Neurone artificiel
1-3-Correspondance entre neurone biologique et neurone artificiel
2- Comportement de neurone artificiel
3-Les types d’apprentissage des réseaux de neurones
3-1- L’apprentissage non supervisé
3-2-Apprentissage par renforcement
3-3- L’apprentissage supervisé
4-Règles d’apprentissage
5- Architecture des réseaux de neurones
5-1- Les réseaux de neurones non bouclés
5-2- Les réseaux de neurones bouclés
6-Quelques modèles de réseaux de neurones
6-1-Perceptron simple
6-2- Réseaux auto-organisateur (réseau de kohonen)
6-3-Perceptron Multicouches (MLP)
6-4-Le modèle de Hopefield
7 -Le perceptron multicouches MLP
7-1- Mise en oeuvre du réseau de neurones MLP
7-2- L’apprentissage des réseaux MLP
7-2-1-Propagation avant
7-2-2- Rétro-propagation
7-2-3- La mise à jour des poids
8-Test et évaluation
9-Avantages et limites des réseaux de neurones
10-Domaines d’applications des réseaux de neurones
-Conclusion
Chapitre 3 : Optimisation et algorithmes génétiques
– Introduction
I -Les algorithmes d’optimisation
1. Définitions
2- Les grandes familles de techniques d’optimisation
II-Les algorithmes génétiques
1-Présentation des algorithmes génétiques
2- Principe de fonctionnement
3-Les paramètres de l’algorithme génétique
4-L’utilisation des algorithmes génétiques conjointement aux réseaux de neurones :
-Conclusion
Chapitre 4 : Implémentation et discussion des résultats
Introduction:
I- Description de la base NSL-KDD et présentation du modèle de classification
1-Description de la base NSL-KDD
1-1- Distribution des attaques de la base KDD99
1-2- Le contenue de l’ensemble de données NSL-KDD
1-3- Distribution des connexions réseau de NSL KDDTest+, et NSL KDDTrain_20%
1-4- Attributs de la base NSL-KDD
2- Processus de génération du modèle de classification
2-1- Prétraitement de l’ensemble de données de la base NSL-KDD
2-2- Apprentissage et établissement du modèle de classification
2-3-Test et évaluation du modèle généré
II. Implémentation et analyse des résultats
1- Environnement de programmation
2- Description de l’application
3- Test et résultats Expérimentaux
Conclusion
Conclusion générale
Télécharger le rapport complet