Aider l’Intelligence Artificielle à détecter les malwares

Outil de cybersécurité en cours de conception au Centre Inria de l’Université de Rennes, Baguette propose une façon innovante d’appréhender les traces d’exécution laissées par un malware. En construisant un modèle de signatures dynamiques où toutes les informations sont capturées dans un graphe, ce prototype de recherche va faciliter la lecture des événements par les experts, mais aussi rendre possible l’analyse automatique à l’aide d’un modèle d’IA. À la clé : la détection du malware dès qu’il commence à s’exécuter.
© Inria / Vincent Raulin

Classiquement, pour repérer l’intrusion d’un malware, les anti-virus passent le code des fichiers exécutables à la loupe. Dans ces milliers de lignes, ils cherchent des bribes d’instructions caractéristiques des logiciels malveillants. Pour cela, ils doivent maintenir à jour une bibliothèque de ‘signatures’ de tous les malwares courant le vaste monde. Mais l’attaque s’est raffinée. Aujourd’hui, des bots savent produire automatiquement des variants de malware à la signature encore inconnue. L’analyse statique ne suffit donc plus.

Pour offrir un échelon supplémentaire de sécurité, il faut aussi s’intéresser aux multiples événements qui se produisent sur les machines : les accès aux fichiers, les envois de données sur le réseau… Des plateformes d’analyse dynamiques existent pour collecter toutes ces traces d’exécution sur les systèmes. Mais la masse d’information récupérée demeure peu intelligible. Difficile de trouver l’aiguille dans la botte de foin. Et c’est là que l’outil Baguette intervient.

Les expériences sont conduites au Laboratoire de haute sécurité (LHS) de Rennes. Les scientifiques lancent tout d’abord un malware sur un ordinateur cobaye, puis récupèrent l’intégralité des traces d’exécution. “Baguette va ensuite prendre ce rapport pour synthétiser à très haut niveau toutes les informations contenues, explique Vincent Raulin qui travaille sur le projet dans le cadre de sa thèse de doctorat au sein de Cidre, une équipe de recherche en cybersécurité*. Le but est de faire apparaître, sous forme de graphe, les liens qui peuvent exister entre différentes informations. Car pour débusquer un malware, il est parfois important de pouvoir corréler deux événements. Si un logiciel est en train de lire des données d’une part et qu’au même moment, il envoie des informations sur le réseau, alors le système subit peut-être une attaque. Mais ces liens restent souvent difficiles à repérer car ils concernent des données de nature différente, très hétérogènes, éparses et, de surcroît, présentes en très grande quantité.

Un graphe pour révéler des liens

©Inria / Vincent Raulin
Zoom sur un comportement spécifique des ransomwares : le chiffrement des fichiers personnels

À l’aide de graphes, Baguette va faciliter la mise en évidence de ces liens révélateurs. Exemple ? “On peut définir un pattern, un motif, pour s’intéresser au chiffrement. Dans le graphe, il suffit d’écrire qu’un sommet de type fichier est lié à un sommet de type données avec deux conditions. La première : qu’il y ait une forte entropie dans les données. Autrement dit, que les suites de caractères soient très variées, donc que ce n’est pas du texte, mais du chiffrement ou de la compression. La seconde : que l’on ne parvienne pas à identifier le type de fichier et donc, qu’il ne s’agit pas d’une archive compressée. Si l’on arrive à repérer ce schéma qui contient simplement deux sommets et quelques conditions dans un graphe d’exécution, alors on arrive à dire que ce fichier a été chiffré. Un ransomware est donc très probablement à l’œuvre.” Les travaux initiaux explorant cette piste ont donné lieu à une première publication, en 2022, durant la conférence RESSI consacrée à la cybersécurité.

Vers de l’analyse dynamique en temps réel

Une vue globale d’un virus
Chacun des graphiques générés par le projet Baguette représente l’exécution complète (« globale ») d’un échantillon d’un certain type de logiciel malveillant. Par exemple, ce graphique représente tout ce qui a été observé lors de l’exécution d’un échantillon de virus.
Exemples de signatures
Voici trois exemples zoomés de signatures de logiciels malveillants.
Signatures de logiciels malveillants
Bien que le travail d’apprentissage des signatures dynamiques en soit encore à ses débuts, voici un résultat préliminaire. Voici quelques-unes des signatures dynamiques qui ont été extraites de certains logiciels malveillants.

Le principe fondateur étant posé, les scientifiques ont entrepris la conception d’un modèle de signature dynamique systématisant ainsi les éventuels liens qui pourraient exister entre de multiples phénomènes d’intérêt. “En termes de comportements, il y a énormément de choses que l’on peut surveiller, précise Alexandre Sanchez, ingénieur de recherche au LHS : les appels systèmes, les événements réseaux, l’utilisation du processeur, la mémoire, la consommation électrique… Les expériences menées dans le laboratoire permettent de confronter le modèle à la réalité terrain pour vérifier dans quelle mesure la présence du malware est ainsi effectivement détectée.” Les chercheurs abordent maintenant l’étape suivante. “Avec le graphe, on organise les données dans une structure parfaitement définie, une sorte de grammaire stricte. Grâce à ces règles très précises, il devient ensuite possible de construire par-dessus le graphe des modèles d’Intelligence Artificielle, explique Vincent Raulin. Les patterns étant très simples à définir, un modèle de machine learning pourrait très bien définir ces patterns lui-même dans un certain but. Par exemple, on pourrait lui demander de nous trouver les 10 motifs les plus caractéristiques d’un jeu de données d’une famille de malware. De cette façon, l’algorithme viendrait apprendre les signatures comportementales de cette famille. En pratique, cela ouvrirait la voie à un anti-virus dynamique effectuant de l’analyse en temps réel sur des données massives. Ce qui faciliterait énormément le travail…

Les commentaires sont clos.