[go: up one dir, main page]

FR3038187A1 - METHOD FOR DETECTING ANOMALIES IN THE EXECUTION OF A SERVICE - Google Patents

METHOD FOR DETECTING ANOMALIES IN THE EXECUTION OF A SERVICE Download PDF

Info

Publication number
FR3038187A1
FR3038187A1 FR1555931A FR1555931A FR3038187A1 FR 3038187 A1 FR3038187 A1 FR 3038187A1 FR 1555931 A FR1555931 A FR 1555931A FR 1555931 A FR1555931 A FR 1555931A FR 3038187 A1 FR3038187 A1 FR 3038187A1
Authority
FR
France
Prior art keywords
elementary
vector
service
distribution
reference vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR1555931A
Other languages
French (fr)
Inventor
Nizar Kheir
Sok-Yen Loui
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Orange SA
Original Assignee
Orange SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Orange SA filed Critical Orange SA
Priority to FR1555931A priority Critical patent/FR3038187A1/en
Publication of FR3038187A1 publication Critical patent/FR3038187A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/552Detecting local intrusion or implementing counter-measures involving long-term monitoring or reporting

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Debugging And Monitoring (AREA)

Abstract

L'invention concerne un procédé de détection d'anomalies dans l'exécution d'un service, comprenant : -une obtention (E10) d'une liste ordonnée d'au moins deux transactions élémentaires pour une session courante, lors d'une exécution du service par une entité, - une construction (E11) pour la session courante d'un vecteur de distribution (vc) dont les entrées correspondent aux entrées d'au moins un vecteur de référence (C1), une entrée du vecteur de référence correspondant à un segment élémentaire de taille fixe d'au moins une transaction élémentaire, et association à une entrée du vecteur de distribution d'un nombre d'occurrences du segment élémentaire correspondant dans la liste ordonnée, ledit vecteur de référence étant représentatif d'un profil de comportement normal d'utilisation du service, - une identification (El3) de la session courante comme normale lorsque la distance entre le vecteur de distribution et le vecteur de référence est inférieure à une valeur seuil (τj) associée au vecteur de référence.The invention relates to a method for detecting anomalies in the execution of a service, comprising: obtaining (E10) an ordered list of at least two elementary transactions for a current session, during an execution of the service by an entity, - a construction (E11) for the current session of a distribution vector (vc) whose inputs correspond to the inputs of at least one reference vector (C1), an entry of the corresponding reference vector an elementary segment of fixed size of at least one elementary transaction, and association with an input of the distribution vector of a number of occurrences of the corresponding elementary segment in the ordered list, said reference vector being representative of a profile the normal use of the service, - an identification (El3) of the current session as normal when the distance between the distribution vector and the reference vector is less than a threshold value (τj) associated with the reference vector.

Description

1 Procédé de détection d'anomalies dans l'exécution d'un service La présente invention concerne un procédé de détection d'anomalies dans l'exécution d'un service.The present invention relates to a method for detecting anomalies in the execution of a service.

Elle trouve une application particulièrement intéressante dans la détection d'attaques contre des services accédés via le web, notamment dans la détection de nouvelles attaques, c'est-à-dire d'attaques non référencées a priori. De nombreuses méthodes de détection d'anomalies lors de l'exécution de services existent. Il est habituel que ces méthodes s'appuient sur une modélisation de requêtes malveillantes afin de définir un ou des modèles d'attaque, puis une détection de ces modèles parmi des requêtes de service. De telles méthodes reposent habituellement sur l'utilisation d'un outil de gestion de journaux d'événements (on parle de « logs » en anglais) et de corrélation des informations de ces journaux. Un tel outil est connu sous le nom de « SIEM » (de l'anglais « Security Information and Event Management »). Les journaux contiennent pour un équipement donné la liste de tous les événements qui se sont déroulés : réussite ou échec d'une connexion utilisateur, redémarrage d'une machine, saturation de la mémoire, etc. Le SIEM propose des méthodes et outils pour agréger des alertes et pour identifier des attaques par corrélations des informations des journaux. Un tel outil repose sur des métriques statistiques et/ou des règles statiques de corrélation. Cependant, l'efficacité d'un tel outil est conditionnée par une connaissance préalable de la façon dont l'attaque va se manifester. En effet, un outil SIEM requiert une connaissance a priori des possibilités d'attaquer le service. Un tel outil construit un modèle de requêtes malveillantes à partir d'un ensemble de requêtes malveillantes. Il détecte des profils d'attaque basés sur une observation statistique des événements liés au service ou à la machine, par exemple, une anomalie dans le nombre de requêtes en provenance d'un utilisateur ou dans le nombre de biens achetés par un utilisateur dans le cas d'un service d'achat en ligne. Une telle méthode ne permet cependant pas de détecter des profils d'attaque non référencés initialement. 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. A cette fin, l'invention propose un procédé de détection d'anomalies dans l'exécution d'un service, comprenant : - une obtention d'une liste ordonnée d'au moins deux transactions élémentaires pour une session courante, lors d'une exécution du service par une entité, 3038187 2 - une construction pour la session courante d'un vecteur de distribution (va) dont les entrées correspondent aux entrées d'au moins un vecteur de référence, une entrée du vecteur de référence correspondant à un segment élémentaire de taille fixe d'au moins une transaction élémentaire, et association à une entrée du vecteur de distribution d'un nombre d'occurrences 5 du segment élémentaire correspondant dans la liste ordonnée, ledit vecteur de référence étant représentatif d'un profil de comportement normal d'utilisation du service, - une identification de la session courante comme normale lorsque la distance entre le vecteur de distribution et le vecteur de référence est inférieure à une valeur seuil associée au vecteur de référence. 10 Par rapport aux méthodes connues de détection de comportements malveillants, le procédé propose de comparer une session d'exécution courante à un ensemble de modèles de comportements normaux d'utilisation d'un service et d'identifier la session d'exécution courante comme normale dès lors que la session d'exécution courante est proche d'au moins un modèle de comportement normal. En d'autres termes, la session courante est assimilée à une 15 anomalie dès lors qu'elle s'écarte de l'ensemble des modèles de comportements normaux. Ainsi, contrairement aux méthodes connues, le procédé permet de détecter des anomalies correspondant à des attaques qui n'ont pas été identifiées jusqu'à présent. Par ailleurs le procédé permet la détection d'anomalies dans l'exécution de services complexes, c'est-à-dire de services qui comprennent de nombreuses fonctionnalités, et pour 20 lesquels une session peut comprendre un nombre important de transactions élémentaires. Dans ce cas, la vulnérabilité peut ne pas être liée à une fonctionnalité de service particulière mais à un enchaînement particulier de fonctionnalités. Avantageusement, le procédé comprend un remplacement d'au moins une valeur spécifique contenue dans les transactions élémentaires par une valeur générique. 25 Le remplacement de valeurs spécifiques par des valeurs génériques dans les transactions élémentaires permet de faire abstraction de valeurs non représentatives pour l'identification de comportements normaux d'utilisation du service. Il permet de généraliser des transactions en fonction de la sémantique propre à des valeurs spécifiques. Il permet ainsi de construire des modèles de comportements normaux qui regroupent des sessions d'exécution qui diffèrent par 30 des valeurs spécifiques non significatives. De façon avantageuse, la liste ordonnée d'au moins deux transactions élémentaires est obtenue au moyen d'une analyse n-grammes des transactions élémentaires. Habituellement l'analyse n-grammes est utilisée sur des unités lexicales. L'utilisation de l'analyse n-grammes a été observée dans le cadre d'une détection de code malveillant.It finds a particularly interesting application in the detection of attacks against services accessed via the web, especially in the detection of new attacks, that is to say attacks not referenced a priori. Many methods for detecting anomalies when running services exist. It is common for these methods to rely on malicious query modeling to define one or more attack models, and then to detect these patterns among service requests. Such methods are usually based on the use of an event log management tool (called "logs" in English) and the correlation of information from these logs. Such a tool is known as SIEM (Security Information and Event Management). The logs contain for a given device the list of all the events that occurred: success or failure of a user connection, restart of a machine, memory saturation, etc. The SIEM provides methods and tools for aggregating alerts and identifying attacks by correlating log information. Such a tool relies on statistical metrics and / or static correlation rules. However, the effectiveness of such a tool is conditioned by a prior knowledge of how the attack will manifest. Indeed, a SIEM tool requires a priori knowledge of the possibilities of attacking the service. Such a tool builds a pattern of malicious queries from a set of malicious queries. It detects attack profiles based on statistical observation of service or machine-related events, for example, an anomaly in the number of requests from a user or in the number of goods purchased by a user in the service. case of an online shopping service. Such a method, however, does not allow to detect attack profiles not initially referenced. One of the aims of the invention is to remedy the shortcomings / disadvantages of the state of the art and / or to make improvements thereto. To this end, the invention proposes a method for detecting anomalies in the execution of a service, comprising: obtaining an ordered list of at least two elementary transactions for a current session, during a execution of the service by an entity, - a construct for the current session of a distribution vector (va) whose inputs correspond to the inputs of at least one reference vector, an entry of the reference vector corresponding to a segment elementary size of at least one elementary transaction, and association with an input of the distribution vector of a number of occurrences of the corresponding elementary segment in the ordered list, said reference vector being representative of a behavior profile normal use of the service, - identification of the current session as normal when the distance between the distribution vector and the reference vector is lower at a threshold value associated with the reference vector. Compared with known methods for detecting malicious behavior, the method proposes to compare a current execution session with a set of normal usage behavior patterns of a service and to identify the current execution session as normal. since the current execution session is close to at least one normal behavior model. In other words, the current session is considered an anomaly since it deviates from the set of normal behavior patterns. Thus, unlike known methods, the method makes it possible to detect anomalies corresponding to attacks that have not been identified so far. In addition, the method allows the detection of anomalies in the execution of complex services, that is to say services which include many functionalities, and for which a session can comprise a large number of elementary transactions. In this case, the vulnerability may not be related to a particular service feature but to a particular flow of features. Advantageously, the method comprises replacing at least one specific value contained in the elementary transactions by a generic value. The replacement of specific values by generic values in the elementary transactions makes it possible to ignore non-representative values for the identification of normal behaviors of use of the service. It makes it possible to generalize transactions according to the semantics specific to specific values. It thus makes it possible to construct normal behavior patterns that group together execution sessions that differ in non-significant specific values. Advantageously, the ordered list of at least two elementary transactions is obtained by means of an n-grams analysis of the elementary transactions. Usually n-grams analysis is used on lexical units. The use of n-grams analysis has been observed as part of a malicious code detection.

Cependant cette approche consistait à faire une analyse syntaxique de requêtes de services afin 3038187 3 d'identifier des attaques qui se rapprochaient le plus d'attaques préalablement identifiées. Cela rentre dans la catégorie des méthodes basées sur du filtrage de motifs (ou « pattern matching » en anglais). Ici, on utilise une analyse n-grammes sur des transactions élémentaires représentatives des interactions entre une entité et un service. Cette analyse permet une analyse 5 de sessions de service qui tient compte de l'enchaînement des transactions élémentaires par l' entité. Le choix de n pour l'analyse n-grammes dépend du service. Elle est fixée de manière empirique à une valeur qui génère le moins de faux-positifs. Dans un exemple de réalisation, le procédé détecte une anomalie lorsque le segment 10 élémentaire de la session courante ne figure pas parmi les entrées du vecteur de référence. Dans cet exemple, une anomalie est détectée dans une session courante d'utilisation du service dès lors qu'un nouveau segment élémentaire est rencontré. « Nouveau » signifie qu'il n'a pas été rencontré durant la phase d'apprentissage. Une telle anomalie est détectée relativement tôt au cours de l'analyse de la session. Elle peut être consécutive à une évolution 15 du service. Par exemple une nouvelle fonctionnalité a été définie et mise en service. Dans ce cas, il est nécessaire de mettre en oeuvre une nouvelle phase d'apprentissage afin d'intégrer cette nouvelle fonctionnalité dans les modèles de comportements normaux. Selon un exemple de réalisation, la distance entre le vecteur de distribution et le vecteur de référence est la distance Euclidienne.However, this approach consisted of parsing service requests in order to identify attacks that were closest to previously identified attacks. This falls into the category of methods based on pattern matching (or "pattern matching"). Here, we use an n-grams analysis on elementary transactions representative of the interactions between an entity and a service. This analysis allows a service session analysis that takes into account the sequence of elementary transactions by the entity. The choice of n for the n-grams analysis depends on the service. It is empirically fixed at a value that generates the least false positives. In an exemplary embodiment, the method detects an abnormality when the elementary segment of the current session is not among the entries of the reference vector. In this example, an anomaly is detected in a current session of use of the service when a new elementary segment is encountered. "New" means that it was not encountered during the learning phase. Such an anomaly is detected relatively early during the analysis of the session. It can be consecutive to an evolution of the service. For example, a new feature has been defined and put into service. In this case, it is necessary to implement a new learning phase in order to integrate this new functionality in the normal behavior models. According to an exemplary embodiment, the distance between the distribution vector and the reference vector is the Euclidean distance.

20 Dans un exemple de réalisation, le procédé comprend une phase d'apprentissage mise en oeuvre sur un ensemble de sessions d'apprentissage, comprenant pour une desdites sessions d'apprentissage associée à une exécution du service : - une obtention d'une liste ordonnée d'apprentissage d'au moins deux transactions élémentaires d'apprentissage, 25 - une construction d'un vecteur de distribution d'apprentissage dont les entrées correspondent aux entrées du vecteur de référence, à une entrée du vecteur de distribution d'apprentissage on associe un nombre d'occurrences du segment élémentaire d'apprentissage correspondant dans la liste ordonnée d'apprentissage, - une construction d'une matrice de distribution par ajout dudit vecteur de distribution 30 d'apprentissage, ladite matrice d'observation comprenant en i-ième ligne un i-ième vecteur de distribution d' apprentissage, et, - une modification de l'ordre des colonnes et des lignes de la matrice de distribution obtenues pour l'ensemble des sessions d'apprentissage, pour constituer des groupements de 3038187 4 valeurs autour de la diagonale de la matrice, et une obtention pour chaque groupement de valeurs, du vecteur de référence et de la valeur seuil associée. Le procédé définit une phase d'apprentissage durant laquelle sont construits les modèles de comportement normaux auxquels sont comparés les sessions courantes d'exécution du 5 service. Selon un exemple de réalisation, les groupements de valeurs sont obtenus durant la phase d'apprentissage par application d'un algorithme de classification double, ou de « coclustering », à la matrice de distribution. La classification double, ou co-clustering, permet de caractériser des sessions de service 10 et de les regrouper en fonction des seuls paramètres qu'elles ont en commun Cette classification est donc plus fine que des classifications qui travaillent sur l'ensemble des paramètres. Ainsi, elle permet d'obtenir plusieurs clusters, ou regroupements de données, dont chacun regroupe des paramètres communs. L'invention concerne également un dispositif de détection d'anomalies, comprenant : 15 - un module d'obtention d'une liste ordonnée, agencé pour obtenir une liste ordonnée d'au moins deux transactions élémentaires pour une session courante, lors d'une exécution du service par une entité, - un module de construction et d'association, agencé pour construire pour la session courante un vecteur de distribution dont les entrées correspondent aux entrées d'au moins un 20 vecteur de référence, une entrée du vecteur de référence correspondant à un segment élémentaire de taille fixe d'au moins une transaction élémentaire, et pour associer à une entrée du vecteur de distribution d'un nombre d'occurrences du segment élémentaire correspondant dans la liste ordonnée, ledit vecteur de référence étant représentatif d'un profil de comportement normal d'utilisation du service, 25 - un module d'identification, agencé pour identifier la session courante comme normale lorsque la distance entre le vecteur de distribution et le vecteur de référence est inférieure à une valeur seuil associée au vecteur de référence. L'invention porte également sur un programme d'ordinateur sur un support de données et chargeable dans la mémoire d'un ordinateur, le programme comprenant des instructions de 30 code pour l'exécution des étapes du procédé de détection d'anomalies, lorsque le programme est exécuté sur ledit ordinateur. L'invention concerne aussi sur un support de données dans lequel est enregistré le programme tel que décrit précédemment.In an exemplary embodiment, the method comprises a learning phase implemented over a set of training sessions, comprising for one of said training sessions associated with a service execution: obtaining an ordered list for learning at least two elementary learning transactions, - a construction of a learning distribution vector whose inputs correspond to the inputs of the reference vector, to an input of the learning distribution vector. a number of occurrences of the corresponding elementary learning segment in the ordered learning list, - a construction of a distribution matrix by adding said training distribution vector 30, said observation matrix comprising in the i-th line an i-th learning distribution vector, and, - a modification of the order of the columns and the rows of the distribution matrix obtained. for all the learning sessions, to form groups of 3038187 4 values around the diagonal of the matrix, and obtaining for each grouping of values, the reference vector and the associated threshold value. The method defines a learning phase during which the normal behavior patterns are constructed to which the current service execution sessions are compared. According to an exemplary embodiment, the groups of values are obtained during the learning phase by applying a double classification algorithm, or "coclustering", to the distribution matrix. The double classification, or co-clustering, makes it possible to characterize service sessions 10 and to group them according to the only parameters they have in common. This classification is therefore finer than classifications that work on all the parameters. Thus, it makes it possible to obtain several clusters, or groupings of data, each of which includes common parameters. The invention also relates to an anomaly detection device, comprising: a module for obtaining an ordered list, arranged to obtain an ordered list of at least two elementary transactions for a current session, during a execution of the service by an entity, - a construction and association module, arranged to construct for the current session a distribution vector whose inputs correspond to the inputs of at least one reference vector, an input of the reference vector corresponding to an elementary segment of fixed size of at least one elementary transaction, and for associating with an input of the distribution vector a number of occurrences of the corresponding elementary segment in the ordered list, said reference vector being representative of a normal usage behavior profile of the service, an identification module, arranged to identify the current session as normal when the distance between the distribution vector and the reference vector is less than a threshold value associated with the reference vector. The invention also relates to a computer program on a data carrier and loadable in the memory of a computer, the program comprising code instructions for executing the steps of the abnormality detection method, when the program is run on said computer. The invention also relates to a data carrier in which the program is recorded as described above.

3038187 5 D'autres caractéristiques et avantages de la présente invention seront mieux compris de la description et des dessins annexés parmi lesquels : - la figure 1 présente les étapes de la phase d'apprentissage du procédé de détection d'anomalie lors de l'utilisation d'un service, selon un exemple de réalisation ; 5 - la figure 2 présente les étapes du procédé de détection d'anomalies ; - la figure 3 présente à titre d'exemple, une matrice sur laquelle est mise en oeuvre une classification double et la matrice résultante obtenue ; - la figure 4 est une représentation schématique d'un dispositif de détection d'anomalie selon un exemple de réalisation.Other features and advantages of the present invention will be better understood from the description and the appended drawings in which: FIG. 1 shows the steps of the learning phase of the abnormality detection method during use a service, according to an exemplary embodiment; FIG. 2 presents the steps of the anomaly detection method; FIG. 3 shows, by way of example, a matrix on which a double classification is implemented and the resulting matrix obtained; FIG. 4 is a schematic representation of an abnormality detection device according to an example embodiment.

10 Les étapes d'un procédé de détection d'anomalies lors de l'exécution d'un service, selon un exemple de réalisation vont être décrites en relation avec les figures 1 à 3. Le procédé propose de construire de manière statistique, à partir d'une observation d'exécutions normales du service, c'est-à-dire exemptes d'anomalies, un ou des profils de 15 comportement normal afin d'identifier des exécutions de service qui dévient de ce comportement normal, et que l'on assimile de ce fait à des anomalies On s'intéresse ici à l'exécution de services dits « complexes » dans le sens où ils comprennent potentiellement l'exécution de plusieurs services élémentaires, tels qu'un service d'authentification, un service de constitution d'un panier, un service de paiement, etc. Un tel 20 service est typiquement un service d'achat sur Internet. Lors de l'exécution du service d'achat, un utilisateur va effectuer ce que l'on appelle un « parcours client » allant de l'accès au service jusqu'à la réception d'une confirmation d'un paiement de biens, en passant par une authentification, la constitution d'un panier, une validation du panier, la fourniture de coordonnées bancaires pour le paiement, etc. En ce sens, le service est qualifié de complexe.The steps of a method for detecting anomalies during the execution of a service, according to an exemplary embodiment will be described in relation with FIGS. 1 to 3. The method proposes to build statistically, from from an observation of normal service executions, i.e. free from anomalies, one or more normal behavior profiles to identify service executions that deviate from this normal behavior, and that It is thus considered anomalies Here we are interested in the execution of so-called "complex" services in the sense that they potentially include the execution of several basic services, such as an authentication service, a service of building a basket, a payment service, etc. Such a service is typically an internet shopping service. During the execution of the purchasing service, a user will perform what is called a "customer journey" from access to the service until receipt of a confirmation of a payment of goods, in through an authentication, the constitution of a basket, a validation of the basket, the provision of bank details for payment, etc. In this sense, the service is described as complex.

25 Le parcours client intègre des échecs éventuels de l'authentification, le surf sur différentes pages du site marchand, etc., qui correspondent à autant d'interactions avec le service. Un tel parcours client est associé à une session d'exécution. La session comprend un ensemble de transactions élémentaires correspondant aux différentes interactions de l'utilisateur avec le service. Une transaction élémentaire comprend une requête au service et une réponse associée.25 The customer journey includes possible failures of authentication, surfing on different pages of the merchant site, etc., which correspond to as many interactions with the service. Such a customer journey is associated with an execution session. The session consists of a set of elementary transactions corresponding to the different interactions of the user with the service. An elementary transaction includes a service request and an associated response.

30 A noter qu'un tel service peut faire intervenir plusieurs prestataires de services : un premier fournisseur de services pour l'authentification, un deuxième fournisseur de service pour l'affichage d'un catalogue et la sélection d'articles et un troisième fournisseur pour le paiement. Dans une phase PO d'apprentissage, décrite en relation avec le figure 1, il est construit des profils de comportement modélisant des parcours client normaux, c'est-à-dire exempts 35 d'anomalies, similaires à partir d'une base de données d'observations BdO qui mémorise un 3038187 6 échantillon important de sessions utilisateur. Par exemple, la base d'observation BdO mémorise plus de 100000 sessions. A noter que la base de données d'observation BdO peut être également un enregistrement de trafic brut, tel que des traces « HTTP » (de l'anglais « HyperText Transfer Protocol ») ou un journal d'événements (ou « log » en anglais). Un nombre important 5 d'échantillons dans la base d'observations permet d'avoir une méthode de détection d'anomalies plus précise. Dans une phase suivante P1 de détection, des sessions d'exécution courantes sont comparées aux profils de comportement normal construits durant la phase d'apprentissage PO et assimilées à des exécutions normales de service ou à des anomalies, selon le résultat de la comparaison.It should be noted that such a service may involve several service providers: a first service provider for authentication, a second service provider for the display of a catalog and the selection of articles and a third supplier for the payment. In a learning phase PO, described in connection with FIG. 1, behavior profiles are constructed modeling normal, that is to say, free of similar, abnormal customer journey histories from a database of BdO observation data which stores a large sample of user sessions. For example, the BdO observation database stores more than 100,000 sessions. Note that the BdO observation database can also be a raw traffic record, such as "HTTP" traces (HyperText Transfer Protocol) or an event log (or "log"). English). A large number of samples in the observation database makes it possible to have a more accurate anomaly detection method. In a subsequent detection phase P1, current execution sessions are compared to normal behavior patterns constructed during the training phase PO and likened to normal service executions or anomalies, depending on the result of the comparison.

10 Dans l'exemple décrit ici, on considère un service accédé à travers le réseau Internet. Une session utilisateur, composée de transactions élémentaires, est alors décrite au moyen d'une succession de requêtes d' « URL » (pour « Uniform Resource Locator), ou URL, ou d'adresses web, représentatives de toutes les interactions de l'utilisateur avec le service. Dans cet exemple, on peut ne retenir dans la base d'observation BdO que les requêtes associées à une réponse 15 positive. La construction des profils de comportement modélisant des parcours client normaux va consister à comparer des enchaînements de transactions élémentaires dans des sessions et à dégager des profils de comportement similaires auxquelles les différentes sessions peuvent être assimilées. La structure d'une URL est définie dans la « RFC » 2616 (pour « Request For 20 Comment »). Une URL définit au moyen d'un nom, d'une localisation et éventuellement d'autres caractéristiques, une ressource accessible à travers le réseau Internet. Plus précisément, une URL est structurée en plusieurs champs : - un nom complètement qualifié (ou « FQDN » pour « Fully Qualified Domain Name »), qui fournit l'emplacement du service hébergeant une ressource sur un espace réseau global, 25 - le nom absolu de la ressource ou de l'application fournie par le service, et - des paramètres supplémentaires optionnels qui peuvent être composés de clés et de valeurs. Un exemple d' URL est : URL = https://perso.orange.fr/maf.php?contract=123456&page=svc-mobile 30 Une URL peut contenir des attributs spécifiques à un utilisateur, dans l'exemple ci- dessus un numéro de contrat dont la valeur est « 123456 ». Afin de comparer des URL issues de sessions différentes qui concernent par exemple des utilisateurs différents et dont certains paramètres, bien que spécifiques ne sont pas significatifs pour la comparaison puisque la sémantique de la transaction associée peut être la 35 même dans ce cas, il faut faire abstraction de ces paramètres spécifiques. En effet, à défaut, une 3038187 7 URL qui contient des paramètres spécifiques est unique dans le contexte d'une session ou d'un utilisateur donné et une comparaison de deux URL sémantiquement équivalentes ne permet pas d'identifier de similitude. Dans une étape initiale EO, on obtient pour une session de la base d'observation BdO 5 une liste ordonnée de transactions élémentaires. Dans une étape suivante El de remplacement de paramètres spécifiques, il est procédé, pour la session, à l'identification et au remplacement de paramètres spécifiques dans les URL représentatives de transactions élémentaires par des paramètres génériques. La spécificité d'une URL peut apparaître au niveau des paramètres supplémentaires optionnels. En effet, les deux 10 premiers champs, en l'espèce le nom complètement qualifié et le nom absolu de la ressource ou de l'application fournie par le service concernent des ressources spécifiques ou des applications fournies par le service et ne concernent pas de paramètres spécifiques de l'utilisateur. Les paramètres supplémentaires optionnels peuvent indiquer des attributs spécifiques au service qui permettent de rediriger des utilisateurs vers des applications web spécifiques. Dans ce cas ils 15 sont équivalents s'ils partagent la même clé et la même valeur. Les paramètres supplémentaires optionnels peuvent également indiquer des paramètres spécifiques à l'utilisateur qui permettent au service de préciser le contenu qui doit être délivré à l'utilisateur, par exemple un contenu qui spécifie un numéro de contrat. Des paramètres spécifiques à des utilisateurs qui figurent dans deux URL distinctes sont équivalents s'ils partagent la même clé et la même sémantique. Ces 20 paramètres ne déterminent cependant pas la session de l'utilisateur. Il est donc nécessaire dans ce dernier cas de rendre générique la valeur qui est associée à une clé afin de généraliser un paramètre spécifique à l'utilisateur. Dans cet exemple, il est proposé de généraliser des paramètres spécifiques d'utilisateurs en des paramètres sémantiquement équivalents et de remplacer dans une URL chaque 25 occurrence d'un paramètre spécifique de l'utilisateur par son équivalent générique. Prenons l'exemple d'une série d'URL représentatives de l'exécution d'un service qui permet à un utilisateur d'accéder une page afin de changer de terminal mobile. Les transactions élémentaires correspondant aux requêtes élémentaires mises en oeuvre lors de l'exécution du service par l'utilisateur sont par exemple les suivantes, dans cet ordre : 30 URL1 : http ://moteur. orange. fr/?kw=replace+mobile &bhv=fr&module=orange URL2 : http://moteur.orange.fr/?kw=change+mobile&bhv=fr&module=orange URL3 : https ://auth. orange. fr/auth.cgi?origin=wg&tgt=open. orange. fr URL4 : https ://open.orange.fr/perso/mobiles.aspx?appli=changeMobile&user=bob&bran d=iphone&rdt=fr 35 URL5 : https ://perso.orange.fr/maf.php?contract=123456&page=svc-mobile.In the example described here, a service accessed through the Internet is considered. A user session, composed of elementary transactions, is then described by means of a succession of "Uniform Resource Locator" (URL) requests, or web addresses, representative of all the interactions of the user. user with the service. In this example, it is possible to retain in the observation database BdO only the requests associated with a positive response. The construction of behavioral profiles modeling normal customer journeys will consist in comparing sequences of elementary transactions in sessions and in generating similar behavioral profiles to which the different sessions can be assimilated. The structure of a URL is defined in "RFC" 2616 (for "Request For 20 Comment"). A URL defines by means of a name, a location and possibly other characteristics, a resource accessible through the Internet. More specifically, a URL is structured in several fields: - a fully qualified name (or "FQDN" for "Fully Qualified Domain Name"), which provides the location of the service hosting a resource on a global network space, 25 - the name absolute of the resource or application provided by the service; and - additional optional parameters that may consist of keys and values. An example URL is: URL = https://perso.orange.fr/maf.php?contract=123456&page=svc-mobile 30 A URL may contain user-specific attributes, in the example above a Contract number whose value is "123456". In order to compare URLs resulting from different sessions which for example relate to different users and whose certain parameters, although specific, are not significant for the comparison since the semantics of the associated transaction can be the same in this case, it is necessary to make abstraction of these specific parameters. Indeed, failing that, a URL that contains specific parameters is unique in the context of a given session or user and a comparison of two semantically equivalent URLs does not identify similarity. In an initial step EO, for a session of the observation database BdO 5, an ordered list of elementary transactions is obtained. In a next step El of replacement of specific parameters, it is proceeded, for the session, to identify and replace specific parameters in the representative URLs of elementary transactions by generic parameters. The specificity of a URL can appear in the optional additional parameters. Indeed, the first two fields, in this case the fully qualified name and the absolute name of the resource or the application provided by the service concern specific resources or applications provided by the service and do not concern parameters. specific to the user. Optional additional settings may indicate service-specific attributes that allow users to be redirected to specific web applications. In this case they are equivalent if they share the same key and the same value. The optional additional parameters may also indicate user-specific parameters that allow the service to specify the content to be delivered to the user, for example content that specifies a contract number. User-specific settings in two separate URLs are equivalent if they share the same key and semantics. These 20 parameters do not, however, determine the user's session. It is therefore necessary in the latter case to make the value that is associated with a key generic in order to generalize a parameter specific to the user. In this example, it is proposed to generalize user-specific parameters to semantically equivalent parameters and to replace in one URL each occurrence of a user-specific parameter by its generic equivalent. For example, consider a series of URLs representative of the execution of a service that allows a user to access a page to change their mobile device. The elementary transactions corresponding to the basic requests implemented during the execution of the service by the user are for example the following, in this order: URL1: http: // engine. orange. en /? kw = replace + mobile & bhv = en & module = orange URL2: http://motor.orange.fr/?kw=change+mobile&bhv=en&module=orange URL3: https: // auth. orange. en / auth.cgi? origin = wg & tgt = open. orange. en URL4: https: //open.orange.fr/perso/mobiles.aspx? app = changeMobile & user = bob & bran d = iphone & rdt = en 35 URL5: https: //perso.orange.fr/maf.php? contract = 123456 & page = mobile-svc.

3038187 8 Cette séquence ordonnée d'URL est transformée en la suite ordonnée de transactions élémentaires suivantes par remplacement de paramètres spécifiques à des utilisateurs en paramètres génériques : Ta : http://moteur. orange. fr/?kw= [literai] &bhv= [ccode] &module=orange 5 Ta : http://moteur. orange. fr/?kw= [literai] &bhv= [ccode]fr&module=orange Tb : https://auth.orange.fr/auth.cgi?origin=wg&tgt=open.orange.fr Tc : haps ://open. orange. fr/perso/mobiles . aspx?appli=changeMobile&user= [userId] &bra nd= [item] &rdt= [ccode] Td : https://perso.orange.fr/maf.php?contract=[userId] &page= svc-mobile.3038187 8 This ordered sequence of URLs is transformed into the following sequence of elementary transactions by replacing user-specific parameters with generic parameters: Ta: http: // engine. orange. en /? kw = [literal] & bhv = [ccode] & module = orange 5 Ta: http: // engine. orange. en /? kw = [literal] & bhv = [ccode] en & module = orange Tb: https://auth.orange.fr/auth.cgi?origin=wg&tgt=open.orange.fr Tc: haps: // open. orange. en / personal / mobile. aspx? app = changeMobile & user = [userId] & bra nd = [item] & rdt = [ccode] Td: https://perso.orange.fr/maf.php?contract=[userId] & page = svc-mobile.

10 La liste ordonnée de transactions élémentaires ainsi obtenue est notée <Ta, Ta, Tb, Tc, Td>. A noter que pour certains services, les requêtes élémentaires mises en oeuvre lors de l'exécution du service ne contiennent pas de paramètres spécifiques. La liste de transactions élémentaires ne nécessite donc aucun remplacement de paramètre. Lors de cette transformation, un identifiant de connexion spécifique à l'utilisateur, par 15 exemple « bob » ou « 12345 », est remplacé par un identifiant de connexion générique « userId ». La langue, ou le pays de l'endroit où se trouve le terminal de l'utilisateur, ici « fr » est remplacé par une valeur générique « Ccode ». Dans cet exemple de service, on utilise également le paramètre générique noté « Item » pour remplacer un identifiant de base associé à une donnée sélectionnée par un utilisateur, un paramètre générique noté « Timestamp » pour 20 remplacer une date locale sur le terminal de l'utilisateur, un paramètre générique noté « Cookie » pour remplacer une signature ou un condensé pour un cookie délivré par le service. On suppose que pour un service donné, les paramètres génériques à utiliser pour remplacer des paramètres spécifiques ont été définis. D'autres paramètres génériques peuvent être ajoutés en fonctions de caractéristiques propres à un service. Par ailleurs, dans un exemple où les requêtes 25 http comprennent des informations de contexte au niveau l'entête http, on peut envisager d'exploiter les données échangées via ces entêtes. Au terme de l'étape El de remplacement de paramètres spécifiques, les transactions élémentaires associées à l'exécution du service ont ainsi été généralisées en remplaçant des paramètres spécifiques d'utilisateur par des paramètres génériques, représentatifs de leur 30 sémantique. Dans une étape suivante E2 d'analyse, il est appliqué une méthode d'analyse statistique connue appelée n-grammes à la liste ordonnée de transactions élémentaires d'une session i obtenues au cours de l'étape précédente. Un n-grammes est une sous-séquence de n éléments de construite à partir d'une séquence donnée. Les n-grammes sont très utilisés en traitement 35 automatique du langage naturel et en traitement du signal.The ordered list of elementary transactions thus obtained is denoted by <Ta, Ta, Tb, Tc, Td>. Note that for some services, the basic queries implemented during the execution of the service do not contain specific parameters. The list of elementary transactions therefore does not require any parameter replacement. During this transformation, a user-specific connection identifier, for example "bob" or "12345", is replaced by a generic "userId" connection identifier. The language, or the country where the user's terminal is located, here "fr" is replaced by a generic value "Ccode". In this service example, the generic parameter denoted "Item" is also used to replace a basic identifier associated with a data item selected by a user, a generic parameter denoted "Timestamp" to replace a local date on the terminal of the user. user, a generic parameter noted "Cookie" to replace a signature or digest for a cookie issued by the service. It is assumed that for a given service, the generic parameters to be used to replace specific parameters have been defined. Other generic parameters may be added based on features specific to a service. On the other hand, in an example where the http requests include context information at the http header, one can consider exploiting the data exchanged via these headers. At the end of the El step of replacing specific parameters, the elementary transactions associated with the execution of the service have thus been generalized by replacing specific user parameters with generic parameters, representative of their semantics. In a next step E2 of analysis, a known statistical analysis method called n-grams is applied to the ordered list of elementary transactions of a session i obtained in the previous step. An n-grams is a subsequence of n elements of constructed from a given sequence. N-grams are widely used in natural language processing and signal processing.

3038187 9 Dans le procédé décrit ici, on applique de façon originale la méthode d'analyse n-grammes à des listes ordonnées de transactions élémentaires représentatives de sessions d'exécution de service afin de caractériser des sessions légitimes d'utilisateurs, c'est-à-dire sans anomalie, en termes d'enchaînement ordonné de transactions élémentaires. Ici, la valeur de n 5 correspond à un nombre de transactions élémentaires. L'utilisation des n-grammes permet de tenir compte de la relation d'ordre entre n transactions élémentaires consécutives représentées dans un n-grammes Le n-grammes est alors considéré ensuite comme un donnée élémentaire et indivisible, qui représente une séquence de n transactions qui apparaissent dans cet ordre durant la session de service.In the method described here, the n-grams analysis method is applied in an original way to ordered lists of elementary transactions representative of service execution sessions in order to characterize legitimate user sessions, ie that is to say without anomaly, in terms of an ordered sequence of elementary transactions. Here, the value of n 5 corresponds to a number of elementary transactions. The use of n-grams makes it possible to take into account the order relationship between n consecutive elementary transactions represented in n-grams. The n-grams is then considered as an elementary and indivisible datum, which represents a sequence of n transactions. appear in this order during the service session.

10 L'utilisation des n-grammes repose sur l'hypothèse simplificatrice que, étant donnée une séquence de k éléments, k> n, la probabilité d'apparition d'un élément en position i ne dépend que des n - 1 éléments précédents. Parmi les applications récentes des n-grammes on trouve des travaux sur l'indexation de documents, l'hyper-textualisation automatique multilingue qui à partir de grandes collections de textes construit des interfaces de navigation hypertextuelles, etc.The use of the n-grams is based on the simplifying assumption that, given a sequence of k elements, k> n, the probability of occurrence of an element in position i depends only on the n-1 preceding elements. Recent applications of n-grams include work on document indexing, multilingual automatic textualization that uses large text collections to build hypertext navigation interfaces, and more.

15 Dans ces travaux, les n-grammes sont des n-grammes de caractères qui sont définis par une suite de n caractères. Dans une sous-étape E21 de l'étape E2 d'analyse n-grammes, les transactions élémentaires relatives à une session sont représentées au moyen d'un n-grammes Si l'on considère la liste ordonnée de transactions élémentaires suivante : <Ta, Tb, Tc, Ta, 20 Ta, Tb, Tc, Ta, Td> représentative, moyennant le remplacement de paramètres spécifiques par des paramètres génériques, d'une navigation d'un utilisateur sur le service, on obtient pour n = 2 une décomposition en le n-grammes suivant : <TaTb, TbTc, TcTa, TaTa, TaTb, TbTc, TcTa, TaTd>. On appelle un élément élémentaire du n-gramme, par exemple TaTb, un segment (ou « token » en anglais). Pour un n donné, les segments sont de taille fixe en termes de nombre de 25 transactions élémentaires, 2 dans l'exemple ci-dessus et induisent un ordre entre les transactions élémentaires qui le composent. On construit également un vecteur d'apprentissage v, propre à la session i qui comprend autant de colonnes que de segments élémentaires possibles dans un espace des transactions élémentaires du service. Dans un autre exemple où la valeur choisie pour n est 3, on obtient le n-grammes suivant : <TaTbTc, TbTcTa, TcTaTa, TaTaTb, TaTbTc, TbTcTa, 30 TcTaTd>. Le choix de n dépend du service, et cette valeur est fixée de manière empirique ; elle est fixée à une valeur qui génère le moins de faux-positifs. A noter que si l'on choisit n = 1, le modèle est très générique mais des informations relatives à la séquence et à l'ordonnancement des transactions élémentaires dans cette séquence sont perdues. A noter également que pour 35 n = 1, le système de détection d'anomalie est capable d'identifier durant la phase de détection 3038187 10 P1 des comportements anormaux comme des attaques par force brute dans lesquelles un utilisateur envoie un nombre important de requêtes correspondant à une ou quelques transactions élémentaires. Le système peut également détecter des attaques spécifiques dans lesquelles un utilisateur injecte du code malicieux dans une requête URL. En effet, dans ce cas, 5 la transaction élémentaire ne correspond à aucun segment identifié lors de la phase d'apprentissage P0. La requête est alors identifiée comme anomalie. Cependant, avec n = 1, il n'est pas possible de détecter des attaques de type « Cross-Site Request Forgery » dans lesquelles un attaquant amène une victime à réaliser une action malveillante sur un site sur lequel la victime bénéficie d'une session authentifiée en cours. A contrario, si l'on choisit une 10 valeur de n trop grande, le modèle construit durant la phase d'apprentissage PO est très fermé dans le sens où, durant la phase d'apprentissage P0, très peu de sessions partagent les mêmes segments. Même si l'on considère qu'une valeur de n élevée réduit considérablement le nombre de faux négatifs, ils peuvent contribuer à augmenter le nombre de faux positifs. En effet, il y a de fortes chances de rencontrer lors de la phase de détection P1 des séquences d'utilisation du 15 service qui n'ont pas été observées durant la phase d'apprentissage PO et qui ont donc de fortes chances d'être assimilées à des anomalies alors qu'elles représentent des comportements normaux. Dans une sous-étape E22 suivante de mesure de fréquence, on mesure pour la séquence obtenue et pour les différents segments élémentaires qui la composent, la fréquence de chacun 20 des segments élémentaires. Ainsi, pour le n-grammes<TaTb, TbTC, TcTa, TaTa, TaTb, TbTC, TcTa, TaTd>, la fréquence du segment TaTb est 2, la fréquence du segment TbT. est 2, la fréquence du segment TcTa est 2, la fréquence du segment TaTa est 1, la fréquence du segment TaTd est 1 et aucun autre segment élémentaire n'apparaît. On reporte dans le vecteur de distribution d'apprentissage v, la fréquence ainsi mesurée pour les segments élémentaires qui composent la 25 séquence. Dans une étape suivante E23 de construction d'une matrice de distribution, le vecteur de distribution d'apprentissage v, propre à la session i est reporté dans une matrice de distribution MD, qui comprend autant de colonnes que de segments élémentaires possibles dans le cadre de l'utilisation du service et autant de lignes que de sessions analysées. La matrice d'observation 30 MD comprend ainsi en i-ième ligne le vecteur de distribution d'apprentissage v1. A noter que le n-grammes de la session i peut ne pas comprendre tous les segments possibles. Pour le n-grammes présenté ci-dessus, ne figurent pas par exemple les segments TbTb, T,Tc, etc. Ces segments apparaissent dans la matrice d'observation avec une fréquence égale à zéro pour la session i. On remarque que la matrice d'observation obtenue MD est une matrice très grande et 35 clairsemée. On est en effet sur un espace d'observation très grand en termes de nombre de 3038187 11 sessions analysées, de l'ordre de plus de 100000, les sessions ne sont pas limitées par le nombre de transactions élémentaires mises en oeuvre par l'utilisateur qui sont propres à chaque utilisateur. Par ailleurs la matrice MD comprend beaucoup d'éléments à 0, une exécution de service explorant rarement l'ensemble des options possibles de ce service.In these works, the n-grams are n-grams of characters that are defined by a sequence of n characters. In a sub-step E21 of the n-grams analysis step E2, the elementary transactions relating to a session are represented by means of an n-grams. If we consider the ordered list of elementary transactions below: <Ta , Tb, Tc, Ta, Ta, Tb, Tc, Ta, Td> representative, with the replacement of specific parameters by generic parameters, a navigation of a user on the service, we obtain for n = 2 a decomposition into the following n-grams: <TaTb, TbTc, TcTa, TaTa, TaTb, TbTc, TcTa, TaTd>. An elementary element of the n-gram, for example TaTb, is called a segment (or "token" in English). For a given n, the segments are of fixed size in terms of the number of elementary transactions, 2 in the example above and induce an order between the elementary transactions that compose it. We also build a learning vector v, specific to the session i which comprises as many columns as possible elementary segments in a space of the elementary transactions of the service. In another example where the value chosen for n is 3, we obtain the following n-grams: <TaTbTc, TbTcTa, TcTaTa, TaTaTb, TaTbTc, TbTcTa, TcTaTd>. The choice of n depends on the service, and this value is fixed empirically; it is set to a value that generates the least false positives. Note that if we choose n = 1, the model is very generic, but information about the sequence and scheduling of elementary transactions in this sequence is lost. Note also that for 35 n = 1, the anomaly detection system is capable of identifying during the detection phase 3038187 10 P1 abnormal behaviors such as brute force attacks in which a user sends a large number of corresponding requests. to one or a few elementary transactions. The system can also detect specific attacks in which a user injects malicious code into a URL request. Indeed, in this case, the elementary transaction does not correspond to any segment identified during the learning phase P0. The request is then identified as an anomaly. However, with n = 1, it is not possible to detect Cross-Site Request Forgery attacks in which an attacker causes a victim to perform a malicious action on a site where the victim has a session. authenticated in progress. On the other hand, if a value of n is chosen which is too large, the model constructed during the learning phase PO is very closed in the sense that, during the learning phase P0, very few sessions share the same segments. . Even if we consider that a high value of n significantly reduces the number of false negatives, they can contribute to increasing the number of false positives. Indeed, there is a good chance of encountering, during the detection phase P1, service utilization sequences that have not been observed during the PO learning phase and that are therefore likely to be assimilated to anomalies whereas they represent normal behaviors. In a following sub-step E22 of frequency measurement, the frequency of each of the elementary segments is measured for the sequence obtained and for the various elementary segments that compose it. Thus, for the n-grams <TaTb, TbTC, TcTa, TaTa, TaTb, TbTC, TcTa, TaTd>, the frequency of the TaTb segment is 2, the frequency of the TbT segment. is 2, the frequency of the segment TcTa is 2, the frequency of the segment TaTa is 1, the frequency of the segment TaTd is 1 and no other elementary segment appears. The frequency thus measured for the elementary segments composing the sequence is reported in the learning distribution vector v. In a next step E23 for constructing a distribution matrix, the learning distribution vector v, specific to the session i, is transferred to a distribution matrix MD, which comprises as many columns as possible elementary segments in the context the use of the service and as many rows as sessions analyzed. The observation matrix MD thus comprises in the ith line the learning distribution vector v1. Note that the n-grams of session i may not understand all possible segments. For the n-grams presented above, for example do not include the segments TbTb, T, Tc, etc. These segments appear in the observation matrix with a frequency equal to zero for the session i. Note that the observed observation matrix MD is a very large and sparse matrix. We are indeed on a very large observation space in terms of the number of 3038187 11 sessions analyzed, of the order of more than 100000, the sessions are not limited by the number of elementary transactions implemented by the user. which are unique to each user. In addition, the MD matrix has many elements at 0, a service execution rarely exploring all the possible options of this service.

5 Les étapes E0, El et les sous-étapes E21, E22 et E23 de l'étape d'analyse sont itérées sur l'ensemble des sessions de la base d'observation BdO. Au terme de l'étape E2 d'analyse, on dispose d'une matrice d'observation MD représentative des sessions comprises dans la base d'observation BdO et plus précisément de l'enchaînement de transactions élémentaires dans les sessions, le nombre de transactions d'un 10 enchaînement dépendant de la valeur n choisie pour l'analyse n-grammes Dans une étape suivante E3 de classification double (ou « co-clustering », ou « biclustering » en anglais), il est procédé à une classification double sur la matrice de distribution MD, afin de regrouper des sessions qui représentent le même comportement. La classification double est une technique d'apprentissage non-supervisée (on parle de « machine 15 learning » en anglais) permettant de segmenter simultanément les lignes et les colonnes d'une matrice. Le principe de la classification double consiste à déplacer les lignes et les colonnes d'une matrice suivant un algorithme défini de co-clustering afin d'identifier dans la matrice des zones de densité. Un n-grammes intègre la notion d'ordre dans les n transactions qui le composent, et cet ordre est préservé au sein d'un même n-grammes lors de l'étape E3 de double 20 classification. On considère que le n-grammes permet de travailler sur des séquences partielles suffisantes pour détecter des anomalies. Ainsi, le déplacement des lignes et des colonnes, qui rompt en quelque sorte le séquencement d'une session d'utilisation analysée, n'est pas pénalisant pour la détection d'anomalies. La matrice de distribution résultante se rapproche d'une matrice diagonale ; elle comprend m regroupements de données f C1171 (ou « cluster » en 25 anglais) visibles. Chacun de ces clusters Cj, ou regroupement de données, représente un profil de comportement similaire en termes de transactions élémentaires mises en oeuvre durant l'exécution du service, par exemple, achat d'un jeu puis consultation d'e-mail, recherche dans un catalogue sans achat, recherche dans un catalogue avec achat, etc. La double classification produit également pour chaque regroupement de données Cr un 30 vecteur de référence Cj et un rayon Ti du regroupement de données. Le vecteur de référence Cj correspond au centre du cluster Cr ou centroïde ; il est représentatif d'un profil de comportement normal associé au regroupement de données, et le rayon Ti délimite une zone de densité autour du vecteur de référence. Le rayon Ti détermine une valeur seuil destinée à 3038187 12 déterminer si une nouvelle session fait ou non partie du cluster Cj, représentative d'un profil d'exécution normal. A titre d'exemple, la figure 3 présente une classification double mise en oeuvre sur une première matrice, à gauche sur la figure, et la matrice résultante, à droite sur la figure où 5 apparaissent clairement plusieurs regroupements de données. Pour mettre en oeuvre l'étape E3 de classification double, on utilise par exemple l'algorithme de co-clusterisation défini dans l'article « Co-clustering documents and words using bipartite spectral graph partitioning », I.S. Dillon, in Proceedings of SIGKDD, 2001. L'invention n'est pas limitée à cet algorithme et tout algorithme de double classification qui 10 produit un centroïde et un rayon par cluster peut être utilisé. Au terme de l'étape E3, on dispose d'une matrice de distribution MD qui modélise l'ensemble des comportements normaux d'utilisateurs du service. Dans l'exemple décrit ici, on a considéré que le peuplement de la base de données d'observation BdO s'effectuait dans un environnement sécurisé. L'invention n'est pas limitée à 15 un contexte sécurisé et dans un autre exemple, le peuplement de la base d'observations BdO s'effectue dans un environnement opérationnel. On considère en effet que globalement le ratio de comportements malhonnêtes par rapport aux comportements honnêtes est infime et qu'avec la procédé décrit ici, des comportements malhonnêtes enregistrés durant la phase d'apprentissage n'impacteront pas la construction du modèle et seront même susceptibles d'être 20 identifiés au terme de cette phase. En effet, la phase d'apprentissage et base d'observations reposent sur une quantité très importante de sessions utilisateur. On considère que les anomalies y sont peu nombreuses. Dans la phase suivante P1 de détection, décrite en relation avec la figure 2, toute 25 nouvelle session utilisateur, ou session courante, est analysée de la même manière qu'une session l'a été durant la phase d'apprentissage PO de manière à construire un vecteur de distribution n-grammes courant propre à la session courante. Le vecteur de distribution courant est alors comparé aux m clusters [C1171 obtenus lors de l'étape E3 de classification double de manière à être associé à un profil d'utilisation du service correspondant. Si le vecteur courant ne 30 correspond à aucun profil d'utilisation recensé durant la phase d'apprentissage Pl, la session courante est assimilée à une anomalie. La session courante comprend une liste ordonnée de transactions élémentaires courantes représentatives d'interactions entre l'utilisateur et le service. Dans une étape initiale E10, la session courante d'exécution du service est représentée sous forme d'une liste ordonnée de transactions élémentaires.The steps E0, E1 and the substeps E21, E22 and E23 of the analysis step are iterated over all the sessions of the observation database BdO. At the end of the analysis step E2, there is an observation matrix MD representative of the sessions included in the observation database BdO and more precisely of the sequence of elementary transactions in the sessions, the number of transactions of a sequence dependent on the value n chosen for the analysis n-grams In a next step E3 of double classification (or "co-clustering", or "biclustering" in English), a double classification is carried out on the MD distribution matrix, to group sessions that represent the same behavior. Dual classification is an unsupervised learning technique (referred to as a "machine learning" in English) for simultaneously segmenting the rows and columns of a matrix. The principle of double classification consists of moving the rows and columns of a matrix according to a defined co-clustering algorithm in order to identify density zones in the matrix. An n-grams integrates the notion of order into the n transactions that compose it, and this order is preserved within the same n-grams during the double classification step E3. It is considered that the n-grams can work on partial sequences sufficient to detect anomalies. Thus, the displacement of rows and columns, which somehow breaks the sequencing of an analyzed usage session, is not detrimental to the detection of anomalies. The resulting distribution matrix approaches a diagonal matrix; it includes m groups of visible data C1171 (or "cluster" in English). Each of these clusters Cj, or grouping of data, represents a similar behavioral profile in terms of elementary transactions implemented during the execution of the service, for example, purchase of a game then consultation of e-mail, search in a catalog without purchase, search in a catalog with purchase, etc. The dual classification also produces for each grouping of data Cr a reference vector Cj and a radius Ti of the data group. The reference vector Cj corresponds to the center of the cluster Cr or centroid; it is representative of a normal behavior profile associated with the data clustering, and the radius Ti delimits a density zone around the reference vector. The radius Ti determines a threshold value for determining whether or not a new session is part of the cluster Cj representative of a normal execution profile. By way of example, FIG. 3 shows a double classification implemented on a first matrix, on the left in the figure, and the resulting matrix, on the right in the figure, where several data groups clearly appear. To implement the double classification step E3, for example, the co-clustering algorithm defined in the article "Co-clustering documents and words using bipartite spectral graph partitioning", I.S. Dillon, in Proceedings of SIGKDD, 2001. The invention is not limited to this algorithm and any dual classification algorithm that produces a centroid and a radius per cluster can be used. At the end of step E3, there is an MD distribution matrix that models all the normal behaviors of users of the service. In the example described here, it was considered that the population of the observation database BdO was carried out in a secure environment. The invention is not limited to a secure context and in another example, the BdO observation database is populated in an operational environment. It is considered that globally the ratio of dishonest behavior to honest behavior is infinite and that with the method described here, dishonest behaviors recorded during the learning phase will not impact the construction of the model and will even be susceptible be identified at the end of this phase. Indeed, the learning phase and observation base are based on a very large amount of user sessions. Anomalies are considered to be few. In the next detection phase P1, described in connection with FIG. 2, any new user session, or current session, is analyzed in the same way that a session was analyzed during the learning phase PO so as to construct a distribution vector n-grams current proper to the current session. The current distribution vector is then compared with the clusters [C1171 obtained during the double classification step E3 so as to be associated with a corresponding service utilization profile. If the current vector does not correspond to any use pattern identified during the learning phase P1, the current session is considered an anomaly. The current session includes an ordered list of common elementary transactions representative of interactions between the user and the service. In an initial step E10, the current session of execution of the service is represented as an ordered list of elementary transactions.

3038187 13 Dans une étape suivante Ell de remplacement de paramètres spécifiques, comparable à l'étape E0 de remplacement de paramètres spécifiques mise en oeuvre durant la phase d'apprentissage P0, des paramètres spécifiques de l'utilisateur des transactions élémentaires de la session courante sont remplacés par des paramètres génériques, représentatifs de leur 5 sémantique. Dans une étape suivante E12 d'analyse, la méthode statistique n-grammes telle qu'appliquée au cours de l'étape E2 d'analyse est appliquée aux transactions élémentaires obtenues au cours de l'étape Ell précédente. La valeur de n est identique à celle utilisée au cours de la phase PO d'apprentissage. L'application de la méthode n-grammes permet d'obtenir 10 une séquence de segments associée à la session courante. Il est mesuré ensuite la fréquence d'occurrence des segments différents de la séquence. Il est ensuite construit, de manière comparable à la sous-étape E23, un vecteur de distribution courant vc propre à la session courante. Ce vecteur vc comprend les mêmes colonnes que la matrice de distribution obtenue au terme de l'étape E3 de double classification et en j-ième position vc(j) la fréquence d'occurrence 15 du segment de la j-ième colonne. Au terme de l'étape E12 d'analyse, on dispose du vecteur de distribution vc propre à la session courante. A noter qu'il est possible que la session courante comprenne un segment courant qui n'a jamais été rencontré durant la phase d'apprentissage. Il n'est donc référencé ni dans les colonnes 20 de la matrice de distribution MD, ni dans les colonnes du vecteur de distribution vc. Cela peut correspondre à une anomalie Cela peut également correspondre à une évolution du service qui intègre de nouvelles fonctionnalités et qui peut donc être à l'origine de nouvelles transactions élémentaires. Dans ce cas, il est nécessaire de mettre en oeuvre de nouveau la phase d'apprentissage PO afin de mettre à jour la matrice de distribution MD et de tenir ainsi compte 25 des évolutions du service. Dans une étape suivante E13 d'évaluation, le vecteur de distribution courant vc est comparé aux m regroupements de données fC1171, représentatifs de profils de comportements normaux d'utilisation du service, afin d'identifier un profil Ck correspondant au comportement représenté par le vecteur de distribution courant vc. A cette fin, la distance entre le vecteur de 30 distribution vc et chacun des m vecteurs de référence {CJ}71 des m regroupements de données est comparée à chacune des valeurs seuil frj171 des regroupements de données représentative du rayon de chacun des cluster {CJ}71. Dans un premier cas (branche « ok » sur la figure 1) où la distance entre le vecteur de distribution vc et au moins un vecteur de référence Ck du cluster Ck est inférieure à la valeur seuil rk représentative du rayon du cluster Ck, alors la session 35 courante, associée au vecteur de distribution vc, est assimilée dans une étape E14 à un 3038187 14 comportement normal. Dans le cas contraire (branche « nok » sur la figure X), la session courante est assimilée à une anomalie dans une étape E15 d'anomalie Dans l'exemple décrit ici, les interactions de l'utilisateur avec le service sont décrites par une succession de requêtes d'URL. Une URL constitue un standard de fait utilisé pour 5 localiser des ressources sur Internet. L'utilisation des URL est donc applicable à tous les types de protocoles Internet, tels que http, « P2P » (de l'anglais « Peer To Peer »), et « FTP » (de l'anglais « File Transfer Protocol »). L'invention n'est cependant pas limitée aux requêtes d'URL pour la description de sessions utilisateur et s'applique également à des requêtes qui englobent d'autres entêtes http. Par ailleurs, d'autres types d'informations représentatives des 10 interactions de l'utilisateur avec un service et que l'on peut trouver dans les fichiers de logs peuvent être utilisés. Dans l'exemple décrit ici, les interactions sont décrites sous forme de transactions élémentaires entre un utilisateur et un service. L'invention n'est pas limitée à cet exemple et peut s'appliquer à un cas ou un premier service interagit avec un deuxième service au cours 15 d'une session. Les interactions entre les deux services durant la session se présentent sous la forme de transactions élémentaires. Les étapes du procédé décrit précédemment s'appliquent alors de la même façon. Le procédé trouve une application intéressante pour la détection d'anomalies dans des services complexes. De tels services sont par exemple des services d'achat en ligne, des services 20 opérateur de gestion d'abonnements mobiles et Internet. Il trouve également une application intéressante pour la configuration d'environnements en cloud computing. En effet, une telle configuration qui consiste à configurer des machines de virtuelles en termes de nombre de machines, de ressources, à bouger de telles machines s'effectue au moyen de transactions Internet. Chacune des opérations effectuées constitue un service compris dans le service de 25 configuration. Un dispositif 40 de détection d'anomalies dans l'exécution d'un service va maintenant être décrit en relation avec la figure 4. Le dispositif de détection d'anomalies est un équipement informatique, tel qu'un 30 serveur, agencé pour identifier qu'une session courante d'utilisateur comprenant des transactions élémentaires relatives à l'exécution d'un service correspond à une anomalie ou à un comportement normal d'utilisateur. A cette fin, le dispositif de détection 4 comprend une application autonome d'analyse de journaux d'exécution. Le module d'analyse comprend des instructions logicielles agencées pour mettre en oeuvre les étapes du procédé de détection 35 d'anomalies tel que décrit précédemment.In a following step Ell of replacing specific parameters, comparable to the step E0 of replacing specific parameters implemented during the learning phase P0, user-specific parameters of the elementary transactions of the current session are replaced by generic parameters, representative of their semantics. In a next step E12 of analysis, the n-grams statistical method as applied during the analysis step E2 is applied to the elementary transactions obtained during the previous step Ell. The value of n is identical to that used during the learning phase PO. Applying the n-grams method provides a sequence of segments associated with the current session. The frequency of occurrence of the different segments of the sequence is then measured. It is then constructed, comparable to substep E23, a current distribution vector vc specific to the current session. This vector vc comprises the same columns as the distribution matrix obtained at the end of the double classification step E3 and in the jth position vc (j) the frequency of occurrence of the segment of the jth column. At the end of the analysis step E12, the distribution vector vc specific to the current session is available. Note that it is possible for the current session to include a current segment that was never encountered during the learning phase. It is therefore referenced neither in the columns 20 of the distribution matrix MD nor in the columns of the distribution vector vc. This may correspond to an anomaly This can also correspond to an evolution of the service that incorporates new functionalities and that can therefore be at the origin of new elementary transactions. In this case, it is necessary to implement the PO learning phase again in order to update the MD distribution matrix and thus take into account the changes in the service. In a next evaluation step E13, the current distribution vector vc is compared with the m groupings of data fC1171, representative of profiles of normal behaviors of use of the service, in order to identify a profile Ck corresponding to the behavior represented by the vector. current distribution vc. For this purpose, the distance between the distribution vector vc and each of the m reference vectors {CJ} 71 from the m data groupings is compared to each of the threshold values frj171 of the data groupings representative of the radius of each cluster {CJ 71}. In a first case (branch "ok" in FIG. 1) where the distance between the distribution vector vc and at least one reference vector Ck of the cluster Ck is less than the threshold value rk representative of the radius of the cluster Ck, then the The current session, associated with the distribution vector vc, is assimilated in a step E14 to a normal behavior. In the opposite case ("nok" branch in FIG. X), the current session is considered to be an anomaly in an abnormality step E15. In the example described here, the user's interactions with the service are described by a succession of URL requests. A URL is a de facto standard used to locate resources on the Internet. The use of URLs is therefore applicable to all types of Internet protocols, such as http, "P2P" (of the English "Peer To Peer"), and "FTP" (of the English "File Transfer Protocol") . The invention is however not limited to URL requests for the description of user sessions and also applies to requests that include other http headers. On the other hand, other types of information representative of the user's interactions with a service and which can be found in the log files can be used. In the example described here, interactions are described as basic transactions between a user and a service. The invention is not limited to this example and can be applied to a case where a first service interacts with a second service during a session. The interactions between the two services during the session are in the form of elementary transactions. The steps of the method described above then apply in the same way. The method finds an interesting application for the detection of anomalies in complex services. Such services are, for example, online purchasing services, mobile subscription management operator services and the Internet. It also finds an interesting application for configuring environments in cloud computing. Indeed, such a configuration which consists of configuring virtual machines in terms of the number of machines and resources to move such machines is done by means of Internet transactions. Each of the operations performed constitutes a service included in the configuration service. A device 40 for detecting anomalies in the execution of a service will now be described in relation to FIG. 4. The device for detecting anomalies is a computer equipment, such as a server, arranged to identify that a current user session comprising elementary transactions relating to the execution of a service corresponds to a normal user anomaly or behavior. For this purpose, the detection device 4 comprises an autonomous application for analyzing execution logs. The analysis module comprises software instructions arranged to implement the steps of the anomaly detection method as described above.

3038187 15 Le dispositif 40 comprend : - une unité de traitement 41, ou « CPU » pour « Central Processing Unit », - un ensemble de mémoires, dont une mémoire volatile 42, ou « RAM » (pour « Random Access Memory ») et une mémoire morte 43 de type « ROM » (de l'anglais « Read 5 Only Memory ») et une mémoire de stockage 44 de type mémoire flash ou « EEPROM » (pour « Electrically-Erasable Programmable Read Only Memory). La mémoire volatile 42 est agencée pour exécuter des instructions de code, stocker des variables, etc. La mémoire de stockage 44 est agencée pour mémoriser des données. En particulier, la mémoire de stockage 44 mémorise l'application de détection d'anomalies qui comprend des instructions de code pour mettre en 10 oeuvre les étapes du procédé de détection d'anomalies tel que décrit précédemment ; Des interfaces de communication 45, agencées pour accéder aux données issues de l'étape de de double classification, en l'espèce les vecteurs de référence des groupements de données et les valeurs seuil. Le dispositif comprend également : 15 - un module 46 d'obtention d'une liste ordonnée d'au moins deux transactions élémentaires pour une session courante d'exécution d'un service par une entité. L'entité peut être un utilisateur ou un autre service. Le module 46 d'obtention d'une liste est agencé pour mettre en oeuvre l'étape E10 du procédé de détection d'anomalie tel que décrit précédemment ; - un module 47 de construction d'un vecteur de distribution et d'association, agencé 20 pour construire, pour la session courante un vecteur de distribution vc dont les entrées correspondent aux entrées d'au moins un vecteur de référence Cj, une entrée du vecteur de référence correspondant à un segment élémentaire de taille fixe d'au moins une transaction élémentaire. Le module 46 est également agencé pour associer à une entrée du vecteur de distribution un nombre d'occurrences du segment élémentaire correspondant dans la liste 25 ordonnée, ledit vecteur de référence étant représentatif d'un profil de comportement normal d'utilisation du service. Le module 47 de construction d'un vecteur de distribution et d'association est agencé pour mettre en oeuvre l'étape Ell du procédé de détection d'anomalies décrit précédemment ; et - un module d'identification 48, agencé pour identifier la session courante comme 30 normale lorsque la distance entre le vecteur de distribution et le vecteur de référence est inférieure à une valeur seuil Ti associée au vecteur de référence. La valeur seuil Ti correspond au rayon d'un cluster ou groupement de données C1 dont le vecteur de référence est Cj. Le module d'identification 48 est agencé pour mettre en oeuvre l'étape E13 du procédé de détection d'anomalies décrit précédemment.The device 40 comprises: - a processing unit 41, or "CPU" for "Central Processing Unit", - a set of memories, including a volatile memory 42, or "RAM" (for "Random Access Memory") and a read-only memory 43 of the "Read 5 Only Memory" type and a storage memory 44 of flash memory type or "EEPROM" (for "Electrically-Erasable Programmable Read Only Memory). The volatile memory 42 is arranged to execute code instructions, store variables, and so on. The storage memory 44 is arranged to store data. In particular, the storage memory 44 stores the abnormality detection application which includes code instructions for carrying out the steps of the abnormality detection method as described above; Communication interfaces 45, arranged to access the data from the double classification step, in this case the reference vectors of the data groups and the threshold values. The device also comprises: a module 46 for obtaining an ordered list of at least two elementary transactions for a current session of execution of a service by an entity. The entity can be a user or another service. The module 46 for obtaining a list is arranged to implement the step E10 of the anomaly detection method as described above; a module 47 for constructing a distribution and association vector, arranged to construct, for the current session, a distribution vector vc whose inputs correspond to the inputs of at least one reference vector Cj, an input of reference vector corresponding to an elementary segment of fixed size of at least one elementary transaction. The module 46 is also arranged to associate with an input of the distribution vector a number of occurrences of the corresponding elementary segment in the ordered list, said reference vector being representative of a profile of normal behavior of use of the service. The module 47 for constructing a distribution and association vector is arranged to implement the step Ell of the anomaly detection method described above; and an identification module 48, arranged to identify the current session as normal when the distance between the distribution vector and the reference vector is less than a threshold value Ti associated with the reference vector. The threshold value Ti corresponds to the radius of a cluster or data group C1 whose reference vector is Cj. The identification module 48 is arranged to implement the step E13 of the anomaly detection method described above.

3038187 16 Le module 46 d'obtention d'une liste ordonnée d'au moins deux transactions élémentaires, le module 47 de construction d'un vecteur de distribution et d'association et le module d'identification 48 sont de préférence des modules logiciels comprenant des instructions logicielles pour faire exécuter les étapes de la phase Pl de détection d'anomalies du procédé 5 décrit précédemment. L'invention concerne donc aussi : - un programme d'ordinateur comportant des instructions pour la mise en oeuvre du procédé de détection d'anomalies tel que décrit précédemment lorsque ce programme est exécuté par un processeur du dispositif 40 de détection d'anomalies, et 10 - un support d'enregistrement lisible sur lequel est enregistré le programme d'ordinateur décrit ci-dessus. Les modules logiciels peuvent être stockés dans, ou transmis par un support de données. Celui-ci peut être un support matériel de stockage, par exemple un CD-ROM, une disquette magnétique ou un disque dur, ou bien un support de transmission tel qu'un signal ou un réseau 15 de télécommunication. Dans un exemple de réalisation, correspondant au cas où le dispositif 40 de détection d'anomalies est agencé pour mettre en oeuvre la phase PO d'apprentissage, le dispositif 40 comprend également les modules suivants (non représentés sur la figure 4): - une deuxième interface de communication, agencée pour accéder à la base 20 d'observations Bd0 ; - un module d'obtention d'une liste ordonnée d'apprentissage d'au moins deux transactions élémentaires d'apprentissage, - un module de construction d'un vecteur de distribution d'apprentissage v, dont les entrées correspondent aux entrées du vecteur de référence, à une entrée du vecteur de 25 distribution d'apprentissage on associe un nombre d'occurrences du segment élémentaire d'apprentissage correspondant dans la liste ordonnée d'apprentissage, - un module de construction d'une matrice de distribution par ajout dudit vecteur de distribution d'apprentissage, ladite matrice d'observation comprenant en i-ième ligne un i-ième vecteur de distribution d'apprentissage, 30 et, - un module de modification et d'obtention, agencé pour modifier l'ordre des colonnes et des lignes de la matrice de distribution obtenue pour l'ensemble des sessions d'apprentissage pour constituer des groupements de valeurs autour de la diagonale de la matrice, et pour obtenir pour chaque groupement de valeurs, du vecteur de référence et de la valeur seuil associée.The module 46 for obtaining an ordered list of at least two elementary transactions, the module 47 for constructing a distribution and association vector and the identification module 48 are preferably software modules comprising software instructions for executing the steps of the abnormality detection phase P1 described above. The invention therefore also relates to: a computer program comprising instructions for implementing the method of detecting anomalies as described above when this program is executed by a processor of the device 40 for detecting anomalies, and A readable recording medium on which is recorded the computer program described above. The software modules can be stored in, or transmitted by, a data carrier. This may be a hardware storage medium, for example a CD-ROM, a magnetic diskette or a hard disk, or a transmission medium such as a signal or a telecommunications network. In an exemplary embodiment, corresponding to the case where the device 40 for detecting anomalies is arranged to implement the training phase PO, the device 40 also comprises the following modules (not shown in Figure 4): - a second communication interface, arranged to access the observation base Bd0; a module for obtaining an ordered list of learning of at least two elementary learning transactions; a module for constructing a learning distribution vector v whose inputs correspond to the inputs of the training vector; reference, to an input of the training distribution vector a number of occurrences of the corresponding elementary learning segment is associated in the ordered learning list, - a building module of a distribution matrix by adding said vector training distribution, said observation matrix comprising in the it-th line an i-th learning distribution vector, and a modification and obtaining module, arranged to modify the order of the columns and rows of the distribution matrix obtained for the set of training sessions to constitute groupings of values around the diagonal of the matrix, and to obtain for each group of values, the reference vector and the associated threshold value.

3038187 17 Ces modules sont de préférence des modules logiciels, agencés pour mettre en oeuvre les étapes de la phase d'apprentissage du procédé d'aide à l'analyse de l'exécution d'une machine virtuelle tel que décrit précédemment. 5These modules are preferably software modules, arranged to implement the steps of the learning phase of the method for assisting the analysis of the execution of a virtual machine as described above. 5

Claims (10)

REVENDICATIONS1. Procédé de détection d'anomalies dans l'exécution d'un service, comprenant : - une obtention (E10) d'une liste ordonnée d'au moins deux transactions élémentaires pour une session courante, lors d'une exécution du service par une entité, - une construction (El 1) pour la session courante d'un vecteur de distribution (va) dont les entrées correspondent aux entrées d'au moins un vecteur de référence (Cj), une entrée du vecteur de référence correspondant à un segment élémentaire de taille fixe d'au moins une transaction élémentaire, et association à une entrée du vecteur de distribution d'un nombre d'occurrences du segment élémentaire correspondant dans la liste ordonnée, ledit vecteur de référence étant représentatif d'un profil de comportement normal d'utilisation du service, - une identification (E13) de la session courante comme normale lorsque la distance entre le vecteur de distribution et le vecteur de référence est inférieure à une valeur seuil (Ti) associée au vecteur de référence.REVENDICATIONS1. Method for detecting anomalies in the execution of a service, comprising: - obtaining (E10) an ordered list of at least two elementary transactions for a current session, during a service execution by an entity a construction (El 1) for the current session of a distribution vector (va) whose inputs correspond to the inputs of at least one reference vector (Cj), an input of the reference vector corresponding to an elementary segment of fixed size of at least one elementary transaction, and association with an input of the distribution vector of a number of occurrences of the corresponding elementary segment in the ordered list, said reference vector being representative of a normal behavior profile d use of the service, - identification (E13) of the current session as normal when the distance between the distribution vector and the reference vector is less than a threshold value (Ti ) associated with the reference vector. 2. Procédé selon l'une des revendications précédentes, comprenant un remplacement (El) d'au moins une valeur spécifique contenue dans les transactions élémentaires par une valeur générique.2. Method according to one of the preceding claims, comprising a replacement (El) of at least one specific value contained in the elementary transactions by a generic value. 3. Procédé selon l'une des revendications précédentes, dans lequel la liste ordonnée d'au moins deux transactions élémentaires est obtenue au moyen d'une analyse n-grammes des transactions élémentaires.3. Method according to one of the preceding claims, wherein the ordered list of at least two elementary transactions is obtained by means of an n-grams analysis of the elementary transactions. 4. Procédé selon l'une des revendications précédentes comprenant une détection d'anomalie lorsque le segment élémentaire de la session courante ne figure pas parmi les entrées du vecteur de référence.4. Method according to one of the preceding claims comprising an anomaly detection when the elementary segment of the current session is not among the entries of the reference vector. 5. Procédé selon l'une des revendications précédentes, dans lequel la distance entre le vecteur de distribution et le vecteur de référence est la distance Euclidienne. 305. Method according to one of the preceding claims, wherein the distance between the distribution vector and the reference vector is the Euclidean distance. 30 6. Procédé selon l'une des revendications précédentes, comprenant une phase d'apprentissage mise en oeuvre sur un ensemble de sessions d'apprentissage, comprenant pour une desdites sessions d'apprentissage associée à une exécution du service : - une obtention (E10) d'une liste ordonnée d'apprentissage d'au moins deux 35 transactions élémentaires d'apprentissage, 3038187 19 - une construction (E21) d'un vecteur de distribution d'apprentissage (vi) dont les entrées correspondent aux entrées du vecteur de référence, à une entrée du vecteur de distribution d'apprentissage on associe (E22) un nombre d'occurrences du segment élémentaire d'apprentissage correspondant dans la liste ordonnée d'apprentissage, 5 - une construction (E23) d'une matrice de distribution (MD) par ajout dudit vecteur de distribution d'apprentissage, ladite matrice d'observation comprenant en i-ième ligne un i-ième vecteur de distribution d'apprentissage, et, - une modification (E3) de l'ordre des colonnes et des lignes de la matrice de 10 distribution obtenues pour l'ensemble des sessions d'apprentissage, pour constituer des groupements de valeurs autour de la diagonale de la matrice, et une obtention pour chaque groupement (Cj) de valeurs, du vecteur de référence (Cj) et de la valeur seuil (Ti) associée.6. Method according to one of the preceding claims, comprising a learning phase implemented on a set of training sessions, comprising for one of said training sessions associated with a service execution: - a obtaining (E10) an ordered list of learning of at least two elementary learning transactions, - a construction (E21) of a learning distribution vector (vi) whose inputs correspond to the entries of the reference vector at an input of the training distribution vector is associated (E22) a number of occurrences of the corresponding elementary learning segment in the ordered learning list, 5 - a construction (E23) of a distribution matrix ( MD) by adding said training distribution vector, said observation matrix comprising in the it-th line an i-th learning distribution vector, and, - a modification (E3) of the order of training olonnes and rows of the distribution matrix obtained for all the learning sessions, to constitute groups of values around the diagonal of the matrix, and obtaining for each group (Cj) of values, the vector of reference (Cj) and the associated threshold value (Ti). 7. Procédé selon la revendication 6, dans lequel les groupements de valeurs sont obtenus 15 par application d'un algorithme de classification double, ou de « co-clustering », à la matrice de distribution.The method of claim 6, wherein the value pools are obtained by applying a dual classification algorithm, or "co-clustering", to the distribution matrix. 8. Dispositif de détection d'anomalies, comprenant : - un module (46) d'obtention d'une liste ordonnée, agencé pour obtenir une liste 20 ordonnée d'au moins deux transactions élémentaires pour une session courante, lors d'une exécution du service par une entité, - un module (47) de construction et d'association, agencé pour construire pour la session courante un vecteur de distribution (va) dont les entrées correspondent aux entrées d'au moins un vecteur de référence (Cj), une entrée du vecteur de référence correspondant à un 25 segment élémentaire de taille fixe d'au moins une transaction élémentaire, et pour associer à une entrée du vecteur de distribution d'un nombre d'occurrences du segment élémentaire correspondant dans la liste ordonnée, ledit vecteur de référence étant représentatif d'un profil de comportement normal d'utilisation du service, - un module (48) d'identification, agencé pour identifier la session courante comme normale lorsque la distance entre le vecteur de distribution et le vecteur de référence est inférieure à une valeur seuil associée au vecteur de référence.An abnormality detection device, comprising: a module (46) for obtaining an ordered list, arranged to obtain an ordered list of at least two elementary transactions for a current session, during an execution service by an entity, - a module (47) for construction and association, arranged to construct for the current session a distribution vector (va) whose inputs correspond to the inputs of at least one reference vector (Cj) an input of the reference vector corresponding to a fixed-size elementary segment of at least one elementary transaction, and for associating with an input of the distribution vector of a number of occurrences of the corresponding elementary segment in the ordered list, said reference vector being representative of a normal usage behavior profile of the service, - an identification module (48), arranged to identify the current session as normal when the ance between the distribution vector and the reference vector is less than a threshold value associated with the reference vector. 9. Programme d'ordinateur sur un support de données et chargeable dans la mémoire d'un ordinateur, le programme comprenant des instructions de code pour l'exécution des étapes 3038187 20 du procédé de détection d'anomalies selon l'une des revendications 1 à 7, lorsque le programme est exécuté sur ledit ordinateur.A computer program on a data carrier and loadable in a computer memory, the program comprising code instructions for performing the steps of the abnormality detection method according to one of claims 1 to at 7, when the program is running on said computer. 10. Support de données dans lequel est enregistré le programme selon la revendication 5 9. 10Data carrier in which the program according to claim 5 is recorded.
FR1555931A 2015-06-26 2015-06-26 METHOD FOR DETECTING ANOMALIES IN THE EXECUTION OF A SERVICE Pending FR3038187A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1555931A FR3038187A1 (en) 2015-06-26 2015-06-26 METHOD FOR DETECTING ANOMALIES IN THE EXECUTION OF A SERVICE

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1555931A FR3038187A1 (en) 2015-06-26 2015-06-26 METHOD FOR DETECTING ANOMALIES IN THE EXECUTION OF A SERVICE

Publications (1)

Publication Number Publication Date
FR3038187A1 true FR3038187A1 (en) 2016-12-30

Family

ID=54707863

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1555931A Pending FR3038187A1 (en) 2015-06-26 2015-06-26 METHOD FOR DETECTING ANOMALIES IN THE EXECUTION OF A SERVICE

Country Status (1)

Country Link
FR (1) FR3038187A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100235909A1 (en) * 2009-03-13 2010-09-16 Silver Tail Systems System and Method for Detection of a Change in Behavior in the Use of a Website Through Vector Velocity Analysis

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20100235909A1 (en) * 2009-03-13 2010-09-16 Silver Tail Systems System and Method for Detection of a Change in Behavior in the Use of a Website Through Vector Velocity Analysis

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
MIKHAIL ZOLOTUKHIN ET AL: "Online anomaly detection by using N-gram model and growing hierarchical self-organizing maps", WIRELESS COMMUNICATIONS AND MOBILE COMPUTING CONFERENCE (IWCMC), 2012 8TH INTERNATIONAL, IEEE, 27 August 2012 (2012-08-27), pages 47 - 52, XP032253277, ISBN: 978-1-4577-1378-1, DOI: 10.1109/IWCMC.2012.6314176 *
ZHONG SU ET AL: "WhatNext: a prediction system for Web requests using n-gram sequence models", WEB INFORMATION SYSTEMS ENGINEERING, 2000. PROCEEDINGS OF THE FIRST IN TERNATIONAL CONFERENCE ON HONG KONG, CHINA 19-21 JUNE 2000, LOS ALAMITOS, CA, USA,IEEE COMPUT. SOC, US, vol. 1, 19 June 2000 (2000-06-19), pages 214 - 221, XP010521857, ISBN: 978-0-7695-0577-0, DOI: 10.1109/WISE.2000.882395 *

Similar Documents

Publication Publication Date Title
EP3452910B1 (en) Security weakness and infiltration detection and repair in obfuscated website content
US20240340314A1 (en) System for generating samples to generate machine learning models to facilitate detection of suspicious digital identifiers
WO2021025926A1 (en) Digital content prioritization to accelerate hyper-targeting
US8301514B1 (en) System, method, and computer readable medium for providing recommendations based on purchase phrases
US20140164093A1 (en) System and method to manage and publish promotions electronically
Agarwal et al. Stop tracking me bro! differential tracking of user demographics on hyper-partisan websites
CN109074366A (en) Gain adjustment components for computer network routing infrastructure
US20160092960A1 (en) Product recommendations over multiple stores
Bonifazi et al. Defining user spectra to classify Ethereum users based on their behavior
Bajaj et al. A novel user-based spam review detection
US20160140173A1 (en) Systems and methods for representing search query rewrites
ITUB20156079A1 (en) METHOD TO DETECT WEB TRACKING SERVICES
WO2019106186A1 (en) Secure data tracking platform
Shin et al. e-clip: Large-scale vision-language representation learning in e-commerce
Yang et al. DEV-ETA: An interpretable detection framework for encrypted malicious traffic
Dias et al. Automating the extraction of static content and dynamic behaviour from e-commerce websites
Bernaschi et al. Onion under Microscope: An in-depth analysis of the Tor Web
Umekwudo et al. Blockchain technology for mobile applications recommendation systems
Steinböck et al. Comparing apples to androids: Discovery, retrieval, and matching of ios and android apps for cross-platform analyses
Me et al. Tor black markets: economics, characterization and investigation technique
Gabryel et al. Application of the bag-of-words algorithm in classification the quality of sales leads
CN108234392B (en) Method and device for monitoring a website
Weller Compromised account detection based on clickstream data
Widjaja et al. Text mining application with K-Means clustering to identify sentiments and popular topics: A case study of the three largest online marketplaces in Indonesia
FR3038187A1 (en) METHOD FOR DETECTING ANOMALIES IN THE EXECUTION OF A SERVICE

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20161230