Brevet FR3161777A1 — publié le 20251031

PROCÉDÉ ET SYSTÈME DE CORRÉLATION DE FICHIERS INFORMATIQUES, EN PARTICULIER POUR LA DÉTECTION DE FICHIER INFORMATIQUE MALVEILLANT L’invention concerne un procédé de corrélation entre fichier (102) analysé, avec une base (104) de données de fichiers, caractérisé en ce qu’il comprend une étape (112) d’entraînement d’un modèle (106) d’apprentissage automatique configuré pour obtenir un ensemble de fonctions caractéristiques associées à un fichier, une étape (114) de détermination des fonctions de base du fichier (102) analysé, une étape (116) de vectorisation du fichier (102) analysé, pour obtenir un ensemble de vecteurs associés chacun à au moins une fonction de base du fichier (102) analysé, une étape (118) de traitement des vecteurs de l’ensemble de vecteurs par le modèle d’apprentissage automatique pour à associer à chaque vecteur une fonction caractéristique, une étape (120) de comparaison de l’ensemble des fonctions caractéristiques associées à chaque vecteur avec une base (108) de données de fonctions caractéristiques, une étape (122) de corrélation entre le fichier analysé et les fichiers de la base de données. Figure pour l’abrégé : figure 1 PROCÉDÉ ET SYSTÈME DE CORRÉLATION DE FICHIERS INFORMATIQUES, EN PARTICULIER POUR LA DÉTECTION DE FICHIER INFORMATIQUE MALVEILLANT Domaine technique de l’invention L’invention concerne un procédé et un système de corrélation d’un fichier informatique avec une base de données de fichiers informatiques. En particulier, l’invention concerne un procédé et un système permettant un traitement rapide d’un fichier informatique pour établir son degré de corrélation avec d’autres fichiers informatiques, de préférence pour établir une probabilité que le fichier informatique soit un fichier informatique malveillant ou comprenne une portion d’un fichier informatique malveillant. Arrière-plan technologique L’invention se place dans le domaine du traitement de fichiers informatiques pour déterminer les caractéristiques fonctionnelles de ces fichiers, en particulier pour la corrélation d’un fichier avec une pluralité de fichiers stockés sur une base de données, ladite base de données comprenant de préférence des fichiers informatiques malveillants. L’invention se place donc également dans le domaine des procédés d’analyse antivirale et des systèmes antivirus, en particulier des antivirus à analyse statiques destinés à établir la probabilité d’une menace à partir du fichier lui-même, de ses caractéristiques et fonctions, sans nécessiter son exécution. On entend par fichier informatique un fichier informatique comprenant du code informatique, ce code informatique pouvant être par exemple du code brut, du code interprété (tel qu’un script) ou du code compilé de sorte à former un fichier informatique exécutable, par exemple un fichier informatique exécutable de type PE Portable Executable ou ELF Executable and Linkable Format . Un fichier informatique peut également comprendre des données informatiques complémentaires telles que des données média (image, son, vidéo) encodées dans le fichier informatique. Les solutions de sécurité informatique actuelles sont limitées dans leur capacité à détecter de nouvelles variantes de fichiers informatiques malveillants qui ont été modifiés pour échapper aux antivirus et aux autres mécanismes de détection. Les assaillants utilisant de tels fichiers informatiques malveillants modifient intentionnellement les options de compilation et les chaînes de code pour éviter d’être détectés. Les méthodes d’analyse statique classiques, qui examinent les métadonnées et les chaînes de caractères, ne sont pas suffisamment sensibles aux modifications subies par le code lors de la compilation. Le défi réside dans la détection efficace des menaces inconnues ou modifiées de manière intelligente pour échapper à la détection. La plupart des solutions actuelles, telles que les antivirus, se basent souvent sur des signatures de fichiers informatiques malveillants connues pour détecter les menaces. Cela signifie qu’elles peuvent ne pas être efficaces contre les nouvelles variantes de fichier informatique malveillant qui ont été méticuleusement modifiées pour échapper à ces signatures, ce qui est très limitant. En outre, des logiciels de rétro-ingénierie ( reverse engineering en anglais) sont généralement utilisés pour désassembler le code afin de l’analyser en profondeur, mais ces outils ont également des difficultés à traiter les modifications apportées au code par les compilateurs. Le développement de solutions de reverse engineering avec une meilleure tolérance aux modifications du code est nécessaire pour améliorer la sécurité des applications. Cette amélioration contribue à réduire les risques et les menaces en identifiant rapidement les vulnérabilités et les failles dans les fichiers informatiques. Les cybercriminels sont rapides pour adapter leurs méthodes et codes malveillants en fonction des nouvelles techniques de détection. Par conséquent, même si une nouvelle méthode de détection est développée, elle peut rapidement devenir obsolète lorsque les attaquants modifient leurs approches. Les inventeurs ont donc cherché à fournir une solution pour pallier ces inconvénients, et en particulier pour fournir un procédé et un système de corrélation de fichiers informatiques particulièrement efficace pour la détection de fichiers informatiques malveillants. Objectifs de l’invention L’invention vise à fournir un système et un procédé de corrélation de fichiers informatiques, de préférence permettant la détection de fichiers comprenant un fichier informatique malveillant. L’invention vise en particulier à fournir, dans au moins un mode de réalisation, un système et un procédé de corrélation permettant de s’adapter aux changements fréquents dans le code source et/ou les options de compilation des fichiers informatiques malveillants. L’invention vise en particulier à fournir, dans au moins un mode de réalisation, un système et un procédé de corrélation permettant de fournir un résultat fiable et rapide. L’invention vise en particulier à fournir, dans au moins un mode de réalisation, un système et un procédé de corrélation permettant de déterminer une famille de fichiers informatiques de laquelle dérive le fichier informatique analysé. L’invention vise en particulier à fournir, dans au moins un mode de réalisation, un système et un procédé de corrélation permettant de réduire le nombre de faux positifs et de faux négatif dans l’estimation de la corrélation, en particulier dans la classification du fichier analysé comme fichier informatique malveillant. L’invention vise en particulier à fournir, dans au moins un mode de réalisation, un produit programme d’ordinateur de corrélation mettant en œuvre au moins une partie des étapes du procédé de corrélation selon l’invention et/ou exécuté dans un système de corrélation selon l’invention. Pour ce faire, l’invention concerne un procédé de corrélation entre un fichier informatique, dit fichier analysé, avec au moins un fichier informatique d’une base de données de fichiers, caractérisé en ce qu’il comprend : une étape préalable d’entraînement d’un modèle d’apprentissage automatique à partir d’un jeu de données comprenant une pluralité de fichiers informatiques, le modèle d’apprentissage étant configuré pour obtenir, à partir d’un fichier informatique prétraité, un ensemble de fonctions caractéristiques associées audit fichier, une étape de détermination des fonctions de base du fichier analysé, une étape de vectorisation du fichier analysé, configurée pour obtenir un ensemble de vecteurs, chaque vecteur étant associé à une ou plusieurs fonctions de base du fichier analysé et comprenant un ensemble de valeurs caractéristiques calculées à partir d’une instruction machine et/ou d’un groupe d’instructions machine de ladite ou lesdites fonctions de base, une étape de traitement des vecteurs de l’ensemble de vecteurs par le modèle d’apprentissage automatique entraîné, de sorte à associer à chaque vecteur une fonction caractéristique, une étape de comparaison de l’ensemble des fonctions caractéristiques associées à chaque vecteur avec une base de données de fonctions caractéristiques, ladite base de données de fonctions caractéristiques étant générée au préalable par traitement des fichiers de la base de données de fichiers par le modèle d’apprentissage automatique, une étape de corrélation entre le fichier analysé et un ou plusieurs fichiers de la base de données de fichiers, et de fourniture d’une donnée représentative de la corrélation entre le fichier analysé et un ou plusieurs fichiers de la base de données de fichiers Un procédé de corrélation selon l’invention permet donc d’établir la corrélation entre un fichier analysé et une pluralité de fichiers informatiques grâce à la détermination des fonctions caractéristiques du fichier analysé d’une part et des fonctions caractéristiques des fichiers informatiques d’autre part. L’utilisation de ces fonctions caractéristiques permet un traitement rapide par comparaison de l’ensemble des fonctions caractéristiques associées à chaque vecteur. Les vecteurs sont associés aux fonctions de base qui sont déterminées à partir du fichier analysé ou du fichier désassemblé, voire dans certains cas déterminées lors du désassemblage par le logiciel de désassemblage du fichier analysé. Une fonction de base est un ensemble d'expressions et/ou d'instructions formant continuité dans le code ou dans le flux d'exécution, par exemple qui permet d'implémenter une fonctionnalité. Les fonctions de base comprennent généralement un ou plusieurs blocs de base ou basic block en anglais si le fichier analysé est un fichier exécutable. Les vecteurs résultent de traitements statistiques et exhaustifs pour l’extraction des caractéristiques et des signatures de ces fonctions de bases, les résultats de ces traitements étant rassemblés dans les vecteurs. Chaque vecteur est associé à une ou plusieurs fonctions de base, par exemple à une fonction de base principale et des fonctions de base associées, telles que des fonctions de base appelées par la fonction de base principale et permettant d’ajouter du contexte à cette fonction de base principale. La corrélation représente une proximité, ou une similitude entre le fichier analysé et un ou plusieurs fichiers de la base de données. Deux fichiers informatiques sont supposés corrélés lorsqu'ils contiennent des similarités. La corrélation est d’autant plus forte que le nombre de fonctions caractéristiques communes ou proches est important, ce qui peut indiquer qu’un code, qu’une portion de code, que l’utilisation d’une bibliothèque ou d’un ensemble de bibliothèques est partagée entre le fichier analysé et le ou les fichiers de la base de données. Cette corrélation vis-à-vis des fonctions caractéristiques permet de contourner les changements mineurs de code qui échappent à une comparaison textuelle de l’art antérieur. Les fichiers analysés ne sont donc pas réduits à leurs codes sources mais aux fonctions caractéristiques qui peuvent être mises en œuvres, c’est-à-dire du code lié à un concept, ou concept-code , mis en œuvre dans le fichier informatique peu importe son implémentation, son algorithme de mise en œuvre, son langage de programmation, etc. Ces similarités peuvent être dues à du code commun partagé, au fait que les fichiers informatiques ont été développés par la même équipe, etc. Le temps de traitement du fichier analysé est fortement diminué par rapport aux systèmes de l’art antérieur. La génération de la base de données de fonctions caractéristiques est réalisée en amont et n’influe donc pas sur le temps de traitement du fichier analysé. La génération des fonctions caractéristiques pour le fichier analysé est rapide car réduite à ce seul fichier. Enfin, la comparaison des fonctions caractéristiques du fichier analysé avec la base de données de fonctions caractéristiques est une opération de traitement optimisée pour être réalisée rapidement même avec une base de données de fonctions caractéristiques de taille conséquente (plusieurs milliards de fonctions caractéristiques). Ces opérations d’analyse du fichier analysé peuvent ainsi être mises en œuvre par un ordinateur classique, voire un système embarqué, sans nécessiter de supercalculateur. Les fonctions caractéristiques telles que déterminées par le modèle d’apprentissage sont des fonctions clés qui permettent une classification très précise concernant leur proximité avec d’autres fichiers, en particulier permettant de déterminer leur caractère malveillant. Les fonctions caractéristiques sont des éléments des fichiers informatiques qui peuvent se retrouver d’un fichier informatique à l’autre sans contrainte sur l’implémentation et le langage de programmation mis en œuvre pour créer le fichier informatique. Ainsi, un fichier informatique analysé comprenant une variante d’un autre fichier informatique aura des fonctions caractéristiques communes avec ce fichier informatique dont il dérive si celui-ci a un comportement similaire lorsqu’il est interprété ou exécuté à partir de code compilé, même si l’algorithme d’implémentation a été modifié pour échapper aux logiciels antivirus classiques, si le langage de programmation est différent, si des techniques d’obfuscation ont été implémentées, etc. Le modèle d’apprentissage automatique, plus connu sous le terme machine learning model en anglais, et en particulier un modèle d’apprentissage profond ( deep learning model ). Avantageusement et selon l’invention, le procédé de corrélation comprend une étape de désassemblage du fichier analysé par un désassembleur si le fichier analysé est un fichier informatique exécutable, pour obtenir un fichier désassemblé en instructions machine, et en ce que le procédé de corrélation applique les étapes de détermination des fonctions de base et de vectorisation au fichier désassemblé Avantageusement et selon l’invention, au moins un fichier du jeu de données et au moins un fichier de la base de données de fichier sont des fichiers informatiques malveillants, et en ce que l’étape de corrélation fournit une donnée indiquant une probabilité que le fichier analysé soit un fichier informatique malveillant. Selon cet aspect de l’invention, le procédé de corrélation permet de réaliser une détection d’un fichier informatique malveillant, par corrélation du fichier informatique analysé avec une base de fichiers malveillants. La corrélation permet notamment d’associer le fichier analysé avec un ou plusieurs fichiers informatiques malveillants formant une famille de fichiers informatiques malveillants car ils partagent une conception et/ou des fonctionnalités communes. L’utilisation des fonctions caractéristiques permet ainsi de déjouer les méthodes usuelles de modification des fichiers informatiques malveillants pour éviter leurs détections par les logiciels antivirus classiques. Avantageusement et selon l’invention, au moins un fichier du jeu de données et au moins un fichier de la base de données de fichier sont des fichiers informatiques malsains implémentant au moins une fonctionnalité susceptible d’être indésirable, et en ce que l’étape de corrélation fournit une donnée indiquant une probabilité que le fichier analysé soit un fichier informatique malsain. Selon cet aspect de l’invention, le procédé de corrélation permet de réaliser une détection d’un fichier informatique malsain, c’est-à-dire un fichier informatique comprenant des fonctions susceptibles d’être indésirables, généralement non souhaitées et/ou cachées, telles que par exemple une transmission de donnée non désirée vers un serveur central, l’installation de fonctionnalités non désirée sur le poste d’exécution, la prise de contrôle du poste d’exécution, sans pour autant être considéré comme des logiciels malveillants dans le sens commun. Des exemples de tels fichiers informatiques malsains sont par exemple parmi les logiciels comprenant des fonctions indésirables les logiciels espions, les logiciels de pistage publicitaire, etc., ou également des logiciels dont les fonctionnalités peuvent être considérés comme indésirables si elles ne sont pas maitrisées par l’administrateur du poste d’exécution ou du parc informatique dont dépend le poste d’exécution, tels que les logiciels de gestion de parc informatique, logiciels de prise en main à distance, etc. Avantageusement et selon l’invention, au moins un fichier du jeu de données et au moins un fichier de la base de données de fichier sont des fichiers informatiques comprenant différentes versions d’une même bibliothèque logicielle, et en ce que l’étape de corrélation fournit une donnée indiquant une probabilité que le fichier analysé implémente une des versions d’une des bibliothèques logicielles. Selon cet aspect de l’invention, le procédé de corrélation permet de détecter les différentes versions de bibliothèques implémentées dans le fichier informatique analysé, en particulier lorsque celui-ci est un fichier informatique compilé exécutable, et permet de signaler si une version d’une bibliothèque implémentée comprend une vulnérabilité connue. Si c’est le cas, le procédé de corrélation peut inviter à implémenter une bibliothèque plus récente dans laquelle la vulnérabilité a été corrigée. Avantageusement et selon l’invention, les vecteurs de l’ensemble de vecteurs comprennent des valeurs caractéristiques parmi au moins l’une ou plusieurs des valeurs caractéristiques suivantes : nombre de blocs de base de la ou des fonctions de base, nombre d’instructions de la ou des fonctions de base, nombre d’appels de procédure parmi les instructions de la ou des fonctions de base, valeurs statistiques sur le graphe des blocs de base de la ou des fonctions de base, nombre, position et distribution statistique d’une ou d’une pluralité de types d’instructions particulières parmi les instructions de la ou des fonctions de base, architecture du fichier analysé. Selon cet aspect de l’invention, les vecteurs permettent une définition globale et quantifiable de caractéristiques intrinsèques des fonctions de base, permettant leur caractérisation de façon simplifiée. Avantageusement et selon l’invention, le procédé de corrélation comprend une étape préalable de génération de la base de données de fonctions caractéristiques, comprenant : une étape de récupération de fichiers informatiques provenant de bases de données publiques ou privées stockées sur un serveur distant, une étape de récupération de métadonnées associées à un ou plusieurs desdits fichiers informatiques récupérés, une étape de filtrage des fichiers informatiques, une étape d’étiquetage des fichiers informatiques filtrés, comprenant une sous-étape d’ajout de métadonnées à chaque fichier informatique et une sous-étape de classification par application de règles de classification, une étape de vectorisation du fichier étiqueté, configurée pour obtenir un deuxième ensemble de vecteurs, chaque vecteur étant associé à une ou plusieurs fonctions de base du fichier étiqueté et comprenant un ensemble de valeurs caractéristiques calculées à partir d’une instruction machine et/ou d’un groupe d’instructions machine de ladite ou lesdites fonctions de base, une étape de traitement des vecteurs du deuxième ensemble de vecteurs par le modèle d’apprentissage automatique, de sorte à associer à chaque vecteur une fonction caractéristique, une étape de génération de la base de données de fonctions caractéristiques à partir des fonctions caractéristiques associées à chaque vecteur de chaque fichier étiqueté Selon cet aspect de l’invention, la base de données est préétablie de sorte à permettre un traitement rapide du fichier analysé. La génération de la base de données peut-être mise à jour régulièrement par l’ajout de nouveaux fichiers pertinents, en particulier par de nouveaux fichiers informatiques malveillants dans le cadre d’une corrélation avec des fichiers informatiques malveillants. Avantageusement et selon l’invention, le procédé de corrélation comprend une étape de génération d’un rapport de corrélation, ledit rapport de corrélation comprenant au moins une des informations suivantes : liste des fichiers informatiques dont la corrélation avec le fichier analysé atteint un certain seuil, score de corrélation avec chaque fichier informatique de ladite liste, nombre et caractéristiques des fonctions caractéristiques en commun avec chaque fichier informatique de la liste, famille ou familles de fichier informatique malveillant avec lequel le fichier analysé présente une forte corrélation, informations sur ladite ou lesdites familles de fichier informatique malveillant, échantillon du fichier analysé pertinents dans la détermination de la corrélation, répartition des fonctions caractéristiques en fonction de leur qualité générique, légitime ou malveillante, répartition de l’adressage du fichier analysé en correspondance avec un fichier informatique de la liste. L’invention concerne également un procédé d’entraînement d’un modèle d’apprentissage automatique pour un procédé de corrélation selon l’invention, caractérisé en ce qu’il comprend les étapes suivantes : une étape de réception d’un jeu de données d’entraînement comprenant des fichiers informatiques, une étape de réglage d’hyperparamètres optimums du modèle d’apprentissage automatique, une étape d’entraînement du modèle d’apprentissage à partir d’une première partie du jeu de données, une étape de validation du modèle d’apprentissage à partir d’une deuxième partie du jeu de données L’invention concerne également un produit programme d’ordinateur de corrélation entre un fichier informatique, dit fichier analysé, avec au moins un fichier informatique d’une base de données de fichiers, ledit produit programme d’ordinateur comprenant des instructions de code de programme pour l’exécution, lorsque ledit produit programme d’ordinateur est exécuté sur un ordinateur, des étapes selon le procédé de corrélation selon l’invention. L’invention concerne également un système de corrélation entre un fichier informatique, dit fichier analysé, avec au moins un fichier informatique d’une base de données de fichiers, caractérisé en ce qu’il comprend : un module d’entraînement d’un modèle d’apprentissage automatique à partir d’un jeu de données comprenant une pluralité de fichiers informatiques, le modèle d’apprentissage étant configuré pour obtenir, à partir d’un fichier informatique prétraité, un ensemble de fonctions caractéristiques associées audit fichier, un module de détermination des fonctions de base du fichier analysé, un module de vectorisation du fichier analysé, configuré pour obtenir un ensemble de vecteurs, chaque vecteur étant associé à une ou plusieurs fonctions de base du fichier analysé et comprenant un ensemble de valeurs caractéristiques calculées à partir d’une instruction machine et/ou d’un groupe d’instructions machine de ladite ou lesdites fonctions de base, un module de traitement des vecteurs de l’ensemble de vecteurs par le modèle d’apprentissage automatique entraîné, de sorte à associer à chaque vecteur une fonction caractéristique, un module de comparaison de l’ensemble des fonctions caractéristiques associées à chaque vecteur avec une base de données de fonctions caractéristiques, ladite base de données de fonctions caractéristiques étant générée au préalable par traitement des fichiers de la base de données de fichiers par le modèle d’apprentissage automatique, un module de corrélation entre le fichier analysé et un ou plusieurs fichiers de la base de données de fichiers, et de fourniture d’une donnée représentative de la corrélation entre le fichier analysé et un ou plusieurs fichiers de la base de données de fichiers. Dans tout le texte, un module peut par exemple consister en un dispositif informatique tel qu’un ordinateur, d’un ensemble de dispositifs informatiques, d’un composant électronique ou d’un ensemble de composants électroniques, ou par exemple d’un programme informatique, d’un ensemble de programmes informatiques, d’une librairie d’un programme informatique ou d’une fonction d’un programme informatique exécutés par un dispositif informatique tel qu’un ordinateur, un ensemble de dispositifs informatiques, un composant électronique ou un ensemble de composants électroniques. Avantageusement et selon l’invention, le système de corrélation comprend un désassembleur configuré pour obtenir un fichier désassemblé en instructions machine à partir du fichier analysé si le fichier analysé est un fichier informatique exécutable, le module de détermination des fonctions de base et le module de vectorisation étant configurés pour traiter le fichier désassemblé. Avantageusement et selon l’invention, au moins un fichier du jeu de données et au moins un fichier de la base de données de fichier sont des fichiers informatiques malveillants, et en ce que le module de corrélation est configuré pour fournir une donnée indiquant une probabilité que le fichier analysé soit un fichier informatique malveillant. Avantageusement et selon l’invention, au moins un fichier du jeu de données et au moins un fichier de la base de données de fichier sont des fichiers informatiques malsains implémentant au moins une fonctionnalité susceptible d’être indésirable, et en ce que le module de corrélation fournit une donnée indiquant une probabilité que le fichier analysé soit un fichier informatique malsain. Avantageusement et selon l’invention, au moins un fichier du jeu de données et au moins un fichier de la base de données de fichier sont des fichiers informatiques comprenant différentes versions d’une même bibliothèque logicielle, et en ce que le module de corrélation fournit une donnée indiquant une probabilité que le fichier analysé implémente une des versions d’une des bibliothèques logicielles. Avantageusement et selon l’invention, le système de corrélation comprend un module de réception du fichier analysé envoyé par un ordinateur distant pour la détermination d’une corrélation entre le fichier analysé et au moins un fichier informatique d’une base de données de fichiers, et un module d’envoi d’un rapport de corrélation audit ordinateur distant. Selon cet aspect de l’invention, le système forme un système distant pouvant recevoir des fichiers informatiques à analyser, fournissant ainsi un service distant par exemple accessible sur l’Internet, en particulier via un service Web permettant le téléversement du fichier à analyser et la réception d’un rapport de corrélation, soit directement sur une page Web, soit par le biais de l’envoi d’un fichier informatique comprenant les données du rapport, ou les deux, ou d’autres moyens de transmission du rapport. L’invention concerne également un procédé de corrélation, un procédé d’entraînement, un système de corrélation et un produit programme d’ordinateur de corrélation caractérisés en combinaison par tout ou partie des caractéristiques mentionnées ci-dessus ou ci-après. Liste des figures D’autres buts, caractéristiques et avantages de l’invention apparaîtront à la lecture de la description suivante donnée à titre uniquement non limitatif et qui se réfère aux figures annexées dans lesquelles : FIG. 1 est une vue schématique représentant un procédé de corrélation selon un mode de réalisation de l’invention, FIG. 2 est une vue schématique représentant un rapport de corrélation selon un mode de réalisation de l’invention. Description détaillée d’un mode de réalisation de l’invention Sur les figures, les échelles et les proportions ne sont pas strictement respectées et ce, à des fins d’illustration et de clarté. Les éléments identiques, similaires ou analogues sont désignés par les mêmes références dans toutes les figures. La FIG. 1 représente schématiquement un procédé 100 de corrélation selon un mode de réalisation de l’invention. Le procédé 100 permet la corrélation entre un fichier informatique, dit fichier 102 analysé, avec au moins un fichier informatique d’une base 104 de données de fichiers. Si le fichier analysé est un fichier exécutable, le procédé 100 de corrélation comprend une étape 110 de désassemblage du fichier analysé par un désassembleur, pour obtenir un fichier désassemblé en instructions machine. Le désassembleur peut par exemple être le désassembleur IDA Pro . Le procédé 100 de corrélation comprend également une étape 112 préalable d’entraînement d’un modèle 106 d’apprentissage automatique à partir d’un jeu de données comprenant une pluralité de fichiers informatiques, le modèle d’apprentissage étant configuré pour obtenir, à partir d’un fichier informatique prétraité, un ensemble de fonctions caractéristiques associées audit fichier. Le modèle 106 d’apprentissage automatique est de préférence un modèle d’apprentissage profond ( deep learning ), tel qu’un réseau neuronal (ou réseau de neurones). Le réseau neuronal peut en particulier être un réseau neuronal récurrent (souvent appelé RNN pour recurrent neural network en anglais), en particulier un réseau neuronal récurrent à mémoire court-terme et long terme (souvent appelé LSTM pour Long short-term memory en anglais), ou bien un réseau neuronal de type transformeur ( Transformer en anglais). Le modèle 106 d’apprentissage automatique est entraîné selon un procédé d’entraînement comprenant les étapes suivantes : une étape de réception d’un jeu de données d’entraînement comprenant des fichiers informatiques, une étape de réglage d’hyperparamètres optimums du modèle d’apprentissage automatique, une étape d’entraînement du modèle d’apprentissage à partir d’une première partie du jeu de données, une étape de validation du modèle d’apprentissage à partir d’une deuxième partie du jeu de données. Les étapes de réglage d’hyperparamètres optimums (ou recherche d’hyperparamètres optimums), d’entraînement et de validation sont réalisées de façon classique pour un modèle d’apprentissage automatique, en particulier d’apprentissage profond, pour mettre en œuvre la définition des fonctions caractéristiques. Par exemple, l’optimisation des hyperparamètres peut être réalisée par une technique d’optimisation de type BOHB, telle que décrite en particulier dans la publication « Falkner, Stefan, Aaron Klein, and Frank Hutter. "BOHB: Robust and efficient hyperparameter optimization at scale. " International conference on machine learning . PMLR, 2018. » Le jeu de données d’entraînement peut provenir d’une ou plusieurs sources de données. Par exemple, ces sources de données peuvent être parmi l’une ou plusieurs des suivantes : dépôts de distribution Linux, dépôts de logiciel open-source, en particulier de logiciel dont la licence autorise le traitement du code source, par exemple GitHub, gestionnaires de paquets logiciels, par exemple Conan.io et Chocolatey, des dépôts de logiciels propriétaires dont l’exploitation des données est autorisée, par exemple, des sources de fichiers informatiques spécifiques, en particulier des sources de fichiers informatiques malveillants, par exemple Malware-Bazaar, VirusTotal, VX-Underground et VirusShare. Le jeu de données est prétraité pour maximiser les résultats de l’entraînement. Le procédé 100 de corrélation comprend ensuite une étape 114 de détermination des fonctions de base du fichier désassemblé (ou du fichier analysé dans les modes de réalisation dans lesquels le fichier analysé n’est pas désassemblé car il n’est pas un fichier exécutable nécessitant un désassemblage). Cette étape permet de réunir les instructions du fichier analysé en fonctions de base. Les fonctions de base sont un ensemble d’expressions et/ou d’instructions formant continuité dans le code ou dans le flux d’exécution, par exemple qui permet d’implémenter une fonctionnalité. Lorsque le fichier analysé est un code source, une fonction de base est par exemple une fonction formée d’une portion de code et susceptible d’être appelée lors de l’exécution ou l’interprétation du fichier analysé. Lorsque le fichier analysé est un fichier exécutable, une fonction de base comprend un ou plusieurs bloc de base. Le groupement de plusieurs blocs de base pour former une fonction est par exemple déterminé par le désassembleur lors du désassemblage du fichier analysé lorsque celui-ci est compilé. Le procédé 100 de corrélation comprend ensuite une étape 116 de vectorisation du fichier désassemblé (ou du fichier analysé s’il n’est pas désassemblé), configurée pour obtenir un ensemble de vecteurs, chaque vecteur étant associé à une ou plusieurs fonctions de base du fichier analysé et comprenant un ensemble de valeurs caractéristiques calculées à partir d’une instruction machine et/ou d’un groupe d’instructions machine de ladite ou lesdites fonctions de base. Ces vecteurs fonctionnent comme des descriptions statistiques et exhaustives des fonctions de base. Les caractéristiques prises en compte sont par exemple : nombre de blocs de base de la ou des fonctions de base, nombre d’instructions de la ou des fonctions de base, nombre d’appels de procédure parmi les instructions de la ou des fonctions de base, valeurs statistiques sur le graphe des blocs de base de la ou des fonctions de base, nombre, position et distribution statistique d’une ou d’une pluralité de types d’instructions particulières parmi les instructions de la ou des fonctions de base, architecture du fichier analysé. Ces caractéristiques relèvent de traitements statistiques et exhaustifs à partir du fichier analysé. Le procédé 100 de corrélation comprend ensuite une étape 118 de traitement des vecteurs de l’ensemble de vecteurs par le modèle 116 d’apprentissage automatique entraîné, de sorte à associer à chaque vecteur une fonction caractéristique. Cette étape 118 de traitement peut comprendre une sous-étape de prise en compte de la proximité de vecteurs, par exemple par définition de groupes de vecteurs proches soumis au modèle d’apprentissage, afin de permettre d’ajouter du sens aux vecteurs lorsqu’ils sont représentatifs de fonctions de base géographiquement proches dans l’exécution ou l’interprétation du fichier analysé. Les fonctions caractéristiques permettent de conceptualiser le fichier informatique dans ses fonctions intrinsèques, sans prendre en compte l’algorithme d’implémentation utilisé ou le langage de programmation utilisé. Les fonctions caractéristiques ne sont pas obligatoirement représentatives d’une fonction mathématique ou d’un algorithme connu et n’ont pas vocation à décrire le fichier informatique de façon à ce que ces fonctions soient directement interprétables par un opérateur humain, mais ont pour objectif d’être comparées avec une base de données de fonctions caractéristiques pour estimer la corrélation avec d’autres fichiers informatiques. Le procédé 100 de corrélation comprend ensuite une étape 120 de comparaison de l’ensemble des fonctions caractéristiques associées à chaque vecteur avec une base 108 de données de fonctions caractéristiques, ladite base 108 de données de fonctions caractéristiques étant générée au préalable par traitement des fichiers de la base de données de fichiers par le modèle d’apprentissage automatique. Pour l’établissement de la base de données, le procédé 100 de corrélation comprend une étape 124 préalable de génération de la base de données de fonctions caractéristiques, comprenant premièrement une étape de récupération de fichiers informatiques provenant de bases de données publiques ou privées stockées sur un serveur distant. Par exemple, ces bases de données peuvent être parmi l’une ou plusieurs des suivantes : dépôts de distribution Linux, dépôts de logiciel open-source, en particulier de logiciel dont la licence autorise le traitement du code source, par exemple GitHub, gestionnaires de paquets logiciels, par exemple Conan.io et Chocolatey, des dépôts de logiciels propriétaires dont l’exploitation des données est autorisée, par exemple, des sources de fichiers informatiques spécifiques, en particulier des sources de fichiers informatiques malveillants, par exemple Malware-Bazaar, VirusTotal, VX-Underground et VirusShare. Ces bases de données sont les mêmes types de sources de données qu’utilisées lors de l’entraînement du modèle d’apprentissage automatique, mais les bases de données sont régulièrement consultées pour la récupération de fichiers informatique afin de disposer des fichiers informatiques les plus récents pour l’établissement de mises à jour régulières de la base de données de fonctions caractéristiques. Lors de la mise en œuvre du procédé de corrélation pour la détection de fichiers informatiques malveillants, cette mise à jour fréquente et régulière permet en particulier de disposer des dernières versions des logiciels malveillants pour permettre une réponse rapide pour la protection contre de nouvelles menaces. L’étape 124 préalable de génération de la base de données de fonctions caractéristiques peut ainsi être réalisée périodiquement pour une mise à jour régulière des fonctions caractéristiques. L’étape 124 préalable de génération de la base de données de fonctions caractéristiques comprend également une étape de récupération de métadonnées associées à un ou plusieurs desdits fichiers informatiques récupérés et une étape de filtrage des fichiers informatiques. L’étape 124 préalable de génération de la base de données de fonctions caractéristiques comprend ensuite une étape d’étiquetage des fichiers informatiques filtrés, comprenant une sous-étape d’ajout de métadonnées à chaque fichier informatique et une sous-étape de classification par application de règles de classification. Les règles de classification sont par exemple des règles de type YARA pour la classification de fichiers informatiques malveillants. L’étape 124 préalable de génération de la base de données de fonctions caractéristiques comprend ensuite une étape de vectorisation du fichier étiqueté, configurée pour obtenir un deuxième ensemble de vecteurs, chaque vecteur étant associé à une ou plusieurs fonctions de base du fichier étiqueté et comprenant un ensemble de valeurs caractéristiques calculées à partir d’une instruction machine et/ou d’un groupe d’instructions machine de ladite ou lesdites fonctions de base, et une étape de traitement des vecteurs du deuxième ensemble de vecteurs par le modèle d’apprentissage automatique, de sorte à associer à chaque vecteur une fonction caractéristique. Ces étapes de vectorisation et de traitement des vecteurs pour obtenir les fonctions caractéristiques sont analogues à l’étape de vectorisation et l’étape de traitement des vecteurs du procédé 100 de corrélation. L’étape 124 préalable de génération de la base de données de fonctions caractéristiques comprend enfin une étape de génération de la base de données de fonctions caractéristiques à partir des fonctions caractéristiques associées à chaque vecteur de chaque fichier étiqueté. Le procédé 100 de corrélation comprend ensuite une étape 122 de corrélation entre le fichier analysé et un ou plusieurs fichiers de la base de données de fichiers, et de fourniture d’une donnée représentative de la corrélation entre le fichier analysé et un ou plusieurs fichiers de la base de données de fichiers. Cette étape 122 de corrélation permet de déterminer les fonctions caractéristiques qui se retrouvent dans le fichier analysé et qui permettent une mise en correspondance avec un fichier informatique de la base de données. En particulier : si au moins un fichier du jeu de données et au moins un fichier de la base de données de fichier sont des fichiers informatiques malveillants, l’étape de corrélation peut fournir une donnée indiquant une probabilité que le fichier analysé soit un fichier informatique malveillant. Le procédé de corrélation peut alors être utilisé comme un procédé antivirus permettant de déterminer si le fichier analysé est un fichier informatique malveillant. si au moins un fichier du jeu de données et au moins un fichier de la base de données de fichier sont des fichiers informatiques malsains implémentant au moins une fonctionnalité susceptible d’être indésirable, l’étape de corrélation peut fournir une donnée indiquant une probabilité que le fichier analysé soit un fichier informatique malsain. Le procédé de corrélation peut alors être utilisé comme un procédé anti-espion ou anti-pistage permettant de déterminer si le fichier analysé est un fichier informatique malsain. si au moins un fichier du jeu de données et au moins un fichier de la base de données de fichier sont des fichiers informatiques comprenant différentes versions d’une même bibliothèque logicielle, l’étape de corrélation peut fournir une donnée indiquant une probabilité que le fichier analysé implémente une des versions d’une des bibliothèques logicielles. Le procédé de corrélation peut alors être utilisé comme détecteur de vulnérabilité (autrement appelé faille), par exemple lorsqu’un fichier informatique utilise une bibliothèque n’ayant pas été mise à jour récemment et comprenant des vulnérabilités. Le procédé de corrélation peut également déterminer à la fois si un fichier analysé est malveillant, malsain, vulnérable, ou aucun de ces cas. Le procédé 100 de corrélation peut également comprendre une étape de génération d’un rapport de corrélation, en particulier dans l’étape 122 de corrélation. La FIG. 2 représente un mode de réalisation d’un tel rapport 200 de corrélation, tel qu’il peut être affiché dans une fenêtre 202 logicielle affichée dans un système d’exploitation d’un ordinateur, par exemple un logiciel dédié ou un navigateur web. La FIG. 2 représente en particulier un rapport de corrélation montrant la corrélation du fichier analysé avec un fichier informatique malveillant, avec un point de vue particulier sur la correspondance avec le virus 1 (un fichier malveillant de la base de données de fichier informatique). Le rapport 200 comprend par exemple au moins une des informations suivantes : liste 204 des fichiers informatiques dont la corrélation avec le fichier analysé atteint un certain seuil, score 206 de corrélation avec chaque fichier informatique de ladite liste, nombre et caractéristiques 208 des fonctions caractéristiques en commun avec chaque fichier informatique de la liste, graphique famille 210 ou familles de fichier informatique malveillant avec lequel le fichier analysé présente une forte corrélation, informations 212 sur ladite ou lesdites familles de fichier informatique malveillant, échantillon du fichier analysé pertinents dans la détermination de la corrélation, répartition 214 des fonctions caractéristiques en fonction de leur qualité générique, légitime ou malveillante, répartition 216 de l’adressage du fichier analysé en correspondance avec un fichier informatique de la liste. Procédé de corrélation entre un fichier informatique, dit fichier (102) analysé, avec au moins un fichier informatique d’une base (104) de données de fichiers, caractérisé en ce qu’il comprend : - une étape (112) préalable d’entraînement d’un modèle (106) d’apprentissage automatique à partir d’un jeu de données comprenant une pluralité de fichiers informatiques, le modèle d’apprentissage étant configuré pour obtenir, à partir d’un fichier informatique prétraité, un ensemble de fonctions caractéristiques associées audit fichier, - une étape (114) de détermination des fonctions de base du fichier (102) analysé, - une étape (116) de vectorisation du fichier (102) analysé, configurée pour obtenir un ensemble de vecteurs, chaque vecteur étant associé à une ou plusieurs fonctions de base du fichier (102) analysé et comprenant un ensemble de valeurs caractéristiques calculées à partir d’une instruction machine et/ou d’un groupe d’instructions machine de ladite ou lesdites fonctions de base, - une étape (118) de traitement des vecteurs de l’ensemble de vecteurs par le modèle d’apprentissage automatique entraîné, de sorte à associer à chaque vecteur une fonction caractéristique, - une étape (120) de comparaison de l’ensemble des fonctions caractéristiques associées à chaque vecteur avec une base (108) de données de fonctions caractéristiques, ladite base (108) de données de fonctions caractéristiques étant générée au préalable par traitement des fichiers de la base de données de fichiers par le modèle d’apprentissage automatique, - une étape (122) de corrélation entre le fichier analysé et un ou plusieurs fichiers de la base de données de fichiers, et de fourniture d’une donnée représentative de la corrélation entre le fichier (102) analysé et un ou plusieurs fichiers de la base (104) de données de fichiers. Procédé de corrélation selon la revendication 1, caractérisé en ce qu’il comprend une étape (110) de désassemblage du fichier (102) analysé par un désassembleur si le fichier (102) analysé est un fichier informatique exécutable, pour obtenir un fichier désassemblé en instructions machine, et en ce que le procédé de corrélation applique les étapes de détermination des fonctions de base et de vectorisation au fichier désassemblé. Procédé de corrélation selon l’une des revendications 1 ou 2, caractérisé en ce qu’au moins un fichier du jeu de données et au moins un fichier de la base (104) de données de fichier sont des fichiers informatiques malveillants, et en ce que l’étape (122) de corrélation fournit une donnée indiquant une probabilité que le fichier analysé soit un fichier informatique malveillant. Procédé de corrélation selon l’une des revendications 1 à 3, caractérisé en ce qu’au moins un fichier du jeu de données et au moins un fichier de la base (104) de données de fichier sont des fichiers informatiques malsains implémentant au moins une fonctionnalité susceptible d’être indésirable, et en ce que l’étape (122) de corrélation fournit une donnée indiquant une probabilité que le fichier analysé soit un fichier informatique malsain. Procédé de corrélation selon l’une des revendications 1 à 4, caractérisé en ce qu’au moins un fichier du jeu de données et au moins un fichier de la base (104) de données de fichier sont des fichiers informatiques comprenant différentes versions d’une même bibliothèque logicielle, et en ce que l’étape (122) de corrélation fournit une donnée indiquant une probabilité que le fichier analysé implémente une des versions d’une des bibliothèques logicielles. Procédé de corrélation selon l’une des revendications 1 à 5, caractérisé en ce que les vecteurs de l’ensemble de vecteurs comprennent des valeurs caractéristiques parmi au moins l’une ou plusieurs des valeurs caractéristiques suivantes : - nombre de blocs de base de la ou des fonctions de base, - nombre d’instructions de la ou des fonctions de base, - nombre d’appels de procédure parmi les instructions de la ou des fonctions de base, - valeurs statistiques sur le graphe des blocs de base de la ou des fonctions de base, - nombre, position et distribution statistique d’une ou d’une pluralité de types d’instructions particulières parmi les instructions de la ou des fonctions de base, - architecture du fichier analysé. Procédé de corrélation selon l’une des revendications 1 à 6, caractérisé en ce qu’il comprend une étape (124) préalable de génération de la base de données de fonctions caractéristiques, comprenant : - une étape de récupération de fichiers informatiques provenant de bases de données publiques ou privées stockées sur un serveur distant, - une étape de récupération de métadonnées associées à un ou plusieurs desdits fichiers informatiques récupérés, - une étape de filtrage des fichiers informatiques, - une étape d’étiquetage des fichiers informatiques filtrés, comprenant une sous-étape d’ajout de métadonnées à chaque fichier informatique et une sous-étape de classification par application de règles de classification, - une étape de vectorisation du fichier étiqueté, configurée pour obtenir un deuxième ensemble de vecteurs, chaque vecteur étant associé à une ou plusieurs fonctions de base du fichier étiqueté et comprenant un ensemble de valeurs caractéristiques calculées à partir d’une instruction machine et/ou d’un groupe d’instructions machine de ladite ou lesdites fonctions de base, - une étape de traitement des vecteurs du deuxième ensemble de vecteurs par le modèle d’apprentissage automatique, de sorte à associer à chaque vecteur une fonction caractéristique, - une étape de génération de la base de données de fonctions caractéristiques à partir des fonctions caractéristiques associées à chaque vecteur de chaque fichier étiqueté. Procédé de corrélation selon l’une des revendications 1 à 7, caractérisé en ce qu’il comprend une étape de génération d’un rapport (200) de corrélation, ledit rapport de corrélation comprenant au moins une des informations suivantes : - liste (204) des fichiers informatiques dont la corrélation avec le fichier analysé atteint un certain seuil, - score (206) de corrélation avec chaque fichier informatique de ladite liste, - nombre et caractéristiques (208) des fonctions caractéristiques en commun avec chaque fichier informatique de la liste, - famille (210) ou familles de fichier informatique malveillant avec lequel le fichier analysé présente une forte corrélation, - informations (212) sur ladite ou lesdites familles de fichier informatique malveillant, - échantillon du fichier analysé pertinents dans la détermination de la corrélation, - répartition (214) des fonctions caractéristiques en fonction de leur qualité générique, légitime ou malveillante, - répartition (216) de l’adressage du fichier analysé en correspondance avec un fichier informatique de la liste. Procédé d’entraînement d’un modèle (116) d’apprentissage automatique pour un procédé de corrélation selon l’une des revendications 1 à 8, caractérisé en ce qu’il comprend les étapes suivantes : - une étape de réception d’un jeu de données d’entraînement comprenant des fichiers informatiques, - une étape de réglage d’hyperparamètres optimums du modèle d’apprentissage automatique, - une étape d’entraînement du modèle d’apprentissage à partir d’une première partie du jeu de données, - une étape de validation du modèle d’apprentissage à partir d’une deuxième partie du jeu de données. Produit programme d’ordinateur de corrélation entre un fichier informatique, dit fichier (102) analysé, avec au moins un fichier informatique d’une base (104) de données de fichiers, ledit produit programme d’ordinateur comprenant des instructions de code de programme pour l’exécution, lorsque ledit produit programme d’ordinateur est exécuté sur un ordinateur, des étapes du procédé (100) de corrélation selon l’une des revendications 1 à 8. Système de corrélation entre un fichier informatique, dit fichier (102) analysé, avec au moins un fichier informatique d’une base (104) de données de fichiers, caractérisé en ce qu’il comprend : - un module d’entraînement d’un modèle (116) d’apprentissage automatique à partir d’un jeu de données comprenant une pluralité de fichiers informatiques, le modèle d’apprentissage étant configuré pour obtenir, à partir d’un fichier informatique prétraité, un ensemble de fonctions caractéristiques associées audit fichier, - un module de détermination des fonctions de base du fichier analysé, - un module de vectorisation du fichier analysé, configuré pour obtenir un ensemble de vecteurs, chaque vecteur étant associé à une ou plusieurs fonctions de base du fichier analysé et comprenant un ensemble de valeurs caractéristiques calculées à partir d’une instruction machine et/ou d’un groupe d’instructions machine de ladite ou lesdites fonctions de base, - un module de traitement des vecteurs de l’ensemble de vecteurs par le modèle (116) d’apprentissage automatique entraîné, de sorte à associer à chaque vecteur une fonction caractéristique, - un module de comparaison de l’ensemble des fonctions caractéristiques associées à chaque vecteur avec une base (108) de données de fonctions caractéristiques, ladite base de données de fonctions caractéristiques étant générée au préalable par traitement des fichiers de la base de données de fichiers par le modèle d’apprentissage automatique, - un module de corrélation entre le fichier (102) analysé et un ou plusieurs fichiers de la base de données de fichiers, et de fourniture d’une donnée représentative de la corrélation entre le fichier analysé et un ou plusieurs fichiers de la base de données de fichiers. Système de corrélation selon la revendication 11, caractérisé en ce qu’il comprend un désassembleur configuré pour obtenir un fichier désassemblé en instructions machine à partir du fichier (102) analysé si le fichier analysé est un fichier informatique exécutable, le module de détermination des fonctions de base et le module de vectorisation étant configurés pour traiter le fichier désassemblé. Système de corrélation selon l’une des revendications 11 ou 12, caractérisé en ce qu’au moins un fichier du jeu de données et au moins un fichier de la base (104) de données de fichier sont des fichiers informatiques malveillants, et en ce que le module de corrélation est configuré pour fournir une donnée indiquant une probabilité que le fichier (102) analysé soit un fichier informatique malveillant. Système de corrélation selon l’une des revendications 11 à 13, caractérisé en ce qu’il comprend un module de réception du fichier (102) analysé envoyé par un ordinateur distant pour la détermination d’une corrélation entre le fichier (102) analysé et au moins un fichier informatique d’une base (104) de données de fichiers, et un module d’envoi d’un rapport de corrélation audit ordinateur distant.