Mémoire de Fin D'études: Thème
Mémoire de Fin D'études: Thème
Mémoire de Fin D'études: Thème
Option :
Réseaux et Sécurité
Thème
Détection d’intrusions via des réseaux de neurones optimisés
par des métaheuristiques
Je tiens tout d’abord à remercier Dieu le tout puissant et miséricordieux, qui m’ont donné la
force et la patience d’accomplir ce modeste travail.
Je tiens à saisir cette occasion et adresser mes profonds remerciements et mes profondes
reconnaissances à toutes personnes qui m’ont aidé de près ou de loin dans la réalisation de ce
mémoire.
Je remercie vivement l’enseignant Mr Ali Lemouari pour ses précieux conseils et orientations
ainsi que sa disponibilité et son soutien.
Je joins ces remerciements également aux membres du jury pour leur attention et intérêts
portés envers ce travail.
Je veut aussi adresser mes sincères remerciements à tous les enseignants de département de
l’informatique qui ont contribué à ma formation.
Enfin, et surtout je remercie vivement toute ma famille notamment mes parents qui m’ont
toujours encouragé dans la poursuite de mes études, ainsi que pour leur aide, leur
compréhension et leur soutien sans oublier de remercier mes amis pour leurs soutiens et leurs
bonnes humeurs pendant la préparation de ce mémoire.
Par crainte d’avoir oublié quelqu’un, que tous ceux et toutes celles dont je suis redevable se
voie ici vivement remerciés.
TABLE DES MATIÈRES
Introduction générale 1
3 Optimisation Combinatoire 35
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2 Optimisation Combinatoire . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.2 Classification des méthodes d’optimisation combinatoire . . . . . . . . 36
3.3 Métaheuristiques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.1 Définition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37
3.3.2 Concepts fondamentaux des métaheuristiques . . . . . . . . . . . . . . 37
3.3.3 Classification des métaheuristiques . . . . . . . . . . . . . . . . . . . 38
3.4 Recuit simulé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.4.1 Principe de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
3.4.2 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
3.4.3 Pseudocode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
3.4.4 Domaines d’application . . . . . . . . . . . . . . . . . . . . . . . . . 43
3.4.5 Avantages et Inconvénients . . . . . . . . . . . . . . . . . . . . . . . . 43
3.5 Recherche tabou . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5.1 Principe de base . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5.2 Algorithme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 44
3.5.3 Pseudocode . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.5.4 Domaines d’application . . . . . . . . . . . . . . . . . . . . . . . . . 45
3.5.5 Avantages et Inconvénients . . . . . . . . . . . . . . . . . . . . . . . . 45
3.6 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
4.4 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57
Conclusion générale 67
La sécurité informatique est devenue donc un défi pour les administrateurs réseau ainsi que
pour ses utilisateurs. Ces dernières années, plusieurs techniques de sécurité ont été proposées par
les chercheurs de ce domaine pour garantir un niveau élevé de sécurité et fournir des nouvelles
fonctionnalités qui ne pourraient pas être assurées par les méthodes classiques(parefeu, anti
virus...etc). Les systèmes de détection d’intrusions sont l’une de ces techniques. Ils consistent
à examiner le trafic réseau pour détecter toute violation de la politique de sécurité et avertir les
responsables des réseaux via des alertes. En effet, malgré que les IDS ont rencontré un succès
majeur dans le monde de cybersécurité, ils présentent quelques défauts comme le taux élevé
des fausses alertes ainsi que le temps relativement élevé de détection.
Selon leur principe de fonctionnement, les IDS peuvent être classés en deux grandes catégo
ries : ceux qui cherchent à détecter les malveillances (on parle alors de l’approche par signature
ou par scénario) et ceux qui cherchent à détecter les anomalies (on parle alors de l’approche
comportementale), où la première approche consiste à comparer le comportement d’utilisation
du système avec des signatures d’attaques connues préalablement , donc elle ne peut pas dé
tecter les nouvelles attaques, tandis que la deuxième approche consiste à connaitre ce qui est
considéré comme trafic normal et détecter tout ce qui est déviant de ce comportement, donc elle
a la capacité de détecter des nouvelles attaques sans avoir nécessité de faire une mise à jour.
Organisation du mémoire
Le présent manuscrit s’articule autour de quatre chapitres :
+ Dans le premier chapitre nous présentons les notions de base sur la sécurité informatique
incluant sa définition, ses objectifs et aussi les différentes attaques peuvent intervenir ainsi
que les techniques de sécurisation des systèmes informatiques notamment les systèmes de
détection d’intrusions.
+ Le deuxième chapitre donne une introduction au domaine de classification de données et
ses différentes méthodes y compris les réseaux de neurones qui seront détaillés dans la
deuxième partie de ce chapitre en présentant leur historique, leur définition, leurs tech
niques d’apprentissage ainsi que leur architecture. La dernière section de ce chapitre est
consacrée à une description détaillée du perceptron multicouche utilisé dans ce travail.
+ Le troisième chapitre fait un rappel sur les méthodes d’optimisation combinatoire. Où
nous allons exposer ses différentes méthodes avant de passer aux détails de l’algorithme
de recuit simulé et la méthode de recherche tabou vu que ce sont les techniques que nous
allons utiliser pour réaliser ce travail.
+ Le quatrième chapitre est consacré à l’implémentation du recuit simulé et la recherche
tabou dans les réseaux de neurones multicouches, en faisant des tests sur le benchmark
NSLKDD qui sera présenté dans ce chapitre.
+ Dans le dernier chapitre, nous montrons les résultats obtenus pour les différentes expéri
mentations effectuées que se soit en utilisant les méthodes d’optimisation (recuit simulé
et recherche tabou) ou non.
CHAPITRE 1
SÉCURITÉ INFORMATIQUE ET SYSTÈME DE
DÉTECTION D’INTRUSIONS
1.1 Introduction
En raison de plusieurs facteurs notamment l’ouverture des systèmes d’information sur In
ternet, l’évolution de la technologie et des moyens de communication ainsi que la transmission
de données à travers les réseaux, des risques d’accès et de manipulation des données par des
personnes non autorisées d’une façon accidentelle ou bien intentionnelle sont apparus. Donc
la mise en place d’une politique de sécurité autour de ces systèmes est devenu une nécessité
incontournable.
Le système de détection d’intrusion est l’une des techniques utilisées pour garantir un contrôle
permanent des attaques ainsi que la détection de toute violation de cette politique, c’estàdire
toute intrusion.
Dans ce premier chapitre nous introduisons les principales notions de base de la sécurité
informatique y compris sa définition, ses objectifs, les problèmes et les attaques informatiques
et aussi les mécanismes permettant d’améliorer la sécurité. Ensuite, nous présentons les systèmes
de détection d’intrusions, leur définition, architecture, classification...etc, et nous terminons par
les limites des systèmes de détection d’intrusions actuels.
a) La confidentialité ( confidentiality)
Permet d’assurer que les informations sauvegardées ou transmises sur le réseau ne soient pas
dévoilées à des personnes, entités ou processus non autorisés, c’estàdire seules les personnes
autorisées doivent pouvoir accéder aux données ou informations ainsi protégées.
b) L’intégrité ( integrity)
Permet d’assurer que les données n’ont pas été altérées ou détruites de façon non autorisée,
soit de manière accidentelle ou bien intentionnelle.
c) La disponibilité ( availability)
Cet objectif vise à assurer l’accès aux ressources du système d’information conformément
aux spécifications en terme de performances. Ceci implique que le temps d’attente et le temps
de service sont tout les deux relativement raisonnables.
a) Les vulnérabilités
Ce sont des failles ou des faiblesses dans la spécification, conception, implémentation ou
bien configuration des systèmes informatiques dont l’exploitation peut créer une intrusion.
b) Les menaces
Une menace c’est la possibilité d’une violation d’une propriété de la sécurité en exploitant
une ou plusieurs vulnérabilités d’une façon intentionnelle ou accidentelle.
c) Les attaques
Une attaque c’est une action malveillante qui tente d’exploiter une faiblesse dans le système
et de violer un ou plusieurs besoins de sécurité.
Sécurité informatique et Système de détection d’intrusions 5
a) IP Spoofing
Le principe de l’attaque IP Spoofing est relativement ancien (aux alentours de 1985) alors
que sa première application dans une vraie attaque ne remonte qu’à 1995. Kevin Mitnick, un
célèbre hacker, l’utilise afin de s’infiltrer dans le réseau d’un expert en sécurité informatique,
Tsutomo SHimomura. [4]
1. NotPetya est un logiciel malveillant de type wiper (il détruit les données), mais apparait sous la forme d’un
rançongiciel (appelé aussi ransomware en anglais) en affichant sur l’écran de l’ordinateur infecté une demande de
rançon. Son mécanisme de propagation permet de le classer comme ver informatique.
2. Les données de 32 millions de comptes sur Ashley Madison, le principal site de rencontres adultères aux
EtatsUnis, ont été mises en ligne
Sécurité informatique et Système de détection d’intrusions 7
Cette attaque consiste à usurper l’adresse IP d’une machine pour cacher la source d’attaque ou
bien profiter d’une relation de confiance entre deux machines. Il existe des variantes car on peut
spoofer aussi des adresses email, des serveurs DNS ...etc.
b) Le dénis de service
Cette attaque consiste à envoyer des milliers des messages depuis des dizaines d’ordinateurs
afin de saturer le système et donc le rendre indisponible. Ce type d’attaque est très facile à mettre
en place mais très difficile à empêcher.
Un attaquant peut utiliser les DOS pour les raisons suivants :[4]
• obtenir le contrôle sur une machine cible ou sur un réseau. C’est le cas par exemple d’une
attaque de type « SYN Flooding »qui est souvent utilisée de paire avec une tentative de
spoofing.
• masquer les traces en détruisant les stations qui auraient pu contenir des traces d’un atta
quant.
• se venger contre une personne, un administrateur ou bien encore une entreprise...etc.
Il existe plusieurs types d’attaques DOS comme il est montré dans la figure suivante :
c) Probing (Sondage)
Le sondage est une attaque dans laquelle le pirate analyse une machine ou un réseau pour
déterminer les faiblesses ou les vulnérabilités qui pourraient être exploitées plus tard afin de
compromettre le système. Cette technique est couramment utilisée dans l’exploration de don
nées, par exemple saint, portsweep, mscan, nmap...etc.[6]
Cette classe d’attaque est la plus étendue et qu’elle requit une expertise technique minime,
donc il est très important de protéger le système de telles intrusions car elles sont à la base
d’autres attaques comme R2L (RemotetoLocal), U2R (UsertoRoot)...etc.
Sécurité informatique et Système de détection d’intrusions 8
d) User to Root
Ces attaques sont des exploitations dans lesquelles le pirate démarre sur le système avec un
compte d’utilisateur normal et tente d’abuser des vulnérabilités du système afin d’obtenir des
privilèges de super utilisateur.[7]
En d’autre terme, l’objectif de cette attaque est d’obtenir les privilèges de l’administrateur
système (Root) en allant d’un simple compte utilisateur (User) et cela en exploitant des failles
dans le système comme le débordement de tampon, les erreurs de programmation..etc.
Il existe plusieurs attaques de ce type comme Eject,Ffbconfig, Fdformat, Load module, Perl,
Xterm...etc.
e) Remote to Local
C’est une attaque dans laquelle l’attaquant exploite les vulnérabilités d’une machine distante
comme les bugs des applications, les mauvaises configuration des systèmes d’exploitation et
d’autres afin d’obtenir un accès illégal à celleci en exploitant les privilèges d’un utilisateur
local.
Plusieurs attaques se trouvent dans cette catégorie parmi elles on cite : xlock, guest, xnsnoop,
phf, Dict, warezmaster, spy, warezclient...etc.
a) Le chiffrement
C’est un algorithme généralement basé sur des clefs pour transformer les données. Sa sécu
rité est dépendante du niveau de sécurité des clefs.[2]
Autrement dit, le chiffrement consiste à utiliser des algorithmes permettant de coder les données
en une forme non intelligible afin de les protéger contre toute divulgation non autorisée. Cette
technique permet d’assurer la confidentialité des données.
b) La signature numérique
Cette technique consiste à calculer une valeur à l’aide d’un algorithme de chiffrement, cette
valeur sera ajoutée à une donnée d’une façon que tout récepteur de cette donnée puisse vérifier
son origine.
La signature remplit deux fonctions juridiques principales [8] :
• L’identification de l’auteur et la manifestation de son consentement. La signature numé
rique est le pendant électronique à la signature manuscrite, mais la signature digitale est
liée au document signé,elle n’est pas comparée à une signature témoin mais elle est véri
fiée algorithmiquement alors elle est universellement vérifiable.
• Une signature numérique apporte la nonrépudiation à l’origine, c’estàdire l’auteur d’une
action ne peut dénier l’avoir effectué.
Sécurité informatique et Système de détection d’intrusions 9
c) Le bourrage
Données ajoutées pour assurer la confidentialité, notamment au niveau du volume du trafic.[2]
Les mécanismes de bourrage servent à modifier les caractéristiques du trafic pour assurer
différents niveaux de protection contre l’analyse du celuici.
d) Le contrôle d’accès
Ce mécanisme consiste à vérifier les droits d’accès aux données en laissant passer que les
personnes autorisées et cela pour empêcher toute exploitation de vulnérabilités venant de l’ex
térieur.
e) La notarisation
Le mécanisme de notarisation consiste à reposer sur un tiers de confiance (notaire) qui détient
les informations nécessaires pour assurer certains services de sécurité comme la nonrépudiation.
f) Le parefeu
Un parefeu, ou coupefeu ou encore firewall est un équipement ou des systèmes qui contrôlent
le flux de trafic entre les différentes zones d’un réseau[9]. Donc, il assure un périmètre de pro
tection entre le réseau interne à l’entreprise et le monde extérieur.
Voici une figure qui montre l’emplacement du parefeu au seine d’une entreprise à fin de proté
ger le réseau local et les serveurs sensibles de l’entreprise (DMZ 3 ).
g) L’antivirus
C’est un logiciel permettant de préserver le système de tout type de maliciels (virus, vers,
chevaux de troie...etc). Son principe de fonctionnement peut suivre l’une des trois approches :
• comparer la signature virale du virus aux codes vérifiés.
• utiliser les métaheuristiques pour détecter les codes malveillants.
• utiliser le filtrage basé sur les règles.
h) La détection d’intrusions
La détection des intrusions est un mécanisme de cybersécurité courant dont la tâche est de
détecter les activités malveillantes dans des environnements hôte et / ou réseau. La détection
des activités malveillantes permettent de réagir en temps opportun, par exemple pour arrêter
une attaque en cours. Vu l’importance de détection des intrusions, les milieux de la recherche et
de l’industrie ont conçu et développé une variété de systèmes de détection d’intrusion (IDS).[11]
b) Détection d’intrusions
Consiste à analyser les informations collectées par les mécanismes d’audit de sécurité, à la
recherche d’éventuelles attaques.[12]
c) Audit de sécurité
C’est un examen méthodique d’une organisation ou d’un site visant à identifier ses risques,
ses vulnérabilités et les faiblesses de ses protections existantes ainsi qu’à statuer sur son niveau
de sécurité et à recommander des solutions aux problèmes identifiés.[13]
(HIDS), ou bien sur un réseau, on parle alors de NetworkBased Intrusion Detection System
(NIDS).
a) Le capteur
Chargé de collecter, filtrer et formater les informations brutes envoyées par la source de
données concernant l’évolution de l’état du système. Le résultat de traitement est un message
formaté appelé événement.
b) L’analyseur
Permet d’analyser les événements générés par le capteur en détectant toute activité mal
veillante qui peut se produire à partir d’un sousensemble de ces événements, et donc envoyer
une alerte qui sera stockée dans les journaux du système ou bien utilisée pour lutter contre les
attaques selon le type d’IDS.
c) Le manager
Permet de collecter et notifier les alertes envoyées par l’analyseur. Éventuellement, le ma
nager est chargé de la réaction à adopter qui peut être :
• Isolement de l’attaque pour réduire les dégâts.
• Suppression d’attaque.
Sécurité informatique et Système de détection d’intrusions 12
Le schéma suivant illustre un réseau local ainsi que les trois positions que peut y prendre un
IDS :
Sécurité informatique et Système de détection d’intrusions 13
Position 1 : Lorsque l’IDS prend cette position, son rôle sera de détecter l’ensemble des at
taques frontales, provenant de l’extérieur, vers le parefeu. Donc, plusieurs alertes seront
remontées ce qui rendra les logs difficilement consultables.
Position 2 : Si l’IDS est placé sur la DMZ, il détectera les attaques qui n’ont pas été filtrées
par le parefeu et qui relèvent d’un certain niveau de compétence. Les logs seront ici plus
clairs à consulter puisque les attaques bénines ne seront pas recensées.
Position 3 : L’IDS dans cette position a pour objectif de rendre compte des attaques internes,
provenant du réseau local de l’entreprise. Il peut être judicieux d’en placer un à cet endroit
étant donné le fait que 80% des attaques proviennent de l’intérieur. De plus, si des trojans
ont contaminé le parc informatique (navigation peu méfiante sur internet) ils pourront être
ici facilement identifiés pour être ensuite éradiqués.
a) Détection de malveillances
Cette approche est plutôt ancienne, remontant aux années 1990,et s’avère très efficace pour
trouver des menaces connues. Elle consiste à rechercher des activités abusives par comparai
son avec des descriptions abstraites de ce qui est considéré comme malveillant. Cette approche
tente de mettre en forme des règles qui décrivent les usages non désirés, en s’appuyant sur des
intrusions passées ou des faiblesses théoriques connues. En cas de détection d’une menace, une
alerte est émise et le processus de remédiation est enclenché.
L’implémentation de cette approche peut être réalisée en utilisant plusieurs méthodes :
Sécurité informatique et Système de détection d’intrusions 14
• Systèmes experts : Ils peuvent être utilisés pour coder les signatures de malveillance avec
des règles d’implication si . . .alors. Les signatures décrivent un aspect d’une attaque ou
d’une classe d’attaque. Il est possible d’ajouter des nouvelles règles pour les nouvelles
attaques.
• Analyse des transitions d’états : On crée un modèle tel que le système au début ne soit
pas compromis. L’intrus accède au système. Il exécute une série d’actions qui provoquent
des transitions sur les états du modèle, qui peuvent être des états où on considère que le
système soit compromis. Cette approche de haut niveau peut reconnaître des variations
d’attaques qui passeraient inaperçues avec des approches de plus bas niveau.
• Réseaux de neurones : La flexibilité apportée par les réseaux neuronaux permet d’ana
lyser des données même si elles sont incomplètes ou déformées. Ils peuvent de plus per
mettre une analyse nonlinéaire de ces données. Leur rapidité permet l’analyse d’impor
tants flux d’audit en temps réel. On peut utiliser les réseaux neuronaux pour filtrer et sé
lectionner les informations suspectes pour permettre une analyse détaillée par un système
expert. On peut aussi les utiliser directement pour la détection de malveillances. Mais leur
apprentissage est extrêmement délicat, et il est difficile de savoir quand un réseau est prêt
pour l’utilisation. On peut également lui reprocher son côté boite noire (on ne peut pas
interpréter les coefficients).
• Raisonnement sur des modèles : On essaye de modéliser les malveillances à un niveau
élevé et intuitif d’abstraction en termes de séquences d’événements qui définissent l’in
trusion. Cette technique peut être utile pour l’identification d’intrusions qui sont proches
mais différentes. Elle permet aussi de cibler les données sur lesquelles une analyse appro
fondie doit être faite.
• Algorithmes génétiques : On définit chaque scénario d’attaque comme un ensemble
pas forcément ordonné d’événements. Lorsqu’on veut tenir compte de tous les entremê
lements possibles entre ces ensembles, l’explosion combinatoire qui en résulte interdit
l’usage d’algorithmes de recherche traditionnels, et les algorithmes génétiques sont d’un
grand secours.
On peut rapprocher les méthodes utilisées à cette approche à ceux qu’on peut les rencontrer
au domaine des antivirus ou encore dans le domaine de la génomique où l’on recherche une
séquence d’ADN dans un brin
La détection de malveillance a deux inconvénients principales :
• La difficulté de construction des bases de signatures.
• La non détection des attaques non connues.
b) Détection d’anomalies
Cette approche se base sur l’hypothèse que l’exploitation d’une faille du système nécessite
une utilisation anormale de ce système, et donc un comportement inhabituel de l’utilisateur. Elle
cherche donc à répondre à la question « le comportement actuel de l’utilisateur ou du système
estil cohérent avec son comportement passé ? ».
Il existe plusieurs méthodes pour la mise en œuvre de cette approche, parmi elles on peut
citer :
• Observation de seuils : On fixe le comportement normal d’un utilisateur à certaine valeur
(seuil), par exemple le nombre maximum de mots de passe erronés, mais Il est très diffi
cile de caractériser un comportement intrusif en termes de seuils. En effet, on peut avoir
Sécurité informatique et Système de détection d’intrusions 15
beaucoup de fausses alertes ou d’intrusions non détectées dans une population d’usagers
non uniforme par exemple.
• Profilage d’utilisateurs : On crée et on maintiens des profils individuels du travail des
utilisateurs, auxquels ils sont censés adhérer ensuite. Au fur et à mesure que l’usager
change ses activités, son profil de travail attendu se met a jour. Certains systèmes tentent de
concilier l’utilisation de profils à court terme et de profils à long terme. Il reste cependant
difficile de profiler un utilisateur irrégulier ou très dynamique. De plus, un utilisateur peut
arriver à habituer lentement le système à un comportement intrusif.
• Profilage de programmes exécutables : On observe l’utilisation des ressources du sys
tème par les programmes exécutables. Les virus, chevaux de Troie, vers, bombes logiques
et autres programmes du même goût se voient démasqués en profilant la façon dont les
objets du système comme les fichiers ou les imprimantes sont utilisés. Le profilage peut
se faire par type d’exécutable.
• Profilage adaptatif à base de règles : Contrairement à la détection de malveillances à
base des règles, là on n’a pas besoin des connaissances d’un expert car ces règles sont
générées automatiquement lors de la phase d’apprentissage. Donc, l’efficacité de cette
méthode nécessite la génération de beaucoup de règles ce qui engendre des problèmes de
performance.
• Réseaux de neurones : Les réseaux neuronaux offrent une alternative à la maintenance
d’un modèle de comportement normal d’un utilisateur. Ils peuvent offrir un modèle plus
efficace et moins complexe que les moyennes et les déviations standards.
Cette approche a aussi beaucoup d’inconvénients comme :
• La difficulté à dire si les observations faites pour un utilisateur particulier correspondent
à des activités que l’on voudrait prohiber.
• Pour un utilisateur au comportement erratique, toute activité est normale.
• Pas de prise en compte des tentatives de collusion entre utilisateurs.
• Choix délicat des différents paramètres du modèle statistique...etc.
c) Systèmes hybrides
Pour compenser les lacunes des méthodes précédentes, certains systèmes utilisent une com
binaison de la détection d’anomalies et la détection de malveillances. Par exemple, un adminis
trateur peut avoir un profil qui lui permet d’accéder à certains fichiers sensibles, mais on doit vé
rifier que les attaques connues ne soient pas utilisées contre ces fichiers. À l’inverse,l’utilisation
des fichiers comportant le mot « nucléaire »ne caractérise aucune signature d’attaque, mais cela
est possible si ce n’était pas dans les habitudes de l’utilisateur.
• Perfection : Un système de détection d’intrusions est imparfait s’il n’arrive pas à détecter
une attaque.
• Tolérance aux pannes : Le système de détection d’intrusions doit luimême résister aux
attaques, en particulier dans le cas des attaques de déni de service. Ceci est important
car plusieurs systèmes de détection d’intrusions s’exécutent sur des matériels ou logiciels
connus vulnérables aux attaques.
• Opportunité : Un système de détection d’intrusions doit exécuter et propager son analyse
d’une manière prompte pour permettre une réaction rapide dans le cas d’existence d’une
attaque.
1.4 Conclusion
Dans un monde où le progrès technologique avance à grande vitesse, où les gens, les entre
prises, les organismes, les pays et même les objets sont de plus en plus connectés, les attaques
informatiques sont de plus en plus fréquentes. La question de la cybersécurité se pose à tous les
niveaux et tend à devenir un enjeu essentiel ces prochaines années.
Dans ce chapitre, nous avons abordé différentes notions concernant la sécurité informatique,
où nous avons présenté les différents types d’attaques, leur classification, leurs objectifs et mo
tivations et les techniques utilisées pour protéger le système contre ces attaques. Parmi ces mé
canismes, nous avons détaillé les systèmes de détection d’intrusions, vu que c’est notre objectif
dans ce mémoire, qui continuent d’évoluer pour répondre aux exigences et offre un éventail de
fonctionnalités capables de satisfaire les besoins de tous les types d’utilisateurs.
Donc, nous avons détaillé l’architecture des systèmes de détection d’intrusions, leur principe
de fonctionnement et les différentes approches pour la détection d’intrusions où on a divisé les
IDS en deux grandes catégories , les IDS comportementaux et les IDS à base de signatures.
Ces derniers consistent à détecter les attaques en se basant sur leurs signatures ce qui demande
Sécurité informatique et Système de détection d’intrusions 17
une mise à jour périodique de la base des signatures et rend la détection des nouvelles attaques
impossible. C’est pour cela qu’on a basé dans ce travail sur l’approche comportementale qui
offre la possibilité de détecter les attaques inconnues en s’appuyant sur les réseaux de neurones
et les métaheuristiques qui seront détaillés dans les prochaines chapitres.
CHAPITRE 2
CLASSIFICATION ET RÉSEAUX DE NEURONES
2.1 Introduction
La classification de données est un problème délicat qui a apparu dans de nombreux do
maines tels que l’analyse d’image, le diagnostic médical, l’apprentissage automatique...etc, et
cela à cause de l’explosion de la quantité de données traitée par les systèmes informatiques lors
de ces dernières années.
Dans le domaine de la sécurité informatique, la classification sert à classifier le trafic réseau
ou les données du système surveillé en deux classes principale (normale/attaque,légal/illégal,...etc).En
effet, les méthodes de classification sont implémentées dans les systèmes de détection d’intru
sions pour les aider à prendre des décisions et générer des alertes en cas d’attaques avec le
moins de fausses alarmes possibles. Pour ce faire, plusieurs méthodes de l’intelligence artifi
cielle peuvent être utilisées, telle que les réseaux de neurones.
Dans ce chapitre, nous allons présenter la classification des données vu que c’est une phase
principale dans le processus de génération de notre modèle de détection d’intrusions. Nous com
mençons tout d’abord par sa définition, ses catégories et les méthodes de classement les plus
utilisées dans chacune. Ensuite, on focalise sur les réseaux de neurones en exposant leur histo
rique, leur définition, leurs techniques d’apprentissage et leur architecture avant de passer aux
détails de perceptron multicouches, vu que c’est l’outil de notre travail, et nous terminons par
les avantages et les inconvénients des réseaux de neurones et leurs domaines d’applications.
2.2 Classification
2.2.1 Définition
La classification est l’opération statistique qui consiste à regrouper des objets(individus ou
variables) en un nombre limité de classes de sort qu’on doit satisfaire deux conditions princi
pales :[21]
• Ces classes ne sont pas prédéfinies par l’analyste mais découvertes au cours de l’opération.
• Une homogénéité interne et hétérogénéité externe, c’estàdire les classes de la classifica
tion regroupent les objets ayant des caractéristiques similaires et séparent les objets ayant
des caractéristiques différentes.
Classification et réseaux de neurones 19
• Acquisition des données : D’une manière générale, il s’agit de mettre en place l’en
semble d’instrumentation (capteurs, matériel d’acquisition, etc.) de façon à reproduire le
phénomène observé le plus fidèlement possible. [22]. Dans notre cas, il s’agit de placer
les sondes (IDS) pour écouter le trafic réseau.
• Prétraitement de données : Cette phase correspond au filtrage des informations en ne
conservant que ce qui est pertinent dans le contexte d’étude puisque ces données peuvent
contenir plusieurs types d’anomalies (elles peuvent être omises à cause des erreurs de
frappe ou à cause des erreurs dues au système luimême, elles peuvent être incohérentes
donc on doit les écarter ou les normaliser...etc). Parfois on est obligé à faire des transfor
mations sur les données pour unifier leur poids.
• Classification des données : Dans cette étape, on doit choisir la bonne technique pour
extraire les connaissances des données (les réseaux de neurones, les arbres de décision,
les réseaux bayésiens...etc). Dans notre cas, la classification des connexions TCP/IP, on
se base sur les réseaux de neurones.
b) Classification exclusive
Une méthode est dite exclusive si un objet ne peut être affecté qu’à une classe et une seule.
Elle peut être divisée en deux autres classes :
I. Classification non supervisée : il s’agit d’extraire à partir d’une population des classes
ou groupes d’individus présentant des caractéristiques communes. Le nombre et la dé
finition des classes n’étant pas donnés a priori[24]. Le clustering regroupe un ensemble
de techniques qui visent à regrouper les enregistrements d’une base de données en des
groupes selon leur rapprochement les uns des autres en ne se basant sur aucune informa
tion antérieure.
il existe deux approches pour le clustering : le partitionnement et les méthodes hiérar
chique.
• Partitionnement : consiste à construire plusieurs partitions puis les évaluer selon
certains critères. Parmi les méthodes de partitionnement les plus connues on trouve
la méthode des kmoyennes(KMeans).
Le principe de l’algorithme kmeans est le suivant :
— Choisir k objets formant ainsi k clusters.
— (Ré)affecter chaque objet O au cluster Ci de centre Mi tel que distance(O,Mi)
est minimale.
— Recalculer Mi de chaque cluster.
— Aller à la deuxième étape si on vient de faire une affectation.
Classification et réseaux de neurones 21
II. Classification supervisée : elle consiste à inférer à partir d’un échantillon d’exemples
classés une procédure de classification. Le problème est alors d’être capable d’associer à
tout nouvel objet sa classe la plus adaptée, en se servant des exemples déjà étiquetés. [25]
Il existe plusieurs méthodes de classification supervisée, les plus connues sont : la
méthode de k plus proche voisins et la méthode d’arbre de décision.
Classification et réseaux de neurones 22
• K plus proche voisins : l’algorithme des kplus proches voisins est un des algo
rithmes de classification les plus simples. Le seul outil dont on a besoin est une
distance entre les éléments que l’on veut classifier.
On considère que l’on dispose d’une base d’éléments dont on connait la classe, on
parle de la base d’apprentissage, bien que cela soit de l’apprentissage simplifié. Dès
que l’on reçoit un nouvel élément que l’on souhaite classifier, on calcule sa distance
à tous les éléments de la base. Si cette base comporte 50 éléments, alors on calcule
50 distances et on obtient donc 50 nombres réels. Si k=5 par exemple, on cherche
alors les 5 plus petits nombres parmi ces 50 nombres. Ces 5 nombres correspondent
donc aux 5 éléments de la base qui sont les plus proches de l’élément que l’on sou
haite classifier. On décide d’attribuer à l’élément à classifier la classe majoritaire
parmi ces 5 éléments.
• Arbres de décision : les arbres de décision représentent l’une des techniques les plus
connues et les plus utilisées en classification. Leur succès est notamment dû à leur
aptitude à traiter des problèmes complexes de classification. En effet, ils offrent une
représentation facile à comprendre et à interpréter, ainsi qu’une capacité à produire
des règles logiques de classification.[26]
Un arbre de décision est caractérisé par :
— chaque nœud correspond à un test sur la valeur d’un ou plusieurs attributs.
— chaque branche partant d’un nœud correspond à une ou plusieurs valeurs de ce
test.
— à chaque feuille, une valeur de l’attribut cible est associée.
L’utilisation des arbres de décision dans les problèmes de classification se fait en
deux étapes principales :
— la construction d’un arbre de décision à partir d’une base d’apprentissage.
— la classification ou l’inférence consistant à classer une nouvelle instance à partir
de l’arbre de décision construit dans la première étape.
Voici un exemple d’arbre de décision et la partition qu’il implique :
2.3.1 Historique
Les premières tentatives de modélisation du cerveau sont anciennes et précèdent même l’in
formatique, voici quelques dates qui ont marqué l’histoire du domaine connexionniste :[29] [30]
[31]
• En 1890, W. Jones a introduit le concept de mémoires associatives et proposa une loi de
fonctionnement pour l’apprentissage dans les réseaux de neurones, connue plus tard sous
le nom de «Loi de Hebb »
• En 1943, le neurologue Warren Sturgis McCulloch et le logicien Walter Pitts ont proposé
un modèle simplifié de neurone biologique appelé neurone formel capable de représenter
des fonctions booléennes simples.
• En 1949, D. Hebb a présenté dans son ouvrage « The Organization of Behavior »une règle
d’apprentissage. De nombreux modèles de réseaux aujourd’hui s’inspirent encore de la
règle de Hebb.
• En 1958, le premier succès est apparu quand F.Rosenblatt a présenté le premier modèle
opérationnel nommé « Perceptron ».C’était le premier système artificiel qui pouvait ap
prendre par expérience, y compris lorsque son instructeur commettait des erreurs.
• En 1969, Les recherches sur les réseaux de neurones ont été pratiquement abandonnées
lorsque M. Minsky et S. Papert ont publié leur livre « Perceptrons »(1969) et démontré
les limites théoriques du perceptron monocouche du point de vue performance.
• En 1982, Hopfield développe un modèle qui utilise des réseaux totalement connectés basés
sur la règle de Hebb pour définir les notions d’attracteurs et de mémoire associative. En
1984 c’est la découverte des cartes de Kohonen avec un algorithme non supervisé basé
sur l’autoorganisation et suivi une année plus tard par la machine de Boltzman (1985).
• En 1986, Rumelhart, Hinton et Williamsrreur ont introduit le perceptron multicouches
qui repose sur la rétropropagation du gradient de l’erreur dans les systèmes à plusieurs
couches.
A nos jours, l’utilisation des réseaux de neurones dans divers domaines ne cesse de croître.
Les applications en sont multiples et variées.
Classification et réseaux de neurones 24
b) Neurone artificiel
Un neurone formel (ou simplement « neurone ») est une fonction algébrique non linéaire
et bornée, dont la valeur dépend de paramètres appelés coefficients ou poids. Les variables de
cette fonction sont habituellement appelées « entrées »du neurone, et la valeur de la fonction est
appelée sa « sortie ». Un neurone est donc avant tout un opérateur mathématique, dont on peut
calculer la valeur numérique par quelques lignes de programme informatique.[34]
Un réseau de neurones formel peut être représenté comme suit :
Classification et réseaux de neurones 25
La structure d’un neurone artificiel est en fait inspirée de la structure des neurones biolo
giques et la figure suivante montre la mise en correspondance entre ces deux types de neurones :
• Le perceptron multicouches :
C’est le type le plus connu des réseaux de neurones. C’est une extension du perceptron
monocouche avec la présence d’une couche intermédiaire constituée d’une ou plusieurs
couches cachées. Les connexions n’existent qu’entre les cellules d’une couche avec les
cellules de la couche suivante. Et vu que ce modèle de réseaux de neurones est celui que
nous allons utiliser pour mettre en œuvre notre modèle de détection d’intrusions, il sera
détaillé dans la suite de ce chapitre.
• Modèle de Kohonen :
Les cartes topologiques ou cartes auto organisatrices ont été introduites pour la première
fois par T. Kohonen en 1981. Elles sont réalisées à partir d’un réseau à deux couches(une
couche d’entrée et une couche de sortie).Notons que les neurones de la couche d’entrée
sont entièrement connectés à la couche de sortie.Les neurones de la couche de sortie sont
composés d’un certain nombre de neurones régulièrement répartis sur une carte.
• Modèle de Hopfield :
Le modèle de Hopfield fut présenté en 1982. Ce modèle très simple est basé sur le principe
des mémoires associatives. C’est d’ailleurs la raison pour laquelle ce type de réseau est
dit associatif (par analogie avec le pointeur qui permet de récupérer le contenu d’une
case mémoire). Le modèle de Hopfield utilise l’architecture des réseaux complètement
connectés et récurrents. Les sorties sont en fonction des entrées et du dernier état pris par
le réseau.
V Aj = f(V E j )
Il existe plusieurs fonctions d’activation, la plus utilisée dans le cas des réseaux de neu
rones multicouches est la fonction sigmoïde, qui est utilisée dans ce travail. Donc la
valeur d’activation est calculée comme suit :
2. Multi Layer Perceptron
Classification et réseaux de neurones 31
1
V Aj = f(V E j ) =
1 + e−V E j
On répète cette opération jusqu’à le calcul des valeurs d’activation des neurones de la
couche de sortie. La différence entre ces valeurs et les valeurs désirées représente l’erreur
d’apprentissage appelée delta (∆).
• Rétropropagation : après le calcul de l’erreur d’apprentissage dans la phase de propaga
tion avant, ce dernier va être distribué à travers les couches du réseau en allant des sorties
vers les entrées (vers l’arrière) afin de pouvoir ajuster dans la phase suivante les poids du
réseau.
On calcule l’erreur (∆) de chaque neurone s de la couche de sortie par la formule
suivante [39] :
∆s = V As (1 − V As )(val désirée de S − V As )
• Mise à jours des poids : lorsque on distribue l’erreur d’apprentissage sur tous les neu
rones de la couche cachée, on passe à la mise à jours des poids et des biais à l’aide des
formules suivantes [39] :
wij = wij + α ∗ V Ai ∗ ∆j
bj = bj + α ∗ ∆j
Le problème consiste donc à minimiser la valeur de SEC en fonction de l’ensemble des valeurs
de pondération des nœuds et des liaisons. Si la valeur du SEC n’est pas optimal, on répète la
procédure avec d’autres valeurs initiales des poids (wij ) et d’autres valeurs des biais (bj ).
La phase d’apprentissage d’un réseau de neurone peut donc être résumée par l’algorithme
suivant :
Classification et réseaux de neurones 32
c) Validation :
La phase de validation vient après la phase d’apprentissage, elle utilise la matrice des poids
optimaux et les vecteurs d’entrées qui correspondent aux exemples de la base de test. La vali
dation dans un réseau de neurone correspond à l’opération de propagation d’états.
b) Limites
Bien que les réseaux de neurones soient capables d’effectuer beaucoup de tâches, ils
souffrent néanmoins de certaines limites dont on peut citer : [40] [41]
• Choix des attributs : Avant de passer des exemples à un réseau de neurones, il faut
trouver une structure permettant au réseau de bien apprendre les exemples(choix des
valeurs initiales des poids du réseau, le nombre de neurones cachés nécessaires,réglage
du pas d’apprentissage...etc).
• Temps d’apprentissage : Un réseau doit parfois apprendre les exemples plusieurs
dizaines de milliers de fois. Si la base d’exemples est énorme, le temps d’apprentis
sage risque d’être démesuré et le réseau perd son pouvoir de généralisation(il recon
nait les données de l’échantillon d’apprentissage, mais plus de nouvelles données
similaires).
• Exploitabilité : Il existe une grande difficulté pour expliquer les résultats obtenus
par le réseau de neurones, car ce dernier fonctionne comme une boite noire (on lui
passe des entrées et il ressort un résultat) où les connaissances sont intelligibles pour
l’utilisateur.
• Sur apprentissage : Un réseau de neurones peut donner une très grande précision
face aux exemples d’entrainement, mais se comporte très mal avec les nouveaux
exemples. cela représente un phénomène très connu en apprentissage qui est le sur
apprentissage ou l’apprentissage par cœur. Le sur apprentissage donne, générale
ment, des modèles à faible capacité de généralisation, et par conséquent la mesure
de précision n’est pas suffisante pour qualifier les performances de ces modèles.
2.4 Conclusion
Les réseaux de neurones artificiels sont considérés comme des approches très intéressantes
dans le domaine de l’intelligence artificielle. Ils sont connus par leur puissance d’apprentissage
et généralisation.
Dans ce deuxième chapitre, nous avons présenté dans la première partie une introduction au
domaine de classification des données en détaillant l’architecture des applications basées sur
cette notion ainsi que leur catégories avec les techniques utilisées dans chacune.
Dans la deuxième partie, nous avons introduit les définitions de base pour les réseaux de
neurones vu que c’est la technique que nous allons utiliser pour réaliser ce travail, et cela en
spécifiant leur principe de fonctionnement, leurs types d’apprentissage et leur architecture avec
une brève présentation de quelques modèles de ces derniers, où nous avons concentré sur les
réseaux de neurones multicouches(MLP) qui sont les plus adaptés à la classification du trafic
réseau, et enfin nous avons terminé par les avantages et les inconvénients de cette technique de
classification supervisée ainsi que ses domaines d’application.
CHAPITRE 3
OPTIMISATION COMBINATOIRE
3.1 Introduction
Les problèmes d’optimisation occupent actuellement une place importante dans la commu
nauté scientifique où il est nécessaire de trouver des solutions optimales pour des problèmes
très compliqués et difficiles à résoudre. Parmi les méthodes les plus utilisées pour la résolution
de tels problèmes, on trouve les métaheuristiques qui englobent un ensemble d’algorithmes ca
pables de résoudre des problèmes assez compliqués en s’inspirant d’analogies avec la physique
(recuit simulé), avec la biologie (algorithmes évolutionnaires)ou encore l’éthologie (colonies de
fourmis, essaims particulaires).
Dans ce chapitre, nous avons présenter le concept d’optimisation combinatoire et ses diffé
rentes techniques, où nous avons concentrer sur les métaheuristiques vu que c’est la méthode
d’optimisation que nous allons utiliser pour générer notre modèle de détection d’intrusions. Plus
particulièrement, la méthode de recuit simulé et celle de recherche tabou qui sont utilisées dans
ce travail conjointement avec le réseau de neurones multicouches pour optimiser les poids de ce
dernier afin de perfectionner notre modèle de détection d’intrusions.
a) Méthodes exactes
Le principe essentiel d’une méthode exacte consiste généralement à énumérer, souvent de
manière implicite, l’ensemble des solutions de l’espace de recherche. Pour améliorer l’énuméra
tion des solutions, une telle méthode dispose de techniques pour détecter le plus tôt possible les
échecs (calculs de bornes) et d’heuristiques spécifiques pour orienter les différents choix. Parmi
les méthodes exactes, on trouve la plupart des méthodes traditionnelles (développées depuis une
trentaine d’années) telles les techniques de séparation et évaluation (Branch and Bound) ou la
programmation dynamique. Les méthodes exactes ont permis de trouver des solutions optimales
pour des problèmes de taille raisonnable.[21]
b) Méthodes approchées
Lorsque l’on dispose d’un temps de calcul limité ou lorsqu’on est confronté à des problèmes
difficiles ou de taille importante, on peut avoir recours aux méthodes approchées, en se conten
tant de rechercher une solution de bonne qualité. Dans ce cas le choix est parfois possible entre
une heuristique spécialisée et une métaheuristique :[46]
• Heuristique : Le mot heuristique vient du grec « eurisko »qui signifie « je trouve »d’où
la célèbre Eureka d’Archimède. Une heuristique, ou méthode approximative, est un algo
rithme qui fournit rapidement(en temps polynomial) une solution réalisable, pas nécessai
rement optimale, pour un problème d’optimisation difficile. Une méthode heuristique est
généralement conçue pour un problème particulier, en s’appuyant sur sa structure propre.
• Métaheuristique : Le mot métaheuristique est dérivé de la composition de deux mots
grecs : méta signifiant « audelà »et heuristique. En effet, ces algorithmes se veulent des
méthodes génériques pouvant optimiser une large gamme de problèmes différents, sans
nécessiter de changement profond dans l’algorithme employé.
Optimisation Combinatoire 37
3.3 Métaheuristiques
3.3.1 Définition
Contrairement aux méthodes exactes, les métaheuristiques permettent de s’attaquer aux ins
tances problématiques de grande taille en fournissant des solutions satisfaisantes dans un délai
raisonnable. Il n’y a aucune garantie de trouver des solutions globales optimales ou même des
solutions limitées. Les métaheuristiques ont reçu de plus en plus de popularité au cours des 20
dernières années. Leur utilisation dans de nombreuses applications montre leur efficacité pour
résoudre des problèmes vastes et complexes. Parmi ces domaines, on peut citer les suivants :
[45]
• Conception technique, optimisation de la topologie et optimisation structurelle en électro
nique et VLSI, aérodynamique, dynamique des fluides, télécommunications, automobile,
et la robotique.
• Apprentissage automatique et fouille de données en bioinformatique et biologie compu
tationnelle, et les finances.
• Simulation et identification en chimie, physique et biologie, traitement du signal et de
l’image...etc.
• Planification des problèmes de routage, planification des robots, problèmes d’ordonnan
cement et de production, logistique et transport, gestion de la chaîne d’approvisionne
ment...etc.
Il existe plusieurs méthodes pour cette classification, les plus connues sont :
• La recherche locale : La recherche locale itérative est un modèle de recherche locale qui
améliore le principe de recherche locale multidépart (« multiple start local search ») dans
lequel des méthodes de descente sont lancées successivement sur des solutions initiales
générées aléatoirement pour contrer l’aspect déterministe de la descente. Le principe est
simple, une recherche par descente est appliquée sur une solution initiale pour générer
une meilleure solution. On applique ensuite une nouvelle recherche par descente sur cette
nouvelle solution après l’avoir « perturbée ». La solution obtenue est comparée avec la
solution initiale pour savoir si elle la remplace ou non. Tout cela représente une itération
de la recherche locale itérative.[47]
• Le recuit simulé : Le recuit simulé est une technique d’optimisation de type MonteCarlo
généralisé à laquelle on introduit un paramètre de température qui sera ajusté pendant la
recherche. Elle s’inspire des méthodes de simulation de Metropolis (années 50) en méca
nique statistique. L’analogie historique s’inspire du recuit des métaux en métallurgie : un
métal refroidi trop vite présente de nombreux défauts microscopiques, c’est l’équivalent
d’un optimum local pour un problème d’optimisation combinatoire. Si on le refroidit len
tement, les atomes se réarrangent, les défauts disparaissent, et le métal a alors une struc
ture très ordonnée, équivalente à un optimum global. Cette technique sera détaillée dans la
suite de ce chapitre vu que c’est l’une des méthodes utilisées pour réaliser ce travail.[49]
• La recherche tabou : La recherche Tabou a été introduite par F. Glover et a montré sa
performance sur de nombreux problèmes d’optimisation. Le principe de l’algorithme est
le suivant : à chaque itération, le voisinage (complet ou sousensemble de voisinage) de
la solution courante est examiné et la meilleure solution est sélectionnée. En appliquant
ce principe, la méthode autorise de remonter vers des solutions qui semblent moins inté
ressantes mais qui ont peut être un meilleur voisinage. Cette méthode sera détaillée dans
la suite de ce chapitre.[48]
b) Métaheuristique à population
Dans cette classe les métaheuristiques utilisent la notion de population : elles manipulent
toutes un échantillonnage de la fonction objectif, via des processus communs. Autrement dit, les
méthodes d’optimisation à population de solutions améliorent, au fur et à mesure des itérations,
une population de solutions. L’intérêt de ces méthodes est d’utiliser la population comme facteur
de diversité.
Optimisation Combinatoire 40
Parmi les algorithmes inclus dans cette classification on peut citer les suivants :
• Les algorithme génétiques : Les algorithmes génétiques sont des algorithmes d’optimi
sation s’appuyant sur des techniques dérivées de la génétique et de l’évolution naturelle :
croisements, mutations, sélection, etc. Introduits par J.H. Holland au début des années
1970. Ils sont appliqués dans diverses domaines : l’économie, l’optimisation de fonctions,
la finance, en théorie du contrôle optimal, théorie des jeux répétés et différentiels.
• Les colonies des fourmis : L’algorithme de colonies de fourmis a été à l’origine prin
cipalement utilisé pour produire des solutions quasioptimales au problème du voyageur
de commerce, puis, plus généralement, aux problèmes d’optimisation combinatoire. On
observe, depuis ses débuts, que son emploi se généralise à plusieurs domaines, depuis
l’optimisation continue jusqu’à la classification, ou encore le traitement d’image.[50]
• Les algorithmes à essaim de particules : Les algorithmes d’optimisation par essaim de
particules (PSO) ont été introduit en 1995 par Kennedy et Eberhart comme une alter
native aux algorithmes génétiques standards. Ces algorithmes sont inspirés des essaims
d’insectes (ou des bancs de poissons ou des nuées d’oiseaux) et de leurs mouvements co
ordonnés. En effet, tout comme ces animaux se déplacent en groupe pour trouver de la
nourriture ou éviter les prédateurs, les algorithmes à essaim de particules recherchent des
solutions pour un problème d’optimisation. Les individus de l’algorithme sont appelés
particules et la population est appelée essaim. [48]
retrouver sa forme solide par une diminution progressive de la température. Chaque tempéra
ture est maintenue jusqu’à ce que la matière trouve un équilibre thermodynamique. Quand la
température tend vers zéro, seules les transitions d’un état à un état d’énergie plus faible sont
possibles.
Metropolis et al. [53] furent les premiers à implémenter, dès 1953, ce type de principe dans le
calcul numérique. Ils utilisent une méthode stochastique pour générer une suite d’états successifs
du système en partant d’un état initial donné. Tout nouvel état est obtenu en faisant subir un dé
placement (une perturbation) aléatoire à un atome quelconque. Soit ∆E la différence d’énergie
occasionnée par une telle perturbation. Le nouvel état est accepté si l’énergie du système diminue
(∆E ≤ 0s). Sinon, il est accepté avec une probabilité définie par : p(∆E, T ) = e(−∆E/(Cb ∗T )) où
T est la température du système et Cb une constante physique connue sous le nom de constante
de Boltzmann.
3.4.2 Algorithme
Le recuit simulé applique itérativement l’algorithme de Metropolis 1 , pour engendrer une
séquence de configurations qui tendent vers l’équilibre thermodynamique :
1. l’algorithme a été nommé d’après Nicholas Metropolis, qui avec Arianna W. Rosenbluth, Marshall N. Ro
senbluth, Augusta H. Teller et Edward Teller rédigea l’article fondateur de 1953, « Equations of State Calculations
by Fast Computing Machine »proposant l’algorithme pour le cas spécifique de la distribution de Boltzmann. Keith
W. Hastings l’étendit au cas plus général en 1970.
Optimisation Combinatoire 42
Une recherche de recuit simulé accepte n’importe quelles nouvelles solutions qui sont éva
luées comme des solutions supérieures, mais elle accepte aussi les changements négatifs de
qualité avec une probabilité qui dépend de la taille de diminution dans la qualité et la valeur cou
rante de la température. La température commence à une haute valeur, idéalement assez haute
que n’importe quelle solution inférieure aura presque une chance de 100 % d’être acceptée, et
le processus suit son cours.[54]
3.4.3 Pseudocode
La figure suivante donne un pseudocode du recuit simulé :
a) Avantages
Les principaux avantages de l’algorithme de recuit simulé (SA) peuvent être résumés comme
suit :
• il peut traiter des systèmes arbitraires et des fonctions objectives, en termes de modèles
hautement non linéaires et multimodaux, données bruitées ou soumises à de fortes contraintes.
• il converge vers un optimum global lorsque le nombre d’itérations tend vers l’infini (assez
grand).
• il fournit des bonnes solutions pour la majorité des problèmes d’optimisation.
• il est relativement facile à mettre en œuvre et moins sensible à la taille de problème.
• c’est une technique d’optimisation généralisée, car elle ne repose pas sur toutes les pro
priétés restrictives du modèle.
b) Inconvénients
Il existe plusieurs défauts, parmi eux on peut citer les suivants :
• nombre important de paramètres(température initiale, taux de décroissance de la tempé
rature, durée des paliers de la température, critère d’arrêt du programme).
• réglage souvent empirique des paramètres.
• temps de calcul excessif dans certaines application (problème de performance).
• l’impossibilité de savoir si la solution trouvée est optimale.
Optimisation Combinatoire 44
Contrairement aux autres procédures de recherche locales simples, TS est déterministe 2 où,
à chaque itération, la meilleure solution de voisinage non interdite de la solution actuelle est
sélectionnée, même si elle conduit à une pire solution par rapport à la fonction objectif. TS peut
ainsi échapper aux optima locaux. La recherche s’arrête après un nombre fixe d’itérations ou un
nombre maximum d’itérations continues sans améliorations de la solution la plus connue.[58]
3.5.2 Algorithme
L’algorithme de recherche tabou peut être résumé comme suit :
2. Un algorithme est dit déterministe, s’il se comporte toujours de la même façon lorsqu’il est appliqué sur une
instance donnée du problème
Optimisation Combinatoire 45
3.5.3 Pseudocode
La figure suivante illustre la structure générale de la méthode recherche tabou :
a) Avantages
On peut résumer les avantages de la technique de recherche tabou dans deux points princi
paux qui sont :
• Grande efficacité.
• Fonctionnement simple à comprendre.
Optimisation Combinatoire 46
b) Inconvénients
Il existe plusieurs inconvénients pour la méthode RT, parmi eux :
• Paramètres peu intuitifs.
• Demande en ressources importantes si la liste des tabous est trop imposante.
• Aucune démonstration de la convergence.
3.6 Conclusion
A travers ce chapitre, nous avons abordé les définitions essentielles à la compréhension de
travail du point de vue optimisation. Nous avons pu voir qu’un grand nombre de méthodes d’op
timisation existe pour résoudre un problème combinatoire. Ces méthodes peuvent être exactes ou
bien approchées où on distingue deux grandes familles : les heuristiques et les métaheuristiques
qui sont détaillées dans la deuxième partie de ce chapitre.
Enfin, nous avons présenté deux techniques largement utilisées pour résoudre les problèmes
d’optimisation qui sont le recuit simulé et la recherche tabou. Alors, on a donné pour chacune de
ces méthodes sa définition, son algorithme, ses domaines d’application et nous avons terminé
par ses avantages et inconvénients. Ces méthode seront utilisées dans ce travail pour optimiser
les valeurs des poids qui relient les neurones d’une couche à l’autre dans le but d’augmenter la
performance de classification du modèle MLP.
CHAPITRE 4
NOTRE MODÈLE DE DÉTECTION D’INTRUSIONS
4.1 Introduction
En fait, les réseaux de neurones sont considérés comme étant l’une des techniques les plus
puissantes et les plus utilisées en classification des données, notamment le modèle MLP qu’on
a déjà décrit dans le deuxième chapitre. Cette technique qui a la possibilité de classifier les
données en classes, chacune comporte les objets les plus similaires entre eux, sera utilisée dans
notre modèle pour classifier le trafic du réseau TCP/IP en trafic normal ou en trafic malveillant.
La génération de notre modèle est basée sur la base NSLKDD issue du jeu de données DARPA
1998.
Dans ce chapitre, nous présentons les différentes étapes du développement de notre travail
en commençant par une simple description de la base de données NSLKDD. Où, nous allons
détailler les différentes phases de prétraitement qu’on a appliqué sur cette base, notamment la
numérisation, la normalisation et la sélection des meilleurs attributs. Ensuite, nous allons présen
ter les techniques utilisées pour entrainer et tester notre modèle tout en illustrant les techniques
d’optimisation que nous avons appliqué pour augmenter la performance de ce dernier.
NSLKDD a été créé en 2009 pour résoudre certains problèmes inhérents à KDD Cup 99
[61]. Il reprend ainsi les mêmes données que ce dernier, mais le modifie grandement pour appor
ter ses corrections. Ainsi, les connexions redondantes ou dupliquées, qui composaient de 75%
1. Le premier événement IDS parrainé par la DARPA a été réalisé par le MIT Lincoln LAB en 1998 [59]. Dans
cet événement DARPA, un scénario d’attaque à la base de l’AirForce est simulé
Notre modèle de détection d’intrusions 48
La distribution des connexions de la base NSLKDD est illustrée dans le tableau cidessous :
• Les caractéristiques du contenu :ces attributs sont construits à partir de la charge utile
(Data) des paquets du trafic tels que le nombre d’échec de connexion et le nombre d’accès
aux fichiers de contrôle.
• Les caractéristiques de l’hôte :ce sont les attributs conçus pour évaluer les attaques qui
durent plus de deux secondes.
Si on prend par exemple le cas de l’attribut protocoltype qui peut prendre trois valeurs : tcp,
udp ou bien icmp, le résultat de numérisation de cet attribut sera comme suit :
En appliquant cette formule sur les données de la base NSLKDD, on obtiendra une base
normalisée dont toutes ses valeurs sont compris entre 0 et 1.
Où :
— c1 , c2 : dénotent les deux classes de classification (normale, attaque).
— xi : représente un attribut.
— xj : représente une valeur particulière de l’attribut xi .
— n : dénote le nombre de valeurs de l’attribut xi .
— p : la probabilité.
Étape 2 : Calcul de gain pour chaque attribut à l’aide la formule suivante :
Sachant que :
nbnormal nbnormal nbattack nbattack
EntropieE = log2 ( )+ log2 ( )
nbconnexion nbconnexion nbconnexion nbconnexion
Où :
— nbnormal :présente le nombre des connexions qui sont classifiées comme normal.
— nbattack :présente le nombre des connexions qui sont classifiées comme une tentative
d’attaque.
— nbconnexion :présente le nombre total des connexions dans la base d’apprentissage..
Étape 3 : Élimination des attributs ayant un gain inférieur à un seuil donné (0.5 dans notre
cas).
Étape 4 : Génération du modèle de classification en se basant sur l’ensemble des attri
buts restants après la troisième étape. Les attributs sélectionnées dans notre cas sont les
suivants :
Notre modèle de détection d’intrusions 53
— Un vrai négatif (TN) est une activité normale correctement classée lors de test.
— Un faux positif (FP) est une activité normale mal classée pendant le test, c’estàdire,
elle est considérée comme attaque.
— Un faux négatif (FN) est une attaque non détectée pendant le test, c’estàdire, elle
est considérée comme trafic normal.
— Un vrai positif (TP) est une attaque correctement détectée.
• L’exactitude (Accuracy) ou le taux de réussite : c’est le rapport entre les enregistre
ments bien classés et la totalité d’enregistrements de test. Il sert à indiquer la façon dont
la technique de détection est correcte.
TP + TN
Exactitude = ∗ 100%
TP + TN + FP + FN
• Le rappel : c’est le taux des intrusions correctement détectées par rapport au nombre total
d’intrusions. Il est calculé à partir de la formule suivante :
TP
Rappel = ∗ 100%
TP + FN
• La précision :appelée aussi le taux de reconnaissance, est la proportion de prédictions de
positifs qui sont en effet des positifs.
TP
P rcision = ∗ 100%
TP + FP
• Le taux des fausses alertes (taux des faux positifs) : est la proportion des négatifs in
correctement détectés comme des positifs.
FP
T aux − des − f ausses − alertes = ∗ 100%
FP + TN
• Fmesure (Moyenne harmonique) : c’est une métrique qui combine la précision et le
rappel en un nombre compris entre 0 et 1. Elle donne une évaluation de synthèse de la
classification.
2 ∗ P rcision ∗ Rappel
F − mesure =
P rcision + Rappel
Notre modèle de détection d’intrusions 55
a) Objectif
Dans ce travail, nous cherchons à maximiser le taux de réussite du modèle de détection
d’intrusions établi, donc la fonction objectif sera comme suit :
f = M ax(taux − de − russite)
b) Solution initiale
Dans notre cas, la solution initiale c’est un tableau des poids comme il est illustré dans cette
figure :
c) Algorithme détaillé
Pour atteindre notre objectif, nous utilisons l’algorithme suivant :
Notre modèle de détection d’intrusions 56
4.4 Conclusion
Dans ce chapitre, nous avons introduit la base NSLKDD qui a été utilisée pour entrainer et
aussi pour tester notre modèle de détection d’intrusions qui est construit à base d’un réseau de
neurones multicouches. Tout d’abord, nous avons présenté l’historique de cette base ainsi que sa
description, son contenu et ses différents attributs. Ensuite, nous avons détaillé notre processus
de génération du modèle de classification en expliquant ses différentes phases notamment le
prétraitement, l’apprentissage et le test.
Enfin, nous avons terminé ce chapitre avec une illustration de la phase la plus importante dans
notre travail qui est l’optimisation du modèle. Où, nous avons montré l’utilisation du recuit
simulé et recherche tabou dans notre problème de détection d’intrusions à base de réseau de
neurones tout en donnant l’algorithme général utilisé.
CHAPITRE 5
IMPLÉMENTATION ET ANALYSE DES RÉSULTATS
5.1 Introduction
L’implémentation de notre modèle de détection d’intrusions consiste à trouver tout d’abord
une architecture optimale qui donne la possibilité de détecter les attaques avec un taux de réussite
élevé.
Afin d’obtenir les meilleures performances possibles, nous avons effectué plusieurs expé
rimentations avec des paramètres du réseau différents. Dans ce travail, nous nous intéressons
beaucoup plus aux poids qui relient les arcs du réseau, donc nous essayons de trouver ses va
leurs optimales qui peuvent perfectionner notre modèle. Les résultats de ces expérimentations
ainsi que les valeurs des paramètres utilisées seront détaillés dans ce chapitre.
Les caractéristiques techniques de la machine sur laquelle le modèle est implémenté et testé
sont résumées dans le tableau suivant :
Implémentation et analyse des résultats 59
Les valeurs des autres paramètres communs dans les différentes expérimentations soit pour
le réseau de neurones ou bien pour le recuit simulé sont indiquées dans le tableau cidessous :
les connexions dans le système de détection d’intrusions. Dans le second cas, on utilise le recuit
simulé pour trouver la solution optimale qui perfectionne les performances du réseau. Tandis
que dans le dernier cas, on utilise la méthode de recherche tabou au lieu de recuit simulé.
Les résultats obtenus pour les trois expérimentations sont montrés dans les tableaux et les
graphes suivants :
Dans ce cas, on constate que la valeur d’exactitude ne dépasse pas 81% et le rappel aussi ne
dépasse pas 69%. D’où la nécessité de l’utilisation des méthodes d’optimisation pour améliorer
ces performances.
• Matrice de confusion :
À partir de cette matrice on peut calculer les métriques précédents en appliquant les formules
citées dans la section 4.3.3.
Cette figure montre clairement les résultats obtenus sans méthodes d’optimisation. Ces ré
sultats nous ont incités à rechercher de nouvelles méthodes pour perfectionner notre modèle.
En utilisant la recherche tabou, les performances du modèle ont été mieux que celles ob
tenues sans méthodes d’optimisation. Donc, nous avons pu améliorer l’exactitude qui arrive
jusqu’à 86,10% et le rappel qui atteint presque 79%.
Implémentation et analyse des résultats 62
• Matrice de confusion :
D’après les résultats cités dans cette matrice, on peut montrer l’efficacité de recherche ta
bou qui nous a donné la possibilité de détecter plus d’attaque. Par exemple, pour un réseau de
neurones de 5 couches cachées, le nombre des attaques bien détectées est 10026 alors que dans
le premier cas, il a été 8790 seulement. Donc, nous avons pu détecter plus de 1200 nouvelles
attaques.
Sachant que cette technique, recuit simulé, fournit des bonnes solutions pour la majorité des
problèmes d’optimisation, dans ce travail, elle nous a donné aussi la meilleure exactitude qui
égale à 86,18% pour un réseau de neurones de 5 couches cachées.
• Matrice de confusion :
Cette figure donne une illustration des résultats obtenus en utilisant le recuit simulé qui nous
a donné les meilleures résultats par rapport aux autres approches implémentées dans ce travail.
Pour conclure, l’histogramme suivant montre clairement les améliorations que le recuit simulé
et la recherche tabou apportent au réseau de neurones :
Figure 5.4 – Comparaison des taux de réussite calculés avec et sans méthodes d’optimisation
5.4 Conclusion
Dans ce dernier chapitre, nous avons présenté les résultats obtenus à partir de plusieurs ex
périmentations que nous avons effectué pour arriver au meilleur taux de réussite possible et les
améliorations effectuées grâce aux algorithmes de recuit simulé et recherche tabou qui ont été
utilisé comme des techniques d’optimisation sur les poids et les biais du MLP.
Implémentation et analyse des résultats 66
Les résultats obtenus ont montré l’efficacité des systèmes de détection d’intrusions basés sur
les réseaux de neurones, et plus précisément le perceptron multicouches, surtout lorsqu’il est
combiné avec le recuit simulé ou la recherche tabou qui ont montré leur efficacité dans la réso
lution des problèmes NPdifficiles.
CONCLUSION GÉNÉRALE
ujourd’hui, les attaques informatiques représentent un risque réel qui menace les
A systèmes informatiques et les réseaux des entreprises, ce qui nous a conduit à essayer,
dans ce travail, de développer un modèle de sécurité capable de confronter cette me
nace en détectant toute tentative malveillante soit connue préalablement ou bien récente. Pour
accomplir ce but, on a utilisé les réseaux de neurones et plus précisément le perceptron multi
couches, vu que c’est le modèle le plus adapté aux données non linéairement séparables, et cela
pour classifier les connexions TCP/IP en deux catégories : normale ou attaque en se basant sur
le benchmark NSLKDD.
En effet, le choix des paramètres du réseau de neurones a une grande influence sur les per
formances de ces derniers. C’est pour cette raison que nous avons utilisé deux techniques d’op
timisation qui sont le recuit simulé et la recherche tabou pour choisir les meilleurs valeurs des
poids et biais du réseau qui nous donnent le meilleur taux de réussite possible. Tandis que le
choix du nombre de couches, nombre de neurones par couche et le taux d’apprentissage a été
fait manuellement en changeant ces valeurs dans chaque expérimentation jusqu’à l’obtention du
modèle le plus performant.
Dans ce travail nous avons effectué une étude comparative entre trois modèles : celui qui se
base uniquement sur l’algorithme du gradient, celui qui utilise le recuit simulé et enfin celui qui
utilise la recherche tabou et cela pour trouver l’ensemble des poids et biais optimaux. Les résul
tats obtenus montrent l’influence positif des algorithmes d’optimisation sur les performances de
réseau de neurones.
Enfin, puisque la recherche scientifique n’a pas des limites et malgré que nous avons obtenu
des bons résultats, il existe des améliorations possibles pour perfectionner ce modèle telles que
l’utilisation des métaheuristiques pour choisir les autres paramètres du réseau et aussi la réali
sation d’une classification multiclasses qui donne de plus le type d’attaque détectée.
ANNEXE A
LES ATTRIBUTS DE LA BASE NSLKDD
Les détails des attributs sont répertoriés dans le tableau suivant :[69]
[1] B. Guttman and E. A. Roback, An introduction to computer security : the NIST handbook.
Diane Publishing, 1995.
[2] W. Stallings, Network security essentials : applications and standards. Pearson, 2016.
[3] O. Lopez and F. Picard, Cyberassurance : nouveaux modèles pour quantifier l’impact
économique des risques numériques. No. 3, Association d’économie financière, 2019.
[4] J.O. Gerphagnon, M. P. de Albuquerque, and M. P. de Albuquerque, “Attaques informa
tique,” CBPFNT007/00,Centre brésilien de recherche physique, Rio de Janeiro – RJ –
Brazil, 2004.
[5] S. Specht and R. Lee, “Taxonomies of distributed denial of service networks, attacks, tools
and countermeasures,” CEL200303, Princeton University, Princeton, NJ, USA, 2003.
[6] M. S. Hoque, M. Mukit, M. Bikas, A. Naser, et al., “An implementation of intrusion de
tection system using genetic algorithm,” arXiv preprint arXiv :1204.1336, 2012.
[7] S. Paliwal and R. Gupta, “Denialofservice, probing & remote to user (r2l) attack detection
using genetic algorithm,” International Journal of Computer Applications, vol. 60, no. 19,
pp. 57–62, 2012.
[8] R. Akimana, Introduction à la sécurité informatique. African Virtual University, 2018.
[9] R. Deal, Cisco router firewall security. Cisco Press, 2004.
[10] K. Salah, K. Sattar, Z. Baig, M. Sqalli, and P. Calyam, “Resiliency of opensource firewalls
against remote discovery of lastmatching rules,” in Proceedings of the 2nd International
Conference on Security of Information and Networks, SIN ’09, (New York, NY, USA),
p. 186–192, Association for Computing Machinery, 2009.
[11] A. Milenkoski, M. Vieira, S. Kounev, A. Avritzer, and B. D. Payne, “Evaluating computer
intrusion detection systems : A survey of common practices,” ACM Comput. Surv., vol. 48,
Sept. 2015.
[12] P. Biondi, “Architecture expérimentale pour la détection d’intrusions dans un système in
formatique,” Article de recherche,(AvrilSptembre 2001), 2001.
[13] S. Mignault, L’audit de sécurité et la protection des organisations. Université de Montréal,
2009.
[14] G. Hiet, Détection d’intrusions paramétrée par la politique de sécurité grâce au contrôle
collaboratif des flux d’informations au sein du système d’exploitation et des applications :
mise en œuvre sous Linux pour les programmes Java. Theses, Université Rennes 1, Dec.
2008.
BIBLIOGRAPHIE 71
[34] G. Dreyfus et al., “Les réseaux de neurones,” Mécanique industrielle et matériaux, vol. 51,
1998.
[35] M. Parizeau, “Réseaux de neurones,” GIF21140 et GIF64326, vol. 124, 2004.
[36] R. GHAYOULA, “Contribution à l’optimisation de la synthèse des antennes intelligentes
par les réseaux de neurones,” Université de Tunis El Manar. Thèse de doctorat, vol. 27,
2008.
[37] S. Gunadiz, Algorithmes d’intellignece antificielle pour la classification d’attaquer réseau
à partir de donnée TCP. PhD thesis, Université de Boumerdès M’hamed Bougara, 2011.
[38] S. Aissaoui, Apprentissage automatique et sécurité des systèmes d’information. Applica
tion : un système de détection d’intrusion basé sur les séparateurs à vaste marg (svm).
PhD thesis, Université d’Oran Ahmed Ben Bella, 2008.
[39] D. E. Rumelhart, G. E. Hinton, and R. J. Williams, “Learning internal representations by er
ror propagation,” tech. rep., California Univ San Diego La Jolla Inst for Cognitive Science,
1985.
[40] A. Belgacem, Classification des signaux EGC avec un systèmemultiagent neuronale.
PhD thesis, Universite Abou Bekr Belkaid Tlemcen, 2012.
[41] Y. HAMMOUCHE, Comparaison de plusieurs méthodes pour la prédiction de la Charge
Electrique Nationale. PhD thesis, Université Badji Mokhtar Annaba, 2009.
[42] C. Touzet, LES RESEAUX DE NEURONES ARTIFICIELS, INTRODUCTION AU
CONNEXIONNISME. Collection de l’EERIE, EC2, 1992.
[43] M. R. Meireles, P. E. Almeida, and M. G. Simões, “A comprehensive review for industrial
applicability of artificial neural networks,” IEEE transactions on industrial electronics,
vol. 50, no. 3, pp. 585–601, 2003.
[44] J.K. Hao, P. Galinier, and M. Habib, “Métaheuristiques pour l’optimisation combinatoire
et l’affectation sous contraintes,” Revue d’intelligence artificielle, vol. 13, no. 2, pp. 283–
324, 1999.
[45] E.G. Talbi, Metaheuristics : from design to implementation, vol. 74. John Wiley & Sons,
2009.
[46] I. Boussaid, Perfectionnement de métaheuristiques pour l’optimisation continue. PhD the
sis, Paris Est, 2013.
[47] J.C. Boisson, Modelling and Solving with cooperative metaheuristics : from atom to pro
tein sequence. Theses, Université Lille 1, Dec. 2008.
[48] L. Jourdan, Métaheuristiques pour l’extraction de connaissances : Application à la géno
mique. PhD thesis, Université des Sciences et Technologie de LilleLille I, 2003.
[49] S. Kirkpatrick, C. D. Gelatt, and M. P. Vecchi, “Optimization by simulated annealing,”
science, vol. 220, no. 4598, pp. 671–680, 1983.
[50] W. Tfaili, “Conception d’un algorithme de colonie de fourmis pour l’optimisation continue
dynamique,” Paris val of Marne university, 2007.
[51] S. Kirkpatrick, C. D. Gelatt, and M. P. Vecchi, “Optimization by simulated annealing,”
science, vol. 220, no. 4598, pp. 671–680, 1983.
[52] S. Kirkpatrick, “Optimization by simulated annealing : Quantitative studies,” Journal of
statistical physics, vol. 34, no. 56, pp. 975–986, 1984.
BIBLIOGRAPHIE 73
Abstract
Today, and due to technological developments and the use of the Internet on a large scale,
making everything secure became an unavoidable necessity and a challenge for most companies.
And since traditional means of security have become insufficient due to the increase in the
number and types of computer attacks that appear almost every day, researchers in the field of
computer security are busy developing security tools based on notions of artificial intelligence
to detect new attacks. In this work, an intrusion detection model based on multilayer neural
networks optimized by simulated annealing and tabu search was produced using the NSLKDD
benchmark to generate and evaluate this model.