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

Un article de Wikipédia, l'encyclopédie libre.

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[modifier | modifier le code]

Limites de la détection avec signatures[modifier | modifier le code]

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[1]. 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[2]. 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[2]. 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[3]. 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)[2].

Améliorations avec l'apprentissage automatique[modifier | modifier le code]

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[4]. 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[5].

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[6]. 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[7]. 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[8]. 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[modifier | modifier le code]

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[9]. 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[10].

Statistique[modifier | modifier le code]

En statistique, on définit une anomalie comme une observation qui est soupçonnée d'être partiellement ou totalement non pertinente[11]. 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[12]. Les secondes sont les techniques non-paramétriques elles ne supposent pas la connaissance de la distribution des données[13].

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[14]. 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[modifier | modifier le code]

N@G[15] (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[16] (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[modifier | modifier le code]

Les approches statistiques présentent de nombreux avantages[17]:

  • 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[17]:

  • 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[modifier | modifier le code]

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[18]
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[modifier | modifier le code]

La classification a pour principe l'identification d'un ensemble à une catégorie à partir d'observations[18]. 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[19]. 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[20]. 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[21],[22],[23],[24],[25],[26].

La classification est soit linéaire ; elle tente de trouver une ligne entre les classes, soit non linéaire[18].

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[27].

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[18].

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[28].

Exemple[modifier | modifier le code]

ADAM[29] (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[modifier | modifier le code]

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[30]:

  • 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[30]:

  • 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[modifier | modifier le code]

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[30]
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[modifier | modifier le code]

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[5].

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[31]. 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[32]:

Avantages et inconvénients[modifier | modifier le code]

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[35]:

  • 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[36]) 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[35]:

  • 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[modifier | modifier le code]

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[37]
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[modifier | modifier le code]

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

Méthodes basées sur les ensembles[modifier | modifier le code]

Le principe de l'apprentissage ensembliste est de combiner plusieurs classificateurs pour surpasser chacun d'entre eux[38],[39],[40],[41],[42].

Il existe trois approches majeures[43],[44]:

  • 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[modifier | modifier le code]

Octopus-IIDS[45] 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[modifier | modifier le code]

Les méthodes à ensemble présentent les avantages suivants[46]:

  • 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[46]:

  • 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[modifier | modifier le code]

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[47]. La méthode hybride exploite donc les caractéristiques de plusieurs approches[48],[49],[50]. Cette hybridation permet d'augmenter les performances des systèmes de détection.

Avantages et inconvénients[modifier | modifier le code]

Les méthodes hybrides présentent les avantages suivants[51]:

  • 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[51]:

  • 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[modifier | modifier le code]

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[52].

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[53]. 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[9].

Comparaison des méthodes[modifier | modifier le code]

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[54].

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)[55].

Comparaison de techniques de classification[56]
Groupe Technique Correctement classifié Taux de vrai positif Taux de faux positif
Rule Based Decision Table 99,757 0,998 0,001
ZeroR 56,838 0,568 0,568
OneR 98,122 0,981 0,005
PART 99,970 1 0
Bayes Rule BayesNet 99,670 0,997 0
NaiveBayes 92,748 0,927 0
Fonctions MultiLayerPerceptron 98,75 0,988 0,004
SMO 99,552 0,996 0,001
Simple Logistic 99,941 0,999 0
Lazy Learners IBk 99,941 0,999 0
Kstar 99,904 0,999 0
LWL 98,261 0,983 0,005
Arbre DecisionStump 78,537 0,785 0,061
J48 99,960 1 0
Divers InputMappedClassifier 56,838 0,568 0,568

Apprentissage supervisé et non-supervisé[modifier | modifier le code]

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[57]. 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[57]. 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[58]. 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[59].

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[60]. 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[modifier | modifier le code]

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[61].

L'apprentissage profond offre plusieurs avantages comparé aux méthodes basées sur de l'apprentissage superficiel[52]. 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[modifier | modifier le code]

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[62]:

  • 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[63]. 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.

Références[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

Général[modifier | modifier le code]

  • (en) Wenke Lee, Salvatore J. Stolfo et Kui W. Mok, « Adaptive Intrusion Detection: A Data Mining Approach », Artificial Intelligence Review, vol. 14, no 6,‎ , p. 533–567 (ISSN 0269-2821 et 1573-7462, DOI 10.1023/A:1006624031083, lire en ligne, consulté le )
  • (en) Shelly Xiaonan Wu et Wolfgang Banzhaf, « The use of computational intelligence in intrusion detection systems: A review », Applied Soft Computing, vol. 10, no 1,‎ , p. 1–35 (DOI 10.1016/j.asoc.2009.06.019, lire en ligne, consulté le )
  • (en) M. H. Bhuyan, D. K. Bhattacharyya et J. K. Kalita, « Network Anomaly Detection: Methods, Systems and Tools », IEEE Communications Surveys Tutorials, vol. 16, no 1,‎ first quarter 2014, p. 303–336 (ISSN 1553-877X, DOI 10.1109/surv.2013.052213.00046, lire en ligne, consulté le )
  • (en) A. L. Buczak et E. Guven, « A Survey of Data Mining and Machine Learning Methods for Cyber Security Intrusion Detection », IEEE Communications Surveys Tutorials, vol. 18, no 2,‎ second quarter 2016, p. 1153–1176 (ISSN 1553-877X, DOI 10.1109/comst.2015.2494502, lire en ligne, consulté le )
  • (en) R. P. Palnaty et A. Rao, « JCADS: Semi-supervised clustering algorithm for network anomaly intrusion detection systems », 2013 15th International Conference on Advanced Computing Technologies (ICACT),‎ , p. 1–5 (DOI 10.1109/icact.2013.6710498, lire en ligne, consulté le )
  • (en) James P. Anderson, « Computer Security Threat Monitoring and Surveillance », Early NIST security papers,‎
  • (en) T. T. T. Nguyen et G. Armitage, « A survey of techniques for internet traffic classification using machine learning », IEEE Communications Surveys Tutorials, vol. 10, no 4,‎ fourth 2008, p. 56–76 (ISSN 1553-877X, DOI 10.1109/surv.2008.080406, lire en ligne, consulté le )

Statistique[modifier | modifier le code]

  • (en) F. J. Anscombe, « Rejection of Outliers », Technometrics, vol. 2, no 2,‎ , p. 123–146 (ISSN 0040-1706, DOI 10.2307/1266540, lire en ligne, consulté le )
  • (en) Eleazar Eskin, « Anomaly Detection over Noisy Data Using Learned Probability Distributions », ACM,‎ (DOI 10.7916/d8c53skf, lire en ligne, consulté le )
  • (en) M J Desforges, P J Jacob et J E Cooper, « Applications of probability density estimation to the detection of abnormal conditions in engineering », Proceedings of the Institution of Mechanical Engineers, Part C: Journal of Mechanical Engineering Science, vol. 212, no 8,‎ , p. 687–703 (DOI 10.1243/0954406981521448, lire en ligne, consulté le )
  • (en) N. Subramanian, Pramod S. Pawar, Mayank Bhatnagar et Nihar S. Khedekar, « Development of a Comprehensive Intrusion Detection System – Challenges and Approaches », Information Systems Security, Springer, Berlin, Heidelberg, lecture Notes in Computer Science,‎ , p. 332–335 (ISBN 9783540307068, DOI 10.1007/11593980_27, lire en ligne, consulté le )
  • (en) Sui Song, Li Ling et C. N. Manikopoulo, « Flow-based Statistical Aggregation Schemes for Network Anomaly Detection », 2006 IEEE International Conference on Networking, Sensing and Control,‎ , p. 786–791 (DOI 10.1109/icnsc.2006.1673246, lire en ligne, consulté le )

Classification[modifier | modifier le code]

  • (en) Chih-Fong Tsai, Yu-Feng Hsu, Chia-Ying Lin et Wei-Yang Lin, « Intrusion detection by machine learning: A review », Expert Systems with Applications, vol. 36, no 10,‎ , p. 11994–12000 (DOI 10.1016/j.eswa.2009.05.029, lire en ligne, consulté le )
  • (en) Hanghang Tong, Chongrong Li, Jingrui He et Jiajian Chen, « Anomaly Internet Network Traffic Detection by Kernel Principle Component Classifier », Advances in Neural Networks – ISNN 2005, Springer, Berlin, Heidelberg, lecture Notes in Computer Science,‎ , p. 476–481 (ISBN 9783540259145, DOI 10.1007/11427469_77, lire en ligne, consulté le )
  • (en) S. R. Gaddam, V. V. Phoha et K. S. Balagani, « K-Means+ID3: A Novel Method for Supervised Anomaly Detection by Cascading K-Means Clustering and ID3 Decision Tree Learning Methods », IEEE Transactions on Knowledge and Data Engineering, vol. 19, no 3,‎ , p. 345–354 (ISSN 1041-4347, DOI 10.1109/tkde.2007.44, lire en ligne, consulté le )
  • (en) Kaustav Das, Jeff Schneider et Daniel B. Neill, « Anomaly Pattern Detection in Categorical Datasets », Proceedings of the 14th ACM SIGKDD International Conference on Knowledge Discovery and Data Mining, ACM, kDD '08,‎ , p. 169–176 (ISBN 9781605581934, DOI 10.1145/1401890.1401915, lire en ligne, consulté le )
  • (en) Wei Lu et Hengjian Tong, « Detecting Network Anomalies Using CUSUM and EM Clustering », Advances in Computation and Intelligence, Springer, Berlin, Heidelberg, lecture Notes in Computer Science,‎ , p. 297–308 (ISBN 9783642048425, DOI 10.1007/978-3-642-04843-2_32, lire en ligne, consulté le )
  • (en) M. A. Qadeer, A. Iqbal, M. Zahid et M. R. Siddiqui, « Network Traffic Analysis and Intrusion Detection Using Packet Sniffer », 2010 Second International Conference on Communication Software and Networks,‎ , p. 313–317 (DOI 10.1109/iccsn.2010.104, lire en ligne, consulté le )
  • (en) Inho Kang, Myong K. Jeong et Dongjoon Kong, « A differentiated one-class classification method with applications to intrusion detection », Expert Systems with Applications, vol. 39, no 4,‎ , p. 3899–3905 (DOI 10.1016/j.eswa.2011.06.033, lire en ligne, consulté le )
  • (en) P. García-Teodoro, J. Díaz-Verdejo, G. Maciá-Fernández et E. Vázquez, « Anomaly-based network intrusion detection: Techniques, systems and challenges », Computers & Security, vol. 28, nos 1-2,‎ , p. 18–28 (DOI 10.1016/j.cose.2008.08.003, lire en ligne, consulté le )
  • (en) Daniel Barbará, Julia Couto, Sushil Jajodia et Ningning Wu, « ADAM: a testbed for exploring the use of data mining in intrusion detection », ACM SIGMOD Record, vol. 30, no 4,‎ , p. 15-24 (DOI 10.1145/604264.604268, lire en ligne, consulté le )

Méthode de partitionnement[modifier | modifier le code]

  • (en) J. Zhang et M. Zulkernine, « Anomaly Based Network Intrusion Detection with Unsupervised Outlier Detection », 2006 IEEE International Conference on Communications, vol. 5,‎ , p. 2388–2393 (DOI 10.1109/icc.2006.255127, lire en ligne, consulté le )
  • (en) M. Bailey, C. Collins, M. Sinda et G. Hu, « Intrusion detection using clustering of network traffic flows », 2017 18th IEEE/ACIS International Conference on Software Engineering, Artificial Intelligence, Networking and Parallel/Distributed Computing (SNPD),‎ , p. 615–620 (DOI 10.1109/snpd.2017.8022786, lire en ligne, consulté le )
  • (en) Leonid Portnoy, Eleazar Eskin et Sal Stolfo, « Intrusion Detection with Unlabeled Data Using Clustering », Proceedings of ACM CSS Workshop on Data Mining Applied to Security,‎ , p. 14
  • (en) R. T. Ng et Jiawei Han, « CLARANS: a method for clustering objects for spatial data mining », IEEE Transactions on Knowledge and Data Engineering, vol. 14, no 5,‎ , p. 1003–1016 (ISSN 1041-4347, DOI 10.1109/tkde.2002.1033770, lire en ligne, consulté le )

Combination learners[modifier | modifier le code]

  • (en) R. Polikar, « Ensemble based systems in decision making », IEEE Circuits and Systems Magazine, vol. 6, no 3,‎ third 2006, p. 21–45 (ISSN 1531-636X, DOI 10.1109/mcas.2006.1688199, lire en ligne, consulté le )
  • (en) Ali Borji, « Combining Heterogeneous Classifiers for Network Intrusion Detection », Advances in Computer Science – ASIAN 2007. Computer and Network Security, Springer, Berlin, Heidelberg, lecture Notes in Computer Science,‎ , p. 254–260 (ISBN 9783540769279, DOI 10.1007/978-3-540-76929-3_24, lire en ligne, consulté le )
  • (en) Giorgio Giacinto, Roberto Perdisci, Mauro Del Rio et Fabio Roli, « Intrusion detection in computer networks by a modular ensemble of one-class classifiers », Information Fusion, vol. 9, no 1,‎ , p. 69–82 (DOI 10.1016/j.inffus.2006.10.002, lire en ligne, consulté le )
  • (en) Lior Rokach, « Ensemble-based classifiers », Artificial Intelligence Review, vol. 33, nos 1-2,‎ , p. 1–39 (ISSN 0269-2821 et 1573-7462, DOI 10.1007/s10462-009-9124-7, lire en ligne, consulté le )
  • (en) K. Noto, C. Brodley et D. Slonim, « Anomaly Detection Using an Ensemble of Feature Models », 2010 IEEE International Conference on Data Mining,‎ , p. 953–958 (DOI 10.1109/icdm.2010.140, lire en ligne, consulté le )
  • (en) P. M. Mafra, V. Moll, J. da Silva Fraga et Altair Olivo Santin, « Octopus-IIDS: An anomaly based intelligent intrusion detection system », The IEEE symposium on Computers and Communications,‎ , p. 405–410 (DOI 10.1109/iscc.2010.5546735, lire en ligne, consulté le )
  • (en) J. Zhang et M. Zulkernine, « A hybrid network intrusion detection technique using random forests », First International Conference on Availability, Reliability and Security (ARES'06),‎ , p. 8 pp.– (DOI 10.1109/ares.2006.7, lire en ligne, consulté le )
  • (en) M. Ali Aydın, A. Halim Zaim et K. Gökhan Ceylan, « A hybrid intrusion detection system design for computer network security », Computers & Electrical Engineering, vol. 35, no 3,‎ , p. 517–526 (DOI 10.1016/j.compeleceng.2008.12.005, lire en ligne, consulté le )
  • (en) Mrutyunjaya Panda, Ajith Abraham et Manas Ranjan Patra, « A Hybrid Intelligent Approach for Network Intrusion Detection », Procedia Engineering, vol. 30,‎ , p. 1–9 (DOI 10.1016/j.proeng.2012.01.827, lire en ligne, consulté le )

Comparaisons[modifier | modifier le code]

  • (en) Stefano Zanero et Sergio M. Savaresi, « Unsupervised Learning Techniques for an Intrusion Detection System », Proceedings of the 2004 ACM Symposium on Applied Computing, ACM, sAC '04,‎ , p. 412–419 (ISBN 1581138121, DOI 10.1145/967900.967988, lire en ligne, consulté le )
  • (en) C. Yin, Y. Zhu, J. Fei et X. He, « A Deep Learning Approach for Intrusion Detection Using Recurrent Neural Networks », IEEE Access, vol. 5,‎ , p. 21954–21961 (DOI 10.1109/access.2017.2762418, lire en ligne, consulté le )
  • (en) B. Dong et X. Wang, « Comparison deep learning method to traditional methods using for network intrusion detection », 2016 8th IEEE International Conference on Communication Software and Networks (ICCSN),‎ , p. 581–585 (DOI 10.1109/iccsn.2016.7586590, lire en ligne, consulté le )
  • (en) R. Vinayakumar, K. P. Soman et P. Poornachandran, « Evaluating effectiveness of shallow and deep networks to intrusion detection system », 2017 International Conference on Advances in Computing, Communications and Informatics (ICACCI),‎ , p. 1282–1289 (DOI 10.1109/icacci.2017.8126018, lire en ligne, consulté le )
  • (en) Yasir Hamid, M. Sugumaran et Ludovic Journaux, « Machine Learning Techniques for Intrusion Detection: A Comparative Analysis », Proceedings of the International Conference on Informatics and Analytics, ACM, iCIA-16,‎ , p. 53:1–53:6 (ISBN 9781450347563, DOI 10.1145/2980258.2980378, lire en ligne, consulté le )
  • Nguyen Thanh Van, Tran Ngoc Thinh et Le Thanh Sach, « An anomaly-based network intrusion detection system using Deep learning », 2017 International Conference on System Science and Engineering (ICSSE),‎ , p. 210–214 (DOI 10.1109/icsse.2017.8030867, lire en ligne, consulté le )
  • P. V. Dinh, T. N. Ngoc, N. Shone et A. MacDermott, « Deep learning combined with de-noising data for network intrusion detection », 2017 21st Asia Pacific Symposium on Intelligent and Evolutionary Systems (IES),‎ , p. 55–60 (DOI 10.1109/iesys.2017.8233561, lire en ligne, consulté le )