Les systèmes de détection d`intrusion basés sur du machine learning

Transcription

Les systèmes de détection d`intrusion basés sur du machine learning
UNIVERSITÉ LIBRE DE BRUXELLES
Faculté des Sciences
Département d'Informatique
Les systèmes de détection d'intrusion
basés sur du machine learning
Liran LERMAN
Promoteurs :
Prof. Olivier Markowitch & Prof. Gianluca Bontempi
Contents
1 Introduction
1
2 Sécurité informatique et outils cryptographiques[13]
3
3 Systèmes de détection d'intrusion
4
3.1
Composition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.2
Positionnement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
3.3
Schéma d'une attaque
4
3.4
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
Protection . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
3.4.1
HIDS ou NIDS
5
3.4.2
Approche comportementale ou par scénario . . . . . . . . . . . . . . . . .
6
3.4.3
Online ou Oine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
3.4.4
Réponse active ou passive . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.5
Attaques contre les IDS
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7
3.6
Erreurs de classication
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
8
3.7
Tests des IDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3.8
Logiciels existants
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4 Machine learning
4.1
9
10
11
Obtention des données et pré-processing . . . . . . . . . . . . . . . . . . . . . . .
11
4.1.1
12
Feature selection
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4.2
Réalisation du modèle
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
4.3
Phase d'apprentissage
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
4.4
4.3.1
Phase de validation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
4.5
Performance du modèle
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
4.6
Sur-Apprentissage
Types de modèle
4.6.1
Modèle supervisé . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
4.6.2
Modèle non supervisé
15
. . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5 Systèmes de détection d'intrusion basés sur le machine learning
16
5.1
Obtention des données . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
16
5.2
Supervisé ou non supervisé
16
5.3
Hypothèse . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
5.4
Implémentation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
17
5.5
Problématiques des modèles . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5.5.1
Non périodicité . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
5.5.2
Espacement des attaques
. . . . . . . . . . . . . . . . . . . . . . . . . . .
19
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
5.6
Optimisation
5.7
Outils
6 DataSets
20
7 Conclusion
21
1
Abstract
Les systèmes de détection d'intrusion sont largement répandus de nos jours pour la sécurité de
systèmes informatiques. Ils permettent à la fois de détecter et de répondre à une attaque en
temps réel ou en hors-ligne. Cet état de l'art présente un mélange prometteur : les systèmes de
détection d'intrusion basés sur le machine learning.
Chapter 1
Introduction
Historiquement, internet a débuté par un réseau privé connectant les gouvernements, les
militaires et les chercheurs académiques. C'est pourquoi il y avait de faibles besoins de protocoles
sécurisés. A la base, on ne pensait pas au virus, au vers, au spam, au phishing, aux zombies, aux
spywares, aux attaques par déni de service,... De plus, le coût de subir une telle attaque n'était
pas signicatif. Petit à petit, le réseau s'est ouvert au monde et sa taille a empêché la création
d'un mécanisme totalement sécurisé. De plus, une facilité venant des programmes tout faits et
supportant une automatisation des attaques a permis de réaliser rapidement des agressions par
n'importe qui. Ainsi, depuis plusieurs années, une multitude d'attaques informatiques ont eu lieu
:
1. 11 mai 1999 : Le site web de la Maison Blanche des Etats-Unis d'Amérique a été fermé
durant plusieurs heures pour déterminer si un hacker avait pu falsier les pages du site
[N1].
2. 7 octobre 1999 : Des hackers venant apparemment de Russie ont réussi à rentrer dans
les ordinateurs du département de la défense aux Etats-Unis d'Amérique, prenant ainsi
connaissance de données hautement condentielles [N2].
3. 27 avril 2007 : Plusieurs attaques contre des ordinateurs de l'Estonie ont été réalisées venant
apparemment de Russie. [N3]
4. 29 mars 2009 : Une vague d'inltrations de plusieurs ordinateurs dans le monde venant
essentiellement de Chine, dont ceux d'ambassades, d'organisations internationales, d'ONG
et des représentants du Dalaï Lama a été détectée. [N4]
5. 29 mai 2009 : L'administration américaine a annoncé une amélioration du dispositif de
défense contre les attaques visant les réseaux de communication et d'information américains. Ceci fait face à une augmentation de la menace venant de pirates isolés, de cyberespions et d'organisations terroristes utilisant les nouvelles technologies. [N5]
Une attaque peut se faire par un individu ou un groupe de personnes, contre l'ordinateur d'un
individu ou d'un groupe de personnes morale ou physique. La dépendance contemporaine de
l'humain aux réseaux informatiques
1 a généré une motivation non seulement pour le goût de la
réussite de l'exploit, mais aussi pour le gain d'argent, pour des convictions politiques, pour des
buts militaires et pour la curiosité. La cause d'une faille dans un système peut être due à un
manque de budget, de temps d'installation, de personnes qualiées, de politique de sécurité, de
protections ecaces sur le marché,. . . Néanmoins, de nos jours, le coût d'une attaque et de sa
réparation
2 peut être très élevé. C'est pourquoi les entreprises et l'ensemble des organisations
s'intéressent de près à la sécurité informatique.
L'idée intuitive de la sécurité informatique est de limiter l'accès à un système informatique.
Avec une sécurité parfaite, les informations ne sont jamais compromises puisqu'un utilisateur
non-autorisé n'y a jamais accès. Néanmoins, la sécurité parfaite n'est pas réaliste. C'est pourquoi
on va essayer de prévenir, détecter et répondre à une attaque
3 an de ne pas permettre qu'une
même agression se reproduise. La prévention permet de limiter les cas où une oensive se produit.
Pour cela, on utilise des techniques d'authentication, de chirement, ou même de camouage
4
1. Tel que internet
2. Tel que la récupération d'une bonne image d'une entreprise ou la remise en état de documents.
3. Une attaque n'est pas seulement une intrusion dans un système informatique mais aussi une augmentation
anormale des privilèges d'un utilisateur, ou d'un abus de privilèges.
4. Par exemple en faisant dévier l'attaquant vers un pot de miel ou en essayant de le dissuader.
1
faisant croire à un éventuel attaquant que l'initiative n'en vaut pas le coup. Puisque la prévention
n'est pas parfaite, la détection permet l'identication d'une certaine caractéristique qui viole les
politiques de sécurité. Les détecteurs d'intrusion (IDS) sont apparus dans les années 1980 et sont
utilisés à cause du manque de sécurité dans les systèmes d'exploitation contemporains
5 ou dans
6
les programmes actuels . Leurs buts peuvent êtres variés : la protection de documents condentiels, trouver de nouvelles attaques, satisfaire des contraintes légales telles que la condentialité.
Après avoir détecté une violation, il est intéressant de réagir. Les réponses peuvent être variées
mais le but est de réduire l'apparition de pénétrations en améliorant la prévention et la détection du système, ainsi que de réparer les dommages générés par l'intrusion avec éventuellement
des poursuites judiciaires. Le but de ce travail est un état de l'art d'un mélange récent entre la
sécurité et le machine learning qui permettrait d'améliorer les capacités de détection d'intrusion.
Il introduit le sujet de mémoire qui sera développé en deuxième master en science informatique.
Ce document a été inspiré par certaines sources telles que de [4],[1],[3] ainsi que de [12]. Il
traîte d'abord de la sécurité informatique et des outils cryptographiques en général pour justier
par la suite l'utilité et le fonctionnement des IDS. Un chapitre sur le machine learning permettra
de comprendre son mécanisme et son intérêt. Le lien entre les IDS et le machine learning sera
décrit par après. Un chapitre sur les datasets suivra, pour nir avec la conclusion.
5. La volonté de sécuriser les systèmes d'exploitation (OS) semble être en opposition avec la facilité d'utilisation
d'un OS. Ainsi, les OS commerciaux négligent souvent le côté sécuritaire.
6. Il est souvent dicile, voire impossible, de supprimer toutes les erreurs d'un programme. Les raisons sont
économiques, techniques. . .
2
Chapter 2
Sécurité informatique et outils
cryptographiques[13]
La sécurité informatique est l'utilisation de la technologie, des politiques et de l'éducation
des personnes pour assurer la condentialité, l'intégrité et l'accessibilité des données durant
leur stockage, leur traitement et leur transmission. La protection des données doit dépendre
du système à protéger. Ainsi, selon ce dernier, on insistera plus ou moins sur l'intégrité, la
condentialité ou la disponibilité.
Condentialité
La condentialité spécie que seules les personnes autorisées à accéder à une
certaine information ont la possibilité de l'atteindre. Pour cela, on utilise les contrôles d'accès et
le chirement. La violation de la condentialité peut se voir quand une information condentielle
est devenue publique, grâce aux logs du système ou aux changements de comportement d'une
certaine personne envers l'organisation.[13]
Intégrité
L'intégrité spécie que seules les personnes autorisées peuvent modier l'information
dans le système. Sa protection est souvent la même que celle qui est garantie par la condentialité.
En eet, en contrôlant l'accès à une donnée, on assure aussi son intégrité. La détection d'une
violation de cette dernière est, par exemple, la comparaison entre l'information et ses copies ou
ses données de hashing. Une réponse à cela est la réparation de cette donnée.[13]
Disponibilité
La disponibilité est le fait qu'une information est obtenue quand on en a besoin.
Une des ces attaques connues est le déni de service. On peut le limiter en limitant les ressources
consommables du système par une personne. Une réponse à cela est la réduction de la charge ou
l'augmentation des capacités du système.[13]
Assurer la condentialité, l'intégrité et la disponibilité
Pour assurer tous ceux-ci, on
utilise un ensemble de règles de sécurité : enlever les programmes non utilisés, utiliser des rewalls,
utiliser des contrôles d'accès, congurer correctement les programmes, utiliser des anti-virus,
utiliser des IDS,... Nous allons nous focaliser sur les IDS.
Les IDS surveillent le système, ce qui implique leur limitation pour rester dans la légalité
1
du pays où le détecteur est implémenté.
1. Protection de la vie privée, connaissance de ce qu'il faut pour constituer une preuve d'attaque à présenter
à un juge,. . .
3
Chapter 3
Systèmes de détection d'intrusion
3.1 Composition
Il existe essentiellement trois composants dans un IDS :
1. Senseur : Le senseur est responsable de la collecte
1 d'informations du système, telles que
des paquets d'un réseau ou des données de log.
2. Analyseur : L'analyseur reçoit l'ensemble des informations venant des senseurs. Il est responsable de les analyser et d'indiquer si une attaque a lieu ainsi qu'éventuellement sa
réponse. C'est essentiellement cette partie de l'IDS que ce document exposera.
3. Interface utilisateur : L'interface utilisateur permet aux utilisateurs de l'IDS de visualiser
ou/et de dénir le comportement du système.
3.2 Positionnement
Bien que l'emplacement des IDS soit primordial pour une bonne sécurité du réseau, ce document ne va pas rentrer dans les détails. Ainsi, il est conseillé de s'assurer que l'ensemble des
informations transitant dans le système soit capturable par les IDS et que ceux-ci soient placés de
2
manière optimale . De plus, il existe deux approches pour positionner des IDS dans un système
: l'approche décentralisée ou celle centralisée. La première
3 permet de réduire la dépendance sur
un seul IDS alors que la seconde amène une simplication d'implémentation.
3.3 Schéma d'une attaque
Une attaque peut être schématisée en six points :
1. La collecte d'informations sur le système
2. L'intrusion dans le système grâce à ces informations
3. La mise en place d'un système permettant une ré-intrusion future, tel que l'insertion de
code dans l'EEPROM
4
4. La recherche d'une propagation de l'intrusion dans un autre système et ainsi permettre des
attaques distribuées
5. La paralysie du système
6. L'eacement des traces de l'attaquant
Il existe essentiellement deux types d'attaques : les attaques réseau et applicatives.
1. Le programme TCPdump (utilisant la bibliothèque libpcap pour la capture de paquet réseau au niveau de
la couche de liaison sous Linux) est un logiciel permettant de capturer ce qui passe sur le réseau. D'autres outils
existent tels que PCAP, qui permet de réaliser un snier de manière plus ciblée.
2. En ne surprotégeant ni en ne sous-protégeant certaines parties du système.
3. Où chaque IDS ne voit qu'une partie du système.
4. Electrically-Erasable Programmable Read-Only Memory
4
Les attaques réseau
Ces attaques sont souvent dues à une faille du protocole ou de son
implémentation. Pour réaliser une telle attaque, une première étape est la récolte d'informations.
Cette récolte d'informations peut se faire grâce au social engineering ou grâce à des outils de scan.
Bien que la récolte d'informations ne puisse être précisément dénie comme une intrusion, les IDS
réussissent parfois à la détecter. Néanmoins, certaines informations (telles que celles provenant
des fournisseurs d'accès à internet qui peuvent être piratées, des informations publiques,. . . ) ne
se trouvent pas nécessairement dans le réseau qui va être attaqué. Ainsi, ce genre de récolte ne
peut pas toujours être détecté. Le but de ces récoltes est par exemple l'obtention de la version
des programmes, les services fonctionnels, les adresses IP ou les ports ouverts dans le système.
Tout ceci facilite la recherche de failles connues dans le système. Les scans peuvent se faire de
plusieurs manières selon la volonté d'être plus ou moins visible lors du scan, et plus ou moins
informé de la topologie du réseau. Il existe plusieurs méthodes
5 telles que le scan simple, le scan
SYN, le scan XMAS, le scan NULL, le scan FIN, le scan à l'aveugle, le scan très lent et le scan
passif.
Après la récolte d'informations, l'attaque peut se réaliser. Il existe plusieurs techniques
d'attaques connues
6 telles que le IP Spoong, le ARP Spoong, le DNS Spoong, le fragments
attack, le TCP Session Hijacking, le man in the middle et le déni de service tel que les SYN
ooding, les UDP ooding, . . .
Les attaques applicatives
Ces attaques
7 sont souvent dues à une faille d'un logiciel ou d'une
conguration. La première est essentiellement liée à des injections SQL ou à des buer overows.
Ces derniers permettent l'utilisation de shellcode qui donne la possibilité d'exécuter un code à
distance. Les injections SQL sont des introductions de code SQL malveillant dans des requêtes
de base de données permettant d'obtenir des informations privées. Enn, les problèmes dus à
une mauvaise conguration sont très répandus. En eet, beaucoup d'administrateurs réseaux
préfèrent laisser la conguration par défaut que de la modier en risquant de mal l'établir.
3.4 Protection
Nous venons de voir qu'il existe un grand nombre d'attaques connues. Une première idée est
de vouloir lutter contre celles déjà existantes. Pour cela, on utilise un IDS qui surveille l'état de
l'ensemble du système à protéger. Il existe plusieurs manières pour diérencier les types d'IDS.
Ainsi, certains s'implémentent de manière software alors que d'autres le sont en hardware. Une
autre diérenciation se fait sur ce que l'IDS regarde. Il peut être HIDS (Host-based Intrusion
Detection System), NIDS (Network-based Intrusion Detection System) ou un mélange des deux
types.
3.4.1 HIDS ou NIDS
Système de détection d'intrusion machine (HIDS)
L'objectif des HIDS est de se focaliser
sur une seule machine. Pour cela, il regarde les logs ainsi que toute information se trouvant sur
la machine pour déduire si une attaque a lieu. Il existe des HIDS implémentés au sein du noyau
pour protéger le système dès son installation, très ecaces contre les buer overows, tels que
le KIDS (Kernel Intrusion Detection System) et le KIPS (Kernel Intrusion Prevention System).
Malheureusement, ces HIDS noyau ralentissent fortement le système.
Système de détection d'intrusion réseau (NIDS)
Le but des NIDS est de regarder les
paquets transitant dans le réseau pour déterminer si une attaque a lieu. Ainsi, un NIDS ne pourra
protéger que les ordinateurs se trouvant sur le même réseau que lui, sauf dans le cas où il existe
des machines routant les informations d'un système diérent vers l'IDS. Un désavantage des
NIDS est que tout paquet chiré
8 ne pourra pas être compris par les NIDS, qui doivent lire le
contenu des paquets. Ce désavantage peut disparaître en utilisant des HIDS qui vont obtenir les
informations après leur déchirement sur la machine. Néanmoins, les NIDS sont faciles à installer
pour la détection d'intrusion d'un ensemble de machines.
5. Cette liste est détaillée dans [4]
6. Ces exemples sont détaillés dans [4]
7. Ceci est détaillé dans [4]
8. Le chirage des données est permis par IPv6 et par d'autres protocoles tels que le réseau privé virtuel
(RPV).
5
En d'autres termes, les NIDS détectent plus facilement des attaques sur plusieurs machines
que ne le ferait un HIDS. L'article [2] décrit un NIDS qui regarde l'ensemble des ports utilisés
pour détecter une anomalie dans le réseau.
Système de détection d'intrusion hybride (Hybrid IDS)
Dans ce type d'IDS, les sources
d'information viennent à la fois du réseau et des machines sur le réseau. Ainsi, la complexité du
système grandit mais les avantages des NIDS et des HIDS sont combinés. De plus, ils permettent
9
une meilleure détection d'attaques distribuées .
3.4.2 Approche comportementale ou par scénario
Une autre diérenciation se fait sur la manière de détecter une attaque. Elle peut se baser
sur ses signatures (aussi appelée approche par scénario) ou en se basant sur des prols normaux
d'utilisation (aussi appelée approche comportementale). Dans le premier cas, on regarde la suite
d'actions eectuées par une personne et on la compare à une attaque connue. Dans le deuxième
cas, on regarde le comportement d'une personne et on le compare à son comportement normal.
En d'autres mots, l'un sait ce qui est mal et l'autre ce qui est bien.
Approche par scénario
Ce type d'IDS contient une base de données des signatures d'attaques
10
et essaye de faire correspondre une donnée, obtenue par les sources d'information du système,
avec celles connues. Ces signatures sont les caractéristiques d'une attaque, c'est-à-dire l'empreinte
d'une attaque connue, et peuvent varier d'un système à l'autre. Pour la correspondance, on utilise
les algorithmes de pattern matching tel qu'E2xB, Boyer-Moore et Knuth-Morris-Pratt[5]. Un
avantage de cette approche est la normalisation possible de la description des signatures et ainsi
la possibilité de diuser et de congurer rapidement et facilement les IDS. De plus, ceci permet d'avoir un faible taux de fausses alarmes. Néanmoins, la problématique est le besoin d'une
mise à jour régulière de la base de données des signatures pour détecter de nouvelles attaques
. Ils sont donc faillibles aux attaques 0day qui sont des exploitations d'une faiblesse le jour de
leur publication. De plus, une même attaque peut être faite de plusieurs manières légèrement
diérentes. Ainsi, le pattern matching ne semble pas très ecace. A sa place, on peut utiliser le
machine learning pour apprendre leurs signatures de manière générique et ainsi les repérer même
si celles-ci évoluent légèrement au cours du temps.
Approche comportementale
Le but de cette technique est la prédiction de comportement.
Pour cela, cette technique utilise une base de données des comportements normaux des utilisateurs, d'un groupe d'utilisateurs, des services ou d'un système entier pour constituer un prol.
Des attaques inconnues peuvent donc être détectées contrairement à l'approche par scénario
qui est biaisé par l'empreinte des signatures connues. Quand un comportement s'éloigne trop
du comportement normal, une alarme se déclenche. Néanmoins, cet éloignement ne signie pas
forcément un comportement hostile, ce qui semble générer un taux élevé de fausses alarmes. La
création du prol peut se faire grâce à plusieurs métriques : les commandes utilisées, la charge
CPU, les heures de connexions,. . . Un des inconvénients de cette méthode est l'obligation d'un
temps d'apprentissage pour réaliser le prol des utilisateurs. D'autres techniques existent pour
implémenter un comportement. Par exemple, on peut utiliser les techniques de machine learning
à qui on va apprendre les dierents prols. De plus, on peut réaliser un IDS totalement distribué
se basant sur le système immunitaire des êtres vivants, ou sur les algorithmes génétiques se basant sur la sélection naturelle d'une population[1]. Le système immunitaire représente l'IDS par
un ensemble de systèmes distribués, diversiés, autonomes et auto-réparants pouvant détecter
un intrus représenté par un corps étranger inconnu du système immunitaire. La vérication
qu'une certaine propriété
11 est toujours respectée est parfois utilisée. Une dernière technique est
la découverte d'un comportement anormal quand le protocole réalisé ne suit pas le protocole
habituel.
Ces deux manières peuvent être combinées au sein d'un même système pour augmenter
l'ecacité. Ainsi, on pourrait utiliser une méthode comportementale pour agrandir la base de données des attaques connues de la méthode par scénario. Par conséquent, le temps d'apprentissage
9. Un exemple typique est l'authentication locale échouée sur plusieurs machines. Ainsi, un HIDS ne voit
rien, un NIDS non plus, alors qu'un IDS hybride peut conclure à une attaque distribuée.
10. Ou plus précisément l'ensemble des points faibles du système.
11. Par exemple un nombre maximum de connexions
6
se fait tout au long du temps et non seulement à un certain moment. Néanmoins, le manque
de normes
12 et d'interopérabilité sur les données échangées fait qu'il est souvent complexe
d'assembler plusieurs IDS dans un même réseau, ce qui implique une détection complexe d'une
attaque distribuée sur plusieurs systèmes protégés individuellement. De plus, la coopération entre
systèmes
13 diérents permet de mieux détecter une attaque distribuée dans l'espace. Néanmoins,
ces derniers sont très réticents à la publication de telles données.
3.4.3 Online ou Oine
Une autre diérenciation peut se faire sur la caractéristique online ou oine de l'IDS. Le
premier détecte une attaque au moment où elle se produit alors que le deuxième s'exécute périodiquement et ne voit que son résultat. La deuxième méthode est préférable pour avoir une
dépense plus faible du point de vue du temps de calcul que la première, dû à l'aspect temps-réel
de l'online. Néanmoins, la deuxième méthode, contrairement à la première, soure du fait qu'une
attaque ne peut pas être détectée le plus tôt possible pour l'éviter. Plus une attaque est détectée
tardivement, plus les dommages sont importants. Dans la plupart des cas, avant d'attaquer un
réseau, l'attaquant doit scanner l'environnement pour récolter des informations. Par conséquent,
en voyant cela, on peut détecter une attaque avant même qu'elle ne se produise et ainsi y répondre
le plus tôt possible.
3.4.4 Réponse active ou passive
Enn, une dernière diérenciation est le type de réponse réalisée par l'IDS. Certains IDS
préfèrent laisser l'être humain répondre à l'attaque. Néanmoins, ça implique une surveillance
continue de l'IDS par un être humain. D'autres préfèrent une réponse, dite active, plus rapide
venant de l'IDS pour arrêter au plus vite l'oensive. Enn, il est possible d'unir ces deux méthodes pour obtenir un système hybride. Les réponses d'un IDS peuvent être variées. Celles-ci
peuvent être une modication de la politique de sécurité, un arrêt d'un service sur le réseau,
une augmentation de l'audit du système, un backup du système pour pouvoir revenir en arrière
en cas d'attaque, une reconguration d'un rewall, un achage d'une alerte à un responsable,...
Néanmoins, ceci peut être dangereux. En eet, supposons qu'un attaquant pénètre dans un système A et lui demande d'attaquer un autre système B. Cette situation est semblable à celle où
l'attaquant usurpe l'identité de A. Si l'IDS de B répond à l'oensive en attaquant A, ceci peut
avoir des répercutions dramatiques, ce qui fait qu'un pirate peut s'en servir pour réaliser un déni
de service. De plus, dû à la possible apparition de fausses alarmes, il existe un grand potentiel de
réponse inappropriée. Enn, il est intéressant de se pencher sur le fait de savoir s'il est normal
qu'un système de détection d'intrusion (IDS) réponde à une attaque.
3.5 Attaques contre les IDS
Un IDS étant le moyen de protéger un système, les attaquants voudront souvent l'attaquer
avant de s'attaquer au système qu'il protège, et puisque les IDS sont des systèmes informatiques, ils contiennent des failles. Il existe plusieurs types d'attaques telles que le déni de service,
l'insertion, l'évasion et la modication des paquets transitant du senseur jusqu'à l'analyseur.
Déni de service
On rend l'IDS non fonctionnel en le saturant d'information. Pour contrer cela,
il est nécessaire de ltrer et stocker correctement les informations et avoir un IDS performant qui
gère un ensemble de paquets sans perte. De plus, un système de monitoring permet de vérier
l'ecacité réelle de l'IDS.
Insertion
On insère des paquets d'informations supplémentaires que l'IDS va accepter alors
que les machines vont les rejeter. Ainsi, en les regroupant ensemble, le message nal dans les
machines cibles pourra être diérent de celui dans les IDS. Un exemple de cette oensive est
l'insertion de checksum erroné dans des paquets que les machines cibles vont refuser alors que
l'IDS va les accepter. En eet, pour des raisons de performances, les IDS ne les refusent pas
même s'ils ont de mauvais checksums. Des exemples d'insertion sont détaillés dans l'article [4].
12. La norme IDMEF (The Intrusion Detection Message Exchange Format) est une norme pour l'échange
d'information entre les IDS mais elle n'est pas toujours suivie.
13. Dans ce cas, un système représente une entreprise.
7
Evasion
Les paquets sont ignorés par l'IDS mais pris en compte par le système attaqué. Des
exemples d'évasion sont détaillés dans l'article [4].
Modication
On modie des paquets envoyés du senseur jusqu'à l'analyseur. Il est donc pri-
mordial de s'assurer qu'ils sont protégés. Ainsi, on pourrait utiliser les techniques contemporaines
de chirement tel que TLS
14 .
Les raisons de la possibilité de ce genre d'attaques sont variées : raison de performance
15 ,
ambiguïté de la norme d'un protocole, ignorance des normes des protocoles par les constructeurs
de l'IDS,. . .
Détection d'un IDS
Tout comme pour attaquer une machine, pour attaquer un IDS il faut
pouvoir le détecter. En voici quelques exemples :
1. Usurpation d'adresse MAC
16 : les NIDS mettent l'interface de capture de paquet réseau
17 où ils voient tout paquet qui transite. Ainsi, en envoyant un paquet
en mode promiscuité
18
ICMP
de type echo request où la machine le recevant doit émettre un paquet ICMP
de type echo reply , avec une adresse MAC destinataire inexistante dans le réseau, on
peut vérier si la machine répond. Ainsi, puisque le NIDS est en mode promiscuité, il verra
le paquet et renverra un echo reply sans même vérier qu'il est bien le destinataire du
paquet ICMP.
2. Mesure de temps de latence : puisque les NIDS sont en mode promiscuité, ils doivent gérer
l'ensemble des paquets du réseau. Ainsi, si après un envoi massif de paquets à toute les
machines, une machine devient de plus en plus lente à répondre, on peut supposer qu'elle
est en mode promiscuité et qu'elle est donc probablement un NIDS.
3. Observation des requêtes : après une attaque, les IDS envoient généralement des messages
à un ordinateur central qui va gérer l'ensemble des alertes. Ainsi, en observant les paquets,
on peut essayer de retrouver la centrale.
Un des problèmes de ce genre d'attaques est que, dans la plupart des cas, l'IDS ne prévient
pas l'ensemble du système qu'il ne fonctionne plus. Ceci est d'autant plus dangereux quand
l'IDS ne sait pas s'il fonctionne correctement ou pas. Ainsi, après avoir attaqué l'IDS, le pirate
peut attaquer le système en toute impunité. Par conséquent, un IDS doit pouvoir distinguer si
un pirate attaque l'IDS ou le système des machines protégées par l'IDS pour éventuellement
prévenir le système.
3.6 Erreurs de classication
Il existe plusieurs types d'erreurs venant d'un détecteur, inuençant plus ou moins sa puissance. Les vrais positifs sont les cas où une alarme se déclenche quand il y a une violation des
politiques de sécurité. Les vrais négatif sont les cas où aucune alarme ne se déclenche et rien
d'anormal ne se produit. Les faux positifs sont les cas où une alarme se déclenche alors qu'il ne
se produit rien d'anormal. Les faux négatifs sont les cas où une alarme ne se déclenche pas alors
qu'il se produit une chose anormale. A première vue, on pourrait supposer qu'un faux positif
est moins dangereux qu'un faux négatif. Pour être plus précis, il faut regarder les coûts de ces
erreurs.
Coût des erreurs
Le coût d'une erreur peut être positif ou négatif. Quand celui-ci est négatif, l'erreur est
préjudiciable. Inversement, quand celui-ci est positif, l'erreur est bénéque. Il existe quatre types
de coûts :
1. DCost : le coût inigé par une attaque quand elle a lieu et que l'IDS n'est pas susamment
performant pour l'arrêter.
14. Transport Layer Security
15. En vériant des checksums par exemple, les performances au niveau de la rapidité de l'IDS sont fortement
réduites.
16. Media Access Control
17. Le mode promiscuité est une conguration de la carte réseau permettant à cette dernière d'accepter tous
les paquets qu'elle capte, même si ils ne lui sont pas destinés.
18. Internet Control Message Protocol
8
2. RCost : Le coût pour agir contre une attaque quand elle a lieu.
3. CCost : Le coût total d'une erreur. C'est-à-dire pour les faux négatifs, les faux positifs,
les vrais positifs, les vrais négatifs et les non classables. Ainsi, les faux négatifs ont un
DCost, les vrais positifs et les faux positifs ont un RCost, les vrais négatifs ont un coût
nul. Enn, le coût d'une mauvaise classication d'une attaque, c'est-à-dire d'une détection
d'une agression alors qu'une autre intrusion a lieu, est supposé négatif. Ainsi, on aura un
DCost de la vraie attaque et un RCost de l'agression supposée mais non apparue, tous
deux étant inecaces.
4. OpCost : Le coût pour mettre en place l'IDS. Ceci incorpore le coût d'extraction des
données, le coût d'analyse des données,. . . lors de l'apprentissage et lors de l'exécution
réelle de l'IDS.
Pour calculer les RCost et les CCost, il faut classier
19 les diérents types d'attaques où chaque
partition aura son propre RCost et son propre CCost. Ainsi, pour augmenter l'ecacité de l'IDS,
on pourra se demander si une attaque ayant un RCost plus négatif que le DCost doit être
détectée. Le livre [12] conclut qu'il est préférable d'utiliser plusieurs modèles spécialisés dans
un IDS pour réduire les coûts des OpCost et ainsi augmenter la rapidité de l'IDS plutôt qu'un
modèle généralisé.
3.7 Tests des IDS
Avent la mise en place d'un IDS, il est nécessaire de tester ses limites. Pour cela, il existe
plusieurs méthodes :
1. Attaque : on va utiliser les outils
20 exploités par les attaquants pour détecter une faille
dans le système ou dans l'IDS, telles que les techniques d'évasion ou d'insertion.
2. Alarme : on va regarder le taux des alarmes telles que les faux positifs
3. Qualité des informations : on va regarder la qualité
21 .
22 des informations fournies par l'IDS
lors d'une alarme.
4. Réalisme : il est nécessaire de tester l'IDS dans un milieu réel et non pas uniquement avec
un générateur d'informations tel que Network Security Auditor .
5. Flexibilité et mise à jour : il est souvent intéressant de pouvoir modier les congurations
d'un IDS telles que la base de signature,. . . C'est pourquoi il est aussi nécessaire d'avoir
une bonne réactivité du constructeur en cas de nouvelle attaque non encore détectée par
l'IDS.
6. Qualité des signatures : dans le cas des IDS se basant sur les signatures, il est nécessaire
de pouvoir évaluer la qualité des signatures.
7. Rapidité du système : il est nécessaire que l'IDS soit capable de gérer
23 un grand nombre
de données en un temps raisonnable et de détecter l'attaque en un minimum de temps pour
réduire les dommages causés.
8. Intégration : puisque les IDS ne susent pas pour garantir l'ensemble de la sécurité, ils
doivent être facilement installés et intégrés à son infrastructure.
9. Interaction : le nombre d'interactions entre un IDS et l'administrateur système doit être
minime.
10. Dataset : on va comparer les performances de l'IDS avec d'autres IDS grâce à des datasets,
décrits au chapitre 6.
19. Un exemple de classication est la classication utilisée par DARPA où il y a quatre partitions : PRB, DoS,
R2L, U2R.
20. Beaucoup d'outils existent tel que Nessus et Nmap.
21. Néanmoins, il est nécessaire de garder un certain taux de vrais positifs pour stimuler les analystes.
22. Un problème récurrent des IDS est la diculté d'analyse par un être humain de grandes quantités d'information venant de l'IDS. Néanmoins, l'être humain est plus rapide pour traiter des informations complexes de
manière graphique. Ainsi, on pourrait utiliser un SOM (ou tout autre méthode de visualisation telle que celle
décrite dans [17] qui décrit chaque machine du réseau comme un objet qui grossit en cas de danger sur la machine
dans un espace en 3D) pour détecter et répondre à une attaque.
23. Par exemple en utilisant des bases de données plus performantes pour la lecture de données que pour
l'écriture, ou par exemple en compressant les données transitant entre le senseur et l'analyseur.
9
3.8 Logiciels existants
Le marché des IDS est très vaste. Certains produits sont gratuits et d'autres payants. Voici
une liste non-exhaustive :
1. Ossec : HIDS gratuit et facilement congurable qui fonctionne sur plusieurs OS tels que
Windows, Linux et MacOS. [L1]
2. Bro : NIDS gratuit construit par des groupes de recherche fonctionnant sur Unix. Il mélange
des signatures d'attaques connues et des comportements normaux pour détecter une intrusion. [L2]
3. IDSNet : NIDS basé sur le machine learning, créé par le département the Informatics and
Mathematical Modelling de l'université technique du Danemark (DTU) qui a permis à
[15] d'implémenter son propre modèle de machine learning pour créer un NIDS. [L3]
4. Snort : NIDS gratuit mélangeant les signatures d'attaques et des comportements normaux
des utilisateurs. [L4]
5. Prelude : IDS hybride utilisant le format IDMEF
parties. [L5]
24. Intrusion Detection Message Exchange Format
10
24 pour faire communiquer ses diérentes
Chapter 4
Machine learning
Le domaine du machine learning inclut la construction d'un modèle à partir de données grâce
à l'utilisation d'un algorithme. Ce modèle va au mieux généraliser, en représentant ou en approximant les données. Il permet, selon les données qu'on lui donne en input, de prédire celles
inconnues ainsi que de mieux comprendre celles existantes. Le domaine d'application du machine
learning est très varié : la prédiction de valeurs nancières, la détection d'intrusion dans le domaine de la sécurité informatique, le moteur de recherche inuençable par le prol de l'utilisateur,
la détection
1 de vols de machine, l'implémentation d'un anti-virus et la cryptanalyse 2 . Le cycle
de vie d'une implémentation du machine learning est la suivante :
1. Obtention et nettoyage des données
2. Réalisation du modèle
3. Phase d'apprentissage
4. Phase de validation
5. Phase d'exécution
4.1 Obtention des données et pré-processing
La première étape à réaliser est donc l'obtention de données en susance, représentatives du
problème à résoudre. Ceci n'est pas toujours aisé. Certaines informations sont plus coûteuses à
obtenir que d'autres. Par exemple, un header d'un paquet réseau est plus simple à obtenir qu'une
information dans la partie data quand celle-ci est chirée. La deuxième étape est le nettoyage,
appelé aussi pré-processing , de la donnée récoltée, c'est-à-dire une réduction de ce qui est
strictement intéressant, ainsi que leur traduction. Le but de cette étape est une meilleure précision
du modèle, une optimisation de son temps d'exécution et de son apprentissage ainsi que de sa
taille. Voici quelques exemples de nettoyage :
1. Transposer un ensemble de nombres vers un range [0,1]
2. Transposer un ensemble de réels vers un ensemble de naturels
3. Ajouter des valeurs qui ont été calculées à partir des données récoltées
4. Sélectionner un résumé des informations
5. Enlever les informations inutiles représentant du bruit
Ce nettoyage est souvent très compliqué à mettre en ÷uvre et demande une bonne connaissance
des données à traiter. C'est pourquoi des techniques automatiques ont fait l'objet de recherches :
ce sont les techniques de feature selection . L'article [6] donne un exemple d'une méthode
pour choisir les bonnes informations à présenter à un IDS.
1. La détection peut se faire au moyen des informations récoltées par un GPS embarqué dans le système à
protéger.
2. Le machine learning permettrait de réaliser des attaques de type DPA (Dierential Power Analysis) sur des
algorithmes de cryptographie tels que le DES (Data Encryption Standard) pour retrouver une clé secrète. Ceci
est réalisé en corrélant la consommation énergétique de l'algorithme de chirement avec la clé utilisée.
11
4.1.1 Feature selection
Il existe essentiellement 3 types de méthodes de feature selection . On retrouve d'abord
3
les Filter methods , qui ne se basent que sur l'utilité d'une variable sans tenir compte de
son impact dans le modèle. Ensuite on a les Wrapper methods 4 qui tiennent compte de
l'algorithme d'apprentissage pour déduire l'apport des variables. Enn, on distingue aussi les Embedded methods 5 qui sont spéciques à un modèle et sont exécutées lors de la procédure
d'apprentissage. Ces méthodes peuvent être combinées pour obtenir de meilleurs résultats. Il est
conseillé de ne pas utiliser les mêmes données pour les phases de feature selection et d'évaluation,
pour éviter un biais au niveau des performances estimées du système.
Après avoir obtenu les données nettes du problème, la prochaine étape est la réalisation du
modèle.
4.2 Réalisation du modèle
Elle consiste en une recherche de la meilleure structure ainsi que l'ensemble des paramètres
à initialiser dedans. La complexité, et plus précisément la qualité, du modèle aura une inuence
directe sur la précision de la généralisation des données. Plusieurs types de modèles vont être
présentés dans la suite. Après avoir construit le modèle, il est nécessaire de le congurer selon le
problème à traiter grâce à la phase d'apprentissage.
4.3 Phase d'apprentissage
Un sous-ensemble de l'ensemble des informations nettoyées forme les données d'entrainement,
permettant d'exécuter la phase d'apprentissage du modèle. Ceci permet d'ajuster les paramètres
du modèle. Il existe plusieurs sortes d'algorithmes d'apprentissage. Certains de ces algorithmes
sont supervisés et d'autres non supervisés. Un algorithme supervisé est un algorithme à qui on
présente l'entrée et la sortie (ou la cible) désirée en supposant qu'il y a une relation inconnue mais
réelle entre les deux. Il devra minimiser l'erreur entre la sortie désirée et celle qu'il produit. Ils
sont souvent utilisés pour des problèmes de reconnaissance. Un algorithme non supervisé est un
algorithme à qui on présente l'entrée mais dont la sortie est inconnue. Ce type d'algorithmes est
souvent utilisé pour des problèmes de partitionnement où le nombre et la nature des partitions
ne sont pas connus a priori. Néanmoins, ce dernier ne donne aucun résultat si les données ne
contiennent pas de partitions. Après avoir entraîné le modèle, il est important de le valider pour
éviter le sur-apprentissage.
4.3.1 Sur-Apprentissage
Le sur-apprentissage a lieu quand le modèle prédit correctement les données présentées lors
de la phase d'apprentissage mais a des mauvais résultats lors de la phase d'exécution. Pour éviter
le sur-apprentissage, on peut utiliser l'une des méthodes suivantes :
1. On regarde empiriquement le nombre de périodes de la phase d'apprentissage pour qu'il
n'y ait pas de sur-apprentissage.
2. Le early stopping est une technique où on divise les informations en deux parties.
La première partie permet d'entraîner le modèle, la deuxième permet de le tester. On
procède ainsi en le réalisant plusieurs fois et on regarde les erreurs. Au début, les fautes
vont diminuer mais, petit à petit, les erreurs sur la partie test vont commencer à augmenter
lorsqu'il y aura un sur-apprentissage. Et c'est à ce moment qu'il faut arrêter l'apprentissage.
Ainsi, on gagne aussi sur le temps nécessaire pour l'apprentissage.
D'autres méthodes existent et sont présentées dans la section de validation.
3. Tel que la méthode Principal Component Analysis ( PCA ) ou de clustering (SOM, K-means,. . . )
4. Tel que la méthode Forward selection , la méthode Backward selection et la méthode Stepwise
selection .
5. Tel que les classication trees , les random forests , . . .
12
4.4 Phase de validation
Durant cette phase, on va tester et valider le modèle et ses paramètres selon des critères se
basant sur ses résultats. Il permet d'obtenir le meilleur modèle généralisant les données obtenues
lors de la phase d'apprentissage. Pour cela, on a un ensemble d'exemples pour l'apprentissage et
un autre pour les tests. Voici quelques méthodes pour les tests :
1. Hold-out : On coupe aléatoirement l'ensemble des informations en deux groupes : groupe
d'apprentissage et groupe de tests.
2. Leave-one-out : Cette méthode sort de l'ensemble des informations une donnée en particulier
et la laisse de côté, puis construit le modèle avec celles restantes et enn évalue la structure
avec l'exemple laissé de côté. On répète le processus pour chacune des données de l'ensemble
de données. Ainsi, on peut avoir une moyenne globale de la précision du modèle.
3. Cross-validation : Cette méthode réalise un partitionnement des données de manière aléatoire en n groupes. On utilise une partition comme un ensemble de test et le reste pour former celui d'entraînement. Comme précédemment, on applique un algorithme à l'ensemble
d'entraînement et on évalue le modèle résultant sur celui de tests. On répète ce processus
pour chaque partition et on regarde l'erreur moyenne.
D'autres méthodes existent telles que le bootstrap. Enn, après avoir validé le modèle, il reste à
quantier ses performances en pratique.
4.5 Performance du modèle
Apres avoir choisi et évalué notre modèle, il est intéressant de pouvoir quantier ses performances. Pour cela, on compare plusieurs modèles sur un même jeu de données. En eet, certains
sont plus adaptés pour certains problèmes. Lors de cette phase, il est primordial de ne pas enlever
de données
6 pour ne pas biaiser l'évaluation. Pour cette phase, on s'intéresse au pourcentage de
vrais positifs, de vrais négatifs, de faux négatifs et enn de faux positifs. Néanmoins, ça n'inclut
pas la taille du modèle ni son temps d'apprentissage ou son temps d'exécution. La technique receiver operating characteristic (ROC) est largement utilisée et permet de tester une structure.
Concrètement, un ROC est une courbe d'un modèle représentant ses vrais positifs par rapport à
ses faux positif. L'aire sous cette courbe représente la performance du modèle.
4.6 Types de modèle
Il existe plusieurs types de modèles. Outre le fait qu'ils sont diérenciables par leur côté
supervisé ou non supervisé, ils le sont aussi par leur côté classication ou régression .
Le premier classie les données et le deuxième prédit des valeurs pour chaque donnée. Puisque
le problème de l'IDS semble être un problème de classication, ce qui suit est une liste nonexhaustive de modèles de classication qui pourraient être envisagées pour la mise en place d'un
IDS.
4.6.1 Modèle supervisé
Neural network
Les réseaux neuronaux permettent d'approximer toutes les fonctions. Ils sont
largement utilisés grâce à leur capacité de traiter de grandes quantités d'informations et à leur
stabilité face au bruit. Les réseaux neuronaux sont un ensemble de petit processeurs, appelés neurones, travaillant en pseudo-parallèle. Ces neurones reçoivent des données et les renvoient, après
une transformation
7 appelée fonction d'activation, à d'autres neurones ou à une source externe.
Les canaux de communication entre eux contiennent chacune une certaine valeur représentant la
capacité de transfert d'information. Ces valeurs sont modiées lors de la phase d'apprentissage.
L'ensemble de neurones est partitionné par couche : une d'entrée, des cachées et enn une de
sortie. Il existe plusieurs manières de diérencier les réseaux neuronaux. Ils peuvent l'être par
leur côté feed-forward ou feed-back, le deuxième permettant de réaliser un comportement plus
dynamique et complexe que le premier en prenant en compte l'écoulement du temps
8 et en
6. On pourrait supposer qu'en enlevant des informations, on gagnerait en temps d'exécution sur cette phase.
7. Cette transformation peut être la fonction seuil, la sigmoïde, la tangente hyperbolique,. . .
8. Les réseaux feed-back, contrairement aux réseaux feed-forward, sont donc dépendants de l'ordre des informations qu'on leur donne lors des diérentes phases (phase d'apprentissage, d'exécution,. . . ).
13
permettant d'avoir des boucles dans le réseau. Le réseau feed-forward semble être plus ecace
pour des problèmes de classication et de reconnaissance de forme. L'algorithme d'apprentissage
permet aussi de diérencier les réseaux neuronaux. Il y a l'apprentissage par descente du gradient
et par l'algorithme de Widrow-Ho pour les réseaux feed-forward. Pour les réseaux feed-back, il
y a la rétropropagation récurrente, la rétropropagation dans le temps (BPTT) et l'apprentissage
temporel récurrent en temps réel (RTRL). Il existe d'autres types d'apprentissage selon que le
réseau est supervisé ou non supervisé. Pour le cas non supervisé, on peut utiliser le Hebbian
Learning Rule ou le Competitive Learning Rule. Le Hebbian Learning Rule augmente les valeurs
des connexions entre deux neurones qui s'activent simultanément
9 et les diminue dans le cas
inverse. Le Competitive Learning Rule dénit des neurones spécialisés pour certains cas d'input.
Pour le cas supervisé, on peut utiliser des algorithmes tels que la rétropropagation ou le Boltzman
learning rule. Le choix du nombre de neurones ainsi que du nombre de couches est empirique
et est dépendant de plusieurs facteurs tels que le volume de données à traîter, la puissance du
CPU, la précision voulue, le temps d'apprentissage maximum,. . .
Instance-Based Learning
L'apprentissage consiste seulement à stocker les informations dans
un ensemble. Ce genre de méthodes s'appelle également lazy learning. La classication d'une
nouvelle observation se fait en regardant la distance entre les informations et l'observation. Le
résultat est la classe la plus proche de l'observation. Pour un grand nombre d'exemples, la
performance d'exécution peut être prohibitive mais l'indexation est rapide.
k-nearest neighbor
Ce modèle appartient à la famille du Instance-Based Learning . Les
k plus proches voisins de l'exemple à prédire sont cherchés. La classe majoritaire de ces voisins
est retournée comme réponse pour cet exemple. La distance peut être calculée grâce à une
distance Euclidienne ou autre. L'apprentissage est simple puisqu'il faut uniquement mémoriser
les exemples. Mais la prédiction peut être très lente puisqu'il faut chercher les k plus proches
voisins, dans un espace à dimension potentiellement très élevée.
Naive Bayes
Cette méthode utilise les règles de Bayes. Une hypothèse est que chaque classe
d'exemples est indépendante. La phase d'apprentissage calcule chacune de leurs probabilité et
celle de chaque attribut la connaissant. Ceci se fait en regardant dans les exemples d'entraînement
la fréquence d'apparition de la classe et de la valeur de l'attribut pour chaque classe. La phase
d'exécution regarde la plus grande probabilité conditionnelle pour déterminer que telle instance
inconnue appartient à telle classe connue. Un des points fort est le besoin d'une faible quantité
d'informations pour la phase d'apprentissage.
Learning Decision Rules
Une règle de décision se compose d'un antécédent et d'une con-
séquence. Le premier est simplement une conjonction des attributs des exemples. Le second se
compose d'un nom de label de classe. La méthode d'apprentissage choisit un exemple d'une
classe et le généralise autant que possible sans avoir une intersection avec des exemples venant
d'autres classes. Par la suite, l'algorithme enlève chaque exemple de la même classe qui satisfait la règle. Ceci est itéré jusqu'il n'y ait plus d'exemples. AQ19[12] est une implémentation
du spécique-au-général. CN2[12] en est une du général-au-spécique. RIPPER[12] construit des
règles en agrandissant les conditions de chacune d'entres elles. La phase d'exécution compare les
valeurs des attributs de l'observation et des conditions de chaque règle. Si elle satisfait toutes les
conditions d'une règle, le résultat est le label de la classe se trouvant dans le conséquent. Si elle
ne satisfait aucune des règles, on prend la règle où les conditions sont les plus respectées.
Learning Decision Trees
Cette méthode est équivalente au Learning Decision Rules .
L'arbre acyclique contient des n÷uds étiquetés par des attributs. Chaque arrête est étiquetée
par un prédicat qui s'applique au n÷ud parent. Chaque feuille est étiquetée par une classe qui
est l'attribut cible. L'apprentissage construit un arbre récursivement en choisissant l'attribut qui
coupe au mieux les exemples dans leurs propres classes, créant des n÷uds enfants pour chaque
valeur de l'attribut choisi. Itérativement, l'algorithme enlève ceux choisis en créant des n÷uds
enfants. Les algorithmes pour créer un arbre de décision sont : ID3, C4.5, CART. Pour classier
un exemple, il faut partir de la racine de l'arbre et descendre jusqu'à une feuille en respectant
les prédicats.
9. C'est-à-dire qui reçoivent des données en input simultanément
14
Machine à vecteur de support (SVM)
Ce sont des généralisations des classicateurs
linéaires. Le but est de séparer un espace grâce à un hyperplan. Dans le cas où un hyperplan
séparateur n'existe pas
10 , on passe l'ensemble à une dimension supérieure.
Quarter-sphere SVM
Cette méthode englobe tous les exemples d'une classe dans une sphère
alors que ceux qui se retrouvent en dehors de la sphère sont étiquetés comme appartenant à une
autre classe. Le paramètre du modèle est son rayon.
4.6.2 Modèle non supervisé
K-means
Cette méthode réalise un partitionnement des informations en k classes. Pour cela,
Il faut choisir k centroïdes aléatoirement, qui sont des représentants des k partitions. Chaque
exemple est associé au centroïde le plus proche. Après ça, un nouveau centroïde est formé en
calculant la moyenne des exemples d'une même partition. Et ainsi de suite jusqu'à se qu'il y
ait une stabilisation. Le point fort de cette méthode est la rapidité de convergence vers une
stabilisation quand elle est possible. Néanmoins, la valeur k est dicile à déterminer ainsi que
l'emplacement initial des centroïdes.
Single Linkage Clustering
Ceci est une variante de K-means. Elle vérie qu'un exemple
n'excède pas une certaine distance W de toute classe. Dans le cas contraire, elle lui en assigne
une nouvelle.
Self organizing map ou self organizing Feature Maps (SOFM)
Ce modèle est un réseau
de neurones feedforward à une couche non supervisé, permettant de mieux visualiser les informations données en entrée. On obtient une vue respectant la distance entre les informations
initiales. C'est-à-dire qu'un ensemble d'informations diérentes sera visiblement séparé sur la
carte alors que des données semblables seront visiblement proches. Ce modèle est souvent utilisé
pour cartographier des données de grandes dimensions en 1D, en 2D ou en 3D. L'apprentissage
est de type compétitif, ce qui signie que les neurones sont en compétition pour représenter les
données. Ainsi, ils se spécialisent pour certains types de données. L'augmentation du nombre de
neurones améliore la précision du réseau mais accroît aussi drastiquement le temps d'exécution.
De plus, un de ses points faibles est son temps d'exécution pour des données de grande dimension
puisque la distance entre tous les neurones doit être calculée pour chaque input. Par ailleurs, lors
de l'apprentissage, les connexions du neurone gagnant et des neurones avoisinants doivent être
modiées.
Gamma-algorithm
Ce modèle assigne une valeur à chaque exemple. Cette valeur est sa dis-
tance moyenne par rapport à ses k plus proches voisins.
10. Par exemple quand on a un cercle où se qui se trouve dedans appartient à une classe et se qui se trouve
dehors appartient à une autre classe.
15
Chapter 5
Systèmes de détection d'intrusion
basés sur le machine learning
Le machines learning est utilisé pour reconnaitre des attaques dicilement représentables via
une simple signature
1 ou pour en découvrir des cachées. Pour cela, il faut d'abord obtenir les
données qui permettent d'en détecter une.
5.1 Obtention des données
La première étape est l'obtention des données. Lors de la phase d'apprentissage, ces informations permettent de connaître les habitudes des utilisateurs ou les diérents types d'attaques de
manière générale. Lors de la phase d'exécution, ils permettent de détecter une attaque. Néanmoins, la question est de savoir s'il existe une mesure de la quantité de données nécessaire pour
avoir un modèle correct, c'est-à-dire qui respecte un certain taux d'erreur accepté. Cette question
est encore ouverte à ce jour. Toutefois, le choix des informations à prendre en compte dépendra
du type d'apprentissage.
5.2 Supervisé ou non supervisé
Les apprentissages supervisés utilisent généralement des datasets représentant des attaques
connues. Les apprentissages non supervisés se basent uniquement sur les comportements des
utilisateurs pour détecter une variation par rapport aux comportements normaux qui représentent une attaque. Selon l'article [11], les algorithmes supervisés
2 réalisent d'excellents résultats
3
pour des intrusions connues , ils sont meilleurs que les algorithmes non supervisés. Inversement,
pour des agressions inconnues, les algorithmes supervisés voient une réduction drastique de leur
ecacité
4 contrairement aux algorithmes non supervisés 5 . Ceci peut s'expliquer par le fait que,
puisque les algorithmes non supervisés ne font que partitionner des données, les attaques leur
sont toujours inconnues. En eet, étant donné que ces derniers ne font que regrouper des données proches, ils ne savent pas quand elles représentent une attaque. Bien que les algorithmes
supervisés et non supervisés obtiennent des résultats semblables pour des attaques inconnues,
les modèles non supervisés sont préférés pour leur robustesse. En eet, ceux-ci ne changent pas
drastiquement leur taux de réussite selon que l'intrusion est connue ou non. De plus, ils n'ont pas
d'oracle leur disant à quelle classe appartient telle donnée. Ils réalisent solitairement les classes.
Ils sont donc plus indépendants que les techniques supervisées qui ont besoin d'un oracle. Leur
point fort est la classication d'attaques appartenant à un label inconnu. En eet, on ne doit pas
leur présenter l'ensemble des labels. De plus, il est parfois très dur de classier univoquement
une information dans une classe. C'est pourquoi cette méthode est parfois préférée pour les IDS.
La thèse [15] parle d'une implémentation du modèle SOM sur les IDS. Les résultats de cette
thèse sont néanmoins peu encourageants pour ce type de structure. Par ailleurs, les algorithmes
1. Néanmoins, la lecture des signatures sut à comprendre leur fonctionnement contrairement aux techniques
de machine learning qui sont souvent considérées comme une boîte noir.
2. Plus précisément les algorithmes non linéaires tels que l'algorithme C4.5 suivit du MLP et enn le SVM.
3. C'est-à-dire des attaques découvertes dans les données d'apprentissage.
4. Le plus robuste des algorithmes supervisés étant le SVM suivit des k plus proches voisins.
5. Plus précisément le gamma-algorithme.
16
supervisés et non supervisés peuvent être combinés pour obtenir un apprentissage semi-supervisé
où on utilise les avantages des deux techniques précédentes pour réaliser un IDS. Cependant, une
hypothèse sur les IDS supervisés reste à lever.
5.3 Hypothèse
Dans le cas des algorithmes supervisés, une hypothèse dicile à respecter lors de l'apprentissage
est qu'il n'y a pas d'attaque contenue dans les informations modélisant le comportement normal
des programmes qui peuvent pourtant avoir beaucoup d'irrégularités. En eet, dans le cas contraire, on insérerait des propriétés d'une attaque comme comportement normal. Par conséquent,
cette dernière ne sera pas détectée. Inversement, comme précisé dans le livre [12], un algorithme
non supervisé peut lever cette hypothèse en nettoyant les données pour enlever les informations
d'attaque. Pour cela, on recherche un ensemble d'enchaînement, appelé motif, de système call
fortement présent dans le système et on les range suivant leur dangerosité d'attaquer le système.
Par après, on regarde l'ensemble des séquences des systèmes calls présentes pour les comparer aux
motifs découverts précédemment, réalisant ainsi une sorte d'empreinte des diérentes séquences
de système calls par rapport aux motifs qu'ils contiennent. Par après, on regarde la distance de
toutes les empreintes par rapport à une autre an d'avoir un graphique unique pour l'ensemble.
Ceci nous permet de mieux visualiser celles de même nature (qui sont donc très proches les
unes des autres) par rapport à celles très diérentes. Ainsi, un espacement très grand entre
deux groupes d'empreintes où l'un en contient beaucoup et l'autre très peu permet de supposer
que l'un en est une attaque alors que l'autre ne l'est pas. De plus, comme on suppose qu'il
y a moins d'empreintes d'attaques que de non-attaques, on retrouve facilement l'ensemble de
celles d'attaques. C'est pourquoi on utilise un algorithme non supervisé oine
6 pour détecter
les anomalies dans les données. Par après, un algorithme supervisé peut utiliser ces données
nettoyées pour concevoir et implémenter le modèle.
5.4 Implémentation
Une méthode généralement utilisée, qui est basée sur l'approche comportementale, est la prise
d'empreintes des utilisateurs, c'est-à-dire de leur comportement, et de regarder quand elle ne lui
correspond pas sur le système. Ainsi, on peut détecter un comportement anormal et donc une
attaque éventuelle. Inversement, on peut prendre l'empreinte de certains pirates
7 connus pour les
détecter. Cette dernière peut être apprise par le machine learning. Toutefois, une autre méthode,
basée sur l'approche par scénario, est l'utilisation de données représentant des attaques. Pour
que cela soit réaliste, il faut que l'IDS soit susamment rapide, ecace et exible aux petits
changements normaux des utilisateurs, sans toutefois permettre de dévier vers une situation
d'attaque. Dans le cas contraire, soit elle ne sera pas détectée soit le nombre de faux positifs
pourrait exponentiellement augmenter. De manière globale, on réalise un tel IDS en trois étapes :
on modélise tous les comportements normaux de chaque utilisateur ou les signatures des attaques,
on le donne au machine learning pour qu'il l'apprenne et ensuite on regarde si le comportement
dévie de l'habituel ou s'approche d'une situation oensive. Dans certains cas, il est intéressant
de savoir le type de l'attaque et non seulement si elle a eu lieu, comme décrit dans l'article [14].
Pour cela, on peut demander au réseau neuronal de nous donner par exemple [0,0,0] s'il n'y a
pas d'attaque, [0,0,1] s'il y a une attaque de type 1, [0,1,0] s'il y a une attaque de type 2 et
[1,0,0] s'il y a une attaque de type 3. Si le réseau nous donne [0,1,1] on peut vérier si il y a eu
deux attaques simultanées ou si le réseau n'a pas réussi à déterminer correctement ce qui s'est
passé. Une dernière implémentation est la gestion d'un grand nombre d'alertes venant des IDS
par du machine learning. Ainsi, cette méthode est une sorte de ltre de ces dernières permettant
de se focaliser sur les alarmes les plus importantes. En eet, un IDS peut générer un nombre
volumineux de fausses alertes, ce qui rend la tâche des administrateurs système impossible. Ceci
est donc un complément aux IDS et non un remplacement de ceux-ci.
Comme vu précédemment, il existe des NIDS et des HIDS.
6. On utilise un algorithme oine car il est nécessaire d'avoir l'ensemble des informations.
7. Une personne qui a attaqué une entreprise et qui a été détectée aura sûrement envie de refaire une attaque
contre la même entreprise. Ainsi, en utilisant son empreinte, on peut le détecter à nouveau sans forcément connaître
son but. D'où la nécessité de coopération entre les entreprises pour s'échanger ce genre d'informations.
17
HIDS
Pour modéliser le comportement d'un utilisateur, on peut regarder l'ensemble des com-
mandes qu'il a utilisées durant une période, comme ce qui a été fait dans l'article [16], ce qui
donne un HIDS oine. Cette méthode est justiable puisque la plupart des personnes n'utilisent
pas le système dans le même but ni de la même manière. Pour un HIDS semblable mais online, la
machine apprend à reconnaître les commandes futures selon les k dernières utilisées. Néanmoins,
leur ordre n'est pas révélateur pour savoir si une attaque a lieu ou pas. Il semble plus signicatif
de regarder l'ensemble des commandes utilisées durant une période. L'inconvénient majeur est la
non-prise en compte des arguments des system calls. Ainsi, il est intéressant de prendre en compte
les valeurs de retour, les statuts d'erreur et d'autres arguments pour détecter des attaques. En
eet, prenons l'exemple des system calls suivants exécutés par un simple utilisateur : open, read,
write. Ces trois systèmes calls peuvent sembler inoensifs puisque c'est une simple ouverture,
lecture et écriture dans un chier. Néanmoins, la situation change si on regarde l'argument de
ces system calls et que celui-ci est le chier passwd. Une autre méthode analysée dans l'article [7]
est l'apprentissage du prol des programmes et non des utilisateurs. Ainsi, la machine apprend
le fonctionnement normal des logiciels sur une machine.
NIDS
Pour ce qui est du NIDS, il est nécessaire de bien comprendre l'ensemble des variables
d'un paquet, ainsi que du protocole, pour comprendre le fonctionnement normal du système.
8
Essayons de partitionner les paquets TCP . Pour cela, on peut d'abord voir les attributs qui ne
changeront sans doute jamais entre ceux-ci : Version du protocole + les ags réservés. D'autres attributs permettent de les partitionner : adresse source/destination + protocole utilisé. Ces deux
propriétés sont généralement utilisées par les rewalls pour ltrer les paquets. Enn, certains
attributs pourraient être diérents dans une même partition : taille du header, identicateur,
TTL,. . . Ce sont ceux qui sont généralement utilisés pour détecter une anomalie. Selon l'article
[12], regarder les valeurs de ces attributs pour déterminer une anomalie n'est pas une bonne
manière de faire, ce qui pourrait expliquer les faibles résultats de la thèse [15], détaillés précédemment. Néanmoins, regarder les changements de ces attributs au cours du temps semble être
une meilleure manière de faire. Ainsi, on regarde la moyenne de certaines valeurs, le pourcentage
d'événements selon la valeur d'un attribut, le pourcentage de paquets ayant telle valeur,. . . Il
faut donc s'assurer d'avoir susamment de paquets lors de la phase d'apprentissage pour garantir qu'aucun comportement normal non présent dans ces paquets ne soit oublié. Néanmoins,
beaucoup d'attaques connues surpassent cette méthode :
1. Utilisation d'un proxy qui va mapper les ports non légitimes vers des ports légitimes pour
que les IDS le considèrent comme un paquet légitime.
2. Modication d'un logiciel qui fonctionnera d'une telle manière pour l'attaquant et d'une
autre manière pour le reste des personnes du système.
Après avoir obtenu toutes les informations, il faut classier les paquets selon le serveur à qui ils
appartiennent. Pour cela, il existe deux manières de faire. La première méthode est d'utiliser un
apprentissage supervisé pour pouvoir classier les diérents services proposés grâce à des paquets
connus par le système, et par la suite dénir à quel service appartient tel nouveau ux de paquets.
Ceci peut être fait avec un arbre de décision. La deuxième méthode est d'utiliser la détection
d'anomalies où on dénit le comportement normal de chaque service. Ainsi, avec un nouveau ux
de paquets, on détermine si celui-ci est conforme au comportement normal du service. Ceci est
très semblable à la méthode qui regarde le comportement normal d'un utilisateur. Pour connaître
le service utilisé à tel instant, on peut construire un arbre de décision qui apprendra les attributs
des paquets, par exemple : le nombre de paquets avec le ag FIN selon tel service, et qui classiera
les nouveaux paquets du réseau. Pour détecter une attaque, on regarde vers où l'arbre de décision
nous amène. Si par exemple celui-ci nous dit que c'est un service ftp et qu'on voit que le port
utilisé est 80, alors on peut se demander si un nouveau service non autorisé est présent dans le
système.
Toutefois, toutes ces études ont des problématiques en commun.
8. Transmission Control Protocol
18
5.5 Problématiques des modèles
5.5.1 Non périodicité
La non-périodicité de certains phénomènes peut avoir des répercussions problématiques.
Prenons l'exemple de la rédaction d'un mémoire. Il y a une période où l'étudiant réalise beaucoup de recherches et une autre période où l'étudiant écrit son mémoire. Durant ces deux phases,
c'est toujours le même étudiant qui travaille sur la même machine. Néanmoins, les demandes de
ressources ne sont pas égales, ce qui pourrait faire croire au machine learning qu'il y a quelque
chose d'inhabituel. Semblablement, une augmentation de fréquentation sur un site web ne signie
pas pour autant une attaque contre ce site web. Réaliser un détecteur d'intrusion qui ralentirait
cette augmentation aurait une conséquence négative. Pour contrer ce problème, il est conseillé
de mélanger un grand nombre de paramètres pour réaliser le prol de l'utilisateur et de donner
la possibilité à l'administrateur de considérer si c'est un cas non voulu.
5.5.2 Espacement des attaques
Une attaque dicilement visible est une attaque réalisée en un temps très espacé. Pour les contrer, l'article [18] propose d'utiliser un réseau neuronal chaotique qui réalise des comportements
non implémentés et permet ainsi au modèle de produire des comportements plus complexes.
5.6 Optimisation
Il y a une forte volonté de réduire le temps d'apprentissage pour pouvoir mettre en ÷uvre
une solution commerciale. L'article [6] propose une manière de réduire le temps d'apprentissage
ainsi que la taille de la structure. Pour être encore plus performant, on peut dénir la structure
de l'ensemble des réseaux neuronaux utilisés dans l'IDS. En voici quelques unes
9 :
1. Une première boîte contenant un ltre d'information suivie par une autre contenant le
réseau neuronal.
2. Une première boîte contenant un ltre d'information suivie par n boites de réseaux neuronaux suivies par une dernière qui va jouer le rôle d'arbitre en déterminant ce qui se passe
sur le réseau selon les informations reçues par les n boîtes de réseaux neuronaux. Chacune
d'entre elles reconnaît un type d'attaque (DOS, U2R, R2L, scan,. . . ). Ceci est aussi appelé
la méthode Boosting.
3. Trois premières boîtes suivies d'une dernière. L'entraînement se fait ainsi :
(a) On entraîne la première boîte avec un certain nombre d'informations.
(b) On prend au hasard des nouvelles informations et on entraîne une deuxième.
(c) On prend des nouvelles informations et on regarde la réaction des deux premières. Si
ces deux boîtes ne convergent pas vers la même idée, on prend cette information et
on la met comme entraînement pour la troisième.
La dernière boîte va jouer le rôle d'arbitre. Ceci est aussi appelé la méthode Bagging.
5.7 Outils
Un ensemble d'outils est disponible pour l'implémentation de techniques de machine learning
pour des IDS. Nous pouvons citer : MATLAB Neural Network Toolbox, WEKA[O1], Torch[O2],
Joone[O3], FANN[O4], NeuroDimension[O5] et DynNet[O6]. Néanmoins, le choix de l'outil s'est
porté sur le langage R. En eet, celui-ci semble être susamment performant pour réaliser
l'ensemble des structures qui pourraient être utile pour un IDS. De plus, ce dernier est communément accepté par la communauté scientique de machine learning.
9. Des tests ont étés réalisés pour déterminer la meilleure structure. Ces tests sont disponibles sur [8]
19
Chapter 6
DataSets
Depuis plusieurs années, des groupes de recherche ont créé des datasets pour des IDS. Ces
collections permettent de procurer des données d'apprentissage et des tests aux diérents modèles
de machine learning. De plus, ils orent la possibilité de comparer la performance de plusieurs
IDS sur une même collection de données. Ces datasets représentent des informations du système
regroupées ensemble. Ces données sont obtenues soit par des simulateurs, soit par des systèmes
réels. Néanmoins, dans ce dernier cas, puisqu'elles peuvent représenter des informations privées,
1
il est beaucoup plus complexe de les obtenir . C'est pourquoi on utilise des générateurs de
tracs où on essaye d'avoir un comportement semblable à celui d'un système réel en collectant
des données statistiques sur de véritables réseaux. Le portail KDnuggets[D1] met entre autre à
disposition des datasets. Néanmoins, il en existe d'autres.
DARPA
Les datasets de DARPA[D2] sont probablement les plus largement utilisés et ont été
développés au MIT Lincoln Labs. Leur dataset de 1999 contient des données d'entraînement et
de tests faits en cinq semaines représentant une simulation du réseau de l'Air Force contenant
des machines telles que Linux, Solaris et Sun OS. Les données d'entraînement sont divisées en
une dataset de trois semaines. La première et la dernière semaine, contrairement à la deuxième,
ne contiennent aucune attaque. Ceci a été réalisé pour faciliter l'entraînement des IDS basés sur
la détection d'anomalies. Les données de tests sont regroupées dans celles des deux dernières
semaines. Ils ont 201 cas avec 56 types d'attaques à détecter dont certains sont non présentes
dans les données d'entraînement. Ces types peuvent être classiés dans 5 catégories : Denial of
2
3
Service (DOS), Remote to Local (R2L), User to Root (U2R), Surveillance or Probe
4 et Data
5
Compromise . Le dataset est divisée en sept parties où chacune d'entre elle provient d'un senseur.
D'autres informations sont disponibles sur le site ociel.
KDD'99
Le dataset de KDD'99 [D3] contient des descriptions de connexions TCP, incluant
41 paramètres par connexion basés sur le dataset DARPA 1998. Une connexion représente un
ensemble de paquets passant d'une machine à une autre utilisant le même protocole. Ces données
incluent des connexions normales et aussi des attaques de 23 types appartenant à 4 classes :
DOS , U2R , R2L et Surveillance or Probe . L'article [10] réalise une recherche pour détecter quel
paramètre est utile pour détecter chaque attaque.
Machine Learning Repository
Un ensemble de datasets[D4] maintenu par le département
de l'information et de la science informatique à l'université de Californie.
Masquerading User Data
Ce Dataset[D5] a été utilisé pour l'apprentissage non supervisé par
son auteur. Il contient un ensemble de commandes d'utilisateurs normaux ou malveillants. Les
utilisateurs sont représentés chacun par un chier qui comprend une liste de 15000 commandes
où les 5000 premières sont normales alors que le reste peut être exécuté par un attaquant.
1. Toutefois, pour tester un modèle, il ne sut pas de le tester sur des simulateurs mais aussi sur des systèmes
réels.
2. accès non autorisé du système à distance
3. accès root non autorisé, venant par exemple d'un buer overow
4. analyse de la topologie du réseau
5. accès ou modication non autorisés à des données
20
Chapter 7
Conclusion
Cette état de l'art des IDS utilisant les techniques de machine learning a permis d'avoir
une vue globale de ce qui se fait de nos jours dans ce domaine. L'étape suivante est d'essayer
d'améliorer
1 les systèmes de détection d'intrusion actuels basés sur du machine learning. Le
choix du modèle et de ses paramètres dépendra essentiellement du résultat voulu, en particulier
du fait que l'IDS soit un NIDS, un HIDS, online, oine, comportemental, etc.
Travaux futurs
Les IDS comportementaux basés sur des techniques de machine learning non
supervisés ont un avantage certain puisqu'ils n'ont pas besoin de connaître l'ensemble des attaques
pour en détecter une. Ils s'adaptent donc à l'evolution des attaques. De plus, les HIDS ne sont
pas limités par le chirement des paquets contrairement au NIDS. L'ensemble de ces raisons ont
motivé la volonté de se focaliser sur ce type d'IDS. Pour cela, plusieurs possibilités pourraient
être envisagées telles que la comparaison entre des données réelles et générées ou le choix de
nouvelles variables basées sur les techniques de feature selection, de nouveaux modèles ou de
nouvelles structures non encore utilisées. L'ensemble du modèle sera implémenté en language
R. Enn, pour tester les résultats, des comparaisons avec des modèles actuels pourraient être
envisagées grâce à l'utilisation de datasets.
1. C'est-à-dire de réduire le nombre des faux positifs et des faux négatifs.
21
Bibliographie
[1]
J. Allen & A. Christie & W. Fithen & J. McHugh & J. Pickel & E. Stoner (2000), State
of the Practice of Intrusion Detection Technologies , Networked Systems Survivability Program, Carnegie Mellon, Software Engineering Institute, Pittsburgh.
[2]
A. Bivens & C. Palagiri & R. Smith & B. Szymanski & M. Embrechts (2002), Network-
Based Intrusion Detection using Neural Networks , ASME Press, vol. 12, pp. 579-584, New
York.
[3]
G. Bontempi (2009), Statistical foundations of machine learning , Machine Learning
Group, Computer Science Department, Université Libre de Bruxelles, Belgium.
[4]
D.
Burgermeister
&
J.
Krier
(2006),
Les
systèmes
de
détection
d'intrusion ,
www.developpez.com.
[5]
J. Cardinal (2009), Cours de Structures de données et algorithmes , Computer Science
Department, Université Libre de Bruxelles, Belgium.
[6]
R-I. Chang & W-D. Su & J-C. Wang & J-S. Kouh (2007), Intrusion Detection by Back-
propagation Neural Networks with Sample-Query and Attribute-Query , vol. 3, No. 1, pp.
6-10, National Taiwan University, Taiwan.
[7]
K. Ghosh & A. Schwartzbard & M. Schatz (1999), Learning Program Behavior Proles for
Intrusion Detection , The USENIX Association, Reliable Software Technologies Corporation, Santa Clara, California, USA.
[8]
V. Golovko, P. Kachurka, L. Vaitsekhovich (2007), Neural Network Ensembles for Intrusion
Detection , pp. 578-583, Belarus.
[9]
S. Hofmeyr & S. Forrest (2000), Architecture for an Articial Immune System. . pp. 12891296, Evolutionary Computation 7(1), Morgan-Kaufmann, San Francisco, CA, USA.
[10]
H-G. Kayacik & A-N. Zincir-Heywood & M. I. Heywood (2005), Selecting Features for In-
trusion Detection: A Feature Relevance Analysis on KDD 99 Intrusion Detection Datasets ,
Proceedings of the Third Annual Conference on Privacy, Security and Trust (PST-2005),
Dalhousie University, Faculty of Computer Science, Canada.
[11]
P. Laskov & P. Düssel & C. Schäfer & K. Rieck (2005), Learning intrusion detection :
Supervised or unsupervised ? , Fraunhofer-FIRST.IDA, Berlin,Germany.
[12]
Marcus A. Maloof (2005), Machine Learning and Data Mining for Computer Security ,
Springer London Ltd, ISBN-10 184628029X ; ISBN-13 978-1846280290.
[13]
O. Markowitch (2009), Cours de Cryptologie distribuée et protocoles , Computer Science
Department, Université Libre de Bruxelles, Belgium.
[14]
M. Moradi & M. Zulkernine (2004), A Neural Network Based System for Intrusion Detec-
tion and Classication of Attacks , University of British Columbia, Canada.
[15]
A. Öksüz (2007), Unsupervised Intrusion Detection System , Technical University of Denmark, Informatics and Mathematical Modelling, Denmark.
[16]
J. Ryan & M-J. Lin (1998), Intrusion Detection with Neural Networks , Risto Miikkulainen,
Department of Computer Science, The University of Texas, Austin, USA.
[17]
G. Vert & D-A. Frinke & J-C. McConnell (1998), A Visual Mathematical Model for In-
trusion Detection , Center for Secure and Dependable Software, Departement of Computer
Science, University of Idaho, Moscow.
[18]
Y. Yu & G. Fu-xiang & Y. Ge (2004), Hybrid BP/CNN Neural Network for Intrusion
Detection , vol. 85, pp. 226-228,Northeastern University, China.
[N1] ( May 11, 1999 ) White House Shuts down Web Site , cnet.com
22
[N2] ( October 7, 1999 ) Cyber-theft of Sensitive U.S. Files Traced to Russia ,Chicago SunTimes.
[N3] ( June 11, 2007 ) L'Estonie dénonce les cyber-attaques terroristes russes , 01net.com
[N4] ( March 29, 2009 ) La Chine inltrerait des ordinateurs, dont ceux du dalaï lama , AFP
[N5] (May 22, 2009) Les Etats-Unis renforcent leur défense contre les cyberattaques , lemonde.fr
[L1] http://www.ossec.net
[L2] http://www.bro-ids.org
[L3] http://www2.imm.dtu.dk/IDSnet
[L4] http://www.snort.org
[L5] http://www.prelude-ids.com
[D1] http://www.kdnuggets.com
[D2] http://www.ll.mit.edu/mission/communications/ist/corpora/ideval/data/index.html
[D3] http://kdd.ics.uci.edu/databases/kddcup99/kddcup99.html
[D4] http ://www.ics.uci.edu/~mlearn/MLRepository.html
[D5] http ://www.schonlau.net
[O1] http://www.cs.waikato.ac.nz/ml/weka
[O2] http://www.torch.ch
[O3] http://www.jooneworld.com
[O4] http://leenissen.dk/fann
[O5] http://www.nd.com
[O6] http://ginnet.gforge.inria.fr/index_fr.php
23

Documents pareils