Utilisation de l'intelligence artificielle pour la détection de cyberattaques : retour d'expérience
À l’image des récentes cyberattaques qui ont paralysé plusieurs centres hospitaliers ces dernières semaines, la cybercriminalité est en pleine recrudescence. L’objectif des hackers est d’obtenir des informations personnelles afin de les exploiter ou de les revendre. L’intelligence artificielle change la donne en matière de cybersécurité en analysant des quantités massives de données. Cet article présente une utilisation de ces méthodes capables d’analyser des millions d’événements informatiques (logs) pour détecter les intrusions dans un réseau informatique.
Contexte et objectif
Un grand groupe industriel a subi une cyberattaque qui a permis aux hackers de s’introduire sur le réseau informatique et d’installer un malware de type ransomware (Sodinokibi) sur de nombreux postes de travail. Ce logiciel chiffre des données personnelles, puis demande à leur propriétaire d’envoyer de l’argent en échange de la clé qui permettra de les déchiffrer. La société impactée a sollicité OpenStudio afin de comprendre comment les hackers ont réussi à s’infiltrer dans leur réseau informatique.
L’entreprise nous a fourni des millions de logs (journaux d’événements) provenant de leur antivirus Kaspersky (800 000 logs) et de leur pare-feu Fortigate 300 afin qu’OpenStudio les analyse. Au total, nous avions 8 fichiers d’environ un million de logs avec une centaine de variables les caractérisants. En effet, traiter « à la main » ces immenses volumes de données, prendrait trop de temps. Toute l’équipe des Data Scientists s’est alors mobilisée durant 3 jours sous la forme d’un Hackathon pour traiter ces millions de logs. Notre objectif : analyser ces logs post-attaque pour retrouver les points d’entrée dans le système et retracer l’attaque.
Solution apportée
N’ayant pas d’idées précises sur la forme de cette attaque au sein des logs, l’intelligence artificielle s’est révélée être un outil efficace pour détecter des événements anormaux et inhabituels. Ainsi, nous avons utilisé des modèles non supervisés afin de découvrir des structures sous-jacentes à des données non étiquetées. Ces méthodes ont permis de sélectionner des logs suspects qui devront être analysés par les experts du système informatique de l’entreprise. En effet, cela peut prendre la forme d’outlier ou bien de groupes de logs ayant des caractéristiques différentes de la majorité des logs.
Au sein de la littérature scientifique, de nombreuses publications prouvent l’efficacité des méthodes d’intelligence artificielle dans la détection d’intrusion malveillante au sein des systèmes informatiques. L’algorithme des k-means est le plus populaire dans ce contexte de cyberattaques. En effet, (Münz et al.) explorent des données de réseau pour détecter des anomalies basées sur l’algorithme des k-means. Ainsi, les données d’entraînement contenant des logs non étiquetés sont séparées en grappes de logs normaux et anormaux. De plus, cette méthode a pu être automatisée pour détecter, en temps réel, les activités intrusives sur un système informatique. (Kumari et al. & Gu et al.)
Détection de groupe de logs avec les K-means
Les millions de logs ont la forme de variable textuelle et catégorielle pour la plupart. Un prétraitement a été nécessaire pour transformer et exploiter ces données aisément. La liste des prétraitements est énoncée ici :
- Le remplacement des données manquantes par une valeur afin de considérer cette information comme une modalité à part entière.
- L’encodage de ces variables catégorielles en données numériques. Ainsi, chaque modalité a un nombre attribué.
- La mise à l’échelle des données permet de diminuer l’importance ou la sous-importance d’une modalité due à l’attribution d’un nombre quelconque à l’étape précédente.
L’algorithme des K-Means est une méthode de partitionnement des données permettant de diviser les logs en K groupes souvent appelés clusters. Mathématiquement, les K-Means regroupent les données en essayant de séparer les échantillons en n groupes d’égale variance, minimisant le critère de l’inertie ou somme des carrés intra-cluster définie par la fonction suivante :
\sum_{i=0}^{n} \min _{\mu_{j} \in C}\left(\left\|x_{i}-\mu_{j}\right\|^{2}\right)
L’algorithme K-Means divise un ensemble de n échantillons x dans K clusters disjoints C, chacun décrit par la moyenne \mu_{j} des échantillons du cluster. Les moyennes sont communément appelées les centroïdes de clusters.
Pour choisir le nombre de clusters à retenir, plusieurs méthodes existent dont la plus populaire est la méthode du coude. Elle examine le pourcentage de variance expliqué en fonction du nombre de clusters. Il faut choisir un certain nombre de clusters afin que l’ajout d’un autre cluster ne donne pas une meilleure modélisation des données. Plus précisément, lorsque l’on trace le pourcentage de variance expliqué par les clusters par rapport au nombre de clusters, les premiers clusters ajoutent beaucoup d’informations (expliquent beaucoup de variances), mais à un moment donné, le gain marginal diminue, donnant un angle à la courbe. Le nombre de clusters est choisi à ce stade, d’où le « critère du coude ».
Courbe de la variance expliquée selon le nombre de cluster
Dans ce cas, l’algorithme des K-Means crée deux clusters que nous pouvons visualiser par la figure suivante :
Ainsi, l’algorithme des K-means permet de mettre en lumière des groupes de logs suspects. L’analyse des logs par des experts de la cybersécurité, ou du système d’information en question, permettrait de statuer sur leur dangerosité. L’intelligence artificielle permet ici de cibler des comportements anormaux dans le but d’alerter les personnes en charge de la sécurité informatique. Pour connaître les caractéristiques de ces deux clusters, nous pouvons utiliser la méthode d’intelligence artificielle des Random Forest.
Caractérisation des clusters avec les Random Forest
La première étape consiste à regrouper les catégories de clusters (résultats des K-means) avec l’ensemble des variables d’entraînement du modèle. Cette nouvelle base de données étiquetée permet de réaliser un apprentissage supervisé des clusters. La méthode des forêts d’arbres décisionnels identifie les variables qui discriminent les clusters créés. En effet, les variables qui se trouvent fréquemment dans les nœuds des arbres de décisions seront les variables discriminantes. Dans la figure suivante, nous présentons un exemple d’un arbre de décisions. Ici, la variable_11 qui discrimine parfaitement les deux clusters créés par des K-means.
Exemple d’un arbre de décision
Dans cet exemple, la variable Variable_11 caractérise bien chaque cluster. Pour une valeur de Variable_11 inférieurs ou égale à 20,641, alors le log appartiendra au cluster1 et inversement. La fonction de Gini mesure avec quelle fréquence un élément aléatoire de l’ensemble serait mal classé si son étiquette était choisie aléatoirement, selon la distribution des étiquettes dans le sous-ensemble.
Pour déterminer l’ensemble des variables discriminantes, l’algorithme des forêts d’arbres décisionnels effectue un apprentissage sur plusieurs arbres de décision. Ainsi, nous pourrons connaître les variables les plus discriminantes en simulant plusieurs centaines arbres.
RandomForestClassifer fournit l’importance des variables en calculant le nombre d’échantillons qui atteignent le nœud (et donc la variable en question) divisé par le nombre total d’échantillons. Cette valeur d’importance nous permet d’identifier les variables exogènes les plus discriminantes.
Ces travaux permettent d’identifier l’influence des variables 1, 4 et 5 principalement, sur la création de clusters et donc de logs atypiques. En pratique, lorsque le nombre de variables est très important, cette méthode permet d’identifier rapidement les variables qui caractérisent chaque cluster. Ainsi, l’étude de ces variables permettra de connaître les valeurs correspondant aux clusters de logs suspects par exemple.
Conclusion et perspectives
Les modèles de type non supervisé, comme les K-means, peuvent détecter automatiquement des logs suspects au sein de millions de données. Ainsi, un système d’intelligence artificielle peut fournir un certain nombre de logs douteux qui pourront être analysés par un expert métier. De plus, l’apprentissage supervisé de ces logs dorénavant étiquetés, permet de mieux caractériser ces clusters suspects à l’aide des valeurs de certaines variables.
Pour la détection d’attaque connue, un deuxième type de modèle est efficace. Les algorithmes supervisés peuvent reconnaître le caractère agressif ou non d’un ensemble de logs. Ces modèles nécessitent de constituer une base de données de logs étiquetés. La construction de cette base est réalisable en simulant de possibles attaques au sein d’un système informatique ou en récupérant des logs d’attaques avérées. Ce sont ces types de modèles que nous utilisons dans la détection des fraudes.
L’automatisation de ces outils d’intelligence artificielle permettrait de surveiller en temps quasi-réel les événements pour signaler les comportements anormaux. Des outils, comme Elasticsearch, pourront récupérer automatiquement des logs et appliquer des outils d’intelligence artificielle, pour la détection d’événements suspects.
En aucun cas, une méthode d’intelligence artificielle ne pourra garantir la sécurité des systèmes. Cependant, un certain nombre d’alertes fondées sur l’intelligence artificielle peuvent améliorer drastiquement l’efficacité des services de sécurité informatique.
Découvrez la présentation vidéo sur l’utilisation de l’IA pour détecter un ransomware dans les logs d’un industriel. Version française issue de la conférence ICAIIS :
Retrouvez cet article dans notre livre « Intelligence Artificielle : La Révolution de l’Industrie 4.0 » disponible en version numérique et papier.
Bibliographie
Gu, Y., Li, K., Guo, Z., & Wang, Y. (2019). Semi-Supervised K-Means DDoS Detection Method Using Hybrid Feature Selection Algorithm. IEEE Access, 7, 64351‑64365. https://doi.org/10.1109/ACCESS.2019.2917532
Kumari, R., Sheetanshu, Singh, M. K., Jha, R., & Singh, N. K. (2016). Anomaly detection in network traffic using K-mean clustering. 2016 3rd International Conference on Recent Advances in Information Technology (RAIT), 387‑393. https://doi.org/10.1109/RAIT.2016.7507933
Münz, G., Li, S., & Carle, G. (2007). Traffic Anomaly Detection Using K-Means Clustering https://www.semanticscholar.org/paper/Traffic-Anomaly-Detection-Using-K-Means-Clustering-M%C3%BCnz-Li/634e2f1a20755e7ab18e8e8094f48e140a32dacd