# Apprentissage automatique appliqué aux systèmes de détection d'intrusion réseau

Les systèmes de détection d'intrusion reposent sur un ensemble de mécanismes et d'algorithmes permettant de détecter, de manière optimale, des intrusions ou menaces dans un réseau informatique. L'apprentissage automatique (incluant l'apprentissage supervisé, l'apprentissage non supervisé et l'apprentissage profond) peut être utilisé pour améliorer de manière significative la fiabilité de détection face à des menaces. L'objectif d'une implémentation avec apprentissage automatique est de pouvoir détecter des attaques ou menaces polymorphes et inconnues.

## Contexte
### Limites de la détection avec signatures

Les systèmes de détection d'intrusion, et plus spécifiquement de détection d'intrusion au niveau réseau (en anglais Network Intrusion Detection System), ont pour responsabilité d'identifier des menaces ou intrusions sur un réseau informatique. Ceci peut être une tentative d'accès non autorisée, un accès ou une modification illégale de données ou encore la mise hors service d'un ou plusieurs composants informatiques. L'identification peut se faire en temps réel sur le réseau pour détecter les menaces immédiatement ou en analysant du trafic réseau capturé précédemment. Ces systèmes de détection pour le réseau peuvent être classifiés en deux catégories, répartis par méthode de détection. La première catégorie est le système de détection reposant sur une base de signatures mise régulièrement à jour. La seconde est le système de détection identifiant le trafic réseau anormal.
L'avantage d'un système de détection reposant sur des signatures est d'avoir un nombre de faux positifs relativement faible, car la base contenant les signatures de détection peut être adaptée facilement. Par contre, dû au grand nombre d'attaques réseau découvertes régulièrement, à la difficulté d'analyser rapidement ces attaques avant d'en générer des signatures de détection et aux multiples formes qu'une attaque peut avoir, il est extrêmement difficile de maintenir une base de signatures d'intrusion à jour. De plus, un système reposant sur des signatures d'intrusion ne peut que détecter les intrusions contenues dans sa base et laissera donc passer celles qu'il ne connaît pas (ou d'autres catégories de menace telles que les attaques par déni de service et les balayages de ports).

### Améliorations avec l'apprentissage automatique

Au vu de la difficulté à mettre en place un système reposant sur des signatures et le nombre grandissant d'attaques sur les réseaux, les systèmes de détection d'intrusion réseau, qui identifient les anomalies, ont fait l'objet de beaucoup de recherches scientifiques. Bien que des avancées importantes aient déjà été réalisées dans ce domaine, il y a encore beaucoup d'opportunités d'amélioration pour les systèmes de détection d'intrusion réseau. Plus particulièrement, des efforts à faire pour arriver à l'objectif ultime de tout système de détection déployé dans un environnement réel : réduire le nombre de faux positifs remontés tout en augmentant la précision et l’efficacité du modèle de détection.
Pour arriver à cet objectif, tout en ayant la capacité de détecter des attaques inconnues, les systèmes de détection d'intrusion réseau qui se basent sur les anomalies ont embarqué des mécanismes d'apprentissage automatique. Pour les systèmes basés sur de l'apprentissage supervisé, le principe général est de définir en premier lieu le comportement "normal" d'un réseau informatique avec un modèle formel. Lors de la phase de détection, toute activité réseau sera identifiée comme étant anormale si la déviation par rapport au modèle dépasse un certain seuil. Deux composants essentiels se retrouvent donc généralement dans les systèmes avec apprentissage automatique. Le premier est le composant de modélisation qui a pour objectif d’entraîner le système suffisamment pour obtenir un modèle de normalité réseau convenable. Le second est le composant de détection qui, sur la base du modèle formé par le composant de modélisation, pourra évaluer la déviance d'un évènement réseau (paquet entrant, par exemple) par rapport au modèle.
D'autres implémentations permettant de détecter des intrusions réseau sur la base d'anomalies ont été proposées en prenant l'approche de l'apprentissage non supervisé pour améliorer la fiabilité de détection face à de nouvelles menaces non répertoriées. Les propriétés intéressantes avec ce type d'apprentissage - pour de la détection d'intrusion - sont nombreuses. Tout d'abord, il y a la détection fiable de valeurs aberrantes qui sortent du flux de données cette caractéristique est fondamentale pour la détection d'anomalies sur un réseau. Ensuite, il y a la généralisation de certains liens entre les valeurs afin de pouvoir identifier les données qui se ressemblent. Ceci permet de mettre en place des systèmes de détection qui ont une détection pour les attaques polymorphiques (menaces qui exploitent de façon similaire une faille dans le système). Ou encore, il y a le peu d’interactions lors de la phase d'apprentissage, ce qui permet de manipuler d'énormes quantités de données réseau qui n'ont pas été labellisées auparavant comme étant normales ou anormales. Enfin, en cas de changement de topologie du réseau ou des services mis à disposition à l'intérieur du réseau, le mécanisme basé sur l'apprentissage non supervisé saura s'adapter graduellement, c'est l'adaptation au changement.

## Méthodes d'apprentissage superficiel

L'apprentissage superficiel regroupe toutes les techniques d'apprentissage automatique qui précèdent l'apprentissage profond, telles que les méthodes basées sur des machines à vecteurs de support ou des arbres de décision. Les différentes méthodes basées sur l'apprentissage superficiel peuvent être catégorisées en regroupant les algorithmes par similarité de fonctionnement. Cette approche permet de différencier la façon dont chaque "classe" de système de détection fonctionne, mais présente l'inconvénient que certains algorithmes ne peuvent pas être classés dans une catégorie spécifique.

### Statistique

En statistique, on définit une anomalie comme une observation qui est soupçonnée d'être partiellement ou totalement non pertinente. Pour la détection de ces anomalies, il existe deux types de techniques les techniques paramétriques elles supposent la connaissance de la distribution des données et estiment les paramètres à partir de celle-ci. Les secondes sont les techniques non-paramétriques elles ne supposent pas la connaissance de la distribution des données.
En détectant ces anomalies, les méthodes statistiques appliquent des tests sur les données d'un modèle statistique pour déterminer si un nouveau cas (non observé) existe. Les méthodes les plus récentes s'intéressent aux caractéristiques statistiques du trafic dans le but d'identifier l'application ciblée dans le réseau (un trafic lié à des activités HTTP ou DNS, par exemple). Ces méthodes partent du principe que le trafic sur la couche réseau a des propriétés statistiques, comme la distribution de la durée du flux, le temps d'attente du flux, le temps d'interception des paquets ou encore la longueur des paquets.

#### Exemples

N@G (Network at Guard) est un exemple d'IDS hybride qui utilise les approches de mauvaise usage et d'anomalie. Il dispose de quatre méthodes de détection, à savoir la collecte de données, la détection basée sur la signature, la violation de la politique d'accès au réseau et la détection des anomalies de protocole dans le cadre de son capteur de réseau. Il comprend des pistes d'audit, des analyses de journaux, des analyses statistiques et des politiques d'accès.
FSAS (Flow-based Statistical Aggregation Scheme) est un autre exemple d'IDS statistique basé sur les flux. Il comprend deux modules : un générateur de caractéristiques et un détecteur basé sur le flux. Dans le générateur de caractéristiques, le module de préprocesseur d'événements collecte le trafic réseau d'un hôte ou d'un réseau. Les gestionnaires d'événements génèrent des rapports pour le module de gestion de flux. Le module de gestion de flux détermine efficacement si un paquet fait partie d'un flux existant ou s'il doit générer une nouvelle clé de flux. En inspectant les clés de flux, ce module regroupe les flux et met à jour de façon dynamique les mesures de comptabilité par flux. Le module de temps d'événement appelle périodiquement le module d'extraction de caractéristiques pour convertir les statistiques concernant les flux dans le format requis par le modèle statistique. Le classificateur du réseau neuronal classe les vecteurs de score pour hiérarchiser les flux avec le degré de malveillance. Plus la malveillance d'un flux est élevée, plus la possibilité que le flux soit un attaquant est élevée.

#### Avantages et inconvénients

Les approches statistiques présentent de nombreux avantages:
* elles ne nécessitent pas la connaissance préalable des activités normales. Elles ont la capacité d'apprendre le comportement attendu à partir des observations ;
* elles permettent d'obtenir une détection précise sur de longues périodes, à condition d'avoir correctement paramétré le seuil d'alerte ;
* elles analysent le trafic sur la base de la théorie "Detection of Abrupt Changes", c'est-à-dire qu'elles surveillent le réseau pendant de longues périodes et détectent les changements brutaux.
Mais il existe également des inconvénients:
* il est possible qu'un attaquant entraîne le modèle de manière que le trafic généré par l'attaque soit considéré comme normal ;
* il est difficile de définir les valeurs des paramètres car il faut trouver le juste équilibre entre les faux positifs et les faux négatifs ;
* il faut attendre longtemps pour détecter les premières anomalies car la construction du modèle nécessite une longue période ;
* il est compliqué de choisir la meilleure statistique car plusieurs statistiques peuvent être utilisées pour détecter une anomalie.

#### Implémentations

Le tableau ci-dessous propose une comparaison entre différentes implémentations de détection d'intrusion réseau qui fonctionnent avec des techniques statistiques.
Systèmes de détection d'intrusion réseau avec mécanisme statistique :
| Auteur(s) | Année de publication | Architecture | Nature de la détection | Attaques traitées | Méthode de détection |
| Eskin | 2000 | Autre | Non temps réel | U2R | Probality Model |
| Manikopoulos et Papavassiliou | 2002 | Distribuée | Non temps réel | DDoS, R2L | Statical model with neural network |
| Mahoney et Chan | 2003 | Centralisée | Non temps réel | All attacks | LERAD algorithm |
| Chan et al. | 2003 | Centralisée | Non temps réel | All attacks | Learning Rules |
| Wang et Stolfo | 2004 | Centralisée | Non temps réel | All attacks | Payload-based algorithm |
| Song et al. | 2007 | Centralisée | Non temps réel | Intrusive pattern | Gaussian Mixture Model |
| Chhabra et al. | 2008 | Distribuée | Non temps réel | Anomalous | FDR method |
| Lu et Ghorbani | 2009 | Centralisée | Non temps réel | All attacks | Wavelet Analysis |
| Wattenberg et al. | 2011 | Centralisée | Non temps réel | DDoS | GLRT Model |
| Yu | 2012 | Centralisée | Non temps réel | DDoS | Adaptive CUSUM |

### Classification

La classification a pour principe l'identification d'un ensemble à une catégorie à partir d'observations. Cela implique un apprentissage automatique à partir d'un ensemble d'exemples pré-classifiés (également appelés pré-étiquetés), à partir desquels il est possible de construire un ensemble de règles de classification pour classer des exemples non vus. La principale caractéristique de cette technique est donc le besoin de données étiquetées pour former le modèle, ce qui impose une exigence élevée au niveau des ressources. Les techniques de classification sont basées sur l'établissement d'un modèle explicite ou implicite qui permet la catégorisation des modèles de trafic réseau en plusieurs classes$^,$$^,$$^,$$^,$$^,$.
La classification est soit linéaire ; elle tente de trouver une ligne entre les classes, soit non linéaire.
Souvent l'application des principes d'apprentissage automatique pour la classification coïncide avec celle des techniques statistiques, même si la classification est axée sur la construction d'un modèle qui améliore ses performances sur la base des résultats antérieurs.
Plusieurs techniques basées sur la classification ont été utilisées pour la détection d'anomalies dans les données de trafic réseau, comme la méthode des k plus proches voisins, la machine à vecteurs de support, ou encore l'arbre de décision.
Les machines à vecteurs de support sont des très efficaces classificateurs linéaires. Cependant, elles prennent beaucoup de temps à s'entraîner lorsque l'ensemble de données est très volumineux.

#### Exemple

ADAM (Automated Data Analysis and Mining) est un IDS basé sur la classification. Il fournit un banc d'essai pour la détection d'instances anormales. ADAM exploite une combinaison de techniques de classification et d'extraction de règles d'association pour détecter les attaques. Tout d'abord, ADAM construit un ensemble d'éléments "normaux" fréquents à partir de périodes sans attaques. Deuxièmement, ADAM exécute un algorithme basé sur une fenêtre glissante qui trouve des jeux d'éléments fréquents dans les connexions et les compare avec ceux stockés dans l'ensemble d'éléments "normaux", en éliminant ceux qui sont considérés comme normaux. ADAM utilise un classificateur qui a été formé pour classer les connexions suspectes comme un type d'attaque connu, un type inconnu ou une fausse alarme.

#### Avantages et inconvénients

Les approches de détection d'anomalies basées sur la classification sont populaires pour détecter les anomalies de réseau grâce aux avantages suivants:
* elles sont flexibles pour la formation et les tests, c'est-à-dire qu'elles sont capables de mettre à jour leurs stratégies d'exécution avec l'intégration de nouvelles informations ; donc, l'adaptabilité est possible ;
* elles ont un taux de détection élevé pour les attaques connues sous condition d'un seuil approprié.
Bien que ces approches soient populaires, elles présentent les inconvénients suivants:
* elles dépendent fortement des hypothèses faites par les classificateurs ;
* elles consomment plus de ressources que d'autres techniques ;
* elles ne peuvent pas détecter ou prévoir une attaque ou un événement inconnu tant que les informations d'entraînement pertinentes ne sont pas fournies.

#### Implémentations

Le tableau ci-dessous propose une comparaison entre différentes implémentations de détection d'intrusion réseau qui fonctionnent avec des techniques de classification.
Systèmes de détection d'intrusion réseau avec mécanisme de classification :
| Auteur(s) | Année de publication | Architecture | Nature de la détection | Attaques traitées | Méthode de détection |
| Tong et al. | 2005 | Autre | Non temps réel | All attacks | KPCC model |
| Gaddam et al. | 2007 | Centralisée | Non temps réel | All attacks | k-means+ID3 |
| Khan et al. | 2007 | Centralisée | Non temps réel | All attacks | DGSOT + SVM |
| Das et al. | 2008 | Autre | Non temps réel | All attacks | APD Algorithm |
| Lu et Tong | 2009 | Autre | Non temps réel | All attacks | CUSUM-EM |
| Qadeer et al. | 2010 | Centralisée | Temps réel | DDoS | Traffic statistics |
| Wagner et al. | 2011 | Centralisée | Temps réel | DDoS | Kernel OCSVM |
| Muda et al. | 2011 | Autre | Non temps réel | All attacks | KMNB algorithm |
| Kang et al. | 2012 | Autre | Non temps réel | All attacks | Differentiated SVDD |

### Partitionnement de données

Le partitionnement de données (en anglais data clustering, communément nommé clustering) est une méthode d'analyse des données qui permet de diviser un ensemble de données en groupes possédant des caractéristiques communes. Cette méthode permet de mettre en place des solutions d'apprentissage non supervisé pour déduire de façon automatique des structures de données en regroupant des données similaires. Une fois le partitionnement effectué, certaines données aberrantes peuvent ne pas avoir été réparties dans des groupes par l'apprentissage automatique et contrastent grandement avec les autres données de l'ensemble. Dans le contexte de systèmes de détection d'intrusion réseau basés sur des comportements anormaux, les données aberrantes permettent d'identifier le trafic anormal dans un réseau informatique.
Pour que le système d'apprentissage utilisant le partitionnement de données fonctionne correctement, deux prérequis doivent être posés concernant les données que le système de détection recevra en entrée. Le premier prérequis est que le nombre d'évènements normaux sur un réseau doit être nettement supérieur au nombre d'évènements avec un comportement à risque (intrusion ou menace réseau). Pour que les données liées à des comportements anormaux soient identifiés comme étant aberrantes, il est nécessaire que ces données suspectes soient isolées de tout groupe ou réparties au sein de tout petits groupes. Si les données qui forment une menace pour le réseau se retrouvent dans un groupe de même grandeur que d'autres groupes contenant des données normales, le système de détection ne verra pas ce groupe suspect comme une menace ou intrusion. Le second prérequis est que les données, qui représentent une menace pour le réseau, soient qualitativement différentes du trafic réseau normal. Sans différence "marquante" entre ces deux classes de données, le mécanisme de partitionnement ne pourra pas correctement classifier les menaces comme étant des données aberrantes et risque de les mettre dans un groupe contenant des données réseau normales.
Plusieurs algorithmes peuvent être utilisés pour mettre en place une solution de détection d'intrusion réseau avec partitionnement. La liste ci-dessous donne une vision non exhaustive des algorithmes de partitionnement fréquemment utilisés dans ce domaine:
* l'algorithme K-moyennes ;
* l'algorithme DBSCAN qui s'appuie sur la densité estimée des groupes ;
* l'algorithme de BIRCH ;
* les algorithmes appartenant au regroupement hiérarchique ;
* l'algorithme CLARANS.

#### Avantages et inconvénients

Les systèmes de détection fonctionnant avec une méthode de partitionnement et de détection de valeurs aberrantes présentent plusieurs points forts:
* dans le cas où chaque donnée de l'ensemble analysé peut facilement être "différencié" (par exemple, avec une caractéristique marquante sur certains paquets réseaux suspects), le mécanisme de partitionnement pourra donner des résultats fiables ;
* les techniques de partitionnement incrémentiel (qui ne traitent qu'une donnée à la fois et ne stockent des données que de manière minime) peuvent livrer très rapidement une réponse fiable - à condition d'être utilisé avec un mécanisme d'apprentissage supervisé ;
* les techniques de partitionnement peuvent servir à classer des ensembles de données importants avant d'analyser chaque groupe de manière plus précise (par exemple, avec un mécanisme d'apprentissage supervisé). La complexité durant la phase d'analyse est donc réduite de manière importante avec la phase de partitionnement ;
* contrairement aux méthodes qui reposent sur les statistiques ou la classification, les méthodes de partitionnement offrent des performances plus stables.
En contrepartie, ces systèmes ont également plusieurs désavantages:
* la plupart des techniques proposées nécessitent absolument une certaine marge de différence entre les classes de données (menaces pour le système ou trafic normal). Si cette marge n'est pas respectée, c'est-à-dire si la ressemblance entre trafic réseau normal et malicieux et trop forte, le système de détection ne pourra pas partitionner correctement les différentes données réseau ;
* la majorité des techniques proposées reposent sur le prérequis que le nombre de données liées à du trafic anormal doit être largement inférieur à celles liées au trafic réseau normal. Dans le cas contraire où certaines données représentant une menace sont trop nombreuses et forment un groupe aussi large que certaines données sans risque, le système de détection ne pourra pas repérer et remonter correctement cette menace ;
* une mauvaise estimation de mesure pour le partitionnement des groupes (en se basant sur la "distance" entre deux données) peut avoir des conséquences très négatives pour la fiabilité de détection ;
* la recherche et mise à jour des petits groupes isolés ou éléments individuels représentant une menace pour le réseau peut être très lente et consomme beaucoup de ressources.

#### Implémentations

Le tableau ci-dessous propose une comparaison entre différentes implémentations de détection d'intrusion réseau qui fonctionnent avec des techniques de partitionnement.
Systèmes de détection d'intrusion réseau avec mécanisme de partitionnement :
| Auteur(s) | Année de publication | Architecture | Nature de la détection | Attaques traitées | Méthode de détection |
| Sequeria et Zaki | 2002 | Centralisée | Temps réel | Synthetic intrusions | ADMIT |
| Zhang et al. | 2005 | Décentralisée | Non temps réel | All attacks | Cluster-based DIDS |
| Leung et Leckie | 2005 | Centralisée | Non temps réel | All attacks | fsMAFIA algorithm |
| Otey et al. | 2006 | Centralisée | Non temps réel | All attacks | FDOD algorithm |
| Jiang et al. | 2006 | Centralisée | Non temps réel | All attacks | CBUID algorithm |
| Chen et Chen | 2008 | Autre | Non temps réel | Probe | AAWP model |
| Zhang et al. | 2009 | Autre | Non temps réel | All attacks | KD algorithm |
| Zhuang et al. | 2010 | Centralisée | Temps réel | Worms | PAIDS model |
| Bhuyan et al. | 2011 | Centralisée | Non temps réel | All attacks | NADO algorithm |
| Casas et al. | 2012 | Centralisée | Non temps réel | All attacks | UNIS method |

### Combination learners

Cette partie présente des méthodes qui utilisent des combinaisons de plusieurs techniques.

#### Méthodes basées sur les ensembles

Le principe de l'apprentissage ensembliste est de combiner plusieurs classificateurs pour surpasser chacun d'entre eux$^,$$^,$$^,$$^,$.
Il existe trois approches majeures$^,$:
* l’agrégation (Bootstrap Aggregating) : création d'un classificateur composite pour obtenir une seule prédiction à partir de l'ensemble des classificateurs appris ;
* le renforcement (Adaptive Boosting) : construction d'un ensemble qui s'incrémente à partir des instances mal classées ;
* la généralisation de la pile : utilisation des probabilités pour chaque étiquette de classe.

##### Exemple

Octopus-IIDS est un exemple de système de détection d'intrusion à ensemble. Il est développé en utilisant deux types de réseaux de neurones, Kohonen et machines à vecteurs de support. Le système est composé de deux couches : la classification et la détection d'anomalies. Le classificateur est responsable de la capture et du prétraitement des données de trafic réseau. Il classe les données en quatre catégories principales : DoS, PROBE, U2R et R2L. Une classe spécifique d'attaque est identifiée dans la couche de détection d'anomalies. Les auteurs affirment que le système fonctionne efficacement dans les réseaux à petite échelle.

##### Avantages et inconvénients

Les méthodes à ensemble présentent les avantages suivants:
* elles peuvent s'adapter à de grands ensembles de données ;
* elles ont de bonnes performances du fait qu'elles combinent plusieurs classificateurs.
Les inconvénients sont les suivants:
* il est difficile d'obtenir des performances en temps réel ;
* la sélection d'un sous-ensemble de classificateurs performants et non biaisés à partir d'un groupe de classificateurs est difficile.

#### Méthodes hybrides

Beaucoup de systèmes de détection d'intrusion réseau utilisent soit la détection de mauvaise utilisation, soit la détection d'anomalie. Le problème est que la détection de mauvaise utilisation est incapable de détecter une intrusion inconnue et que la détection d'anomalie à des taux de faux positifs élevés. La méthode hybride exploite donc les caractéristiques de plusieurs approches$^,$$^,$. Cette hybridation permet d'augmenter les performances des systèmes de détection.

##### Avantages et inconvénients

Les méthodes hybrides présentent les avantages suivants:
* elles exploitent les principales caractéristiques de la détection basée sur les signatures et les anomalies ;
* elles sont capables de gérer dans une certaine mesure des attaques connues et inconnues.
Les inconvénients sont les suivants:
* elles peuvent avoir des coûts de calcul élevées ;
* elles sont difficiles à mettre à jour au niveau des règles, des profils et des signatures.

## Méthodes d'apprentissage profond

L'apprentissage profond (en anglais deep learning) est une catégorie bien distincte d'apprentissage automatique. Plusieurs couches de traitement de l'information sont utilisées de manière structurée pour améliorer l'apprentissage automatique non supervisé, l'analyse de patterns ou encore la classification. L'utilisation d'apprentissage profond permet de construire des modèles de classification très fiables sur la base de données d’entraînement incomplètes.
Afin d'implémenter un système de détection d'anomalies au sein d'un réseau fiable en utilisant de l'apprentissage profond, deux contraintes se posent par rapport au système et à son environnement. La première contrainte est que le système utilisant l'apprentissage profond doit définir très concrètement les caractéristiques des données anormales (représentant une menace pour le réseau). Sur la base de ces caractéristiques, un mécanisme de classification pourra être mis en place pour faire un tri entre le trafic réseau normal et le trafic suspect. Cette classification repose en grande partie sur la distance calculée entre les différentes données et celles-ci doivent donc être normalisées de façon que la distance soit consistance entre toutes les données. La seconde contrainte est que, dès lors qu'il y a de l'apprentissage non supervisé, le système d'apprentissage doit se méfier de "l'empoisonnement de normalité" qui peut être mis en place pour faire passer des attaques au travers du système. L'empoisonnement peut être causé quand des paquets analysés avec en apparence du trafic normal contiennent du trafic anormal caché ou quand un attaquant modifie sciemment la façon dont le système de détection analyse le réseau en envoyant énormément de paquets ou en manipulant certaines informations.
Les systèmes de détection reposant sur de l'apprentissage profond sont capables d'analyser de manière fiable des données réseaux en profondeur, d'identifier et de remonter très rapidement des menaces potentielles. Néanmoins, la fiabilité de détection dépend très fortement de l'ensemble de données que le système reçoit : il est donc important d'enlever tout "bruit" des données.

## Comparaison des méthodes

Chaque méthode a ses propres avantages et inconvénients; finalement, il n'y a pas un modèle précis qui produit les meilleurs résultats.
Même s'il est difficile de comparer les méthodes entre elles, il est possible de comparer les techniques au sein d'une même méthode. La comparaison ci-dessous utilise l'ensemble de données KDD Cup 1999 (ensemble de données constitué de 41 champs et labellisé avec le type d'attaque appartenant à quatre grandes classes : DOS, U2R, R2L et PROBE).
Comparaison de techniques de classification :
| Groupe | Technique | Correctement classifié | Taux de vrai positif | Taux de faux positif |
| Rule Based | Decision Table | 99,757 | 0,998 | 0,001 |
| Rule Based | ZeroR | 56,838 | 0,568 | 0,568 |
| Rule Based | OneR | 98,122 | 0,981 | 0,005 |
| Rule Based | PART | 99,970 | 1 | 0 |
| Bayes Rule | BayesNet | 99,670 | 0,997 | 0 |
| Bayes Rule | NaiveBayes | 92,748 | 0,927 | 0 |
| Fonctions | MultiLayerPerceptron | 98,75 | 0,988 | 0,004 |
| Fonctions | SMO | 99,552 | 0,996 | 0,001 |
| Fonctions | Simple Logistic | 99,941 | 0,999 | 0 |
| Lazy Learners | IBk | 99,941 | 0,999 | 0 |
| Lazy Learners | Kstar | 99,904 | 0,999 | 0 |
| Lazy Learners | LWL | 98,261 | 0,983 | 0,005 |
| Arbre | DecisionStump | 78,537 | 0,785 | 0,061 |
| Arbre | J48 | 99,960 | 1 | 0 |
| Divers | InputMappedClassifier | 56,838 | 0,568 | 0,568 |

### Apprentissage supervisé et non-supervisé

Une comparaison à haut niveau peut être faite en fonction du type d'apprentissage automatique utilisé : apprentissage supervisé ou apprentissage non supervisé. Une différence majeure entre ces deux catégories réside dans la façon d’interagir avec les données à traiter. Dans un système de détection utilisant un apprentissage supervisé, le données d’entraînement auront un "résultat" connu que le système pourra utiliser pour affiner son modèle de détection. Un système avec apprentissage non supervisé n'aura pas cette possibilité, car les données utilisées n'auront pas d'indication quant au résultat à obtenir. Par exemple, un système de détection de paquets réseau suspects en apprentissage supervisé aura été entraîné auparavant avec une liste de paquets réseau et un indicateur de dangerosité pour chaque paquet, tandis qu'un système non supervisé aura seulement la liste des paquets à disposition.
Les systèmes de détection ayant comme base l'apprentissage automatique supervisé ou semi-supervisé nécessitent un ensemble important de données d’entraînement sur le réseau (un jeu de données avec des activités réseau) pour affiner leur modèle de détection d'anomalies. Deux difficultés sont liées à l'utilisation de données d’entraînement pour la détection d'activités inhabituelles. La première difficulté est que le jeu de données doit absolument être exempt d'attaques réseau oute attaque qui se serait glissée dans les données d’entraînement sera perçu par le système de détection comme un comportement normal lors de se phase d'apprentissage. Lors de son utilisation en environnement réel, le système de détection ne pourra donc pas détecter ces attaques et les signaler comme étant une menace pour le réseau. La seconde difficulté est que le système de détection réagit mal aux changements au sein du réseau. Étant donné que l'apprentissage se fait sur un jeu de données contenant des activités réseau qui reflète un certain modèle (topologie, services mis à disposition, etc.), tout changement légitime pourra être perçu comme un comportement anormal et le système de détection remontera une erreur. Ceci a pour conséquence de causer un haut nombre de faux positifs lors d'un changement sur le réseau.
Un contrepartie, les systèmes de détection basés sur de l'apprentissage non supervisé peuvent parfois être moins précis ou retourner bien plus de faux positifs que certaines méthodes supervisées (basées sur des techniques de classification, par exemple). Ceci est dû au fait que les méthodes non supervisées n'ont pas accumulé de "logique réseau" au préalable avec des phases d'entraînement de leur modèle.
Pour pallier les désavantages de chaque type d'apprentissage automatique et profiter de leurs forces respectives pour la détection d'intrusion, il est possible de les combiner au sein d'une architecture en deux couches. La première couche est basée sur un algorithme non supervisé qui effectue une première identifications des paquets réseau en se basant sur la charge utile du paquet (en anglais payload). Une fois le contenu du paquet identifié, une seconde couche peut alors identifier les anomalies, en se basant sur les entêtes du paquet et l'identification de la première couche. L'identification des anomalies peut être réalisée avec un modèle qui a été mis au point avec un apprentissage supervisé.

### Apprentissage superficiel et profond

Un désavantage majeur des techniques de détection basées sur de l'apprentissage superficiel, comparé à celles basées sur de l'apprentissage profond, est le manque d'adaptation face aux changements. Bien que l'apprentissage superficiel propose déjà une alternative plus fiable que la détection par signatures pour s'adapter au polymorphisme de menaces et des intrusions réseau, l'approche ne permet tout de même pas d'explorer de manière aussi profonde et complexe les données réseau que les techniques d'apprentissage profond. L'approche utilisant l'apprentissage superficiel supervisé nécessite des ensembles de données réseau de plus en plus important pour pouvoir être entraîné aux attaques réseau actuelles; l’entraînement d'un modèle supervisé fiable devient donc très lourd avec la variété d'attaques qui circulent actuellement.
L'apprentissage profond offre plusieurs avantages comparé aux méthodes basées sur de l'apprentissage superficiel. En cas de changement d'environnement (topologie réseau, par exemple), le mécanisme d'apprentissage profond permet de s'adapter très vite pour former un nouveau modèle et remonter le moins de faux positifs possibles. Ce type de système de détection peut construire des modèles précis, malgré l'absence de données labellisées. Enfin, la détection d'intrusion est plus fiable avec moins de faux positifs.

## Évolutions et défis pour les systèmes de détection

Le domaine de recherche concernant la détection d'intrusion réseau avec de l'apprentissage automatique a fait d'énormes progrès depuis l'avènement des technologies liées autour de l'apprentissage superficiel et profond. Néanmoins, de nombreux progrès peuvent encore être réalisés pour améliorer ces systèmes sur trois axes complémentaires:
* la fiabilité des mesures remontées en évitant de remonter trop de faux positifs ;
* la complétude en détectant un maximum d'attaques et intrusions (déjà répertoriées et inconnues) ;
* la performance de la détection en temps réel dans des environnements de production.
Les problèmes actuels et défis majeurs à venir pour les systèmes de détection basés sur de l'apprentissage automatique sont nombreux. La capture de paquets réseau doit - idéalement - ne perdre aucune information et effectuer un traitement sur tout l'ensemble de données réseau. Dépendant de l'apprentissage utilisé, toute perte d'information peut avoir des conséquences négatives pour la suite de la détection, étant donné que le modèle de détection aura peut être manqué des informations cruciales pour entraîner son modèle. Aussi la plupart des systèmes de détection sont très dépendants de l'environnement dans lequel ils tournent (en fonction de l'entreprise, la topologie et criticité réseau, etc.). Idéalement, un système de détection devrait être détaché de son environnement et pourrait tourner dans n'importe quelles conditions. Bien que les méthodes basées sur l'apprentissage non supervisé savent s'adapter - dans une certaine mesure - au polymorphisme des attaques réseau, il y a encore des progrès à faire sur le plan de la reconnaissance d'intrusions inconnues. Également, l'adaptation aux changements, qui existe actuellement dans différentes solutions de systèmes de détection, doit gagner en vitesse pour mettre le modèle de détection rapidement à jour en cas de changement. Enfin, il y a un réel besoin pour des ensembles de données régulièrement mis à jour avec les dernières attaques réseau. Ces ensembles permettent d'améliorer significativement les solutions de détection existantes et d'auditer de manière plus fiable les systèmes de détection d'intrusion réseau basés sur de l'apprentissage automatique.