Similarité entre binaires en contexte opérationnel de chasse aux codes malveillants
Publié le lundi 18 août 2025
Etude soutenue par Romain Brault, du laboratoire exploration et recherche en détection de l'ANSSI, le 25 août 2025
Résumé :
Les cyberattaques reposent en grande partie sur des logiciels malveillants, c'est-à-dire des programmes conçus pour porter atteinte à la confidentialité des données (par exemple en espionnant des utilisateurs), à leur intégrité (en modifiant ou falsifiant des informations), ou à leur disponibilité (comme les rançongiciels qui bloquent l'accès aux systèmes ou aux fichiers). Chaque jour, un très grand nombre de nouveaux programmes de ce type apparaissent. La plupart ne sont pas entièrement nouveaux : ils sont souvent issus de codes existants, légèrement modifiés pour contourner les mécanismes de détection. Dans ce contexte, analyser chaque programme de manière isolée devient irréaliste. Ce projet part donc d'une idée centrale : repérer automatiquement les ressemblances entre programmes afin de structurer l'analyse, comprendre les liens entre attaques et suivre l'évolution des menaces dans le temps. En s'appuyant uniquement sur l'analyse statique (sans jamais exécuter les programmes) il vise à fournir une vision d'ensemble indispensable pour identifier des campagnes coordonnées, anticiper l'apparition de nouvelles menaces et renforcer les capacités d'analyse après incident.
Les travaux menés se sont articulés autour de deux usages complémentaires de la similarité entre programmes, qui reposent sur les mêmes outils mais à des niveaux de granularité différents. Le premier usage concerne le suivi des familles de logiciels malveillants à grande échelle. Il s'agit de comparer des programmes pris dans leur ensemble --- leur structure globale, leurs ressources, les bibliothèques utilisées, les traces laissées par les outils de compilation ou certaines techniques d'obfuscation --- afin de regrouper automatiquement des milliers de fichiers similaires. Cette approche permet de suivre l'évolution de menaces dans le temps, de relier entre elles différentes campagnes et de détecter rapidement l'émergence de nouvelles variantes. Le second usage concerne l'aide au reverse engineering, c'est-à-dire l'analyse approfondie du fonctionnement interne des programmes. Dans ce cas, la similarité est appliquée de manière plus ciblée, à un niveau plus fin : celui des fonctions, des blocs de code ou des algorithmes réutilisés. Elle permet par exemple de reconnaître des bibliothèques communes, des mécanismes techniques déjà observés ou des méthodes d’obfuscation caractéristiques.
Pour soutenir ces deux usages, le projet a mobilisé des compétences variées : reproduction rigoureuse de travaux scientifiques de référence en intelligence artificielle, mise en évidence de leurs limites dans un contexte réel et évolutif, adaptation et modernisation d'outils d'extraction d'informations à partir de programmes, et conception d'expériences reproduisant l'état de l'art du domaine et permettant d'évaluer la qualité des regroupements obtenus. Un extracteur de caractéristiques existant a notamment été repris et enrichi afin de mieux représenter les programmes sous une forme exploitable par des algorithmes automatiques. Ces travaux ont été menés en interaction étroite avec des équipes opérationnelles, illustrant la complémentarité entre recherche, ingénierie logicielle et expertise terrain.
Ce projet met en évidence trois enseignements majeurs. Premièrement, face à des menaces en constante évolution, il est indispensable de dépasser les outils reposant uniquement sur des catégories fixes : la similarité constitue un levier essentiel pour structurer l'analyse et s'adapter à l'inconnu. Deuxièmement, une même base méthodologique peut servir des objectifs différents, du suivi de masse des menaces jusqu'à l'analyse fine du code, simplement en changeant l'échelle d'observation. Enfin, ces travaux s'inscrivent dans une vision plus large de capitalisation et d'organisation des connaissances en cybersécurité : en reliant automatiquement les informations issues de milliers de programmes analysés au fil du temps, ils contribuent à construire une mémoire collective des attaques passées. À plus long terme, l'émergence de modèles de fondation en intelligence artificielle (comparables à ChatGPT mais appliqués aux programmes informatiques) et leur adaptation fine à des données spécialisées pourraient renforcer encore cette capacité. En aidant à relier, structurer et interpréter l'information, ces approches offrent des perspectives prometteuses pour mieux comprendre les campagnes coordonnées, améliorer l'analyse après incident et anticiper les menaces de demain.