Apprentissage automatique appliqué aux systèmes de détection d'intrusion réseauLes 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. ContexteLimites de la détection avec signaturesLes 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 automatiqueAu 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 superficielL'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]. StatistiqueEn 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. ExemplesN@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énientsLes approches statistiques présentent de nombreux avantages[17]:
Mais il existe également des inconvénients[17]:
ImplémentationsLe tableau ci-dessous propose une comparaison entre différentes implémentations de détection d'intrusion réseau qui fonctionnent avec des techniques statistiques.
ClassificationLa 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]. ExempleADAM[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énientsLes 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]:
Bien que ces approches soient populaires, elles présentent les inconvénients suivants[30]:
ImplémentationsLe 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.
Partitionnement de donnéesLe 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énientsLes 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]:
En contrepartie, ces systèmes ont également plusieurs désavantages[35]:
ImplémentationsLe 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.
Combination learnersCette partie présente des méthodes qui utilisent des combinaisons de plusieurs techniques. Méthodes basées sur les ensemblesLe 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]:
ExempleOctopus-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énientsLes méthodes à ensemble présentent les avantages suivants[46]:
Les inconvénients sont les suivants[46]:
Méthodes hybridesBeaucoup 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énientsLes méthodes hybrides présentent les avantages suivants[51]:
Les inconvénients sont les suivants[51]:
Méthodes d'apprentissage profondL'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éthodesChaque 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].
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[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 profondUn 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étectionLe 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]:
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
BibliographieGénéral
Statistique
Classification
Méthode de partitionnement
Combination learners
Comparaisons
Information related to Apprentissage automatique appliqué aux systèmes de détection d'intrusion réseau |