Comment choisir la bonne approche Machine Learning pour la détection d’anomalies en cybersécurité ?

Introduction  


L’intelligence artificielle (IA), et plus particulièrement le machine learning (et deep learning) sont utilisés pour la détection de DGAs (noms de domaines générés par des malwares pour la communication C&C), la détection de powershells malveillants, et la détection d’URLs de phishing. Un des gros avantages de cette approche est de pouvoir intégrer un modèle pré-entraîné dans nos différentes appliances. Cependant, cette approche « classique » du machine learning n’est possible que si l’on dispose d’un dataset (ensemble d’exemples) labelisé et idéalement équilibré (c’est à dire contenant une part à peu près égale d’exemples des différents labels, par exemple sain et malveillant pour une classification binaire).

Dans le cadre d’attaques / intrusions dans les réseaux, cette approche n’est pas toujours la plus adaptée pour la détection. En particulier lorsqu’on analyse les flux réseaux reconstruits par la sonde. Dans ce cas, une approche en termes de détection d’anomalies, pour laquelle il existe des algorithmes de machine learning spécifique, est plus adaptée.

 

Qu’est-ce que la détection d’anomalies ?


Par définition, une anomalie présente deux caractéristiques principales : il s’agit d’évènements rares et qui diffèrent significativement de la majorité des autres évènements. Dans le cadre de la détection d’anomalies sur des flux réseaux, il s’agira donc d’évènements (sessions DNS, http,. ) dont les caractéristiques sont très différentes de ce que l’on observe habituellement (trafic légitime). À ce niveau, il est important de préciser qu’une anomalie ne signifie pas nécessairement qu’il s’agit d’une intrusion ou d’une attaque. Il peut cependant être intéressant pour l’analyste de lui remonter toute information relative à un comportement anormal sur son réseau. Inversement, nous considérons ici des attaques qui vont correspondre aux caractéristiques qu’on attend d’une anomalie, et qui seront par conséquent détectées.

Plusieurs approches sont possibles lorsqu’on construit un modèle basé sur la détection d’anomalies, les deux principales étant :

  • L’approche non supervisée (outlier detection en Anglais) : dans ce cas, le dataset utilisé pour l’entraînement comprend une grande partie d’échantillons qui correspondent à un comportement normal. On note que contrairement au machine learning « classique », ici le dataset est fortement déséquilibré.

 

  • L’approche semi-supervisée (novelty detection en Anglais) : le dataset pour l’apprentissage doit être composé uniquement d’échantillons « normaux ». On notera ici que le terme « semi-supervisé » a un sens différent de celui du machine learning.

 

Un des gros avantages de la détection d’anomalies est qu’on va pouvoir adapter l’entraînement aux données spécifiques des utilisateurs.
Dans le premier cas (approche non supervisée), le modèle sera capable, après l’entraînement, de remonter d’éventuelles anomalies. Dans le deuxième cas (approche semi-supervisée), on fait l’hypothèse que la partie du trafic réseau utilisée pour l’entraînement est saine. Dans les deux cas, et suivant la quantité de trafic disponible, l’entraînement du modèle nécessitera  quelques heures ou quelques jours de données. Néanmoins,  cette adaptation de l’entraînement présente des difficultés et un travail d’intégration plus important : outre l’entraînement qu’on réalise avec des données extraites spécifiques des utilisateurs finaux, il faut par exemple prévoir de ré-entraîner régulièrement le modèle si nécessaire (suit à un changement d’infrastructure réseau par exemple, il se peut que le trafic normal change significativement).

Pour ces deux approches, il existe des algorithmes de machine learning spécifiques, basés ou non sur des réseaux de neurones profonds (deep learning).
Pour l’approche non supervisée, on citera par exemple l’algorithme Isolation forest, à base d’arbres de décisions . Cet algorithme est basé sur le principe suivant : une observation correspondant à une anomalie nécessite un chemin court dans un arbre de décision (i.e : un nombre de séparation faible) pour être isolée.
Pour l’approche semi-supervisée, les deux algorithmes les plus connus sont One class SVM et l’auto-encodeur. Un auto-encoder est basé sur des réseaux de neurones : une partie encodeur prend les données initiales en entrée et en génère une version « compressée », dans un espace (appelé espace latent), de dimension plus faible que l’espace initial. La partie décodeur prend en entrée la version « compressée » pour essayer de reconstruire les données dans l’espace de départ. Les autoencodeurs peuvent être utilisés dans le cadre de la détection d’anomalies de la manière suivante : un évènement va être considéré comme une anomalie si la partie decodeur a des « difficultés » pour reconstituer les données initiales depuis l’espace latent.

Dans tous les cas, un modèle de détection d’anomalies fournit un score d’anomalie en sortie (d’autant plus élevé que l’anomalie est « importante »). Une fois l’entraînement terminé, il est nécessaire de choisir le bon seuil de score pour lequel on va considérer qu’un nouvel échantillon à analyser sera considéré comme une anomalie ou pas. Cette étape représente une difficulté supplémentaire à l’intégration de ce type de modèles, mais permet d’avoir une certaine souplesse : en effet, dans un contexte de cybersécurité, on va privilégier un nombre de faux positifs faible (quitte à être un peu moins efficace en détection), et donc un seuil de score élevé.

Exemples d’applications de la détection d’anomalies dans une approche Network Detection and Response (NDR)


Dans le cadre de la solution NDR AIONIQ, les données à analyser qui proviennent de la sonde sont essentiellement des métadonnées de flux réseaux reconstruits. Nous avons développé plusieurs modèles de détection d’attaques avec cette approche. Nous présentons ici deux des modèles développés, qui seront intégrés dans une future version de AIONIQ.

 

Un premier modèle concerne la détection de ransomwares. En effet, la plupart des ransomwares ne vont pas se contenter de chiffrer des fichiers en local sur un poste infecté, mais vont essayer de chiffrer les fichiers disponibles via les partages réseaux. Dans beaucoup de cas, ces partages réseaux utilisent le protocole SMB. On s’attend à ce que les sessions SMB provenant d’un ransomware ait un comportement très différent des sessions SMB normales (en terme par exemple de nombre de commandes de lecture et d’écritures de fichiers), ce qui correspond parfaitement à la définition que nous avons donnée d’une anomalie. Nous avons ainsi développé un modèle de détection de ransomwares basé sur ce principe, sur une base semi-supervisée : le modèle « apprend » le trafic réseau normal. On peut ensuite utiliser ce modèle pour effectuer des prédictions, après avoir judicieusement choisi une valeur de seuil pour le score d’anomalie de manière à avoir un taux de faux positifs très faible. Les performances du modèle en termes de détection ont pu être testées en rejouant du trafic SMB généré par des ransomwares.

 

Nous avons aussi développé un modèle de détection de Kerberoasting, avec cette fois une approche non supervisée. En effet, cette attaque est caractérisée en premier lieu par un nombre important de requêtes pour des tickets de Services Kerberos (TGS) associés à des services distincts sur un intervalle court de temps. Ainsi, on s’attend à voir un nombre important de requêtes TGS associé à un nombre important de services distincts c’est-à-dire un usage qui diffère de celui d’un utilisateur lambda. Ce dernier ne pouvant pas requêter autant de services « à la main » en si peu de temps.

 

Néanmoins, on peut dans certains cas d’usage trouver des machines configurées pour requêter automatiquement un nombre important de services dans le cadre de leur activité normale. Ces machines ne diffèreront pas du véritable kerberoasting en termes de variables caractéristiques (features), on ne peut donc pas s’assurer du fait que les données sur lesquelles sera entraîné notre modèle ne contiennent aucune anomalie. Dès lors l’approche non-supervisée parait la plus adaptée pour répondre à la problématique de détection. Le modèle apprend donc sur des données « mixtes ». Le modèle a donc été pensé pour associer des scores plus élevés aux véritables campagnes de kerberoasting qu’aux anomalies proche du kerberoasting que l’on peut trouver dans une infrastructure.

 

Les deux modèles de détection ont pu être testés sur du flux réseau réel : dans un premier temps pour réaliser l’entraînement, et ensuite pour les prédictions. Enfin, nous avons testé les deux modèles sur du flux provenant d’attaques afin de s’assurer de leur bonne capacité de détection. Pour cela, nous avons utilisé pour le premier modèle des captures réseau (PCAPS) provenant de l’exécution de ransomwares, et pour le deuxième modèle sur du flux de kerberoasting provenant d’outils utilisés par les attaquants pour effectuer l’attaque.

 

Auteur : Equipe Machine Learning, Gatewatcher