FR 3084183 A1 20200124 FR 1856762 A 20180720 Arrière-plan de l'invention La présente invention se situe dans le domaine général de la détection d'intrusion visant une application susceptible de recevoir des messages. Elle s'applique plus particulièrement à la détection d'intrusion dans des applications apte à traiter des messages relativement prédictibles. La mise en oeuvre de l'invention nécessite en effet qu'il est possible de constituer un historique des messages normalement attendus par cette 10 application. L'invention peut en particulier être utilisée pour détecter des intrusions visant un service Web, par exemple offert par une banque. L'invention peut aussi être utilisée pour détecter une intrusion visant une application embarquée dans un aéronef, par exemple 15 répondant à la norme ME I AR. Pour répondre à cette problématique, il est usuel de chercher à détecter si un message reçu par l'application présente une signature représentative d'une intrusion. Mais une telle méthode présente des inconvénients. En l'occurrence elle nécessite de posséder un historique 20 des attaques et de pouvoir mettre à jour la base de données des signatures lorsqu'une nouvelle attaque est détectée. La deuxième contrainte empêche la mise en oeuvre d'une telle solution pour les applications dans lesquelles toute mise à jour requiert un processus de certification de l'application relativement lourd. 25 L'invention vise donc une méthode de détection d'intrusion qui ne présente pas les inconvénients précités. Il est usuel qu'une intrusion dans une application se manifeste par l'envoi, à cette application, d'un message normalement non attendu par cette application. 30 Qbjet et résumé de l'invention Selon un premier aspect l'invention vise un procédé de création 35 d'un modèle permettant de détecter si un message à évaluer constitué de 2 symboles et susceptible d'être reçu par une application constitue une anomalie. Ce procédé comporte : - une étape d'obtention d'un ensemble de messages appartenant à une classe de référence propre à l'application pour constituer une base 5 d'apprentissage ; - une étape d'identification de l'ensemble des N-grammes des messages de cette base d'apprentissage ; - une étape de génération d'un vecteur du modèle, ce vecteur associant - à chacun desdits N-grammes, une valeur représentant une probabilité d'occurrence de ce N-gramme dans la base d'apprentissage ; et - une valeur par défaut aux N-grammes qui n'appartiennent pas aux messages de la base d'apprentissage - une étape de définition d'une fonction permettant d'attribuer un score à un message à évaluer à partir des valeurs du vecteur associées aux N- grammes du message à évaluer cette fonction étant choisie pour discriminer les scores des anomalies par rapport aux scores des messages normalement attendus en comparant ces scores à un seuil défini pour cette fonction; le message à évaluer étant considéré ou non comme une anomalie en fonction du résultat de la comparaison du score attribué à ce message avec le seuil précité. Le procédé de détection d'anomalies selon l'invention est remarquable en ce qu'il n'impose ni de posséder un historique des attaques, ni de créer et maintenir à jour une base de signatures des attaques connues. Selon un deuxième aspect, l'invention concerne un procédé de détection d'anomalie permettant de déterminer si un message à évaluer constitué de symboles et susceptible d'être reçu par une application, 30 constitue une anomalie. Ce procédé comporte : - une étape d'extraction des N-grammes de ce message à évaluer - une étape d'attribution d'un score au message à évaluer à partir d'un vecteur et des N-grammes du message à évaluer, ce vecteur associant à chacun des N-grammes de l'ensemble des messages d'une base 35 d'apprentissage d'une classe de référence, une valeur correspondant à une probabilité d'occurrence de ce N-gramme dans la base d'apprentissage, et une valeur par défaut aux N-grammes qui n'appartiennent pas aux messages de la base d'apprentissage, ce score étant attribué par une fonction choisie pour discriminer les scores des anomalies par rapport aux scores des messages normalement attendus par l'application, en comparant ces scores par rapport à un seuil défini pour cette fonction ; et - une étape de comparaison du score du message à évaluer avec ce seuil pour décider, si le message à évaluer est une anomalie. Conformément à l'invention, lorsqu'une anomalie est détectée, elle 10 peut être enregistrée ou générer une alerte. Dans un mode particulier de réalisation, le seuil est défini - à partir du score le plus faible attribué aux messages de la base d'apprentissage, lorsque la fonction précitée discrimine les scores des anomalies en leur attribuant des valeurs faibles ; ou 15 -à partir du score le plus fort attribué aux messages de la base d'apprentissage, lorsque cette fonction discrimine les scores des anomalies en leur attribuant des valeurs élevées. Dans un mode particulier de réalisation, la fonction de score utilise, pour attribuer le score au message à évaluer, une moyenne généralisée 20 d'ordre inférieur à 1 appliquée aux composantes du vecteur correspondant aux N-grammes du message à évaluer. L'utilisation d'une telle fonction et le choix d'une valeur par défaut permettent avantageusement de discriminer fortement les scores obtenus pour les anomalies et les scores obtenus pour les messages normalement 25 attendus. Dans un mode de réalisation de l'invention, les N-grammes sont des digrammes. Dans un mode de réalisation de l'invention, au moins certains des messages de la classe de référence sont des messages ACARS ou une 30 partie de messages ACARS. Ces messages ACARS peuvent éventuellement être encapsulés dans des paquets IP. Dans un mode de réalisation de l'invention, les applications sont conformes à la norme ARINC. Dans un mode de réalisation, le procédé de création de modèle 35 selon l'invention comporte une étape préalable de capture des messages de la base d'apprentissage. 4 Dans un mode particulier de réalisation, l'étape de détermination de la valeur par défaut pour les N-grammes qui n'appartiennent pas aux messages de la base d'apprentissage comporte - une boucle au cours de laquelle on fait varier une valeur courante, cette 5 boucle comportant - une étape de détection d'anomalies parmi les messages d'une base de test de la classe de référence, en évaluant si chacun de ces messages constitue une anomalie en utilisant le procédé de détection d'anomalie selon l'invention, après avoir fixé dans le 10 vecteur, la valeur par défaut égale à cette valeur courante ; - une étape de détermination d'un taux de faux positifs pour les messages de la base de test pour la valeur courante, à partir du nombre d'anomalies détectées parmi les messages de la base de test ; 15 - une étape de détection anomalies parmi des messages non attendus par l'application et compris dans une base de messages n'appartenant pas à la classe de référence, en évaluant si chacun de ces messages constitue une anomalie en utilisant le procédé de détection d'anomalie selon l'invention, après avoir fixé dans le 20 vecteur, la valeur par défaut égale à la valeur courante - une étape de détermination d'un taux de détection pour les messages non attendus à partir du nombre d'anomalies détectées parmi ces messages non attendus ; la valeur par défaut étant choisie à partir du taux de faux positif et du 25 taux de détection précités et d'un cadre d'utilisation du procédé. Dans un autre mode particulier de réalisation, l'étape de détermination de la valeur par défaut pour les N-grammes qui n'appartiennent pas aux messages de la base d'apprentissage comporte - une première boucle au cours de laquelle on fait varier une valeur courante, cette première boucle comportant - une étape de détection d'anomalies parmi les messages d'une base de test de la classe de référence, en évaluant si chacun de ces messages constitue une anomalie en utilisant le procédé de détection d'anomalie selon l'invention, après avoir fixé dans le vecteur, la valeur par défaut égale à la valeur courante ; 5 - une étape de détermination d'un taux de faux positifs pour les messages de la base de test pour cette valeur courante, à partir du nombre d'anomalies détectées parmi ces messages - une deuxième boucle au cours de laquelle on fait varier un 5 nombre de mutations, cette deuxième boucle comportant : - une étape de génération, à partir de messages de la base de test, et pour chacun de ces messages, d'un message non attendu obtenu en faisant varier le nombre de mutations de symboles dans des N-grammes de ce message ; et 10 - une étape de détermination d'un taux de détection pour les messages non attendus ; une étape de détermination d'un nombre minimum de mutations pour obtenir un taux de détection de confiance prédéfini ; et - une étape au cours de laquelle on associe, à chaque valeur 15 courante, un couple comportant le nombre minimum de mutations et le taux de faux positifs ; et une étape de sélection d'un de ces couples en fonction d'un cadre d'utilisation du procédé, la valeur par défaut étant choisie à partir de ladite valeur associée à ce couple. 20 L'invention vise aussi un dispositif de création d'un modèle permettant de détecter si un message à évaluer constitué de symboles susceptible d'être reçu par une application constitue une anomalie. Ce dispositif comporte : - un module d'obtention d'un ensemble de messages appartenant à une 25 classe de référence propre à l'application pour constituer une base d'apprentissage ; - un module d'identification de l'ensemble des N-grammes des messages de la base d'apprentissage ; - un module de génération d'un vecteur du modèle, ce vecteur associant 30 - à chacun desdits N-grammes, une valeur représentant une probabilité d'occurrence du N-gramme dans la base d'apprentissage ; et - une valeur par défaut aux N-grammes qui n'appartiennent pas aux messages de la base d'apprentissage 35 ledit dispositif comportant en outre : 6 - un module de définition d'une fonction permettant d'attribuer un score à un message à évaluer à partir des valeurs du vecteur associées aux N-grammes du message à évaluer, cette fonction étant choisie pour discriminer les scores des anomalies par rapport aux scores des messages 5 normalement attendus en comparant ces scores à un seuil défini pour cette fonction; le message à évaluer étant considéré ou non comme une anomalie en fonction du résultat de la comparaison dudit score attribué à ce message avec ce seuil. 10 L'invention vise aussi un dispositif de détection d'anomalie permettant de déterminer si un message à évaluer constitué de symboles et susceptible d'être reçu par une application constitue une anomalie, ce dispositif comportant - un module d'extraction des N-grammes de ce message à évaluer ; 15 - -un module d'attribution d'un score au message à évaluer à partir d'un vecteur et des N-grammes du message à évaluer, ce vecteur associant à chacun des N-grammes de l'ensemble des messages d'une base d'apprentissage d'une classe de référence, une probabilité d'occurrence de ce N-gramme dans la base d'apprentissage, et une valeur par défaut aux 20 N-grammes qui n'appartiennent pas aux messages de la base d'apprentissage, le score étant attribué par une fonction choisie pour discriminer les scores des anomalies par rapport aux scores des messages normalement attendus par l'application, en comparant ces scores par rapport à un seuil défini pour cette fonction ; et 25 - un module de comparaison du score du message à évaluer avec le seuil pour décider si le message à évaluer est une anomalie. Les avantages et caractéristiques particulières du dispositif de création de modèle et du dispositif de détection d'anomalie sont 30 identiques à ceux des procédés de création de modèle et de détection d'anomalie mentionnés ultérieurement. Dans un mode particulier de réalisation, les différentes étapes du procédé de création de modèle et/ou du procédé de détection d'anomalie sont déterminées par des instructions de programmes d'ordinateurs. 35 En conséquence, l'invention vise aussi : 7 un programme d'ordinateur sur un support d'information, ce programme étant susceptible d'être mis en oeuvre dans un ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre des étapes d'un procédé de création de modèle 5 tel que décrit ci-dessus un programme d'ordinateur sur un support d'information, ce programme étant susceptible d'être mis en oeuvre dans un ordinateur, ce programme comportant des instructions adaptées à la mise en oeuvre des étapes d'un procédé de détection d'anomalie 10 tel que décrit d-dessus. Ces programmes peuvent utiliser n'importe quel langage de programmation, et être sous la forme de code source, code objet, ou de code intermédiaire entre code source et code objet, tel que dans une forme partiellement compilée, ou dans n'importe quelle 15 autre forme souhaitable. L'invention vise aussi un support d'informations lisible par un ordinateur, et comportant des instructions d'un programme d'ordinateur tel que mentionné ci-dessus. Le support d'informations peut être n'importe quelle entité ou 20 dispositif capable de stocker le programme. Par exemple, le support peut comporter un moyen de stockage, tel qu'une ROM ou encore un moyen d'enregistrement magnétique, par exemple un disque dur. D'autre part, le support d'informations peut être un support transmissible tel qu'un signal électrique ou optique, qui peut être 25 acheminé via un câble électrique ou optique, par radio ou par d'autres moyens. Alternativement, le support d'informations peut être un circuit intégré dans lequel le programme est incorporé, le circuit étant adapté pour exécuter ou pour être utilisé dans l'exécution du procédé en 30 question. Brève description des dessins D'autres caractéristiques et avantages de la présente invention 35 ressortiront de la description faite ci-dessous, en référence aux dessins annexés qui en illustrent un exemple de réalisation dépourvu de tout symbole limitatif. Sur les figures la figure 1 représente un exemple de message ; la figure 2 représente sous forme d'organigramme les principales 5 étapes d'un procédé de création d'un modèle conformément à un mode de réalisation de l'invention ; la figure 3 représente un vecteur pouvant être utilisé dans un mode de réalisation de l'invention ; la figure 4 représente sous forme d'organigramme les principales 10 étapes d'un procédé de détection d'anomalie conformément à un mode de réalisation de l'invention la figure 5 représente sous forme d'organigramme les principales étapes d'une première méthode pour déterminer une valeur par défaut conformément à un mode de réalisation de l'invention ; 15 la figure 6 représente une courbe de type « ROC curie » connue de l'homme du métier; la figure 7 représente sous forme d'organigramme les principales étapes d'une deuxième méthode pour déterminer la valeur par défaut conformément à un mode de réalisation de l'invention 20 les figures 8-1 à 8-9 illustrent une variation d'un taux de détection en fonction d'un nombre de mutations ; la figure 9 illustre une corrélation entre un nombre de mutations et un taux de faux positifs ; la figure 10 représente un système dans lequel l'invention peut être 25 mise oeuvre ; la figure 11 représente un dispositif de création de modèle conformément à un mode de réalisation de l'invention ; et la figure 12 représente un dispositif de détection d'anomalie conformément à un mode de réalisation de l'invention, 30 - les figures 13, 14 et 15 illustrent la sensibilité de trois fonctions d'attribution de score Description détaillée d'un premier mode de réalisation de l'invention 35 La figure 1 représente un message MSG constitué de symboles C,, à savoir dans cet exemple les symboles « a », « b », « b », « c », « d », « a », « b », et « d ». Ces symboles appartiennent à un alphabet constitué de l'ensemble des symboles susceptibles d'être compris dans un message. On rappelle qu'un n-gramme du message MSG est une séquence de symboles de longueur n extraite du message MSG. Par exemple les digrammes (ou n-grammes de longueur 2) de ce message sont les séquences de symboles «-ab », « bb », « bc », « cd », da « ab », et bd ». Dans la suite de la description on considèrera des digrammes, mais l'invention peut être mise en oeuvre avec des n-grammes de longueur n quelconque. La figure 2 représente sous forme d'organigramme les principales étapes d'un procédé de création d'un modèle permettant de détecter si un message à évaluer constitué de symboles C, susceptible d'être reçu par une application API embarquée par exemple dans un aéronef constitue 15 une anomalie. Conformément à l'invention on suppose que l'on dispose d'un ensemble de messages MSGAJ considérés comme normalement attendus par cette application AP1. Dans une première variante qui sera décrite en référence aux figures 5 et 6 on dispose en outre d'un ensemble de 20 message non attendus. Dans une seconde variante qui sera décrite en référence aux figures 7 à 9 on ne dispose que de messages normalement attendus. Les messages MSGAJ considérés comme normalement attendus par l'application API peuvent avoir été préalablement capturés et constituer 25 tout ou partie d'un histonque des messages reçus par l'application API. Ils peuvent éventuellement comporter des messages qui ne sont pas effectivement attendus par l'application APJ mais qui n'ont pas été identifiés comme tels. Les messages MSGA1 considérés comme normalement attendus par l'application APJ peuvent être qualifiés comme appartenant à une classe de référence CR, propre à l'application API. Conformément à l'invention, le procédé de création du modèle Mà comporte une étape E10 d'obtention d'un ensemble de messages MSGA1 considérés comme normalement attendus. Plus précisément, l'ensemble des messages MSGAJ considérés comme normalement attendus par l'application Al°, est divisé en deux 10 sous-ensembles, à savoir en une base d'apprentissage BA, comportant des messages ci-après référencés MSGAa, et en une base de test BT, comportant des messages ci-après référencés MSGAt,. Dans un mode particulier de réalisation, le procédé comporte une 5 étape Eh l qui permet d'obtenir un second ensemble de messages M5GNA, n'appartenant pas à la classe de référence CR, propre à l'application AP, pour constituer une base de test de messages non attendus BTNA1 comportant les messages MSGNA,. Conformément à l'invention, le procédé de création du modèle My 10 comporte une étape E15 d'identification des K digrammes NGk,, des messages MSGAa, de la base d'apprentissage BA,. Ces digrammes sont notés NGK, tel que k varie de 1 à K. Cette étape consiste à considérer tous les messages MSGA,a) de la base d'apprentissage BA, et, pour chacun de ces messages, à identifier l'ensemble des digrammes de ce message 15 comme dans l'exemple décrit précédemment en référence à la figure 1. En reprenant l'exemple de la figure 1, les digrammes du message MSG sont {« ab », « bb », « bc », « cd », « da « ab », « bd »}. Conformément à l'invention, le procédé de création du modèle M, comporte une étape générale E20 de génération d'un vecteur VP, associé 20 à ce modèle, dont un exemple est représenté à la figure 3. Le vecteur VP, généré par l'invention est un tableau comportant des composantes VPCq (représentées sur une première ligne du tableau de la Figure 3) représentant les Q digrammes distincts NGQ, de la base d'apprentissage BA,. 25 Chacune de ces composantes est associée à une composante (représentée sur la deuxième ligne du tableau) dont la valeur représente une probabilité pbq d'occurrence du digramme correspondant (calculée au cours d'une étape E24) dans la base d'apprentissage BA,. Dans le mode de réalisation décrit ici, la probabilité pbq 30 d'occurrence d'un digramme NGQ, dans la base d'apprentissage BA, est calculée en divisant (i) le nombre d'occurrences de ce digramme dans la base BA, par (ii) le nombre total de digrammes dans la base d'apprentissage. Dans un mode de réalisation alternatif, la probabilité pbq peut être 35 calculée sur un échantillon des messages ou des digrammes de la base d'apprentissage. 11 Toujours en référence à la figure 1, en supposant que la base d'apprentissage ne comporte que le message MSG, cette base d'apprentissage comporterait 7 digrammes, le digramme « ab » ayant deux occurrences, chacun des autres digrammes ayant une seule 5 occurrence. Par conséquent, la probabilité d'occurrence du digramme « ab » est fixée à 2/7 et celle des autres digrammes « bb », bc « cd », « da » et « bd » est fixée à 1/7. Le vecteur VI), généré par l'invention associe en outre aux digrammes qui n'appartiennent pas à la base d'apprentissage BAI, une 10 valeur par défaut vbdi (déterminée au cours d'une étape E26). Dans le mode de réalisation décrit ici, la même valeur par défaut est associée à tous les digrammes qui n'appartiennent pas à la base d'apprentissage BA). Toujours en référence à la figure 1, cette valeur par défaut vbdj est 15 ainsi attribuée notamment aux digrammes « ba », « cc », « de », « ae » et « ef » Ainsi, dans ce mode de réalisation et comme représenté la figure 3, le vecteur VP, comporte, en colonne Q+1, une composante VPCO représentant les digrammes absents de la base d'apprentissage BA], cette 20 composante étant associée à une composante représentant ka valeur par défaut vbc1, fixée à 1/21 dans cet exemple. Deux méthodes conformes à l'invention pour fixer la valeur par défaut vbd, seront décrites ultérieurement en référence aux figures 5 à 9. Conformément à l'invention, le procédé de création d'un modèle M, 25 comporte une étape E30 de définition d'une fonction SCR3 permettant d'attribuer un score SC à un message MSGEv à évaluer à partir des valeurs du vecteur VPJ (composantes de la deuxième ligne du tableau de la figure 3) associées aux digrammes dudit message à évaluer MSGEv. Cette fonction SCRj d'attribution d'un score est choisie pour permettre de discriminer les scores des anomalies par rapport aux scores des messages normalement attendus par l'application APj, cette discrimination se faisant en comparant les scores par rapport à un seuil THj défini pour cette fonction. Dans la suite de la description, on considérera que les anomalies 35 sont les messages dont les scores attribués par la fonction sont inférieurs au seuil. Mais en variante, il pourrait être considéré que les anomalies sont 12 les messages dont les scores attribués par la fonction sont supérieurs au seuil. La fonction SCRJ peut par exemple être la moyenne harmonique des valeurs associées dans le vecteur VP aux digrammes du message MSGEv à évaluer. On rappelle que la moyenne harmonique H d'un ensemble de M termes xi, x1 strictement positifs est : M/(1/x1 + + 1/xm). 10 Par exemple si on applique la fonction SCR, aux valeurs suivantes 9 , 10 10 10 11 11 12 Ensemble de valeurs On obtient avec la moyenne harmonique des valeurs 1 à 9 du tableau un 15 résultat proche de 9.9. On remarque que cette valeur est proche de la moyenne classique (dite moyenne arithmétique) qui est de 10. Si on applique maintenant la fonction SCRi à l'ensemble des valeurs précédentes auquel on rajoute la valeur 16, soit environ 6 points au-20 dessus des moyennes précédentes, on voit que pour la moyenne arithmétique on obtient 10,6 soit une variation de 0,6 de même pour la moyenne harmonique on obtient une valeur proche 10,3 soit une variation proche de 0,4. Cet écart montre la sensibilité de la fonction harmonique pour un ensemble de valeurs données. 25 Si au lieu de rajouter une valeur située environ 6 points au-dessus des moyennes précédentes on rajoute une valeur située environ 6 points en-dessous, c'est-à-dire par exemple la valeur 4, et que l'on applique la fonction SCR, à ce nouvel ensemble des valeurs on voit que pour la 30 moyenne arithmétique on obtient 9,4 soit une variation en valeur absolue de 0,6 identique à la variation obtenue pour la valeur située 6 points au-dessus. Si on choisit la moyenne harmonique comme fonction SCR) on obtient une valeur proche de 8,6 soit une variation en valeur absolue proche de 1,3 c'est-à-dire plus de trois fois supérieure à l'écart obtenu 35 précédemment. Ceci illustre le comportement discriminant de la moyenne 13 harmonique envers les faibles valeurs. Toute fonction ayant ce comportement pourra être utilisée comme fonction SCR, et en particulier toutes les moyennes généralisées d'ordre négatif. D'autres fonctions d'attribution d'un score peuvent être envisagées, et notamment la fonction : (xi, xm) -> (In(avg/xj) + + In(avg/xm)) / M avec avg-(xi+...+xm)/M 10 les moyennes généralisées d'ordre strictement inférieur à 1 : (xi, ..., xm) --) exp((log(xi) + + log(xm))/M (xi, ..., xm) -) ((x1-2 + + xm-2)/M)1t2 ..., xm) -> ((x1-3 + + 15 Par symétrie on peut également utiliser des fonctions discriminant les valeurs aberrantes situées au-delà de la moyenne. Toutes les moyennes généralisées d'ordre strictement supérieur à 1 (moyennes quadratiques, cubiques ...) peuvent être utilisées comme fonctions d'attribution d'un score et notamment : 20 (x1, xm) ((x12 + + xm2)/M)1/2 ..., x.1) ((x13 + + xm3)/M)in En référence aux figures 13, 14 et 15, la Demanderesse a créé une base d'apprentissage BAj de 40 quarante messages et calculé le score de 25 chacun de ces quarante messages en utilisant respectivement, pour fonction d'attribution du score, une moyenne arithmétique (figure 13), une moyenne géométrique (figure 14) et une moyenne harmonique (figure 15). Sur chacune de ces figures, les points représentent les scores de ces 40 30 messages et la ligne pointillée le plus petit de ces scores. La Demanderesse a ensuite calculé le score d'un message à évaluer et représenté ce score de ce message par une croix, ce quarante-et-unième message étant différent des quarante messages de la base d'apprentissage. 35 Il apparaît sur ces figures que l'écart entre le score du message à évaluer et le plus petit score obtenu pour ceux de la base d'apprentissage est plus 14 important pour la moyenne géométrique que pour la moyenne arithmétique et encore plus important pour la moyenne harmonique. Ceci illustre les sensibilités de ces différentes fondions d'attribution de score, et par conséquent le fait que parmi ces trois fonctions, la moyenne harmonique est celle qui a le plus de chance de discriminer les anomalies au sens de l'invention. Conformément à l'invention, le procédé de création d'un modèle Mi comporte une étape E40 de définition d'un seuil Thli. 10 Si l'on choisit une fonction qui discrimine les valeurs en deçà de la moyenne, ce seuil peut par exemple être défini comme étant le score le plus faible parmi les scores SCR3 des messages MSGA, de la base d'apprentissage 8,43. Si l'on choisit une fonction qui discrimine les valeurs au-delà de la moyenne, ce seuil peut par exemple être défini comme étant 15 le score le plus élevé parmi les scores SCR, des messages MSGA3 de la base d'apprentissage BA3. Le procédé de création selon l'invention permet ainsi de créer un modèle M3 comportant un vecteur VP3, une fonction d'attribution de score SCR3, et un seuil P-13. 20 Un tel modèle Mi constitue un module logiciel destiné à être utilisé dans un procédé et dans un dispositif de détection d'anomalies conformes à l'invention pour détecter si un message à évaluer constitué de symboles C1 constitue une anomalie. Un procédé de détection conforme à l'invention va maintenant être 25 décrit en référence à la figure 4. Ce procédé comporte une étape F10 d'extraction des digrammes d'un message MSGEv à évaluer, comme décrit précédemment en référence à La figure I. L'étape F10 est suivie par une étape F20 d'attribution d'un score SC 30 au message à évaluer MSGEv. On utilise pour cela la fonction SCRJ du modèle M3, qui, attribue ce score à partir du vecteur VP3 du modèle M3 et des digrammes du message MSGEv à évaluer. Plus précisément, pour chacun des digrammes du message à évaluer, on extrait du vecteur VI)) 15 la valeur pbq associée à la composante VPQ, si celle-ci est présente dans la première ligne de ce vecteur, autrement dit si ce digramme est compris dans la base d'apprentissage BAj ou la valeur par défaut vbdi associée à la composante VPCO si ce 5 digramme n'est pas compris dans la base d'apprentissage BAj. Dans ce mode de réalisation le score SC correspond à la moyenne harmonique pondérée qui est le nombre de digrammes extraits divisé par la somme des inverses des dites valeurs extraites. Par exemple si on choisit la moyenne harmonique H définie 10 précédemment comme fonction SCRi le score attribué au message MSG de la figure 1, est de 7/(7/2 + 7 + 7 + 7+ 7+ 7/2 + 7), soit 1/6. En considérant maintenant le message à évaluer « bcc » et la valeur par défaut vbd1 égale à 1/21 cette moyenne harmonique H attribue à ce message le score 2/(7+21) soit 1/14, car ce message comporte deux 15 digrammes, à savoir le digramme « bc» de probabilité 1/7 et le digramme cc » de valeur par défaut 1/21. Le procédé de détection selon l'invention détermine si le message à évaluer MSGEv constitue une anomalie en comparant, au cours d'une étape F30, le score SC au seuil TH, du modèle Mj. Dans l'exemple de la 20 figure 4, on considère que le message à évaluer est une anomalie (étape F33) si le score SC est strictement inférieur à ce seuil THj. Sinon, on considère (étape F35) que le message à évaluer MSGEv est un message normalement attendu par l'application APj. Dans le mode de réalisation décrit ici, une anomalie détectée à 25 l'étape F30 est enregistrée dans un journal à l'étape F40. Première variante de calcul de la valeur par défaut vbd En référence à la figure 5, nous allons maintenant décrire une 30 première méthode utilisant les courbes ROC connues de l'homme du métier et conforme à l'invention pour obtenir la valeur par défaut à attribuer, dans le vecteur VP' aux digrammes qui ne sont pas présents dans la base d'apprentissage BA,. Cette figure illustre un premier mode de réalisation de l'étape E26. 35 Ce mode de réalisation de l'invention peut être mis en oeuvre si l'on dispose, en plus d'ensemble de messages considérés comme normalement 16 attendus, d'un ensemble de messages MSGNA, considérés comme non attendus par ladite application API qui peuvent avoir été préalablement capturés (typiquement par la mise en oeuvre de l'étape En déjà décrite) et constituer tout ou partie d'un historique des messages reçus par 5 l'application AR). Cette méthode comporte une étape E261 d'initialisation d'une valeur courante vbd à une valeur minimum prédéterminée pmin et une première boucle I31 au cours de laquelle on fait varier la valeur courante vbd, selon un pas prédéterminé dans cet exemple, ainsi qu'une étape 10 E2610. La boucle B1 comportant des étapes E262, E263, E266, E267 et E269. Au cours de l'étape E262, on applique le procédé de détection décrit en référence à la figure 4 aux messages MSGAtj de la base de test BTj pour déterminer si ces messages constituent ou non une anomalie. On 15 utilise au cours de cette étape la fonction SCRj du modèle Mj après avoir fixé, dans ledit vecteur VPj, la valeur par défaut vbc13 égale à la valeur courante vbd. Les messages MSGAt3 de la base de test sont par nature considérés comme étant attendus par l'application API. Autrement dit, les messages 20 détectés comme des anomalies au cours de l'étape E262, constituent des faux positifs. On détermine ainsi, au cours d'une étape E263 un taux TFP de faux positifs pour les messages MSGAt, de la base de test ET, pour la valeur courante vbd. Ce taux est le ratio entre le nombre de messages détectés 25 comme des anomalies et le nombre de messages de la base de test. Au cours d'une étape E266 on applique le procédé de détection déjà décrit en référence à la figure 4 aux messages MSGNA3 pour déterminer si ces messages constituent ou non une anomalie. On utilise au cours de cette étape la fonction SCRj du modèle Mj après avoir fixé, 30 dans ledit vecteur VPj, la valeur par défaut vbdj égale à la valeur courante vbd. Les messages MSGNA sont par nature considérés comme non attendus par l'application APj et devraient donc être détectés comme des anomalies. Si une anomalie est détectée au cours de l'étape E266, elle 35 constitue un vrai positif. 17 Au cours d'une étape E267, on détermine le taux TD de détection pour la valeur courante vbd. Ce taux est le ratio du nombre de messages détectés comme des anomalies et le nombre de messages de la base de test des messages non attendus BTNAJ. 5 Dans ce mode de réalisation, au cours d'une étape E269, on constitue un couple que l'on associe à la valeur courante de vbd, et que l'on représente, dans le repère illustré à la Figure 6, par un point Pi dont l'abscisse correspond au taux de faux positif TFP calculé à l'étape E263 et dont ['ordonnée correspond au taux de détection TD calculé à l'étape 10 E267. Cette première méthode permet de tracer, à partir de ces points, une courbe connue de l'homme du métier sous le nom de courbe ROC. On choisit ensuite la valeur par défaut vbd à attribuer dans le vecteur VP, du modèle M' aux digrammes non présents dans la base 15 d'apprentissage BAj à partir des taux TFP, TD calculés au cours des différentes itérations de la boucle B1 et d'un cadre d'utilisation CU de l'invention. Plus précisément, dans ce mode de réalisation de l'invention, on peut sélectionner (étape E2610) un des couples constitué au cours d'une 20 occurrence de l'étape E269 de l'invention et relever la valeur vbd associée à ce couple pour constituer la valeur par défaut vbd, On peut également choisir un point de la courbe de la figure 6 et calculer par interpolation la valeur vbd associée à ce point. De manière connue de l'homme de l'art, le cadre d'utilisation CU 25 (web, communication avionique) impose des contraintes sur le compromis entre le taux de faux positifs TFP et la capacité du modèle à détecter une anomalie c'est-à-dire le taux de détection TD. La courbe de la figure 6 représente une évaluation de ce compromis entre [e taux de faux positifs TFP et la capacité à détecter un 30 message non attendu comme une anomalie du modèle Mj. Deuxième variante de calcuLde la valeur par défaut vbd, En référence à la figure 7, nous allons maintenant décrire une seconde méthode conforme à l'invention pour obtenir la valeur par défaut 35 vbd j à associer, dans le vecteur VP' aux digrammes qui ne sont pas 18 présents dans la base d'apprentissage BAI. Cette figure illustre ainsi un mode de réalisation de l'étape E26. Cette variante peut être utilisée lorsque l'on ne possède pas d'historique ou pas un historique suffisant de messages non attendus par 5 l'application APj. Dans ce mode de réalisation, l'étape E11 décrite précédemment en référence à la figure 1 n'est pas mise en oeuvre. Cette méthode comporte des étapes E261, E262 et E263 identiques à celles décrites en référence à la figure 5. Au cours de l'étape E261, et comme déjà décrit en référence à la 10 figure 5, on initialise une valeur courante vbd à une valeur minimum prédéterminée p Cette méthode comporte une première boucle 82 (similaire à la boucle B1 décrite en référence à la figure 5) au cours de laquelle on fait varier la valeur courante vbd, selon un pas prédéterminé dans cet 15 exemple, ainsi qu'une étape E2710. La boucle B2 comporte les étapes E262 et E263 déjà décrites, une étape E274, une boucle B3, une étape E278 et une étape E279. Au cours de l'étape E262, et comme décrit en référence à la figure 5, on applique le procédé de détection décrit en référence à la figure 4 20 aux messages MSGAt3 de la base de test BTj pour déterminer si ces messages constituent ou non une anomalie. Les messages détectés comme des anomalies au cours de l'étape E262, constituent des faux positifs, et, au cours de l'étape E263 on détermine un taux TFP de faux positifs pour les messages M5Gt3 de la base de test BI] pour la valeur 25 courante vbd. La boucle 83 comporte une étape E275, une étape E276 et une étape E277 Au cours d'une étape E274, on initialise un nombre de mutations nmut, la boucle 63 étant conçue pour faire varier à chaque itération ce 30 nombre de mutations. Dans l'exemple de la figure 7, l'étape E274 initialise nmut à 1 et la boucle B3 incrémente ce nombre de mutations d'une unité. Au cours d'une étape E275 on génère pour chacun des messages de la base de test, un message non attendu MSGt;'nmut en faisant varier un nombre nmut de mutations de symboles Ci dans les digrammes de ce 35 message MSGt, de la base de test BT3. Autrement dit, toujours dans cet exemple, à la renie itération de la boucle 83, chaque message non attendu 19 présente exactement p digrammes dont un symbole a été muté par rapport à un message de la base de test. Au cours d'une étape E276, on applique le procédé de détection décrit en référence à la figure 4 aux messages non attendus MSGtir'n"ut 5 pour déterminer si ces messages sont détectés ou non comme des anomalies. On utilise au cours de cette étape la fonction SCRj du modèle Mj après avoir fixé, dans ledit vecteur VPJ, la valeur par défaut égale à la valeur courante vbd. Les messages MSGb*,nmut sont construits pour être détectés comme 10 des anomalies. Si une anomalie est détectée au cours de l'étape E276, elle constitue un vrai positif. On détermine ainsi, au cours d'une étape E277, un taux TD de détection pour des messages ayant subi nmut mutations et pour la valeur courante vbd. Ce taux est le ratio entre le nombre de messages détectés 15 comme des anomalies et le nombre de messages de la base de test ayant été mutés. Cette étape E277 termine la boucle B3. Les figures 8-1 à 8-9 illustrent, pour 9 valeurs de la valeur courante vbd notées vbdl à vbd9, la variation du taux de détection TD en fonction du nombre nmut de mutations 20 Au cours d'une étape E278, on détermine un nombre nmut,'k, minimum de mutations pour obtenir un taux de détection TD',,,- de confiance prédéfini en fonction d'un cadre d'utilisation CV de l'invention décrit à l'étape E2710. Par exemple, si on choisit un taux de confiance TD',,f prédéfini de 25 1, on obtient, à partir des 9 courbes des figures 8-1 à 8-9, les nombres nmutun minimum de mutations suivants vbdl vbd2 vbd3 vbd4 vbd5 vbd6 vbdl vbd8 vbd9 nmutmin 10 15 20 25 30 40 50 60 70 Nombre minimwn de mutations pour un taux de confiance ' f de 30 Au cours d'une étape E279, on associe, à la valeur courante vbd, un couple comportant ledit nombre nmutmin minimum de mutations déterminé à l'étape E278 et le taux de faux positifs TFP calculé à l'étape E263. Cette étape termine la boucle 81. 20 Chaque couple permet de représenter un point sur le diagramme de la figure 9. vbdl vbd2 vbd3 vbd4 vlad5 vbd6 vbd7 vbd8 vbd9 nmutmh 10 15 20 25 30 40 j 50 60 70 TFP ; 0.35 0.28 0.22 0.18 0.15 0.11 j 0.08 0.05 0.03 Evolution du taux de faux positifs en fonction du nombre minimum de mutations pour un taux de confiance Taon,. de 1. Dans ce mode de réalisation de l'invention, on sélectionne au cours d'une étape E2710 un couple constitué au cours d'une occurrence de l'étape E279 en fonction d'un cadre d'utilisation CU de l'invention et on affecte la valeur vbd associée à ce couple à la valeur par défaut vbd, à 10 attribuer dans le vecteur VP) du modèle il, aux digrammes non présents dans la base d'apprentissage BA,. La valeur par défaut vbc1, peut également être déterminée par interpolation à partir de plusieurs couples. Cette opération revient par exemple à déterminer un point de la courbe de la figure 9 placé entre 15 deux points voisins Pi, Pi+1 de cette courbe, et à déterminer la valeur vbdj par interpolation entre les valeus vbdi, vbdi+1 associées à ces couples. Le cadre d'utilisation (web, communication avionique) impose des contraintes sur le taux de faux positifs TFP et sur la capacité du modèle à détecter une anomalie (TD) comme déjà décrit en référence à la figure 5. 20 Dans cette deuxième variante cette capacité de détection est représentée par le nombre minimum de mutations. La valeur vbd associée au couple garantit par construction, pour un taux accepté de faux positif, qu'un message sera détecté comme une anomalie dans les limites du taux de confiance TDconf fixé à l'étape E278, dès lors que ce message comporte au 25 moins nmutmjn digrammes inconnus. Les messages comportant moins de nmutn,,, digrammes inconnus peuvent aussi être détectés, mais le procédé ne le garantit pas. La figure 10 représente un système dans lequel l'invention peut être mise en oeuvre, dans le contexte d'un aéronef. 30 On rappelle que dans un aéronef 10, un certain nombre d'applications APj communiquent avec des équipements 20 au sol. Dans le domaine de l'avionique, il est usuel de considérer trois principaux domaines définis notamment selon un niveau de criticité, à 21 savoir le domaine ACD (Aircraft Control Domain) tries critique qui permet de contrôler l'avion, le domaine AISD (Airline Information Systern Demain, et le domaine de moindre criticité PIESD (Passenger Information and Entertainement Domain). 5 L'invention peut en particulier être utilisée pour détecter sr un message destiné à une application embarquée APj dans l'aéronef 10 constitue une anomalie. Dans ce mode de réalisation, les messages au sens de l'invention pourraient être la charge utile (en anglais « Payload ») de messages de 10 type ACARS destinée aux applications APj. On rappelle que ces charges utiles reçues du sol dans des messages MSGA de type ACARS et sont aiguillées vers l'application par un routeur 15 embarqué dans l'aéronef en fonction d'un label compris dans l'en-tête de ce message. Ces messages ACARS pourraient éventuellement être encapsulés 15 dans des paquets W MSGI et transmis à l'application APj via une passerelle 18 du domaine AISD En pratique, le procédé de création du modèle peut-être mis en oeuvre dans un équipement au sol. Il permet de construire un modèle (vecteur, fonction d'attribution d'un score, seuil), pour une application 20 embarquée donnée, à partir d'un historique de messages reçus par cette application et classifiés en message effectivement attendus et messages non attendus par cette application. L'invention ne nécessite pas de connaître la nature des anomalies mais lorsqu'on possède aussi un historique d'anomalies, cet historique 25 peut être utilisé comme décrit précédemment en référence à la figure 5 pour déterminer la valeur par défaut à attribuer dans le vecteur aux digrammes non présents dans la base d'apprentissage. La figure 11 représente un dispositif 200 de création d'un modèle conforme à l'invention. 30 Ce dispositif comporte un module M10 apte à obtenir un ensemble de messages MSGA compris dans une base d'apprentissage BAj et dans une base de test BTJ, optionnellement un second ensemble de messages MSGNA compris dans une base BTNA, un module M20 d'identification de l'ensemble des digrammes des messages, et apte à générer un vecteur VPJ 35 tel que décrit précédemment, un module M30 permettant de définir une fonction SCRJ permettant d'attribuer un score SC à un message MSGEv à 22 évaluer et de définir un seuil TH' et un module M40 apte à restituer un modèle M, comportant le vecteur V131, la fonction SCRj et le seuil THj sous forme de module logiciel. En pratique le dispositif peut être incorporé dans un ordinateur. Le module MW est un module de communication apte à recevoir les messages MSGA' MSGNA, via un réseau ou un module de lecture d'un support comportant ces messages tel que les bases de données BA, et BINA,. Le module M20 peut être un programme informatique exécutable 10 par un processeur et comportant des instructions pour extraire les différents digrammes et calculer les différentes probabilités. Le module M30 permet de définir la fonction d'attribution d'un score et le seuil. Le module M40 peut être constitué par un outil permettant de générer un objet informatique comportant un ou plusieurs modèle M, par exemple 15 sous forme de librairie. Le procédé de détection d'anomalie peut être mis en oeuvre soit dans l'aéronef en amont de l'application à protéger, par exemple dans le routeur 15, dans la passerelle 18, ou au sol. La figure 12 représente un dispositif 300 de détection d'anomalie 20 conforme à l'invention et permettant de déterminer si un message MSGEv à évaluer constitue une anomalie. Il comporte un module G10 d'extraction des digrammes d'un message, un module G20 d'attribution d'un score SC au message à évaluer en utilisant le modèle Mi, et un module G30 de comparaison du score SC du message à évaluer MSGEv avec un seuil TH] 25 du modèle pour décider, si le message à évaluer MSGEv est une anomalie. Les différents modules G10, G20, REVENDICATIONS1. Procédé de création d'un modèle (Mi) permettant de détecter si un message à évaluer (MSGEv) constitué de symboles (Q) susceptible d'être reçu par une application (APi) constitue une anomalie, ce procédé comportant une étape (E10) d'obtention d'un ensemble de messages (MSGAai) appartenant à une classe de référence (CRJ) propre à l'application (APi) pour constituer une base d'apprentissage (SM - une étape (E15) d'identification de l'ensemble des N-grammes (NG) des messages (MSGAaj) de la base d'apprentissage (BAD ; une étape (E20) de génération d'un vecteur (VP) du modèle (Mi), ce vecteur (VPj) associant - à chacun desdits N-grammes, une valeur représentant une 1,5 probabilité (pbkj) d'occurrence dudit N-gramme (NG) dans la base d'apprentissage (BA3) ; et - une valeur (vbdi) par défaut aux N-grammes (NG) qui n'appartiennent pas aux messages (MSGAai) de la base d'apprentissage (BAJ) ; 20 ledit procédé comportant en outre une étape (E33, E40) de définition d'une fonction (SCR) permettant d'attribuer un score (SC) a un message (MSGEv) à évaluer à partir des valeurs du vecteur (VPj) associées aux N-grammes dudit message à évaluer (MSGEv), cette fonction étant choisie pour discriminer les scores 25 des anomalies par rapport aux scores des messages normalement attendus en comparant ces scores à un seuil (THi) défini (E40) pour cette fonction; ledit message (MSGEv) à évaluer étant considéré ou non comme une anomalie en fonction du résultat de la comparaison dudit score (SC) 30 attribué à ce message avec ledit seul: (TH1). 2. Procédé selon la revendication 1 dans lequel la fonction (SCRi) utilise, pour attribuer ledit score (SC) audit message à évaluer, une moyenne généralisée d'ordre inférieur à 1 appliquée aux composantes du vecteur 35 (/Pj) correspondant aux N-grammes de ce message à évaluer (MSGEv). 24 3. Procédé selon I -evendic ou 2 dans lequel es Ni-grammes sont des digrammes. 4. Procédé selon l'une quelconque des revendications 1 à 3 dans lequel au moins certains desdits messages (MSGAa) de la classe de référence sont des messages ACARS ou une partie de messages ACARS. 5. Procédé selon la revendication 4 dans lequel lesdits messages AC sont encapsulés dans des paquets IP. 6. Pros Procédé selon l'une quelconque des revendications 1 à dans lequel ladite application (APi) est conforme la norme ARINC. 7, Procédé selon l'une quelconque des revendications 1 à 6 dans lequel ladite étape (E26) de détermination de la valeur par défaut (vbdi) pour les N-grammes (NG) qui n'appartiennent pas aux messages (MSGAai) de la base d'apprentissage (BA) comporte - une boucle (BI.) au cours de laquelle on fait varier une valeur courante (vbd), la boucle comportant - une étape (E262) de détection d'anomalies parmi les messages (MSGAt) d'une base de test (131-i) de la classe de référence (CRi), évaluant si chacun de ces messages constitue une anomalie en utilisant un procédé de détection d'anomalie conforme à l'une quelconque des revendications 9 à 11, après avoir fixé dans ledit 25 vecteur (VPD, ladite valeur par défaut (vbcii) égale à ladite valeur courante (vbd) une étape (E263) de on d'un taux (TFP) de faux positifs pour les messages MSGAti) de la base de test (81-j) pour ladite valeur courante, à partir du nombre d'anomalies détectées 30 parmi les messages (MSGAti) de la base de test (BI) ; - une étape (E266) de détection anomalies parmi des messages (MSGNAi) non attendus par ladite application et compris dans une hase (BTNAi) de messages «appartenant pas à ladite classe de référence (CRi), évaluant si chacun de ces messages constitue une 35 anomalie en utilisant le procédé de détection d'anomalie de la 25 revendication 10 ou 11 après avoir fixé dans ledit vecteur (VPj) ladite valeur par défaut (vbdi) égale à ladite valeur courante (vbd) ; - une étape (E267) de détermination d'un taux (TD) de détection pour lesdits messages non attendus (MSENA:), à partir du nombre d'anomalies détectées parmi ces messages non attendus (NISONA;) ; ladite valeur par défaut (vbd) étant choisie (E259, E2610) à partir desdits taux (TFP, TD) et d'un cadre d'utilisation (CU) dudit procédé. 10 8. Procédé selon l'une quelconque des revendications 1 à 7 dans lequel ladite étape (E26) de la détermination de la valeur par défaut (vbciù pour les N-grammes (NO) qui n'appartiennent pas aux messages (ivISGAaj) de la base d'apprentissage (Eitij) comporte :, une première boucle (82) au cours de laquelle on fait varier une valeur 15 courante (vbd), cette première boude comportant - une étape (F262) de détection d'anomalies parmi les messages (MSGAti) d'une base de test (E3Ti) de la classe de référence (CR;), évaluant Si: chacun de ces messages constitue une anomalie en utilisant un procédé de détection d'anomalie conforme à l'une quelconque des revendications 9 à 11, après avoir fixé dans ledit vecteur (VPJ), ladite valeur par défaut (vbd) égale à ladite valeur courante (vbd) - une étape (E263) de détermination d'un taux (TFP) de faux positifs pour les messages (MSGAti) de la base de test (BTi) pour ladite valeur courante, à partir du nombre d'anomalies détectées parmi ces messages - une deuxième boude (83) au cours de laquelle on fait varier un nombre de mutations (nmut), cette deuxième boude comportant - une étape (E275) de génération, à partir de messages de la base de test (BT), et pour chacun (MSGAti) de ces messages, d'un message non attendu (MSGtiefien) obtenu en faisant varier le nombre (nmut) de mutations de symboles (Ci) dans des N-grammes de ce message (MSGAti) ; et - une étape (E276; E277) de détermination d'un taux (ID) de détection pour lesdits messages non attendus (msGicit-ut) ; 26 - une étape (E278) de détermination d'un nombre (nmut'in) minimum de mutations pour obtenir un taux de détection (TD')nr) de confiance prédéfini ; et - une étape (E279) au cours de laquelle on associe, à chaque dite 5 valeur courante (vbd), un couple comportant ledit nombre (nmutmin) minimum de mutations et ledit taux de faux positifs (TFP) ; et - une étape de sélection d'un dit couple en fonction d'un cadre d'utilisation (CU) dudit procédé, ladite valeur par défaut (vbd) étant choisie (F279) à 10 partir de ladite valeur (vbd) associée audit couple. 9. Procédé de détection d'anomalie permettant de déterminer si un message (MSGEv) à évaluer constitué de symboles (Ci) et susceptible d'être reçu par une application (APJ), constitue une anomalie, ce procédé 15 comportant : - une étape (F10) d'extraction des N-grammes (NGk) de ce message à évaluer ; - une étape (F20) d'attribution d'un score (SC) au message à évaluer (MSGEv) à partir d'un vecteur (VP;) et des N-grammes du message 20 (MSGEv) à évaluer, ce vecteur (VPJ) associant à chacun des N-grammes de l'ensemble des messages (MSGAE.,,,) d'une base d'apprentissage (BAJ) d'une classe de référence (CRi), une valeur correspondant à une probabilité d'occurrence de ce N-gramme dans ladite base d'apprentissage, et une valeur par défaut (vbd) aux N-grammes qui 25 n'appartiennent pas aux messages (NISGAai) de la base d'apprentissage (BAI ledit score (SC) étant attribué par une fonction choisie pour discriminer les scores des anomalies par rapport aux scores des messages normalement attendus par ladite application, en comparant ces scores par rapport à un seuil (rH) défini pour cette fonction ; et 30 - une étape (F30) de comparaison du score (SC) du message à évaluer (MSGEv) avec ledit seuil (TH1) pour décider, si le message à évaluer (MSGEv) est une anomalie. 10. Procédé de détection d'anomalie selon la revendication 9 Caractérisé 35 en ce qu'il comporte une étape (F40) d'enregistrement de ladite anomalie ou de génération d'une alerte. 11. Procédé selon l'une quelconque des revendications10 dans lequel, le seuil est défini (E30) - à partir du score (SC) le plus faible attribué auxdits messages (MSGAaj) de la base d'apprentissage (BAj), lorsque ladite fonction (SCRj) discrimine les scores des anomalies en leur attribuant des valeurs faibles ; valeurs ou -a partir du score (SC) le plus fort attribué auxdits messages (MSGAai) de la base d'apprentissage (BAD, lorsque ladite fonction (SOM discrimine les scores des anomalies en leur attribuant des valeurs élevées. 10 12. Dispositif de création d'un modèle (Mi) permettant de détecter si un message à évaluer (MSGEv) constitué de symboles (Q) susceptible d'être reçu par une application (APi) constitue une anomalie, ce dispositif 15 comportant - un module (M10) d'obtention d'un ensemble de messages (MSGAai) appartenant à une classe de référence (CR;) propre à l'application (APj) pour constituer une base d'apprentissage (BA1) - un module (M20) d'identification de l'ensemble des N-grammes (NGis,) 20 des messages (MSGAai) de la base d'apprentissage (BAj) - un module (M20) de génération d'un vecteur (VP1) du modèle (MI ce vecteur (VPj) associant - à chacun desdits N-grammes, une valeur représen.ant une probabilité (pbk,j) d'occurrence dudit N-gramme (NG K,) dans la base 25 d'apprentissage (BA)) ; et - une valeur (vbc1;) par défaut aux N-grarn e (NG) qui n'appartiennent pas aux messages (MSGA8j) de la base d'apprentissage (i3A,) ledit dispositif comportant en outre : 30 - un module (M30) de définition d'une fonction permettant d'attribuer un score (SC) à un message (MSGEv) à évaluer â partir des valeurs du vecteur (VPj) associées aux N-grammes dudit message à évaluer (MSGEv) cette fonction étant choisie pour discriminer les scores des anomalies par rapport aux scores des messages normalement attendus en comparant 35 ces scores à un seuil (1-1-11) défini pour cette fonction; 28 edit message (MSGEv) à évaluer étant considéré ou non comme une anomalie en fonction du résultat de la comparaison dudit score (SC) attribue à ce message avec ledit seuil (Th). 5 13. Dispositif' de détection d'anomalie permettant de déterminer si un message (MSGEv) à évaluer constitué de symboles (0) et susceptible d'être reçu par une application (APJ) constitue une anomalie, ce dispositif comportant - un module (G10) d'extraction des N-grammes (NGk) de ce message à 10 évaluer ; - un module (G20) d'attribution d'un score (Sc) au message à évaluer (MSGEv) à partir d'un vecteur (VP;) et des N-grammes du message (MSGEv) à évaluer, ce vecteur (VPi) associant à chacun des N-grammes de l'ensemble des messages d'une base d'apprentissage (BAJ) d'une classe 15 de référence (CRI une valeur correspondant à une probabilité d'occurrence de ce N-gramme dans ladite base d'apprentissage (BAi), et une valeur par défaut (vbcii) aux N-grammes qui n'appartiennent pas aux messages (MSGAal) de la base d'apprentissage (BA), ledit score (SC) étant attribué par une fonction choisie pour discriminer les scores des 20 anomalies par rapport aux scores des messages normalement attendus par ladite application, en comparant ces scores par rapport à un seuil (11-1;) défini pour cette fonction ; et - un module (G30) de comparaison du score (SC) du message à évaluer (MSGEv) avec ledit seuil (TH) pour décider si le message à évaluer 25 (MSGEv) est une anomalie. 14, Programme d'ordinateur comportant des instructions pour l'exécution des étapes du procédé de création de modèle selon l'une quelconque des revendications 1 à 8 et 11 lorsque ledit programme est 30 exécuté par un ordinateur. 15. Programme d'ordinateur comportant des instructions pour l'exécution des étapes du procédé de détection d'anomalie selon l'une quelconque des revendications 9 à 11 lorsque ledit programme est 35 exécuté par un ordinateur, 29 16, Support d'enregistrement lisible par un ordinateur Sur lequel est enreutstré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes du procédé de création de modèle selon l'une quelconque des revendications 1 à 8 et 11, 17. Support d'enregistrement lisible par un ordinateur sur lequel est enregistré un programme d'ordinateur comprenant des instructions pour l'exécution des étapes du procédé de de détection d'anomalie selon l'une quelconque des revendications 9 à 11.