Brevet FR3092921A1 — publié le 20200821

Description Titre de l'invention : Procédé de construction de signatures comportementales de logiciels [0001] La présente invention concerne le domaine du logiciel, et plus précisément le domaine de la construction de signatures comportementales de l'activité de logiciels. [0002] Elle trouve une application particulièrement intéressante dans la détection de loeiciels malveillants. [0003] Les logiciels malveillants, ou « malware », constituent une menace majeure dans le monde de l'Internet. De tels logiciels sont habituellement regroupés selon différentes catégories. Ainsi, on connaît les virus, conçus pour se propager en s'insérant dans divers support comme des logiciels légitimes, et qui peuvent perturber plus ou moins gravement le fonctionnement d'un ordinateur infecté. On connaît également les chevaux de Troie, ou « trojan » en anglais, logiciels apparemment légitimes mais qui contiennent une fonctionnalité malveillante destinée à être installée sur un ordinateur à l'insu de l'utilisateur. On connaît aussi les logiciels espions, ou « spywarc » en anglais, qui s'installent sur un terminal utilisateur, par exemple un terminal mobile, un ordinateur personnel, et dont le but est de collecter et transférer des informations de l'environnement sur lequel ils sont installés. On connaît aussi les rançongiciels, ou « ransomware » en anglais, qui prennent en otage des données personnelles en chiffrant ces données, puis demandent à leur propriétaire d'envoyer de l'argent en échange de la clé qui peut les déchiffrer. [0004] Des méthodes d'analyse comportementales de l'activité de logiciels malveillants ont été développées dans le but de classifier des logiciels malveillants selon différentes familles, de les détecter, et d'identifier de nouvelles menaces. Une telle méthode est décrite dans la demande de brevet publiée sous le numéro US 2011/0271341. Elle propose de collecter des traces séquentielles d'exécution de logiciels malveillants dans un environnement particulier, sous forme d'événements de type requêtes API au système d'exploitation de la machine sur laquelle ils s'exécutent, puis de normaliser ces traces d'événements en une représentation standard de certains paramètres afin de pouvoir comparer et regrouper l'exécution de différents logiciels malveillants selon différentes familles. Une telle normalisation consiste par exemple à supprimer dans une requête un chemin dans une arborescence, un nom de répertoire ou de fichier, ou à remplacer un paramètre par un méta-caractère (ou « wildcard » en anglais). Cette normalisation est destinée à tenir compte de différentes variantes de logiciels malveillants. Les données obtenues après normalisation sont appelées « séquences de comportement ». La méthode comprend ensuite une étape de regroupement de données, en 2 l'espèce de séquences de comportement. L'étape de regroupement de données, appelée « clustcrisation », ou « clustering » en anglais, est destinée à regrouper des séquences de comportement qui appartiennent à une même famille de logiciels malveillants. On obtient ainsi une pluralité de cluster, chacun étant représentatif du comportement d'une même famille de logiciels malveillants. La méthode propose alors d'analyser le cluster ainsi obtenu afin d'identifier des sous-séquences de comportement communes à une famille de logiciels malveillants, et enfin de créer une signature de comportement pour la famille de logiciels malveillants en utilisant cette sous-séquence. [0005] La méthode proposée nécessite, lors de l'étape de normalisation, l'intervention d'un expert du domaine afin de valider les opérations de généralisation, telles qu'une généralisation d'un attribut en un autre. Elle peut être qualifiée de normalisation « métier ». Cette intervention humaine pose un problème dans le cas d'une automatisation et d'un déploiement à grande échelle de cette solution. En effet, les experts métier doivent maintenir à jour la procédure de normalisation selon l'évolution de logiciels malveillants. Les logiciels peuvent aussi appliquer des techniques d'évasion afin de contourner les mesures de sécurité mises en place pour les détecter. Un logiciel malveillant qui met en oeuvre une technique d'évasion est par exemple apte à détecter qu'il s'exécute dans un environnement d'exécution particulier et à générer des séquences d'événements bénignes ou à remplacer des événements par des équivalents. L'utilisation des événements bruts pour construire des signatures ne résiste pas à ces techniques d'attaque. [0006] Un des buts de l'invention est de remédier à des insuffisances/inconvénients de l'état de la technique et/ou d'y apporter des améliorations. [0007] A cette fin, l'invention propose un procédé de construction de signatures comporte- mentales de logiciels, ledit procédé comprenant : [0008] - plongement de traces d'exécution d'un ensemble de logiciels dans un espace vectoriel, une trace d'exécution d'un logiciel comprenant au moins un événement et étant représentative de l'exécution du logiciel, ledit plongement étant destiné à représenter un événement de la trace d'exécution par un vecteur encodant un contexte d'apparition de l'événement, [0009] - partitionnement des vecteurs associés aux logiciels de l'ensemble, ledit parti- tionnement générant au moins un groupe de données, le groupe de données étant représentatif d'un comportement, un label comportemental étant associé audit groupe de données, [0010] - association d'un label comportemental à un vecteur, le label comportemental associé au vecteur étant représentatif du groupe de données auquel appartient le vecteur, et association d'une trace de labels comportementaux à une trace de vecteurs, ladite trace de labels étant représentative de l'exécution d'un logiciel, 3 [0011] - extraction dans la trace de labels d'au moins une signature comportementale associée au logiciel. [0012] La méthode permet d'extraire des signatures comportementales qui correspondent à des sous-séquences de labels comportementaux au lieu de sous-séquences bruts d'appels API communes à un cluster utilisées dans des méthodes connues. Les labels comportementaux sont construits à partir d'algorithmes machine, sans information a priori d'experts métier. En particulier, la construction de ces labels ne nécessite ni l'injection de connaissance métier dans les algorithmes d'apprentissage ni de données labellisées. La méthode repose en effet sur des apprentissages non supervisés uniquement. La méthode apparaît donc ainsi plus complète et plus objective. [0013] Le plongement des événements dans l'espace vectoriel permet de conserver une in- formation sémantique liant les différents événements, c'est-à-dire une information tenant compte de l'agencement logique des différents événements lors de l'exécution d'un logiciel. Ce plongement a pour effet de regrouper des événements sémantiquement proches et donc de faire une généralisation des événements cohérente avec la sémantique des événements ou leur contexte d'apparition. Cet aspect est essentiel car il permet d'abstraire la sémantique d'un événement, notamment d'un événement malveillant, plutôt que de conserver des événements ou des séquences d'événements bruts. [0014] L'utilisation des labels permet d'une part de réduire de façon notable la complexité de calcul dans la construction de signatures caractéristiques de famille de logiciels. En effet, le calcul effectué pour construire les signatures est effectué sur les labels dont le nombre total est négligeable par rapport au nombre total d'événements. D'autre part cela permet, dans le cas de logiciels malveillants, de lutter plus efficacement contre les techniques d'évasion utilisées par les concepteurs de malware, car les signatures qui sont utilisées lors du partitionnement/de la clusterisation dépendent des labels comportementaux, plus génériques que les événements. L'utilisation de labels de comportement, qui tiennent compte du contexte d'exécution d'un événement ajoute une surcouche clans la normalisation qui de ce fait devient plus abstraite. Ainsi, la méthode est moins sensible à des techniques d'évasion. Par exemple, si dans un logiciel malveillant un séquençage d'événements est remplacé par des événements sémantiquement équivalents, la nouvelle séquence ainsi créée se retrouvera dans le même cluster que le séquençage initial. [0015] La méthode étant plus efficace que des méthodes connues dans la lutte contre les techniques d'évasion, elle est plus efficace également, lorsqu'elle est utilisée sur des logiciels malveillants, pour la classification de logiciels malveillants et donc la détection de logiciels malveillants qui repose sur la classification. [0016] Dans un exemple de réalisation, le procédé comprend une collecte des traces d'exécution de l'ensemble des logiciels, un événement d'une trace d'exécution d'un logiciel correspondant à un appel API vers le système d'exploitation d'un serveur hébergeant un environnement maîtrisé d'exécution de logiciels. [0017] La collecte des traces d'exécution se fait dans un environnement protégé. Cela permet, notamment dans le cas d'exécution de logiciels malveillants de limiter les risques pour le système d'exploitation du serveur sur lequel est mise en oeuvre la collecte. [0018] Dans un premier exemple de réalisation, le plongement repose sur l'apprentissage d'un réseau de neurones artificiels cherchant à expliquer un événement d'après son contexte. [0019] Le plongement repose sur une technique éprouvée, en l'espèce la méthode connue sous le nom de « Word2Vec ». Cc plongement préserve les informations relatives au contexte d'apparition des événements. Ainsi, les vecteurs obtenus sont liés comme peuvent l'être les événements issus de l'exécution d'un logiciel, encodant ainsi les activités du logiciel. [0020] Dans un premier exemple de réalisation, l'extraction dans la trace de labels de ladite au moins une signature comportementale associée au logiciel consiste à identifier au moins une signature dite « du premier ordre » telle que : l'exécution d'un logiciel étant représentée par une trace de labels comportementaux, la signature du premier ordre associée au logiciel est un k-gram présent dans la trace de labels comportementaux, c'est-à-dire une suite de taille k de labels successifs compris dans la trace. [0021] 11 est extrait des représentations en labels de l'exécution de logiciels des motifs, ou signatures simples, ou signatures du premier ordre, qui encodent des sous-activités du logiciel lors de son exécution. De telles signatures sont destinées à être utilisés pour la construction de combinaisons de signatures, ou signatures « complexes ». [0022] Dans un deuxième exemple de réalisation, l'extraction dans la trace de labels com- portementaux d'au moins une signature comportementale d'un ordre au moins égal à deux consiste à combiner au moins deux signatures du premier ordre au moyen d'opérateurs booléens, la combinaison des signatures du premier ordre étant présente dans la trace d'exécution du logiciel. [0023] Cet exemple correspond à l'extraction de combinaisons de signatures simples, ou si- gnatures du premier ordre. La construction de combinaisons de signatures s'inspire des signatures « Yara », qui sont les plus utilisées actuellement dans les systèmes de bacs à sable. De telles signatures sont destinées à détecter des motifs de bytes typiques de certains logiciels malveillants dans des fichiers binaires Ces motifs typiques sont des combinaisons logiques de suites de bytes particulières. A l'instar des signatures Yara, il est défini des signatures d'ordre quelconque à partir de combinaisons de signatures du premier ordre. Ces signatures sont destinées à être utilisées par exemple dans un système de détection, afin d'identifier des comportements complexes lors de l'exécution de logiciels malveillants. [0024] L'invention concerne également une utilisation du procédé de construction dc si- gnatures comportementales de logiciels décrit précédemment, par un module de classification de logiciels, ledit module utilisant une hase d'apprentissage de logiciels malveillants étiquetés, une étiquette précisant la famille à laquelle un logiciel malveillant appartient, des signatures caractéristiques des familles de logiciels malveillants étant extraites, un nouveau logiciel étant automatiquement classifier dans une famille de logiciel malveillant en comparant des signatures extraites pour ledit nouveau logiciel à celles caractéristiques des familles. [0025] Le procédé de l'invention peut avantageusement être utilisé pour classifier des logiciels, notamment des logiciels au comportement douteux et pour identifier la famille à laquelle ils appartiennent. La hase des signatures extraites avec le procédé de construction de signatures comportementales dc logiciels peut avantageusement être utilisée pour mettre en oeuvre un apprentissage supervisé au cours duquel il est recherché les signatures les plus caractéristiques d'une famille de logiciels dans la hase d'apprentissage qui comprend un ensemble des logiciels malveillants. Une fois le modèle construit à partir de signatures comportementales appris, il est possible de classifier automatiquement les logiciels au comportement douteux, la classification mettant en difficulté d'éventuelles techniques d'évasion mises en oeuvre dans le logiciel étudié. [0026] L'invention concerne aussi une utilisation du procédé de construction de signatures comportementales tel que décrit précédemment, par un module de détection de nouveaux logiciels malveillants, ledit module utilisant une base d'apprentissage complétée comprenant outre des logiciels malveillants, des logiciels bénins, prenant en entrée un nouveau logiciel et détectant une nouvelle menace lorsque le comportement du nouveau logiciel diffère du comportement des logiciels de la base d'apprentissage complétée. [0027] Le procédé de l'invention peut également être avantageusement utilisé pour identifier de nouveaux comportements malveillants, c'est-à-dire des comportements malveillants qui n'ont jusqu'à présent pas été rencontré et qui en tout état de cause ne figurent pas dans la base d'apprentissage des logiciels malveillants. A cette fin, il est construit une nouvelle base d'apprentissage comprenant un ensemble le plus exhaustif possible à la fois de logiciels bénins et de logiciels malveillants connus. Lorsqu'une nouvelle attaque, ou attaque « 0-day », qui utilise un mode d'action différent des logiciels malveillants connus et référencés apparaît, alors un comportement distinct de ceux stockés dans la nouvelle base d'apprentissage est mis en évidence. Il est également possible d'analyser, pour le nouveau type de logiciel malveillant mis en évidence, des si- 6 militudes avec des logiciels malveillants connus en comparant les signatures extraites du nouveau logiciel malveillants avec les signatures présente dans la base de signatures associée aux logiciels malveillants connus. [0028] L'invention porte également sur un serveur de construction de signatures comporte- mentales de logiciels, ledit serveur comprenant : [0029] - des moyens de plongement, agencés pour plonger des traces d'exécution d'un ensemble de logiciels dans un espace vectoriel, une trace d'exécution d'un logiciel comprenant au moins un événement et étant représentative de l'exécution du logiciel, ledit plongement étant destiné à représenter un événement de la trace d'exécution par un vecteur encodant un contexte d'apparition de l'événement, [0030] - des moyens de partitionnement, agencés pour partitionner des vecteurs associés aux logiciels de l'ensemble, ledit partitionnement générant au moins un groupe de données, le groupe de données étant représentatif d'un comportement, un label comportemental étant associé audit groupe de données, [0031] - des moyens d'association, agencés pour associer un label comportemental à un vecteur, le label comportemental associé au vecteur étant représentatif du groupe de données auquel appartient le vecteur, et association d'une trace de labels comportementaux à une trace de vecteurs, ladite trace de labels étant représentative de l'exécution d'un logiciel, [0032] - des moyens d'extraction, agencés pour extraire dans la trace de labels d'au moins une signature comportementale associée au logiciel. [0033] L'invention porte également sur un programme d'ordinateur sur un support de données et chargeable dans la mémoire d'un serveur, comprenant des instructions de code de programme destinées à commander l'exécution des étapes du procédé de construction de signatures comportementales de logiciels tel que décrit précédemment, lorsque le programme est exécuté sur ledit serveur. [0034] Enfin, l'invention concerne aussi un support de données dans lequel est enregistré le programme présenté ci-dessus. [0035] D'autres caractéristiques et avantages de la présente invention seront mieux compris de la description et des dessins annexés parmi lesquels [0036] [fig.1] - La figure 1 présente les étapes d'un procédé de construction de signatures comportementales de logiciel, selon un exemple de réalisation ; [0037] [fig.2] - La figure 2 est une représentation schématique d'un serveur apte à mettre en oeuvre certaines des étapes du procédé de construction de signatures comportementales de logiciels, selon un exemple de réalisation. [0038] Les étapes d'un procédé de construction de signatures comportementales de logiciels, 7 selon un exemple de réalisation vont maintenant être décrites en relation avec la figure 1. [0039] Le procédé est décrit ici dans le cas d'un logiciel malveillant, il s'applique également à des logiciels que l'on peut qualifier de bénins. [0040] Un serveur hôte 20 (non représenté sur la figure 1) est adapté pour héberger un envi- ronnement maîtrisé SB d'exécution de logiciels malveillants (« malware » en anglais). L'environnement SB est agencé pour héberger l'exécution de logiciels malveillants, et pour tracer leur activité au niveau système, par exemple en identifiant et recensant des appels API (de l'anglais « Application Programming Interface ») vers le système d'exploitation, ou « OS » (pour « Operating System ») dédié à cet environnement. Un tel environnement SB est par exemple un environnement virtuel, simulant un système d'exploitation, par exemple Windows. L'environnement SB est habituellement appelé « bac à sable » (ou « SandBox » en anglais). Il constitue un environnement d'exécution particulier qui est maîtrisé, contrôlé, dans lequel les logiciels malveillants s'exécutent, sont observés, et ce sans risque pour le système d'exploitation. [0041] On suppose que dans une étape initiale El 0 de collecte d'événements, on dispose d'un ensemble de logiciels malveillants à analyser. Ces logiciels malveillants sont connus, c'est-à-dire que leur type, ou famille, tel que virus, rançongicicl, etc., est identifié. Dans l'étape initiale El 0 de collecte d'événements, les logiciels malveillants de l'ensemble s'exécutent dans l'environnement contrôlé SB du serveur 20. L'exécution de chacun des logiciels malveillants génère un fichier comprenant une trace séquentielle d'appels API, ou trace d'événements, ou encore trace d'exécution du logiciel malveillant, comprenant une séquence d'appels API vers le système d'exploitation de l'environnement d'exécution SB. Pour un logiciel malveillant in de l'ensemble, une trace simplifiée d'événements comprend par exemple les événements suivants : [0042] ProcessEvent : : RUN [0043] ModuleEvent : : LOAD [0044] ThreadEvent : : RUN [0045] MemoryEvent - ALLOC [0046] Au terme de l'étape EIO de collecte d'événements, on dispose d'un ensemble de fichiers, chacun formant une trace d'exécution d'un logiciel malveillant de l'ensemble et comprenant une trace séquentielle d'événements. A noter que pour un logiciel peuvent correspondre plusieurs traces d'exécution, ces dernières pouvant dépendre à la fois des configurations de la sandbox SB, et de facteurs externes tels qu'un accès à un serveur de commande et de contrôle. [0047] Dans une étape suivante E20 de peuplement d'une base de données d'apprentissage, les fichiers comprenant les traces d'exécution générées par les différents logiciels mal- 8 veillants au cours de l'étape El 0 de collecte sont mémorisés dans une hase de données d'apprentissage BDA. La hase de données d'apprentissage BDA contient donc un ensemble de traces d'exécution, chacune des traces correspondant à l'exécution d'un logiciel malveillant, sous forme d'une suite séquentielle d'événements. [0048] On note E l'ensemble des événements générés lors de l'exécution des logiciels mal- veillants dans l'environnement maîtrisé SB et mémorisés dans la hase de données d'apprentissage BDA. Ainsi E= el, e2, --- représentant le nombre total d'événements. On note la trace d'exécution du logiciel malveillant m produite lors de son exécution dans l'environnement maîtrisé SB du serveur S : (el(m),e2(m), es(m)), représentant le nombre d'événements compris dans la trace d'exécution du logiciel ni 100491 Dans une phase suivante E30 de construction de labels de comportements, dans une étape E31 de plongement, l'ensemble E des événements des traces d'exécution associés à l'exécution des logiciels malveillants, et obtenu au cours de l'étape E20 précédente, est plongé dans un espace vectoriel E de petite dimension. C'est-à-dire qu'à chaque événement associé à une trace d'exécution d'un logiciel malveillant, par exemple chaque événement e i(rn), 1 s: sz, s associé à la trace d'exécution du logiciel malveillant m, est associé un vecteur dans l'espace vectoriel F. 100501 Le plongement des événements des traces d'exécution des logiciels malveillants dans l'espace vectoriel F utilise une technique de plongement lexical mis en oeuvre au moyen d'un algorithme d'apprentissage automatique (ou « machine learning » en anglais) non supervisé, appelé « Word2Vec » et développé par la société Google ; cet algorithme repose sur des réseaux de neurones artificiels entraînés pour reconstruire le contexte linguistique d'un mot. Le principe de Word2Vec est le suivant : à partir d'un gros corpus de textes, apprendre un réseau de neurones artificiel cherchant à expliquer un mot d'après son contexte. Le contexte du mot est habituellement défini comme les mots proches d'un mot cible dans des textes vus pendant l'apprentissage. A l'issue de cette phase, les lignes de la matrice encodant le réseau de neurones forment des vecteurs dont chacun est par construction associé à un mot cible. La particularité de cette technique est que les vecteurs résultant de cet apprentissage encodent la sémantique des contextes des mots rencontrés dans le corpus d'apprentissage. Ainsi, des mots qui partagent des contextes similaires sont représentés par des vecteurs nu- 9 mériques proches et des mots qui sont proches dans leur représentation sont proches sémantiquement. Ce plongement permet d'analyser un mot dans son contexte. [0051] La technique mise en oeuvre dans l'algorithme Word2Vec est utilisée pour plonger les événements des traces d'exécution des logiciels malveillants dans l'espace vectoriel F. Par analogie, un événement observé lors de l'exécution d'un logiciel malveillant correspond à un mot, et une trace d'exécution d'un logiciel malveillant correspond à une phrase. Le corpus de texte correspond à l'ensemble des fichiers que l'on a pu générer dans l'environnement maîtrisé SB au cours de l'étape El0 de collecte et qui a servi à alimenter la hase d'apprentissage BDA peuplée au cours de l'étape E20 de peuplement. [0052] L'apprentissage automatique associé au plongement dans l'espace vectoriel est mis en oeuvre sur l'ensemble des traces d'exécution des logiciels malveillants de la hase d'apprentissage BDA. Cet apprentissage permet d'obtenir un espace vectoriel F de dimension n, tel que chaque événement d'une trace d'exécution d'un logiciel malveillant de la hase d'apprentissage est représenté par un unique vecteur Vi ayant n coordonnées dans l'espace F. [0053] La dimension n de l'espace vectoriel F peut être qualifiée de petite car elle est très in- férieure au cardinal de l'ensemble E des événements. En pratique elle est comprise entre 5 et 50. Dans des exemples de réalisation mis en oeuvre, la dimension de l'espace vectoriel F est de l'ordre de 5 à 7. [0054] La particularité de ce plongement est qu'il préserve des informations sur le contexte d'apparition des événements. Ainsi, les vecteurs de l'espace F sont liés comme peuvent l'être les événements de E issus de l'exécution d'un logiciel malveillant, encodant ainsi les activités du logiciel. [0055] Au terme de l'étape E31 de plongement, on obtient un plongement p : E-F, p(e1) v , pour tout 1 1 [0070] ModuleEvent : : LOAD -> 2 [0071] ProcessEvent : : RUN -> 1 [0072] Dans une étape suivante E40 d'extraction de signatures comportementales, il est procédé à l'extraction de signatures comportementales des logiciels malveillants. [0073] A cet effet, il est défini, pour un logiciel malveillant représenté par une trace de labels comportementaux, un premier type de signature appelée « signature du premier ordre », basée sur des motifs (ou « pattern » en anglais) dits simples. Une telle signature du premier ordre est un k-gram de la trace de labels, c'est-à-dire une suite de taille k de labels successifs présents dans la trace. [0074] Plus formellement, soit le malware in et R ( m ) (11 On ), /2( ) , . 1 ,(m)) sa représentation en labels comportementaux avec, ii(m) E 11, 2, , , une signature du premier ordre est un k-gram de R (m) 12 , c'est-à-dire une suite» de taille k de la forme : [0075] p = (I, (171 ) , + 1 ( 111 ) , . . . , 171 )) [0076] Ce k-gram p est appelé par la suite motif du premier ordre ou motif d'ordre 1. [0077] On définit également un deuxième type de signature comme étant une combinaison logique de motifs. Plus formellement, on définit par récurrence des motifs logiques de tous ordres. Ainsi, soit un malwarc in, et R ( m ) = (1 1( rn ), 12( ), , ',(nu)) sa représentation en labels comportementaux,avec 11(m) e {1, 2, ... L} . Soient p et p' des combinaisons de motifs respectivement d'ordre a 13 . On définit les combinaisons de motifs d'ordre a /3 présentes dans R (m) par : 100781 P P si les motifs p et p' sont tous les deux présents dans la représentation R (m ) en labels comportementaux du logiciel malveillant n, 100791 P l l P' si l'un des motifs p ou p' est présent dans la représentation R ( m ) . [0080] On remarque que dans le cas d'une signature du premier ordre de taille k, la com- binaison de motifs est le motif lui-même, c'est-à-dire le k-gram. L'ordre d'une combinaison de motifs est le nombre de motifs du premier ordre combinés logiquement pour obtenir une signature. [0081] A titre d'exemple, soient trois motifs simples : [0082] pl = (1, 2, 3) [0083] p2 = (2, 3, 4) [0084] p3 = (3, 2, 1) [0085] Soit ni un rnalware et R ( m ) (1 ( trz ), 1-2(111), .ï( )) 13 sa représentation en labels comportementaux, avec ( m )01, 2, ... Alors le logiciel malveillant m possède la signature d'ordre 3, &P'2)11 P3 si : 2(/1 )) 100861 - il existe j et j' tels que (1, 2, 3) (ti(m ), J I (m), et (2, 3, 4) = (11'(m), i(m), I ir -H2(m)) [0087] - ou il existe j tel que (3, 2, 1) (!1(m), ' ( , 1 ± ( )) [0088] Ainsi, dans l'étape E40 d'extraction de signatures comportementales, il est extrait les signatures du premier ordre et les signatures d'ordre au moins 2 des représentations en labels comportementaux des traces d'exécution de l'ensemble des logiciels malveillants. [0089] A noter qu'il n'est pas nécessaire de calculer des signatures du premier ordre pour toutes les valeurs de k. En effet lorsque k est trop grand, le motif risque d'être trop spécifique à un petit échantillon de logiciels malveillants et il n'y a pas d'intérêt à rechercher ensuite des motifs trop spécifiques ; dans tous les cas, les motifs qui sont recherchés ensuite sont ceux qui reflètent un comportement reproductible dans plusieurs échantillons logiciels malveillants au comportement similaire. [0090] Au terme de l'étape E40 d'extraction de signatures comportementales de logiciels, on dispose d'un ensemble de signatures ; cet ensemble est composé de signatures du premier ordre et de signatures d'ordre supérieur qui sont caractéristiques du comportement des logiciels malveillants compris dans la base d'apprentissage BDA. [0091] Pour avoir de bons résultats, il a été trouvé par la pratique qu'un corpus initial, cor- respondant au nombre de traces d'exécution de malwarc, comprenant 50 fichiers par famille, donnait de bons résultats, c'est-à-dire les signatures extraites et caractérisant les logiciels malveillants d'une famille. [0092] On suppose que dans cet exemple de réalisation, le serveur 20 héberge l'environnement maîtrisé SB, la base d'apprentissage BDA et la mise en oeuvre des 14 étapes du procédé de construction de signatures comportementales de logiciels. Par exemple, le serveur 20 héberge un environnement en Cloud computing dans lequel une première machine virtuelle est dédiée à l'environnement maîtrisé SB, une deuxième machine virtuelle est dédiée à la base d'apprentissage DBA et une troisième machine virtuelle est dédiée à la mise en oeuvre des étapes du procédé. Dans un deuxième exemple de réalisation, l'environnement maîtrisé SB est stocké sur un premier serveur distinct du serveur 20 et la hase d'apprentissage BDA est stockée sur un deuxième serveur, distinct du serveur 20. Dans un cas particulier de cet exemple de réalisation, les données destinées à peupler la hase d'apprentissage BDA sont fournies par un fournisseur de données à un gestionnaire de la hase d'apprentissage BD/A, par exemple un éditeur de solutions sécurité qui fournit la hase d'apprentissage peuplée BDA à un autre acteur, par exemple un gestionnaire de réseau. A noter que dans ce cas les étapes El 0 de collecte et E20 de peuplement de la hase d'apprentissage sont optionnelles. En effet, la hase de données d'apprentissage BDA est alors fournie déjà peuplée, par un éditeur de solutions de sécurité. [0093] Le procédé de construction de signatures comportementales de logiciels est décrit ici dans le cas de logiciels malveillants. Il s'applique tout aussi bien à des logiciels bénins. En effet, il existe également des familles de logiciels bénins qui partagent des caractéristiques communes notamment en ce qui concerne leur comportement qu'il est bon de classifier. Le procédé peut ainsi s'appliquer à ces logiciels bénins, notamment pour qualifier de nouvelles menaces comme décrit ci-dessous. A noter que pour des logiciels bénins, la collecte de traces d'exécution peut-être mise en oeuvre dans un environnement moins contraint qu'un environnement de type bac à sable classique. Il n'est en effet pas nécessaire d'obtenir ces traces dans un environnement maîtrisé, le risque pour l'environnement en matière de sécurité étant assez faible. [0094] Le procédé de construction de signatures comportementales de logiciels peut avanta- geusement être utilisé pour classifier des logiciels malveillants dans une famille de logiciels malveillants. [0095] A cette fin, une base BDA' d'apprentissage de logiciels malveillants étiquetés est utilisée. « Etiquetés » signifie qu'à chaque logiciel malveillant de la base est associé le nom de la famille à laquelle il appartient : « virus emotet», « rançongiciel wannacry», « cheval de Troie », etc. Ainsi la base BDA' peut être utilisée par un algorithme d'apprentissage supervisé dédié à la classification de logiciels malveillants. Une fois la base BDA' d'apprentissage de logiciels malveillants étiquetés peuplée, les signatures apprises, ou construites, c'est-à-dire que les opérations du procédé de construction de signatures comportementales de logiciels telles que décrites précédemment son mises en oeuvre sur la base BDA' d'apprentissage de logiciels malveillants étiquetés. Au terme de cet apprentissage une base de signatures qui comprend les signatures extraites à partir des traces de labels comportementaux associés à l'exécution des logiciels malveillants est créée. La base de signatures peut alors être utilisée comme un ensemble de variables lors d'un l'apprentissage supervisé. L'algorithme d'apprentissage cherche automatiquement dans la base de signatures comportementales lesquelles sont les plus caractéristiques d'une famille de logiciels malveillants donnée comprise dans la hase d'apprentissage. Le modèle appris, construit à partir des signatures comportementales de logiciels permet la classification automatique de logiciels malveillants. En effet, pour un nouveau logiciel au comportement douteux, les étapes du procédé sont mises en oeuvre et les signatures extraites sont comparées à celles qui caractérisent le mieux les logiciels malveillants de la hase BDA' d'apprentissage de logiciels étiquetés. Cette comparaison permet d'identifier la famille à laquelle le nouveau logiciel appartient. A noter que cette classification se fait sans connaissance a priori de la famille à laquelle le nouveau logiciel appartient. La classification est automatique et n'est pas leurrée par d'éventuelles techniques d'évasion mises en oeuvre par les logiciels malveillants car les variables qui sont utilisées, en l'espèce les signatures comportementales, sont par nature résistantes à l'évasion car construites en généralisant la notion d'évènements grâce à son contexte pendant l'exécution. [0096] Le procédé de construction de signatures comportementales de logiciels peut également être avantageusement utilisé pour détecter et qualifier de nouvelles menaces. A cet effet, la hase de données d'apprentissage BDA peuplée au moyen d'un ensemble le plus exhaustif possible de traces d'exécution de logiciels malveillants connus au cours de l'étape E20 de peuplement est complétée afin d'obtenir une base d'apprentissage complétée qui comprend, outre les traces d'exécution des logiciels malveillants connus, des traces d'exécution de logiciels bénins. Les étapes du procédé de construction de signatures comportementales sont alors mises en oeuvre sur cette base de données d'apprentissage complétée. Si une nouvelle attaque de type zéro-day (ou « jour zéro »), c'est-à-dire une vulnérabilité n'ayant fait l'objet d'aucune publication ou n'ayant aucun correctif connu, qui utilise un mode d'action différent des menaces connues et répertoriées dans la base d'apprentissage complétée, alors un comportement distincts de ceux stockés dans la base des signatures extraites est mis en évidence ; en effet, de nouvelles signatures propres à cette attaque seront extraites. La prise en compte des traces d'exécution de logiciels bénins est destinée à disposer d'un ensemble de comportements de logiciels le plus exhaustif possible. [0097] Il est par ailleurs possible d'analyser pour ce nouveau logiciel malveillant les si- militudes avec les logiciels malveillants connus en comparant les signatures extraites pour le nouveau logiciel malveillant avec celles présentes dans la base de signatures associée aux logiciels malveillants connus. [0098] Un serveur apte à mettre en oeuvre certaines des étapes du procédé de construction de 16 signatures comportementales de logiciels, selon un exemple de réalisation, va maintenant être décrit en relation avec la figure 2. [0099] Le serveur 20 est un équipement informatique qui de manière classique comprend : [0100] - une unité de traitement 21, ou CPU (de « Central Processing Unit »), agencée pour exécuter des instructions de code, [0101] - un ensemble de mémoires, dont une mémoire volatile 22 de type RAM (dc l'anglais « Random Access Memory »), utilisée pour exécuter des instructions de code, stocker des variables, etc., et une mémoire de stockage 23 de type mémoire flash ou EEPROM (de l'anglais « Eletronically Erasable Programmable Read Only Memory »). La mémoire de stockage 23 est agencée pour mémoriser des données et des applications. En particulier, la mémoire de stockage 23 mémorise un module logiciel de construction de signatures comportementales de logiciels agencé pour mettre en oeuvre les étapes du procédé de construction dc signatures comportementales de logiciels qui sont mises en oeuvre par la serveur 20. [0102] Le serveur 20 comprend également : [0103] - un module 24 de plongement, agencé pour plonger des traces d'exécution d'un ensemble dc logiciels dans un espace vectoriel, une trace d'exécution d'un logiciel comprenant au moins un événement et étant représentative de l'exécution du logiciel, ledit plongement étant destiné à représenter un événement de la trace d'exécution par un vecteur encodant un contexte d'apparition de l'événement. Le module 24 de plongement est agencé pour mettre en oeuvre l'étape E31 de plongement du procédé de construction de signatures comportementales de logiciels tel que décrit précédemment. Le module de plongement prend en entrée un ensemble de traces d'exécution de logiciels compris dans une base de données d'apprentissage BDA (non représentée sur la figure 2) ; [0104] - un module 25 de partitionnement, agencé pour partitionner des vecteurs associés aux logiciels de l'ensemble, ledit partitionnement générant au moins un groupe de données, le groupe de données étant représentatif d'un comportement, un label comportemental étant associé audit groupe de données. Le module 25 de partitionnement est agencé pour mettre en oeuvre l'étape E32 de partitionnement du procédé de construction de signatures comportementales de logiciels tel que décrit précédemment ; [0105] - un module 26 d'association, agencé pour associer un label comportemental à un vecteur, le label comportemental associé au vecteur étant représentatif du groupe de données auquel appartient le vecteur, et association d'une trace de labels comportementaux à une trace de vecteurs, ladite trace de labels étant représentative de l'exécution d'un logiciel. Le module 26 d'association est agencé pour mettre en oeuvre l'étape E33 de labellisation du procédé de construction de signatures comportementales de logiciels tel que décrit précédemment ; 17 [0106] - un module 27 d'extraction, agencé pour extraire dans la trace de labels d'au moins une signature comportementale associée au logiciel. Le module 27 d'extraction est agencé pour mettre en oeuvre l'étape E34 d'extraction du procédé de construction de signatures comportementales de logiciels tel que décrit précédemment. [0107] Les modules 24 de plongement, 25 de partitionnement, 26 d'association et 27 d'extraction sont de préférence des modules logiciels, agencés pour mettre en oeuvre les étapes E31 de plongement. E32 de partitionnement, E33 d'association et E34 d'extraction du procédé de construction de signatures comportementales de logiciels tel que décrit précédemment. [0108] L'invention concerne donc aussi : [0109] - un programme d'ordinateur comportant des instructions pour la mise en oeuvre du procédé de construction de signatures comportementales de logiciels tel que décrit précédemment lorsque ce programme est exécuté par un processeur du serveur 20, et [0110] - un support d'enregistrement lisible sur lequel est enregistré le programme d'ordinateur décrit ci-dessus. 18 [Revendication 1] [Revendication 2] [Revendication 3] [Revendication 4]