OA17866A - Method for detecting anomalies in network traffic. - Google Patents
Method for detecting anomalies in network traffic. Download PDFInfo
- Publication number
- OA17866A OA17866A OA1201600104 OA17866A OA 17866 A OA17866 A OA 17866A OA 1201600104 OA1201600104 OA 1201600104 OA 17866 A OA17866 A OA 17866A
- Authority
- OA
- OAPI
- Prior art keywords
- vector
- request
- response
- model
- bits
- Prior art date
Links
- 230000004044 response Effects 0.000 claims abstract description 149
- 238000001514 detection method Methods 0.000 claims description 58
- 238000004364 calculation method Methods 0.000 claims description 20
- 230000015654 memory Effects 0.000 claims description 19
- 238000001914 filtration Methods 0.000 claims description 11
- 238000010276 construction Methods 0.000 claims description 10
- 238000000354 decomposition reaction Methods 0.000 claims description 5
- 238000004590 computer program Methods 0.000 claims description 4
- 238000006243 chemical reaction Methods 0.000 claims description 2
- 230000002159 abnormal effect Effects 0.000 description 12
- 230000003068 static Effects 0.000 description 10
- 230000006399 behavior Effects 0.000 description 5
- 238000004458 analytical method Methods 0.000 description 4
- 230000000875 corresponding Effects 0.000 description 4
- 206010061619 Deformity Diseases 0.000 description 2
- 238000000034 method Methods 0.000 description 2
- 238000010223 real-time analysis Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 230000036881 Clu Effects 0.000 description 1
- 235000016496 Panda oleosa Nutrition 0.000 description 1
- 240000000220 Panda oleosa Species 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000000903 blocking Effects 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 230000002860 competitive Effects 0.000 description 1
- 230000002354 daily Effects 0.000 description 1
- 230000003203 everyday Effects 0.000 description 1
- 230000000977 initiatory Effects 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000006011 modification reaction Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 230000002123 temporal effect Effects 0.000 description 1
Abstract
L'invention concerne un procédé de détection d'anomalies dans un trafic réseau, ledit trafic étant transmis par un serveur (10) en réponse à des requêtes d'au moins un dispositif client (11), le procédé comprenant : - une étape (E10) de réception d'une requête, ladite requête étant d'un type donné, - une étape (E11) de réception d'une réponse à la requête, - une étape (E13) de construction d'un vecteur de bits courant (VN), représentatif de la réponse, - une étape (E17) de calcul d'un indice de similarité représentatif d'une distance entre le vecteur de bits courant et un vecteur de bits modèle (Vmod) associé au type de la requête, - une étape de vérification (E18) que l'indice de similarité (ISc) n'appartient pas à un intervalle de conformité (1C) calculé pour le type de requête, une anomalie étant détectée lorsque l'indice de similarité n'appartient pas à l'intervalle de conformité. The invention relates to a method for detecting anomalies in network traffic, said traffic being transmitted by a server (10) in response to requests from at least one client device (11), the method comprising: - a step ( E10) for receiving a request, said request being of a given type, - a step (E11) for receiving a response to the request, - a step (E13) for building a current bit vector ( VN), representative of the response, - a step (E17) of calculating a similarity index representative of a distance between the current vector of bits and a vector of model bits (Vmod) associated with the type of the request, - a step of verifying (E18) that the similarity index (ISc) does not belong to a conformity interval (1C) calculated for the type of request, an anomaly being detected when the similarity index does not belong to the compliance interval.
Description
Procédé de détection d'anomalies dans un trafic réseauMethod for detecting anomalies in network traffic
L'invention se rapporte au domaine général des télécommunications. Elle concerne plus particulièrement la sécurité informatique et porte sur un procédé de détection d'anomalies dansun trafic réseau.The invention relates to the general field of telecommunications. It relates more particularly to computer security and relates to a method for detecting anomalies in network traffic.
L'invention trouve une application particulièrement intéressante dans le cadre de la détection et de la prévention d'intrusions dans des réseaux et des plates-formes de service. Une intrusion dans un réseau ou une plate -forme de services constitue un risque important pour des entreprises puisqu'elle peut être à l'origine de fuites de données confidentielles, telles que des données clients, des informations concurrentielles. De telles attaques peuvent avoir des conséquences financières importantes pour l'entreprise et en tout état de cause nuire à l'image de marque de l'entreprise.The invention finds a particularly advantageous application in the context of the detection and prevention of intrusions into networks and service platforms. An intrusion into a network or a service platform constitutes a significant risk for companies since it can be the source of leaks of confidential data, such as customer data, competitive information. Such attacks can have significant financial consequences for the company and in any case damage the company's brand image.
De nombreuses méthodes ont été développées dans le but de détecter de telles intrusions. Certaines sont mises en oeuvre en phase de conception d'un système, d'autres une fois le système développé, au moyen d'équipements de détection d'attaques. Cependant les méthodes mises en oeuvre en phase de conception sont extrêmement complexes et coûteuses à mettre en œuvre, notamment lorsque de nombreux acteurs sont impliqués. Quant aux méthodes de détection une fois le système conçu, elles ne sont pas infaillibles et sont connues pour être très sensibles aux faux positifs. On connaît également une autre approche consistant à analyser des réponses à des requêtes faites auprès d'un serveur afin de détecter la présence d'informations sensibles dans les réponses. Cette méthode est plus connue sous le nom de méthode de détection de fuite de données, ou « DLP » (de l'anglais « Data Leakage Protection »). Par exemple une telle méthode va détecter des signatures correspondant à des numéros de cartes de crédit et bloquer des réponses à des requêtes lorsque les réponses contiennent ce type d'information.Many methods have been developed with the aim of detecting such intrusions. Some are implemented during the design phase of a system, others once the system has been developed, by means of attack detection equipment. However, the methods implemented in the design phase are extremely complex and expensive to implement, especially when many players are involved. As for the detection methods once the system is designed, they are not foolproof and are known to be very sensitive to false positives. Another approach is also known which consists in analyzing responses to requests made to a server in order to detect the presence of sensitive information in the responses. This method is better known under the name of the data leak detection method, or “DLP” (standing for “Data Leakage Protection”). For example, such a method will detect signatures corresponding to credit card numbers and block responses to requests when the responses contain this type of information.
Cependant, une telle méthode est confrontée à des problèmes de performances. En effet, le volume des réponses est en moyenne vingt fois supérieur au volume des requêtes. Ainsi, une analyse des réponses aux requêtes est coûteuse en termes de temps de traitement d'une part, et en termes de charge mémoire d'autre part. Il existe donc peu de mises en œuvre de techniques de détection d'intrusions basées sur cette approche.However, such a method faces performance issues. Indeed, the volume of responses is on average twenty times greater than the volume of requests. Thus, an analysis of the responses to the requests is costly in terms of processing time on the one hand, and in terms of memory load on the other hand. There are therefore few implementations of intrusion detection techniques based on this approach.
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.One of the aims of the invention is to remedy shortcomings / drawbacks of the state of the art and / or to make improvements thereto.
A cette fin, l'invention propose un procédé de détection d'anomalies dans un trafic réseau, ledit trafic étant transmis par un serveur en réponse à des requêtes d'au moins un dispositif client, le procédé comprenant :To this end, the invention proposes a method for detecting anomalies in network traffic, said traffic being transmitted by a server in response to requests from at least one client device, the method comprising:
- une étape de réception d'une requête, ladite requête étant d'un type donné,- a step of receiving a request, said request being of a given type,
- une étape de réception d'une réponse à la requête,- a step of receiving a response to the request,
- une étape de construction d'un vecteur de bits courant, représentatif de la réponse,- a step of constructing a current vector of bits, representative of the response,
- une étape de calcul d'un indice de similarité représentatif d'une distance entre le vecteur de bits courant et un vecteur de bits modèle associé au type de la requête,a step of calculating a similarity index representative of a distance between the current vector of bits and a vector of model bits associated with the type of the request,
- une étape de vérification que l'indice de similarité appartient à un intervalle de conformité calculé pour le type de requête, une anomalie étant détectée lorsque l'indice de similarité n'appartient pas à l'intervalle de conformité.a step of verifying that the similarity index belongs to a conformity interval calculated for the type of request, an anomaly being detected when the similarity index does not belong to the conformity interval.
La méthode décrite, basée sur une modélisation et une analyse en temps réel des réponses d'un serveur applicatif permet de détecter des réponses anormales, caractéristiques d'une anomalie liée à une attaque ou à un comportement anormal d'une application. La méthode permet d'optimiser la taille mémoire nécessaire à cette analyse temps-réel ainsi que la puissance de calcul. En effet, la méthode est basée sur une représentation binaire de réponses à des requêtes et ne nécessite pas de mémoriser les réponses une fois leur représentation construite. Le gain en espace mémoire est considérable. Par ailleurs, le calcul de données utilisées par le procédé, ainsi que les comparaisons nécessaires pour détecter un comportement anormal sont basés sur ces représentations binaires. La puissance de calcul nécessaire est donc moindre que lorsque les réponses sont manipulées dans leur forme initiale.The method described, based on a modeling and real-time analysis of the responses of an application server, makes it possible to detect abnormal responses, characteristic of an anomaly linked to an attack or to an abnormal behavior of an application. The method makes it possible to optimize the memory size necessary for this real-time analysis as well as the computing power. Indeed, the method is based on a binary representation of responses to requests and does not require storing the responses once their representation has been constructed. The saving in memory space is considerable. Furthermore, the calculation of data used by the method, as well as the comparisons necessary to detect abnormal behavior are based on these binary representations. The computing power required is therefore less than when the responses are manipulated in their initial form.
Par ailleurs, le procédé permet de détecter une fuite d'information de façon plus générique que des méthodes connues basées sur l'approche DLP.Furthermore, the method makes it possible to detect an information leak in a more generic manner than known methods based on the DLP approach.
En effet, les méthodes connues sont adaptées pour détecter dans des réponses à des requêtes des informations précises, telles que des numéros de cartes particuliers, et pour bloquer des réponses qui comprennent ces informations. Au contraire, la méthode proposée ici permet de détecter des informations génériques, telles que des types d'informations comme par exemple des numéros de compte ou des mots de passe. En effet, la méthode permettant de détecter une réponse anormale par rapport à un fonctionnement normal de l'application, toute forme de réponse anormale est détectée. Par exemple, si des requêtes permettent d'obtenir une adresse e-mail propre à un utilisateur nommé dans la requête, une réponse comprenant plus d'une adresse e-mail, consécutive à une requête malicieuse, sera détectée comme anormale. Le procédé permet également de détecter une anomalie différente d'une fuite de donnée. Une telle anomalie est détectée lorsque l'indice de similarité est supérieur à la borne supérieure de l'intervalle de conformité. Dans ce cas, la réponse s'approche du vecteur de bits modèle calculé de manière théorique, ce qui est incompatibles avec un comportement dynamique du service.Indeed, the known methods are suitable for detecting precise information in responses to requests, such as particular card numbers, and for blocking responses which include this information. On the contrary, the method proposed here makes it possible to detect generic information, such as types of information such as, for example, account numbers or passwords. In fact, since the method makes it possible to detect an abnormal response with respect to normal operation of the application, any form of abnormal response is detected. For example, if requests make it possible to obtain an e-mail address specific to a user named in the request, a response comprising more than one e-mail address, following a malicious request, will be detected as abnormal. The method also makes it possible to detect an anomaly other than a data leak. Such an anomaly is detected when the similarity index is greater than the upper limit of the compliance interval. In this case, the response approaches the theoretically calculated model bit vector, which is incompatible with dynamic behavior of the service.
Par ailleurs, la présente méthode n'interlère pas avec des services destinés à fournir des informations sensibles en réponse à des requêtes puisqu'elle repose sur la détection d'un comportement s'écartant d'une modélisation du fonctionnement normal du service. La méthode ne tient donc pas compte de la sensibilité des données qui doivent être envoyées en réponse à des requêtes, mais de la forme des réponses normalement envoyées.Furthermore, the present method does not interfere with services intended to provide sensitive information in response to requests since it is based on the detection of a behavior deviating from a model of the normal operation of the service. The method therefore does not take into account the sensitivity of the data which must be sent in response to requests, but the form of the responses normally sent.
Selon un exemple de réalisation, le procédé comprend une phase d'apprentissage qui comprend :According to an exemplary embodiment, the method comprises a learning phase which comprises:
- une étape de réception d’une requête initiale, la requête initiale étant du type donné,- a step of receiving an initial request, the initial request being of the given type,
- une étape de réception d'une réponse initiale à la requête initiale,- a step of receiving an initial response to the initial request,
- une étape de construction d'un vecteur de bits modèle, représentatif de la réponse initiale,- a step of constructing a vector of model bits, representative of the initial response,
- une étape de mise à jour du vecteur modèle à partir d'un vecteur de bits suivant, construit à partir d'une réponse suivante reçue consécutivement à une requête suivante du type donné,- a step of updating the model vector from a next vector of bits, constructed from a following response received consecutively to a following request of the given type,
- une étape de calcul d'un indice de similarité entre le vecteur modèle mis à jour et le vecteur de bits suivant, les étapes de mise à jour et de calcul de l'indice de similarité étant réitérées au moins une fois,a step of calculating a similarity index between the updated model vector and the next bit vector, the steps of updating and calculating the similarity index being repeated at least once,
- une étape de calcul d'une moyenne des indices de similarité calculés et d'un écart-type de ces indices,- a step of calculating an average of the calculated similarity indices and a standard deviation of these indices,
- une étape de calcul de l'intervalle de conformité à partir de la moyenne des indices et de l'écart-type.- a step of calculating the compliance interval from the average of the indices and the standard deviation.
La méthode comprend une phase d'apprentissage nécessaire au calcul des indicateurs utilisés en phase de détection, en l'espèce le vecteur de bits modèle, les indices de similarité, leur moyenne et l'écart-type entre ces indices et le seuil de variabilité qui représente une variabilité tolérée pour des réponses à des requêtes d'un type donné.The method includes a learning phase necessary for the calculation of the indicators used in the detection phase, in this case the vector of model bits, the similarity indices, their mean and the standard deviation between these indices and the variability threshold. which represents a tolerated variability for responses to queries of a given type.
De façon avantageuse, l'intervalle de conformité est défini au moyen de la moyenne Mis des indices de similarité calculés et de l'écart-type aiSde ces indices, selon la formule suivante :Advantageously, the compliance interval is defined by means of the mean Mis of the calculated similarity indices and of the standard deviation ai S of these indices, according to the following formula:
IC = [MIS- 3 *σ, Mis + 3 * σ]IC = [M IS - 3 * σ, Mis + 3 * σ]
La formule de calcul de l'intervalle de conformité permet de limiter largement le nombre de faux-positifs, c'est-à-dire des réponses à des requêtes qui seraient identifiées comme anormales alors qu'en réalité ces réponses sont normales. En effet, l'écart-type et la moyenne permettent de déterminer un intervalle dans lequel se trouve la majorité d'une population d'un échantillon de valeurs. En l'occurrence, il est connu que la répartition des valeurs d'un échantillon est conforme à une représentation graphique d'une loi normale et que dans un intervalle [- 3 * σιδ, +3 * aïs] autour de la moyenne, se trouve 98% de la distribution de l'échantillon. La majorité des réponses normales fait donc partie de cet intervalle de conformité ; elle n'est donc pas détectée comme anormale par la méthode.The formula for calculating the compliance interval makes it possible to greatly limit the number of false positives, that is to say responses to requests which would be identified as abnormal when in reality these responses are normal. In fact, the standard deviation and the mean make it possible to determine an interval in which the majority of a population of a sample of values is found. In this case, it is known that the distribution of the values of a sample conforms to a graphical representation of a normal law and that in an interval [- 3 * σι δ , +3 * aïs] around the mean, lies 98% of the sample distribution. The majority of normal responses therefore fall within this compliance interval; it is therefore not detected as abnormal by the method.
Dans un exemple de réalisation, la construction d'un vecteur de bits à partir d'une réponse à une requête comprend les étapes suivantes :In an exemplary embodiment, the construction of a vector of bits from a response to a request comprises the following steps:
- décomposition de la réponse en mots qui la composent,- decomposition of the answer into words which compose it,
- calcul d'une position Pj, 1< j< n, dans le vecteur de bits, ladite position étant associée à un des mots par mise en oeuvre des étapes suivantes :calculation of a position Pj, 1 <j <n, in the bit vector, said position being associated with one of the words by implementing the following steps:
- conversion dudit mot en une forme binaire,- conversion of said word into binary form,
- obtention de la position Pj dans le vecteur par application modulo n d'une fonction de hachage à ladite forme binaire obtenue, et- obtaining the position Pj in the vector by modulo n application of a hash function to said obtained binary form, and
- positionnement du Pj-ième bit à 1.- positioning of the Pj-th bit at 1.
La méthode précise comment représenter les réponses à des requêtes d'un type donné par un vecteur de bits où chaque mot de la réponse est représenté par un bit d'une position donnée dans le vecteur. Une telle représentation contribue au gain de l'espace mémoire utilisé pour la mise en œuvre de la méthode.The method specifies how to represent the responses to requests of a given type by a vector of bits where each word of the response is represented by a bit of a given position in the vector. Such a representation contributes to the saving of the memory space used for the implementation of the method.
De façon avantageuse, le procédé comprend également une étape de filtrage durant laquelle un vecteur de bits de filtrage comprenant une représentation d'un ensemble de mots non significatifs est soustrait au vecteur modèle et au vecteur de bits suivant avant la mise à jour du vecteur modèle à partir du vecteur de bits suivant.Advantageously, the method also comprises a filtering step during which a vector of filtering bits comprising a representation of a set of non-significant words is subtracted from the model vector and from the next vector of bits before updating the model vector. from the next bit vector.
Un vecteur représentatif d'un vocabulaire non significatif est construit et soustrait aux vecteurs de bits manipulés. Ainsi, les vecteurs de bits manipulés, que ce soit le vecteur modèle ou les vecteurs suivants, sont représentatifs uniquement de données, c'est-à-dire de mots, sémantiquement significatifs dans le cadre de la sécurité applicative. On comprend que dans ce cas, tous les indicateurs calculés à partir des vecteurs de bits sont définis plus finement que lorsqu'un vocabulaire non significatif est représenté. La méthode permet une détection plus fine des réponses anormales. Par ailleurs, en faisant abstraction du vocabulaire non significatifs, il y a un gain supplémentaire de l'espace mémoire.A vector representative of a non-significant vocabulary is constructed and subtracted from the manipulated bit vectors. Thus, the bit vectors manipulated, be they the model vector or the following vectors, are representative only of data, that is to say of words, semantically significant in the context of application security. It is understood that in this case, all the indicators calculated from the bit vectors are defined more finely than when a non-significant vocabulary is represented. The method allows finer detection of abnormal responses. Moreover, by disregarding non-significant vocabulary, there is an additional gain in memory space.
Dans un exemple de réalisation, la taille du vecteur de bits est un nombre d'octets compris entre 4Kbits et 400Kbits.In an exemplary embodiment, the size of the bit vector is a number of bytes between 4Kbits and 400Kbits.
La taille des vecteurs de bits est comprise entre une valeur minimale de 4Kbits, qui permet de représenter deux mille huit cents mots, et une valeur maximale de 400Kbits qui correspond à une valeur raisonnable par rapport à la capacité mémoire d'un système. A noter qu'une conversation normale utilise à peu près deux mille mots. Ainsi, la plage de valeurs proposée permet de configurer au mieux la méthode pour tenir compte des capacités du système et des besoins inhérents au service considéré.The size of the bit vectors is between a minimum value of 4Kbits, which makes it possible to represent two thousand eight hundred words, and a maximum value of 400Kbits which corresponds to a reasonable value in relation to the memory capacity of a system. Note that a normal conversation uses about two thousand words. Thus, the range of values proposed makes it possible to best configure the method to take account of the capacities of the system and the needs inherent in the service considered.
Dans un exemple de réalisation, un ordre de grandeur de la taille du vecteur de bits est de 5% d'une taille moyenne de réponses à des requêtes.In an exemplary embodiment, an order of magnitude of the size of the bit vector is 5% of an average size of responses to requests.
La taille des vecteurs de bits utilisés pour représenter les réponses aux requêtes d'un type donné, que ce soit en phase d'apprentissage ou en phase de détection, est fixée de telle façon que la probabilité d'avoir une collision dans un vecteur de bits est extrêmement faible. Il y a collision lorsque deux mots différents d'une réponse à une requête sont représentés par le même bit dans un vecteur de bits. Ainsi, la représentation binaire est fiable et contribue de ce fait à la fiabilité de la méthode.The size of the bit vectors used to represent the responses to requests of a given type, whether in the learning phase or in the detection phase, is fixed such that the probability of having a collision in a vector of bits is extremely low. A collision occurs when two different words in a response to a request are represented by the same bit in a vector of bits. Thus, the binary representation is reliable and therefore contributes to the reliability of the method.
Dans un exemple de réalisation, les étapes de la phase d'apprentissage sont mises en œuvre selon une fréquence donnée sur une période déterminée.In an exemplary embodiment, the steps of the learning phase are implemented according to a given frequency over a determined period.
Un échantillonnage temporel pour mettre en œuvre la phase d'apprentissage est intéressante dans le cas de service dont on connaît l'évolution dans le temps. Par exemple, dans le cas d'un service web dont la 10 page d'accueil varie temporellement, selon une fréquence connue, il est intéressant d'échantillonner, c'est-à-dire de modéliser des réponses à des requêtes d'un type donné, selon la même fréquence d'évolution du service. L'échantillonnage est donc effectué en fonction de l'évolution du service. Cela permet de mettre en œuvre une phase d’apprentissage performante et 15 contribue à la fiabilité de la méthode.A temporal sampling to implement the learning phase is interesting in the case of a service of which the evolution over time is known. For example, in the case of a web service whose home page varies temporally, according to a known frequency, it is interesting to sample, that is to say to model responses to requests from a user. given type, according to the same frequency of service evolution. The sampling is therefore carried out according to the evolution of the service. This makes it possible to implement a high-performance learning phase and contributes to the reliability of the method.
Dans un exemple de réalisation, le nombre d'itérations des étapes de la phase d' apprentissage est déterminé dynamiquement en comparant des écarts-types obtenus entre une m-ième itération et des (m-l)-ième et (m-2)ième itérations, avec m > 4, le nombre d'itérations étant suffisant lorsqu'une 20 variation des écarts-types obtenus est inférieure à une valeur donnée.In an exemplary embodiment, the number of iterations of the steps of the learning phase is determined dynamically by comparing standard deviations obtained between an m-th iteration and (ml) -th and (m-2) -th iterations , with m> 4, the number of iterations being sufficient when a variation of the standard deviations obtained is less than a given value.
Ainsi, le nombre d'itérations est défini dynamiquement et permet d'obtenir un vecteur modèle et un intervalle de conformité fiable et précis avec un nombre optimum d'itérations.Thus, the number of iterations is dynamically defined and makes it possible to obtain a model vector and a reliable and precise compliance interval with an optimum number of iterations.
De façon avantageuse le procédé comprend une étape de comparaison du vecteur de bits modèle et du vecteur de bits courant, mise en œuvre lorsque l'écart-type calculé en phase d'apprentissage est égal à zéro, une alerte étant levée lorsque les vecteurs sont différents.Advantageously, the method comprises a step of comparing the model bit vector and the current bit vector, implemented when the standard deviation calculated in the learning phase is equal to zero, an alert being raised when the vectors are different.
Ainsi, le procédé de détection permet de détecter une attaque de type défiguration (ou« defacement » en anglais) de site. En effet, lorsque le service 30 proposé par le serveur est un service web d'accès à un site au contenu statique, la moindre différence entre le vecteur de bits courant construit consécutivement à une requête au serveur et le vecteur de bits modèle construit en phase d'apprentissage génère une alerte. En effet, dans le cas d'un accès à un site dont le contenu est reconnu comme étant statique, l'écart-type calculé en phase d'apprentissage est nul puisque tous les vecteurs de bits suivants calculés à partir des réponses suivantes sont identiques au vecteur de bits modèle. Ainsi, il a été identifié en phase d'apprentissage que pour un type de requête donné, les réponses étaient toutes identiques. Une variation d'une réponse à une requête du type donné en phase de détection est donc révélatrice d'une modification du site et donc d'une attaque.Thus, the detection method makes it possible to detect an attack of the disfigurement type (or “defacement” in English) of a site. Indeed, when the service 30 offered by the server is a web service for accessing a site with static content, the slightest difference between the current bit vector constructed consecutively to a request to the server and the model bit vector constructed in phase learning generates an alert. Indeed, in the case of an access to a site whose content is recognized as being static, the standard deviation calculated in the learning phase is zero since all the following bit vectors calculated from the following responses are identical. to bit vector pattern. Thus, it was identified during the learning phase that for a given type of request, the responses were all identical. A variation in a response to a request of the type given in the detection phase is therefore indicative of a modification of the site and therefore of an attack.
L'invention concerne également un dispositif de détection d'anomalies dans un trafic réseau, ledit trafic étant transmis par un serveur en réponse à des requêtes d'un dispositif client, le dispositif comprenant :The invention also relates to a device for detecting anomalies in network traffic, said traffic being transmitted by a server in response to requests from a client device, the device comprising:
- des moyens de réception, adaptés pour recevoir une requête, ladite requête étant d'un type donné, et pour recevoir une réponse à la requête,- reception means, adapted to receive a request, said request being of a given type, and to receive a response to the request,
- des moyens de construction, adaptés pour construire un vecteur de bits courant, représentatif de la réponse,- construction means, adapted to build a current vector of bits, representative of the response,
- des moyens de calcul, adaptés pour calculer un indice de similarité représentatif d'une distance entre le vecteur de bits courant et un vecteur de bits modèle associé au type de la requête,- calculation means, suitable for calculating a similarity index representative of a distance between the current bit vector and a model bit vector associated with the type of the request,
- des moyens de vérification, adaptés pour vérifier que l'indice de similarité n'appartient pas à un intervalle de conformité calculé pour le type de requête, une anomalie étant détectée lorsque l'indice de similarité n'appartient pas à l'intervalle de conformité.- verification means, adapted to verify that the similarity index does not belong to a conformity interval calculated for the type of request, an anomaly being detected when the similarity index does not belong to the interval of conformity.
L'invention concerne aussi un programme d'ordinateur destiné à être installé dans une mémoire d'un ordinateur, comprenant des instructions pour la mise en œuvre des étapes du procédé de détection d'anomalies dans un trafic réseau selon l'invention, lorsque le programme est exécuté par un processeur.The invention also relates to a computer program intended to be installed in a memory of a computer, comprising instructions for implementing the steps of the method for detecting anomalies in network traffic according to the invention, when the program is executed by a processor.
Enfin, l'invention concerne également un support de données sur lequel est enregistré le programme selon l'invention.Finally, the invention also relates to a data medium on which the program according to the invention is recorded.
D'autres caractéristiques et avantages de la présente invention seront mieux compris de la description et des dessins annexés parmi lesquels :Other characteristics and advantages of the present invention will be better understood from the description and the accompanying drawings, among which:
- la figure 1 présente les étapes d'une phase d'apprentissage d'un procédé de détection d'anomalies dans un trafic réseau, selon un premier exemple de réalisation ;FIG. 1 shows the steps of a learning phase of a method for detecting anomalies in network traffic, according to a first exemplary embodiment;
- la figure 2 présente les étapes d'une phase de détection du procédé de détection d'anomalies, selon un exemple de réalisation ;FIG. 2 shows the steps of a detection phase of the method for detecting anomalies, according to an exemplary embodiment;
- la figure 3 est une représentation schématique d'un équipement réseau de détection mettant en œuvre le procédé décrit en relation avec les figures 1 et 2, selon un exemple de réalisation de l'invention.FIG. 3 is a schematic representation of detection network equipment implementing the method described in relation to FIGS. 1 and 2, according to an exemplary embodiment of the invention.
Les étapes d'un procédé de détection d'anomalie dans un trafic réseau, selon un exemple de réalisation de l'invention vont maintenant être décrites en relation avec les figures 1 et 2.The steps of a method for detecting an anomaly in network traffic, according to an exemplary embodiment of the invention will now be described in relation to FIGS. 1 and 2.
Un serveur 10 apte à rendre un service mémorise dans une mémoire non représentée des données sensibles. Le service est par exemple un service web. Les données sensibles sont par exemple des données propres à des utilisateurs, telles que des adresses e-mail, des numéros de comptes, des mots de passe, etc. Le serveur 10 peut être interrogé à distance par un dispositif client 11 , à travers un réseau, par exemple le réseau Internet, dans le but de rendre un service donné. Par exemple le service permet au dispositif client 11 d'interroger le serveur 10 en fournissant les nom et prénom d'un utilisateur, et d'obtenir en réponse l'adresse e-mail de l'utilisateur. Un équipement de détection 12, placé en coupure entre le dispositif client 11 et le serveur 10 mémorise une application (non représentée sur la figure 1) qui comprend des instructions de code pour mettre en œuvre les étapes du procédé de détection d'anomalies décrit ici.A server 10 capable of rendering a service stores sensitive data in a memory (not shown). The service is for example a web service. Sensitive data is, for example, data specific to users, such as e-mail addresses, account numbers, passwords, etc. The server 10 can be interrogated remotely by a client device 11, through a network, for example the Internet network, in order to provide a given service. For example, the service allows the client device 11 to query the server 10 by providing the name and first name of a user, and to obtain the user's e-mail address in response. A detection device 12, placed in cut-out between the client device 11 and the server 10 stores an application (not shown in FIG. 1) which comprises code instructions for implementing the steps of the anomaly detection method described here .
Le procédé de détection d'anomalies dans un trafic réseau comprend deux phases : - une phase d'apprentissage PO, destinée à construire un vecteur de bits modèle représentatif des réponses reçues du serveur 10 en réponse à un type de requête donné. Les étapes de la phase d'apprentissage, selon un exemple de réalisation, sont décrites en relation avec la figure 1 ;The method of detecting anomalies in network traffic comprises two phases: a learning phase PO, intended to construct a model bit vector representative of the responses received from the server 10 in response to a given type of request. The steps of the learning phase, according to an exemplary embodiment, are described in relation to FIG. 1;
- une phase de détection P1, au cours de laquelle une réponse à une requête du type donné est comparée au vecteur de bits modèle construit et mis à jour durant la phase d'apprentissage et une anomalie est détectée lorsque la réponse à la requête s'écarte d'un intervalle de conformité construit pour ce modèle. Les étapes de la phase de détection, selon un exemple de réalisation de l'invention sont décrites en relations avec la figure 2.- a detection phase P1, during which a response to a request of the given type is compared with the model bit vector constructed and updated during the learning phase and an anomaly is detected when the response to the request s' deviates from a conformance interval constructed for this model. The steps of the detection phase, according to an exemplary embodiment of the invention are described in relation to FIG. 2.
Dans l'exemple de réalisation décrit ici, la phase d'apprentissage PO est mise en œuvre dans un environnement sécurisé, c'est-à-dire dans un environnement où l'on suppose que les requêtes qui sont envoyées au serveur par le dispositif client 11 et les réponses reçues durant cette phase sont correctes. Au contraire, la phase de détection P1 est mise en oeuvre dans un environnement opérationnel. Dans cet environnement, des requêtes sont susceptibles d'être envoyées depuis des dispositifs client 11 pirates tentant de perpétrer des attaques contre le serveur 10. Cependant, pour des raisons de simplification, le même dispositif client 11 figure sur les figures 1 et 2.In the exemplary embodiment described here, the PO learning phase is implemented in a secure environment, that is to say in an environment where it is assumed that the requests which are sent to the server by the device client 11 and the responses received during this phase are correct. On the contrary, the detection phase P1 is implemented in an operational environment. In this environment, requests are likely to be sent from pirate client devices 11 attempting to perpetrate attacks against the server 10. However, for reasons of simplification, the same client device 11 is shown in FIGS. 1 and 2.
La phase d'apprentissage PO comprend une pluralité d'étapes, itérées un nombre déterminé de fois afin d'établir, à partir d'un échantillon de plusieurs réponses reçues suite à plusieurs requêtes d'un type donné, un modèle de réponse propre à ce type de requête. Cesitérations sont destinées à affiner des 10 indicateurs qui vont être utilisés pour détecter des anomalies lors de la phase ultérieure de détection P1.The learning phase PO comprises a plurality of steps, iterated a determined number of times in order to establish, from a sample of several responses received following several requests of a given type, a response model specific to this type of query. These iterations are intended to refine the indicators which will be used to detect anomalies during the subsequent detection phase P1.
Ainsi, dans une étape initiale E00 de réception de la phase d'apprentissage PO, l'équipement de détection 12 reçoit une requête en provenance du dispositif client 11 et à destination du serveur 10. Il mémorise un 15 type de requête associé à la requête et retransmet la requête au serveur 10. Le type de requête associé à la requête est défini comme étant représentatif d'une requête, ou commun à une pluralité de requêtes. Ainsi, dans l'exemple d'un accès à un service web permettant d'obtenir un mail associé à un nom d'utilisateur donné, une requête est de la forme : « htlp.7/www.webservice.corrVapplication/form1?user=namel », où « namel » précise le nom de la personne dont on souhaite obtenir l'adresse e-mail. Le type de requête associé est alors de la forme « http://www.webservice.coin/application/form1 ». En d'autres termes, la requête correspond à une instanciation du type de la requête.Thus, in an initial step E00 of receiving the learning phase PO, the detection equipment 12 receives a request from the client device 11 and intended for the server 10. It stores a type of request associated with the request. and retransmits the request to the server 10. The type of request associated with the request is defined as being representative of a request, or common to a plurality of requests. Thus, in the example of an access to a web service allowing to obtain an email associated with a given user name, a request is of the form: "htlp.7 / www.webservice.corrVapplication / form1? User = namel ”, where“ namel ”specifies the name of the person whose e-mail address is to be obtained. The associated type of request is then of the form "http: //www.webservice.coin/application/form1". In other words, the request corresponds to an instantiation of the type of the request.
Dans une étape E01 de réponse, l'équipement de détection 12 reçoit du serveur 10 une réponse à la requête reçue précédemment et à destination du dispositif client 11. Il mémorise cette réponse et la retransmet au dispositif clientIn a response step E01, the detection equipment 12 receives from the server 10 a response to the request received previously and intended for the client device 11. It stores this response and retransmits it to the client device.
11.11.
Dans une étape E02 de décomposition de la réponse, le dispositif de détection 12 décompose la réponse reçue au cours de l'étape E01 en mots qui la composent. Dans un exemple de réalisation, la décomposition de la réponse reçue en mots repose sur des notions syntaxiques et utilise des caractères séparateurs tels que des espaces et des signes de ponctuation comme les points, les virgules, les tirets, etc. On suppose que la réponse se compose de p mots.In a step E02 for breaking down the response, the detection device 12 breaks down the response received during step E01 into the words that compose it. In an exemplary embodiment, the decomposition of the response received into words is based on syntactic notions and uses separator characters such as spaces and punctuation marks such as periods, commas, dashes, etc. We assume that the answer consists of p words.
Dans une étape suivante E03 de création d'un vecteur de bits, le dispositif de détection 12 génère un vecteur modèle initial de n bits, noté Vmod pour la réponse reçue. Le vecteur modèle VmOd est initialisé à zéro. Il est destiné à modéliser sous forme d'un vecteur de bits les réponses reçues en réponse aux requêtes du type donné.In a following step E03 for creating a vector of bits, the detection device 12 generates an initial model vector of n bits, denoted V m od for the response received. The model vector V mO d is initialized to zero. It is intended to model in the form of a vector of bits the responses received in response to requests of the given type.
Dans une étape suivante E04 de calcul du vecteur, le dispositif de détection 12 calcule le vecteur modèle Vmod à partir des différents mots qui composent la réponse reçue et qui ont été obtenus au cours de l'étape E02 de décomposition. Chaque mot M,, 1< i< p, de la réponse est ainsi converti au format binaire à partir de la valeur numérique des caractères qui le composent. Il est ensuite appliqué à chaque mot M, au format binaire une fonction de hachage H afin d'obtenir une empreinte E, du mot M, sous forme d'une valeur numérique. A chacune des empreintes E, générée, il est ensuite associé une position Pj, 1 <j<n, dans le vecteur modèle VmOd selon la formule suivante : Pj = H(Mj) mod n. En d'autres termes, la position Pj dans le vecteur modèle VmOd est obtenue en appliquant la fonction de hachage H au mot M,, modulo la taille n du vecteur Vmod· Le Pj-ième bit Bj du vecteur modèle VmOd est alors positionné à 1.In a following step E04 for calculating the vector, the detection device 12 calculates the model vector V mod from the different words which make up the response received and which were obtained during the decomposition step E02. Each word M ,, 1 <i <p, of the response is thus converted into binary format from the numerical value of the characters which compose it. A hash function H is then applied to each word M, in binary format, in order to obtain an imprint E, of the word M, in the form of a numerical value. With each of the footprints E, generated, there is then associated a position Pj, 1 <j <n, in the model vector V mO d according to the following formula: Pj = H (Mj) mod n. In other words, the position Pj in the model vector V mO d is obtained by applying the hash function H to the word M ,, modulo the size n of the vector Vmod The Pj-th bit Bj of the model vector V mO d is then positioned at 1.
Ainsi, un bit positionné à 1 en Pj-ième position est représentatif de la présence du mot Mjdans la réponse à la requête. Dans un exemple de réalisation, la fonction de hachage H est la fonction SHA-1 (de l'anglais « Secure Hashing Algorithm 1 »). L'invention n'est bien sûr pas limitée à cette fonction et dans d'autres exemples de réalisation des fonctions telles que SHA2, MD-5 (de l'anglais « Message Digest 5») peuvent être utilisées.Thus, a bit positioned at 1 in the Pj-th position is representative of the presence of the word Mj in the response to the request. In an exemplary embodiment, the hash function H is the SHA-1 function (standing for “Secure Hashing Algorithm 1”). The invention is of course not limited to this function and in other exemplary embodiments functions such as SHA2, MD-5 (standing for “Message Digest 5”) can be used.
La taille n du vecteur modèle VmOd est choisie de telle manière que la probabilité d'avoir des collisions au niveau des positions Pj, c'est-à-dire d'avoir deux mots différents représentés par le même bit, est faible. L'utilisation d'un vecteur de bits pour représenter les mots qui composent la réponse à la requête permet de faire un inventaire des mots qui composent la réponse en faisant abstraction de doublons. En effet, si un mot apparaît plusieurs fois dans la réponse, il est représenté par le même bit dans le vecteur modèle VmOd Par ailleurs, on comprend qu'avec une telle représentation, il n'est pas nécessaire de mémoriser les mots qui composent la réponse. D'autre part, un mot de longueur quelconque est toujours représenté par un bit. On comprend que le gain en espace mémoire pour le dispositif 12 de détection est non négligeable.The size n of the model vector V mO d is chosen in such a way that the probability of having collisions at the level of the positions Pj, that is to say of having two different words represented by the same bit, is low. The use of a vector of bits to represent the words that make up the response to the request makes it possible to make an inventory of the words that make up the response, disregarding duplicates. Indeed, if a word appears several times in the response, it is represented by the same bit in the model vector V mO d Moreover, it is understood that with such a representation, it is not necessary to memorize the words which make up the answer. On the other hand, a word of any length is always represented by a bit. It will be understood that the gain in memory space for the detection device 12 is not negligible.
Le vecteur modèle VmOd est ensuite affiné en réitérant les étapes précédentes. Les itérations suivantes sont destinées à calculer des indicateurs propres à chacun des types de requêtes.The model vector V mO d is then refined by repeating the previous steps. The following iterations are intended to calculate indicators specific to each type of request.
Ainsi, dans une deuxième itération des étapes E00 à E04, notée E00' à E04', une deuxième requête, à destination du serveur 10 est reçue par le dispositif de détection 12 et retransmise au serveur 10. On suppose que la deuxième requête est différente de la requête reçue au cours de l'étape E00 mais que le type de la deuxième requête est le même que le type de la requête reçue au cours de l'étape E00. En d'autres termes la deuxième requête est de la forme « http://www.webservice.com/application/form17user =name2 » ; elle est donc du même type que la requête de la forme « http://www.webservice.com/application/forml » mais concerne un autre utilisateur. Dans une étape Ε0Γ de réponse, similaire à l'étape E01, la réponse à la deuxième requête, appelée deuxième réponse, est reçue et mémorisée par le dispositif de détection 12 puis transmise au dispositif client 11. Dans une étape E02' de décomposition de la réponse, similaire à l'étape E02, la deuxième réponse est décomposée en mots. Dans une étape E03' de création du vecteur de bits, un deuxième vecteur de bits V2 est généré et initialisé à zéro. Enfin, dans une étape E04' de calcul du vecteur, similaire à l'étape E04 précédente, le deuxième vecteur de bits V2 est calculé à partir des mots qui composent la deuxième réponse, de la même manière que le vecteur modèle Vmod·Thus, in a second iteration of steps E00 to E04, denoted E00 'to E04', a second request, intended for server 10 is received by detection device 12 and retransmitted to server 10. It is assumed that the second request is different of the request received during step E00 but that the type of the second request is the same as the type of the request received during step E00. In other words the second request is of the form "http://www.webservice.com/application/form17user = name2"; it is therefore of the same type as the request of the form “http://www.webservice.com/application/forml” but concerns another user. In a response step Ε0Γ, similar to step E01, the response to the second request, called second response, is received and stored by the detection device 12 and then transmitted to the client device 11. In a step E02 ′ of decomposition of the response, similar to step E02, the second response is broken down into words. In a step E03 'for creating the vector of bits, a second vector of bits V 2 is generated and initialized to zero. Finally, in a vector calculation step E04 ', similar to the previous step E04, the second bit vector V 2 is calculated from the words which make up the second response, in the same way as the model vector Vmod ·
Dans une étape E05' de mise à jour du vecteur modèle, le vecteur modèle VmOd calculé au cours de l'étape E04 est mis à jour. A cet effet on applique l'opérateur logique ET (ou« AND ») aux vecteurs Vmod et V2. En d'autres termes, le vecteur modèle VmOd est mis à jour selon la formule suivante : Vmod = VmOd AND V2. Pour mémoire, l'opérateur logique ET a pour résultat 1 si et seulement si les deux bits additionnés ont eux-mêmes la valeur 1. Le vecteur modèle mis à jour VmOd représente donc l'intersection entre les deux vecteurs Vmod et V2 et correspond donc à un contenu de la réponse présent dans les deux réponses comparées.In a step E05 ′ for updating the model vector, the model vector V mO d calculated during step E04 is updated. To this end, the logical operator AND (or “AND”) is applied to the vectors V mod and V 2 . In other words, the model vector V mO d is updated according to the following formula: V m od = V mO d AND V 2 . As a reminder, the logical operator AND has the result of 1 if and only if the two added bits themselves have the value 1. The updated model vector V mO d therefore represents the intersection between the two vectors Vmod and V 2 and therefore corresponds to a content of the response present in the two compared responses.
Dans une étape E06' de calcul d'un indice de similarité, il est calculé un indice de similarité IS entre le vecteur modèle Vmod ainsi obtenu et le deuxième vecteur V2. Cet indice de similarité IS correspond à la distance entre les deux vecteurs VmOd et V2. Il peut être calculé comme la somme des éléments communs entre les deux vecteurs, moins la somme des éléments différents, divisé par la taille des vecteurs considérés. En d'autres termes :In a step E06 ′ for calculating a similarity index, a similarity index IS is calculated between the model vector V mod thus obtained and the second vector V 2 . This similarity index IS corresponds to the distance between the two vectors V mO d and V 2 . It can be calculated as the sum of the common elements between the two vectors, minus the sum of the different elements, divided by the size of the considered vectors. In other words:
. _ £ élémen ès identiques (7wti> K2) - £ élémen ts différents (P7!wrfl V0. _ £ identical elements (7 wti > K 2 ) - £ different elements (P 7! Wrfl V0
Les étapes E00' à E06' sont itérées un nombre prédéfini de fois. Ainsi, au cours d'une itération suivante, le dispositif 11 reçoit une réponse suivante consécutive à une requête suivante du dispositif client 11 au serveur 10. On suppose que la requête suivante est du même type que les requêtes précédentes. Dans une étape E02 , similaire aux étapes E02 et E02', la réponse suivante est décomposée en mots. Dans une étape E03, similaire aux étapes E03 et E03' un vecteur de bits suivants Vs est généré et initialisé à zéro. Enfin, dans une étape E04, similaire aux étapes E04 et E04' précédentes, le vecteur suivant Vs est calculé à partir des mots qui composent la troisième réponse, de la même manière que les vecteurs VmOd et V2.Steps E00 ′ to E06 ′ are iterated a predefined number of times. Thus, during a following iteration, the device 11 receives a following response consecutive to a following request from the client device 11 to the server 10. It is assumed that the following request is of the same type as the previous requests. In a step E02, similar to steps E02 and E02 ', the following response is broken down into words. In a step E03, similar to steps E03 and E03 ′, a vector of following bits V s is generated and initialized to zero. Finally, in a step E04, similar to the previous steps E04 and E04 ′, the following vector V s is calculated from the words which make up the third response, in the same way as the vectors V mO d and V 2 .
Dans une étape E05 de mise à jour du vecteur modèle, le vecteur modèle VmOd, obtenu au cours de l'étape E05' précédente est mis à jour. L'opérateur logique ET (ou AND) est appliqué aux vecteurs VmOd et Vs. En d'autres termes, il est calculé Vmod = VmOd AND Vs. Le vecteur modèle mis à jour Vmod représente l'intersection entre les trois vecteurs VmOd et V2 et Vs et correspond donc à un contenu présent dans les réponses comparées. On comprend qu'avec ces itérations successives, le vecteur modèle VmOd est affiné grâce aux mises à jour successives.In a step E05 of updating the model vector, the model vector V mO d, obtained during the previous step E05 ′ is updated. The logical operator AND (or AND) is applied to the vectors V mO d and V s . In other words, it is calculated V mod = V mO d AND V s . The updated model vector Vmod represents the intersection between the three vectors V mO d and V 2 and V s and therefore corresponds to a content present in the compared responses. It is understood that with these successive iterations, the model vector V mO d is refined by virtue of the successive updates.
Dans une étape E06 de calcul d'un nouvel indice de similarité, il est calculé un indice de similarité suivant IS' entre le vecteur modèle VmOd ainsi obtenu et le vecteur suivant Vs. Cet indice de similarité suivant IS' correspond à la distance entre les deux vecteurs VmOd et Vs. Il peut être calculé comme la somme des éléments communs, moins la somme des éléments differents, divisé par la taille des vecteurs considérés. En d'autres termes :In a step E06 for calculating a new similarity index, a similarity index along IS ′ is calculated between the model vector V mO d thus obtained and the vector along V s . This similarity index according to IS ′ corresponds to the distance between the two vectors V mO d and V s . It can be calculated as the sum of the common elements, minus the sum of the different elements, divided by the size of the considered vectors. In other words:
Σ éléments identiques (Vmod, Vs) - £ éléments diffé rente (Vraod, Vs)Σ identical elements (V mod , V s ) - £ different elements (V raod , V s )
Dans une étape suivante E07 de calcul de moyenne et d'écart-type, il est calculé une moyenne M|S des indices de similarités obtenus au cours des 5 étapes E06' et E06, ainsi quel'écart-type Q|S de ces indices. Il est connu que l'écart-type mesure la variation de variables, ici les indices de similarité, par rapport à la moyenne.In a following step E07 for calculating the mean and standard deviation, an average M | S of the similarity indices obtained during the 5 steps E06 'and E06, as well as the standard deviation Q | S of these clues. It is known that the standard deviation measures the variation of variables, here the similarity indices, with respect to the mean.
Dans une étape E08 de test, il est vérifié si l'écart-type aïs est différent de zéro. Dans un premier cas où l'écart-type a,s est différent de zéro (branche « 10 ok » sur la figure 1), alors dans une étape E09' ' de calcul d'un intervalle de conformité, il est calculé un premier seuil de variabilité Tmodjnf et un deuxième seuil de variabilité TmOd_sup qui constituent respectivement les bornes inférieure et supérieure d'un intervalle de conformité représentatif de la conformité d'une réponse au vecteur modèle calculé pour ce type de requête, en fonction de la 15 divergence mesurée entre les réponses reçues. Dans un exemple de réalisation, le premier seuil de variabilité TmOdjnfest calculé selon la formule suivante :In a test step E08, it is checked whether the standard deviation aïs is different from zero. In a first case where the standard deviation a, s is different from zero (branch "10 ok" in FIG. 1), then in a step E09 '' of calculating a compliance interval, a first variability threshold T mo djnf and a second variability threshold T mO d_sup which respectively constitute the lower and upper limits of a compliance interval representative of the compliance of a response to the model vector calculated for this type of request, as a function of the measured discrepancy between the responses received. In an exemplary embodiment, the first variability threshold T mO djnfest calculated according to the following formula:
Tmodjnf — M[s - 3 OjgTmodjnf - M [s - 3 Ojg
Le deuxième seuil de variabilité TmOd_sup est calculé selon la formule suivante :The second threshold of variability T mO d_sup is calculated according to the following formula:
Tmod_sup ~ Mis + 3 oisTmod_sup ~ Mis + 3 days
Le premier et le deuxième seuils TmOdjnf, TmOd_suP constituent les bornes inférieure et supérieure de l'intervalle de conformité IC. En d'autres termes :The first and second thresholds T mO djnf, T mO d_su P constitute the lower and upper limits of the compliance interval IC. In other words:
/C — Jn/j •25 L'intervalle de conformité IC représente, pour un type de requête donné, une mesure selon laquelle un contenu reçu en réponse à une requête de ce · type est assimilé à une réponse attendue. Ainsi, une réponse à une requête du type donné doit être suffisamment proche du vecteur modèle pour être assimilée à une réponse normale ou attendue pour ce type de requête./ C - Jn / d • 25 The conformance interval IC represents, for a given request type, a measure by which content received in response to such a request is considered to be an expected response. Thus, a response to a request of the given type must be sufficiently close to the model vector to be assimilated to a normal or expected response for this type of request.
La formule de calcul proposée ci-dessus permet de largement limiter le nombre de faux-positifs. Un faux-positif correspond à une réponse à une requête d'un type donné qui est assimilée à une anomalie alors qu'en réalité, elle ne l'est pas. En effet, il est connu que l'écart-type et la moyenne permettent de déterminer un intervalle dans lequel se trouve la majorité d'une population d'un échantillon de valeurs. En l'occurrence, il est connu que la répartition des valeurs d'un échantillon est conforme à une représentation graphique d'une loi normale et que dans un intervalle [-3 * Ois, +3 * ajS] autour de la moyenne, se trouve 98% de la distribution de l'échantillon.The calculation formula proposed above makes it possible to greatly limit the number of false positives. A false positive corresponds to a response to a request of a given type which is assimilated to an anomaly when in reality it is not. Indeed, it is known that the standard deviation and the mean make it possible to determine an interval in which the majority of a population of a sample of values is found. In this case, it is known that the distribution of the values of a sample conforms to a graphical representation of a normal distribution and that in an interval [-3 * Ois, +3 * aj S ] around the mean, lies 98% of the sample distribution.
Dans un deuxième cas où l'écart-type ajs est nul (branche « nok » sur la figure 1), correspondant à un cas où les réponses analysées lors de la phase d'apprentissage sont toutes identiques, la phase d'apprentissage est poursuivie pendant un nombre maximal d'itérations. En d'autres termes, les étapes E00' ' à E08' ' sont itérées pendant le nombre maximal d'itérations. Si le nombre maximal d'itérations est atteint et que l'écart-type O|S est toujours nul, alors la phase d'apprentissage est interrompue. Dans ce cas, tous les vecteurs de bits générés à partir des réponses aux requêtes de même type sont strictement identiques au vecteur modèle initial VmOd généré au cours de l'étape E04 de calcul du vecteur. Cela signifie que le contenu des réponses est statique. En d'autres termes, pour ce type de requête, toutes les réponses sont identiques.In a second case where the standard deviation ajs is zero (“nok” branch in FIG. 1), corresponding to a case where the responses analyzed during the learning phase are all identical, the learning phase is continued. for a maximum number of iterations. In other words, steps E00 ″ to E08 ″ are iterated for the maximum number of iterations. If the maximum number of iterations is reached and the standard deviation O | S is always zero, then the learning phase is interrupted. In this case, all the bit vectors generated from the responses to requests of the same type are strictly identical to the initial model vector V m0 d generated during the vector computation step E04. This means that the content of the responses is static. In other words, for this type of request, all responses are the same.
L'apprentissage décrit ici met en oeuvre, pour une requête de même type, une itération des étapes E00 à E04, destinée à calculer le vecteur modèle initial Vmodet au moins deux itérations successives des étapes E00' à E06' destinées à mettre à jour le vecteur modèle Vmod et à calculer des indices de similarités entre les nouveaux vecteurs calculés au cours des étapes E04' et E04 et le vecteur modèle Vmod. Ce nombre d'itérations est un nombre minimal destiné à calculer une moyenne et un écart-type des indices de similarité. Cependant, l'invention n'est pas limitée à ce nombre d'itérations. Ainsi, dans un autre exemple de réalisation, on peut effectuer une dizaine ou une vingtaine d'itérations des étapes E00' à E06' ou E00 à E06 afin d'affiner au mieux les valeurs de la moyenne et de l'écart-type utilisées pour calculer les premier et deuxième seuils de variabilité Tmodjnf et Tmod_Sup·The learning described here implements, for a request of the same type, an iteration of steps E00 to E04, intended to calculate the initial model vector V mod and at least two successive iterations of steps E00 ′ to E06 ′ intended to update update the model vector V mod and calculate similarity indices between the new vectors calculated during steps E04 ′ and E04 and the model vector V mod . This number of iterations is a minimum number intended to calculate an average and a standard deviation of the similarity indices. However, the invention is not limited to this number of iterations. Thus, in another exemplary embodiment, ten or twenty iterations of steps E00 'to E06' or E00 to E06 can be carried out in order to best refine the values of the mean and of the standard deviation used. to calculate the first and second variability thresholds T mod j n f and T mod _ S up
Dans l'exemple de réalisation décrit ici, les itérations sont mises en œuvre pour chaque requête d'un type donné. Dans une variante de réalisation, les itérations successives sont mises en œuvre selon une fréquence donnée.In the exemplary embodiment described here, the iterations are implemented for each request of a given type. In an alternative embodiment, the successive iterations are implemented according to a given frequency.
Par exemple il est procédé à une itération des étapes E00' à E06' ou E00 àFor example, steps E00 'to E06' or E00 to
E06 par jour pendant une durée donnée, par exemple un mois. Procéder ainsi pour mettre en œuvre la phase d'apprentissage PO peut s'avérer intéressant dans le cas d'un service web qui met à jour sa page d'accueil régulièrement, par exemple tous les jours. Dans un autre exemple de réalisation, les itérations seront réparties sur une période de vingt-quatre heures pour prendre en compte 5 des évolutions connues du service sur cette période.E06 per day for a given period, for example a month. Proceeding in this way to implement the PO learning phase can prove to be interesting in the case of a web service which updates its home page regularly, for example every day. In another exemplary embodiment, the iterations will be distributed over a period of twenty-four hours to take into account known changes to the service over this period.
Dans un autre exemple de réalisation, le nombre d'itérations est déterminé dynamiquement en comparant l'écart-type obtenu entre une m-ième itération et deux itérations précédentes, c'est-à-dire les (m-l)-ième et (m-2)ième itérations, m > 4. Si la variation entre ces trois valeurs d'écart-type est 10 inférieure à une valeur donnée, alors le vecteur modèle est considéré comme construit. La valeur donnée est par exemple de l'ordre de deux pour cent. En effet, on estime dans ce cas, que le vecteur modèle calculé à partir des itérations précédentes est déjà suffisamment précis.In another exemplary embodiment, the number of iterations is determined dynamically by comparing the standard deviation obtained between an m-th iteration and two previous iterations, that is to say the (ml) -th and (m -2) th iterations, m> 4. If the variation between these three standard deviation values is 10 less than a given value, then the model vector is considered to be constructed. The value given is for example of the order of two percent. In fact, it is estimated in this case that the model vector calculated from the preceding iterations is already sufficiently precise.
Dans le mode de réalisation décrit ici, les étapes E02, E02', E02' ' de création du vecteur de bits utilisent des signes de ponctuation pour décomposer la réponse reçue en mots. L'invention n'est pas limitée aux signes de ponctuation. Ainsi, dans un autre exemple de réalisation, des notions linguistiques telles que les kanji, les kana ou les romaji chinois ou japonais peuvent être utilisées pour décomposer la réponse en mots. Dans un autre exemple de réalisation, des notions informatiques telles qu'un encodage et une valeur des caractères utilisés peuvent être utilisées.In the embodiment described here, the steps E02, E02 ', E02' 'for creating the bit vector use punctuation marks to break down the response received into words. The invention is not limited to punctuation marks. Thus, in another exemplary embodiment, linguistic notions such as Chinese or Japanese kanji, kana or romaji can be used to break down the answer into words. In another exemplary embodiment, computer concepts such as an encoding and a value of the characters used can be used.
Dans l'exemple de réalisation décrit ici, il n'est pas précisé la valeur n correspondant à la taille des vecteurs de bits utilisé pour représenter le vecteur modèle initial VmOd et les vecteurs obtenus à partir des réponses analysées lors 25 des itérations consécutives à la construction du vecteur modèle initial VmOd · Un vecteur, que ce soit le vecteur modèle initial, le vecteur modèle Vmod mis à jour, ou le vecteur obtenu à partir de l'analyse d'une réponse, est censé représenté au moyen de bits un ensemble de mots qui constituent une réponse à une requête. En quelque sorte, un vecteur est destiné à modéliser un dictionnaire 30 de mots. II est connu qu'une conversation courante fait intervenir à peu près deux mille mots. Ainsi, n’est choisi de telle manière qu'il est compris entre 4000 et 400000, soit 4 Kbits< n< 400 Kbits. La valeur de n, comprise dans l'intervalle ci-dessus peut être affinée et fixée en fonction de la taille moyenne des réponses aux requêtes. Ainsi, il a été déterminé de manière empirique que n pouvait être fixé à 5% de la taille moyenne des réponses, plus précisément à un nombre de Kbits proche de 5% de la taille moyenne des réponses. La détermination de la taille n des vecteurs destinés à représenter les réponses aux requêtes permet d'éviter des collisions lors de la représentation des mots 5 d'une réponse dans le vecteur. Une collision se produit lorsqu'à deux mots différents Mp et Mq, p# q est associée une même position k dans un vecteur de bits. En d'autres termes il y a collision lorsque Pr = H(MP) mod n = H(Mq) mod n.In the embodiment described here, the value n corresponding to the size of the bit vectors used to represent the initial model vector V m0 d and the vectors obtained from the responses analyzed during consecutive iterations is not specified. to the construction of the initial model vector V mO d A vector, whether it is the initial model vector, the updated model vector V mod , or the vector obtained from the analysis of a response, is supposed to be represented at bit mean a set of words that constitute a response to a query. In a way, a vector is intended to model a dictionary 30 of words. It is known that a daily conversation involves about two thousand words. Thus, is not chosen in such a way that it is between 4000 and 400000, or 4 Kbits <n <400 Kbits. The value of n, included in the above interval, can be refined and set as a function of the average size of the responses to the requests. Thus, it was determined empirically that n could be set at 5% of the average size of the responses, more precisely at a number of Kbits close to 5% of the average size of the responses. The determination of the size n of the vectors intended to represent the responses to the requests makes it possible to avoid collisions during the representation of the words 5 of a response in the vector. A collision occurs when two different words M p and M q , p # q are associated with the same position k in a bit vector. In other words there is a collision when Pr = H (M P ) mod n = H (M q ) mod n.
Par ailleurs, on estime que la valeur de n est insuffisante dès lors qu'un vecteur destiné à représenter une réponse est rempli à 70%, c'est-à-dire 10 lorsque 70% de ses bits sont positionnés à 1. Ainsi, il est possible, lors de la mise en œuvre de la phase d'apprentissage PO, de détecter que le dimensionnement des vecteurs de bits est insuffisant en vérifiant le taux de bits positionnés à 1 dans les vecteurs destinés à représentés des réponses. Si ce taux est supérieur à 70%, la phase d'apprentissage PO est interrompue, la taille 15 des vecteurs de bits est doublée et une nouvelle phase d’apprentissage PO est mise en œuvre.Furthermore, it is estimated that the value of n is insufficient when a vector intended to represent a response is 70% full, that is to say 10 when 70% of its bits are set to 1. Thus, it is possible, during the implementation of the learning phase PO, to detect that the dimensioning of the bit vectors is insufficient by checking the rate of bits positioned at 1 in the vectors intended to represent responses. If this rate is greater than 70%, the PO learning phase is interrupted, the size of the bit vectors is doubled and a new PO learning phase is implemented.
Dans un exemple de réalisation, et afin de faire abstraction d'un vocabulaire non significatif dans des réponses à des requêtes il est soustrait un vecteur de filtrage Vdict représentatif du vocabulaire non significatif aux 20 différents vecteurs construits durant la phase d'apprentissage, c'est-à-dire le vecteur modèle Vmod et les nouveaux vecteurs V2 , Vs, etc. Le vecteur de filtrage Vdict est construit de la même manière que le vecteur modèle Vmod et que les vecteurs V2, Vs, à partir d'un dictionnaire de mots jugés non significatifs dans un contenu. Par exemple, dans le cas de requêtes et de réponses associées au 25 format « HTML » (de l'anglais « Hyper Text Transfer Protocol »), le dictionnaire utilisé pour construire le vecteur de filtrage comprend des balises HTML telles que « a », « href », « img », « class », etc. En effet, cesbalises ne sont pas significatives d'un point de vue sémantique. Ainsi, pour les différents mots compris dans le dictionnaire, il est obtenu une forme binaire, puis il est appliqué 30 la fonction de hachage H à la forme binaire obtenue, modulo n. La valeur obtenue correspond à une position Pr dans le vecteur de filtrage VdiCt- Le bit situé en Pk-ième position est alors positionné à 1.In an exemplary embodiment, and in order to disregard a non-significant vocabulary in responses to requests, a filtering vector V d ict representative of the non-significant vocabulary is subtracted from the 20 different vectors constructed during the learning phase, i.e. the model vector V mod and the new vectors V 2 , V s , etc. The filtering vector V dict is constructed in the same way as the model vector V mod and as the vectors V 2 , V s , from a dictionary of words deemed insignificant in a content. For example, in the case of requests and responses associated with the “HTML” (standing for “Hyper Text Transfer Protocol”) format, the dictionary used to construct the filter vector comprises HTML tags such as “a”, "Href", "img", "class", etc. Indeed, these tags are not significant from a semantic point of view. Thus, for the different words included in the dictionary, a binary form is obtained, then the hash function H is applied to the binary form obtained, modulo n. The value obtained corresponds to a position Pr in the filtering vector V d i C t- The bit located in P k -th position is then set to 1.
Le vecteur de filtrage VdiCtest ensuite utilisé durant la phase d'apprentissage PO. Le vecteur de filtrage Vdict est ainsi soustrait de chacun des vecteurs manipulés. Ainsi, durant l'étape E04 de calcul du vecteur modèle, le vecteur de filtrage Vdict est soustrait au vecteur modèle initial VmOd. Le vecteur de filtrage Vdict est également soustrait des vecteurs de bits V2 et Vs obtenus lors des étapes E04' et E04. La soustraction du vecteur de filtrage Vdict à un vecteur de bits courant Vcour afin d'obtenir un vecteur résultant Vres peut être mise en œuvre en appliquant une opération de ET (ou « AND ») suivi d'une opération de OU EXCLUSIF (ou « XOR »). En d'autres termes :The filtering vector V d i C test then used during the learning phase PO. The filtering vector V dic t is thus subtracted from each of the vectors manipulated. Thus, during step E04 of calculating the model vector, the filtering vector V dic t is subtracted from the initial model vector V m0 d. The filter vector Vdict is also subtracted from the bit vectors V 2 and V s obtained during steps E04 ′ and E04. The subtraction of the filter vector Vdict from a current bit vector V court in order to obtain a resulting vector V res can be implemented by applying an AND (or “AND”) operation followed by an EXCLUSIVE OR ( or "XOR"). In other words:
Vres = (Vcour AND Vdict) XOR VCourVres = (Vcour AND Vdict) XOR V C our
Filtrer un vocabulaire non significatif permet d'optimiser l'espace mémoire nécessaire à la mémorisation des vecteurs de bits VmOd, V2 et Vs. Par ailleurs, on élimine ainsi, lors du calcul des moyenne et écart-type utilisés pour le calcul des seuils de variabilité Tmodjnfet TmOd_sup les mots sémantiquement non significatifs en termes de sécurité. On comprend que l'intervalle de conformité IC établi à partir des seuils de variabilité ainsi calculés est plus précis que s'il est établi à partir d'indicateurs basés sur des contenus qui tiennent compte entre autres de mots non significatifs.Filtering a non-significant vocabulary makes it possible to optimize the memory space necessary for storing the bit vectors V mO d, V 2 and V s . Moreover, during the calculation of the mean and standard deviation used for calculating the variability thresholds T mod jnfet T m0 d_sup, the words which are semantically insignificant in terms of security are thus eliminated. It will be understood that the compliance interval IC established on the basis of the variability thresholds thus calculated is more precise than if it is established on the basis of indicators based on content which take account, among other things, of non-significant words.
La phase de détection P1 du procédé de détection, selon un exemple de réalisation de l'invention, va maintenant être décrite en relation avec la figure 2.The detection phase P1 of the detection method, according to an exemplary embodiment of the invention, will now be described in relation to FIG. 2.
On considère qu'à ce stade, la phase d'apprentissage décrite en relation avec la figure 1 a été mise en œuvre et qu'il a été calculé, pour chaque type de requête que le serveur 10 peut traiter un intervalle de conformité IC représentatif d'une distance tolérée entre une réponse envoyée suite à une requête du même type et un modèle de réponse calculé pour ce type de requête.It is considered that at this stage, the learning phase described in relation to FIG. 1 has been implemented and that it has been calculated, for each type of request that the server 10 can process a representative compliance interval IC a tolerated distance between a response sent following a request of the same type and a response model calculated for this type of request.
Dans une étape initiale d'interrogation E10 de la phase de détection P1, le dispositif de détection 12 reçoit une requête en provenance du dispositif client 11 et à destination du serveur 10. Le dispositif de détection 12 mémorise la requête et la retransmet au serveur 10.In an initial interrogation step E10 of the detection phase P1, the detection device 12 receives a request from the client device 11 and intended for the server 10. The detection device 12 stores the request and transmits it to the server 10. .
Dans une étape suivante E11 de réponse, le dispositif de détection 12 reçoit du serveur 10 une réponse à la requête. Le dispositif de détection 12 mémorise la réponse et la retransmet au dispositif client 11.In a following response step E11, the detection device 12 receives a response to the request from the server 10. The detection device 12 stores the response and forwards it to the client device 11.
Dans une étape E12 d'analyse, le type de la requête à l'origine de l'envoi de la réponse est analysé et il est obtenu pour ce type de requête, l'intervalle de conformité IC et le vecteur modèle VmOd calculés pour ce type de requête durant la phase d'apprentissage PO. Pour mémoire l'intervalle de conformité IC est défini à partir du premier et du deuxième seuil de variabilitéIn an analysis step E12, the type of the request at the origin of the sending of the response is analyzed and it is obtained for this type of request, the conformity interval IC and the model vector V mO d calculated for this type of request during the PO learning phase. For the record, the IC compliance interval is defined from the first and second variability thresholds
Dans une étape E13 de modélisation en vecteur binaire, il est calculé un vecteur binaire courant Vn représentatif de la réponse reçue, de la même manière que lors des étapes de calcul du vecteur E04 de la phase d'apprentissage PO.In a binary vector modeling step E13, a current binary vector Vn representative of the response received is calculated, in the same way as during the steps of calculating the vector E04 of the learning phase PO.
Dans une étape E14 de test il est vérifié si le contenu des réponses a été identifié comme statique durant l'étape E08 de test de la phase d'apprentissage PO. Pour mémoire le test effectué au cours de l'étape E08 indique que le contenu des réponses est statique pour un type de requête donné lorsque l'écart-type des indices de similarité calculé au cours de l'étape E07 de calcul de moyenne et d'écart-type est égal à zéro.In a test step E14, it is verified whether the content of the responses has been identified as static during the test step E08 of the learning phase PO. As a reminder, the test performed during step E08 indicates that the content of the responses is static for a given type of request when the standard deviation of the similarity indices calculated during step E07 of averaging and d 'standard deviation is zero.
Dans un premier cas où le contenu des réponses aux requêtes du type donné a été identifié comme statique durant la phase d'apprentissage PO (branche « ok » sur la figure 2), le vecteur modèle VmOd est comparé au vecteur courant Vn dans une étape E15 de comparaison. Dans un cas où les deux vecteurs sont identiques (branche « ok » sur la figure 2), la réponse reçue et modélisée par le vecteur Vn est considérée comme normale. En effet, dans le cas d'un contenu statique, il est normal que le vecteur de bits courant VN soit identique au vecteur de bits modèle Vmod puisque deux réponses à une requête de même type sont identiques. Les vecteurs de bits qui modélisent ces réponses sont donc a fortiori identiques. Dans le cas contraire (branche « nok » sur la figure 2), c'est-à-dire dans le cas où le contenu associé à ce type de requête a été identifié comme statique en phase d'apprentissage PO et le vecteur courant Vn calculé à partir de la réponse reçue n'est pas identique au vecteur modèle VmOd, alors une alerte est levée au cours d'une étape E16 d'alerte. En effet, dans le cas d'un contenu statique, toutes les réponses à des requêtes d'un même type sont censées être identiques, ce qui n'est pas le cas ici. Ce cas de figure est adapté pour la détection d'une attaque d'un site web durant laquelle un pirate a modifié la présentation du site web. Une telle attaque est habituellement appelée défiguration, ou « defacement » en anglais.In a first case where the content of the responses to requests of the given type has been identified as static during the learning phase PO (“ok” branch in FIG. 2), the model vector Vm Od is compared with the current vector Vn in a comparison step E15. In a case where the two vectors are identical (“ok” branch in FIG. 2), the response received and modeled by the vector Vn is considered as normal. In fact, in the case of static content, it is normal for the current vector of bits V N to be identical to the vector of model bits V mo d since two responses to a request of the same type are identical. The bit vectors which model these responses are therefore a fortiori identical. Otherwise (“nok” branch in FIG. 2), that is to say in the case where the content associated with this type of request has been identified as static in the learning phase PO and the current vector Vn calculated from the response received is not identical to the model vector V m0 d, then an alert is raised during an alert step E16. Indeed, in the case of static content, all the responses to requests of the same type are supposed to be identical, which is not the case here. This scenario is suitable for the detection of an attack on a website during which a hacker has modified the presentation of the website. Such an attack is usually called disfigurement, or "defacement" in English.
Dans un cas où le test effectué au cours de l'étape E14 est négatif (branche « nok » sur la figure 2), c'est-à-dire dans un cas où le contenu des réponses aux requêtes du type donné n'a pas été identifié comme statique durant la phase d'apprentissage PO, alors il est calculé durant une étape E17 de calcul d'un indice de similarité courant, un indice de similarité courant ISc entre levecteur modèle VmOd calculé durant la phase d'apprentissage et le vecteur courant Vn.In a case where the test carried out during step E14 is negative (“nok” branch in FIG. 2), that is to say in a case where the content of the responses to requests of the given type has no not identified as static during the learning phase PO, then it is calculated during a step E17 of calculating a current similarity index, a current similarity index ISc between the model reader V mO d calculated during the learning phase and the current vector Vn.
Dans une étape E18 de vérification vis-à-vis de l'intervalle de conformité, il est vérifié que l'indice de similarité courant ISC est compris dans l'intervalle de 10 conformité IC calculé durant la phase d'apprentissage PO pour le type de requête courant.In a step E18 of verification with respect to the compliance interval, it is verified that the current similarity index IS C is included in the compliance interval IC calculated during the learning phase PO for the current type of request.
Dans un premier cas où l'indice de similarité courant ISC est compris dans l'intervalle de conformité IC (cas « ok » sur la figure 2), c'est-à-dire lorsque l'indice de similarité courant ISC est supérieur ou égal au premier seuil de 15 variabilité Tmodjnfet inférieur ou égal au deuxième seuil de variabilité Tmod_sup alors la réponse courante est considérée comme normale. Dans le cas contraire (branche « nok » sur la figure 2), une alerte est levée au cours de l'étape E16 d'alerte. En effet, dans ce cas la différence entre la réponse analysée et le vecteur modèle calculé en phase d'apprentissage PO excède le 20 seuil défini pour ce vecteur modèle, la réponse est donc considérée comme anormale.In a first case where the current similarity index IS C is included in the conformity interval IC (“ok” case in FIG. 2), that is to say when the current similarity index IS C is greater than or equal to the first threshold of variability T mod jnf and less than or equal to the second threshold of variability Tmod_sup then the current response is considered as normal. Otherwise (“nok” branch in FIG. 2), an alert is raised during the alert step E16. In fact, in this case the difference between the response analyzed and the model vector calculated in the learning phase PO exceeds the threshold defined for this model vector, the response is therefore considered to be abnormal.
Dans l'étape d'alerte E16, le dispositif de détection 12 peut par exemple bloquer le trafic correspondant à des réponses à des requêtes de ce type.In the alert step E16, the detection device 12 can for example block the traffic corresponding to responses to requests of this type.
Dans un autre exemple de réalisation (non représenté sur la figure 1), 25 durant l'étape d'alerte E16, il est déterminé si l'indice de similarité courant ISc est inférieur au premier seuil de variabilité TmOdjnf ou supérieur au deuxième seuil de variabilité TmOd_suP, afin d'affiner le type d'anomalie détectée. Dans un premier cas où l'indice de similarité courant ISC est inférieur au premier seuil de variabilité TmOdjnf, l'anomalie est de type attaque par fuite de données. Dans le 30 cas de l'exemple du service web, cela correspond à une réponse analysée qui comprend une pluralité d'adresses e-mail d'utilisateurs. Dans ce cas, la réponse analysée s'écarte du vecteur de bits modèle calculé au-delà de ce qui est toléré. Dans un deuxième cas où l'indice de similarité courant ISC est supérieur au deuxième seuil de variabilité TmOd_suP, l'anomalie est à comparer à un comportement anormal du service et peut correspondre à une attaque qui tend à rendre le service inopérant. En effet, dans ce cas, la réponse analysée est très proche du vecteur de bits modèle construit de manière théorique, ce qui n'est pas possible dans le cas d'un service dynamique.In another exemplary embodiment (not shown in FIG. 1), during the alert step E16, it is determined whether the current similarity index ISc is less than the first variability threshold T mO djnf or greater than the second variability threshold T mO d_su P , in order to refine the type of anomaly detected. In a first case where the current similarity index IS C is less than the first variability threshold T m0 djnf, the anomaly is of the data leak attack type. In the case of the web service example, this corresponds to an analyzed response which includes a plurality of user email addresses. In this case, the analyzed response deviates from the model bit vector calculated beyond what is tolerated. In a second case where the current similarity index IS C is greater than the second variability threshold T mO d_su P , the anomaly is to be compared with an abnormal behavior of the service and may correspond to an attack which tends to render the service inoperative . Indeed, in this case, the analyzed response is very close to the model bit vector constructed in a theoretical manner, which is not possible in the case of a dynamic service.
Dans un exemple de réalisation où le vecteur de filtrage filtre VdjCt destiné à tenir compte d'un vocabulaire non significatif est utilisé durant la phase d'apprentissage PO, ce vecteur filtre est également utilisé en phase de détection. Ainsi, dans ce cas, le même vecteur filtre Vdjct que celui utilisé en phase d'apprentissage est soustrait au vecteur binaire courant Vn durant l'étape E13 de modélisation en vecteur binaire. Ainsi, les vecteurs VmOd et VN qui sont comparés dans l'étape E15 de comparaison sont comparables.In an exemplary embodiment where the filter vector Vdj C t intended to take account of a non-significant vocabulary is used during the learning phase PO, this filter vector is also used in the detection phase. Thus, in this case, the same filter vector V d jct as that used in the learning phase is subtracted from the current binary vector Vn during step E13 of binary vector modeling. Thus, the vectors V mO d and V N which are compared in the comparison step E15 are comparable.
Dans l'exemple des requêtes à un serveur web destinées à obtenir l'adresse e-mail d'un utilisateur, une requête malicieuse interceptée par le dispositif de détection 12 et émanant d'un attaquant peut par exemple être de la forme suivante :In the example of requests to a web server intended to obtain the e-mail address of a user, a malicious request intercepted by the detection device 12 and emanating from an attacker can for example be of the following form:
« http://www.webservice.com/application/form12user- OR 1=1- ». Cette requête est du type : « http://www.webservice.com/application/form1 » pour lequel un vecteur modèle VmOd et un seuil de variabilité TmOd ont été calculés au cours de la phase d'apprentissage PO. En réponse à cette requête, le serveur 10, mal sécurisé, va fournir en réponse un ensemble de données, par exemple la totalité des adresses e-mail qu'il mémorise :"Http://www.webservice.com/application/form12user- OR 1 = 1-". This request is of the type: “http://www.webservice.com/application/form1” for which a model vector V mO d and a variability threshold T mO d have been calculated during the learning phase PO. In response to this request, the poorly secured server 10 will provide a set of data in response, for example all the e-mail addresses that it stores:
<html><html>
<h1>Résultat de votre requête</h1><h1> Result of your query </h1>
<p>name1.surname1 @ domain 1 name2. surname2@ domain2 ... </p><p> name1.surname1 @ domain 1 name2. surname2 @ domain2 ... </p>
</html></html>
Conformément aux étapes de la phase de détection décrites précédemment, le dispositif de détection 12 construit un vecteur binaire courant pour cette réponse au cours de l'étape E13 de modélisation en vecteur binaire et calcule durant l'étape E17 son indice de similarité courant avec le vecteur de bits modèle. L'analyse de la réponse résultant de l'attaque va entraîner une variation anormale de l'indice de similarité courant par rapport à un trafic dit normal pour lequel il a été calculé le seuil de variabilité.In accordance with the steps of the detection phase described above, the detection device 12 constructs a current binary vector for this response during step E13 of binary vector modeling and calculates during step E17 its current similarity index with the vector bit pattern. Analysis of the response resulting from the attack will lead to an abnormal variation in the current similarity index with respect to so-called normal traffic for which the variability threshold has been calculated.
L'invention est décrite ici dans le cas de flux web. Cependant l'invention n'est pas limitée à ce cas de figure et peut être appliquée pour différents protocoles tels que des flux propres à des interrogations de bases de données, des flux « SIP » (de l'anglais « Session Initiation Protocol ») utilisés dans le cadre de la voix sur IP (« VoIP » en anglais).The invention is described here in the case of web flow. However, the invention is not limited to this scenario and can be applied for various protocols such as flows specific to database queries, “SIP” flows (standing for “Session Initiation Protocol”). used in the context of voice over IP (“VoIP”).
Un dispositif de détection 12, selon un exemple de réalisation de l'invention, va maintenant être décrit en relation avec la figure 3.A detection device 12, according to an exemplary embodiment of the invention, will now be described in relation to FIG. 3.
Le dispositif de détection est un équipement informatique, tel qu'un terminal ou un serveur informatique, adapté pour être placé dans un réseau entre un dispositif client 11 et un serveur 10 apte à délivrer un service au dispositif client 11 (le dispositif client 11 et le serveur 10 ne sont pas représentés sur la figure 3).The detection device is computer equipment, such as a terminal or a computer server, suitable for being placed in a network between a client device 11 and a server 10 capable of delivering a service to the client device 11 (the client device 11 and the server 10 are not shown in FIG. 3).
Le dispositif de détection comprend :The detection device includes:
- un microprocesseur 120, ou « CPU » (de l'anglais « Central Processing Unit »), destiné à charger des instructions en mémoire, à les exécuter, à effectuer des opérations ;a microprocessor 120, or “CPU” (standing for “Central Processing Unit”), intended to load instructions into memory, to execute them, to perform operations;
- un ensemble de mémoires, dont une mémoire volatile 121, ou « RAM » (pour « Random Access Memory ») utilisée pour exécuter des instructions de code, stocker des variables, etc., une mémoire de stockage 122 de type « ROM » ou « EEPROM » (de l'anglais « Read Only Memory » et « « ElectronicallyErasable Programmable Read-Only Memory »).a set of memories, including a volatile memory 121, or “RAM” (for “Random Access Memory”) used to execute code instructions, store variables, etc., a storage memory 122 of the “ROM” type or “EEPROM” (standing for “Read Only Memory” and “ElectronicallyErasable Programmable Read-Only Memory”).
La mémoire de stockage 122 est agencée pour mémoriser une application qui comprend des instructions de code pour mettre en oeuvre les étapes du procédé de détection d'anomalies dans un trafic réseau. La mémoire de stockage 122 est également agencée pour mémoriser des indicateurs calculés lors de la phase d'apprentissage, en l'espèce le vecteur modèle l'écarttype et l'intervalle de conformité. Ces indicateurs sont destinés à être utilisés pendant la phase de détection ;The storage memory 122 is designed to store an application which comprises code instructions for implementing the steps of the method for detecting anomalies in network traffic. The storage memory 122 is also designed to store indicators calculated during the learning phase, in this case the vector models the standard deviation and the compliance interval. These indicators are intended for use during the detection phase;
- des interfaces réseau 123, agencées pour communiquer d'une part avec le dispositif client 11 et d'autre part avec le serveur 10. Plus précisément, le dispositif de détection 12 est en coupure entre ces deux équipements et est agencé pour recevoir une requête d'un type donné en provenance du dispositif client 11, et pour recevoir une réponse à la requête du type donné en provenance du serveur 10. La requête et la réponse sont reçues en phase d'apprentissage PO et/ou en phase de détection PI. Les interfaces réseau 123 sont agencées pour mettre en oeuvre les étapes E00 de réception et E01 de réponse de la phase d'apprentissage PO, et E10 d'interrogation et E11 de 5 réponse de la phase de détection P1 du procédé décrit précédemment ;- Network interfaces 123, arranged to communicate on the one hand with the client device 11 and on the other hand with the server 10. More precisely, the detection device 12 is cut between these two devices and is arranged to receive a request of a given type from the client device 11, and to receive a response to the request of the given type from the server 10. The request and the response are received in the learning phase PO and / or in the detection phase PI . The network interfaces 123 are arranged to implement the steps E00 of reception and E01 of response of the learning phase PO, and E10 of interrogation and E11 of response of the detection phase P1 of the method described above;
- un module 124 de construction de vecteurs de bits, agencé pour construire des vecteurs de bits à partir des réponses reçues. Le module de construction 124 est ainsi adapté pour construire aussi bien le vecteur de bits modèle que les vecteurs de bits suivants. Le module 124 de construction est agencé pour mettre en œuvre les étapes E03, E03', E03 de création d'un vecteur de bits et E04, E04', E04 de calcul du vecteur de la phase d'apprentissage PO du procédé décrit précédemment. Il est également agencé pour mettre en œuvre l'étape E13 de modélisation en vecteur binaire de la phase de détection du procédé décrit précédemment ;a module 124 for constructing bit vectors, arranged to construct bit vectors from the responses received. The construction module 124 is thus suitable for constructing both the model bit vector and the following bit vectors. The construction module 124 is arranged to implement the steps E03, E03 ', E03 for creating a vector of bits and E04, E04', E04 for calculating the vector of the learning phase PO of the method described above. It is also arranged to implement step E13 of binary vector modeling of the detection phase of the method described above;
- un premier module de calcul 125, agencé pour calculer des indices de similarité représentatifs de distances entre le vecteur de bits modèle et un vecteur de bit suivant ou courant. Le premier module de calcul 125 est mis en œuvre pendant la phase d'apprentissage PO et pendant la phase de détection PI. Le premier module de calcul 125 est agencé pour mettre en œuvre les étapes E06' et E06 de calcul d'un indice de similarité de la phase d'apprentissage PO et E17 de calcul d'un indice de similarité de la phase de détection du procédé décrit précédemment ;a first calculation module 125, arranged to calculate similarity indices representative of distances between the model bit vector and a next or current bit vector. The first calculation module 125 is implemented during the learning phase PO and during the detection phase PI. The first calculation module 125 is arranged to implement the steps E06 ′ and E06 of calculating a similarity index of the learning phase PO and E17 of calculating a similarity index of the detection phase of the method previously described;
- un deuxième module de calcul 126, agencé pour calculer une moyenne des indices de similarité et un écart-type entre ces indices. Le deuxième module de calcul 126 est agencé pour mettre en œuvre l'étape E07 de calcul de moyenne et d'écart-type de la phase d'apprentissage PO du procédé de détection décrit précédemment ;a second calculation module 126, designed to calculate an average of the similarity indices and a standard deviation between these indices. The second calculation module 126 is designed to implement step E07 for calculating the average and standard deviation of the learning phase PO of the detection method described above;
- un troisième module de calcul 127, agencé pour calculer un intervalle de conformité pour un vecteur de bits modèle durant la phase d'apprentissage- a third calculation module 127, designed to calculate a compliance interval for a vector of model bits during the learning phase
PO. Par exemple, l'intervalle de conformité est calculé à partir d'un premier seuil de variabilité TmOd_inf et d'un deuxième seuil de variabilité TmOd_suP, calculés selon les formules suivantes :PO. For example, the compliance interval is calculated from a first variability threshold T mO d_inf and a second variability threshold Tm O d_su P , calculated according to the following formulas:
Tmod_inf ~ M|S “ O'|sTmod_inf ~ M | S “O '| s
Tmod_sup — M|s + 3 O‘|s (TC —Tmod_sup - M | s + 3 O '| s (TC -
Où Mis représente une moyenne entre plusieurs indices de similarité etWhere Mis represents an average between several similarity indices and
Qis l'écart-type entre ces indices. Le troisième module de calcul 127 est agencé pour mettre en œuvre l'étape E09 de calcul d'un intervalle de conformité de la phase d'apprentissage PO du procédé précédemment décrit ;Qis the standard deviation between these indices. The third calculation module 127 is designed to implement the step E09 of calculating a compliance interval of the learning phase PO of the method described above;
- un module de vérification 128, agencé pour vérifier qu'un indice de similarité calculé par le premier module de calcul 125 est compris dans l'intervalle de conformité IC, calculé préalablement par le deuxième module de calcul 126. Le module de vérification 128 est agencé pour mettre en œuvre l'étape E18 de vérification vis-à-vis de l'intervalle de conformité de la phase de détection P1 du procédé décrit précédemment ;a verification module 128, arranged to verify that a similarity index calculated by the first calculation module 125 is included in the compliance interval IC, previously calculated by the second calculation module 126. The verification module 128 is arranged to implement step E18 of verification with respect to the compliance interval of the detection phase P1 of the method described above;
- un module 129 de mise à jour du vecteur modèle, agencé pour mettre à jour le vecteur modèle construit par le module de construction 124, à partir d'un vecteur de bits suivant. Le module de mise à jour 129 est agencé pour mettre en œuvre les étapes E05' et E05 de mise à jour du vecteur modèle de la phase d'apprentissage PO du procédé précédemment décrit ;a module 129 for updating the model vector, designed to update the model vector constructed by the construction module 124, from a following vector of bits. The update module 129 is designed to implement the steps E05 ′ and E05 for updating the model vector of the learning phase PO of the method described above;
Le module 124 de construction de vecteurs de bits, les premier 125, deuxième 126 et troisième 127 modules de calcul, le module de vérification 128, le module 129 de mise à jour du vecteur modèle sont de préférence des modules logiciels comprenant des instructions logicielles pour faire exécuter les étapes du procédé de détection d'anomalies dans un trafic réseau précédemment décrit.The bit vector construction module 124, the first 125, second 126 and third 127 calculation modules, the verification module 128, the module 129 for updating the model vector are preferably software modules comprising software instructions for carrying out the steps of the method for detecting anomalies in network traffic described above.
L'invention concerne donc aussi :The invention therefore also relates to:
- un programme d'ordinateur comportant des instructions pour la mise en œuvre du procédé de détection d'anomalie tel que décrit précédemment lorsque ce programme est exécuté par un processeur du dispositif de détection 12;a computer program comprising instructions for implementing the anomaly detection method as described above when this program is executed by a processor of the detection device 12;
- un support d'enregistrement lisible sur lequel est enregistré le programme d'ordinateur décrit ci-dessus.- a readable recording medium on which is recorded the computer program described above.
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 de télécommunications.Software modules can be stored in or transmitted by a data medium. This can be a material storage medium, for example a CD-ROM, a magnetic diskette or a hard disk, or else a transmission medium such as a signal or a telecommunications network.
Dans une variante de réalisation, les premier 125, deuxième 126 et troisième 127 modules de calcul, le module de vérification 128 et le module 129 de mise à jour du vecteurmodèle sont définis comme des portes d'un circuit logique programmable. Un exemple d'un tel circuit est une carte « FPGA » (de 5 l'anglais « Field-Programmable Gâte Array »).In an alternative embodiment, the first 125, second 126 and third 127 calculation modules, the verification module 128 and the module 129 for updating the model vector are defined as gates of a programmable logic circuit. An example of such a circuit is an "FPGA" card (standing for "Field-Programmable Gâte Array").
Claims (13)
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1359461 | 2013-09-30 |
Publications (1)
Publication Number | Publication Date |
---|---|
OA17866A true OA17866A (en) | 2018-02-16 |
Family
ID=
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Kok et al. | Early detection of crypto-ransomware using pre-encryption detection algorithm | |
US20200389495A1 (en) | Secure policy-controlled processing and auditing on regulated data sets | |
US20210019674A1 (en) | Risk profiling and rating of extended relationships using ontological databases | |
US20200412767A1 (en) | Hybrid system for the protection and secure data transportation of convergent operational technology and informational technology networks | |
EP3053320B1 (en) | Method for detecting anomalies in network traffic | |
Alneyadi et al. | A survey on data leakage prevention systems | |
US10505986B1 (en) | Sensor based rules for responding to malicious activity | |
Damopoulos et al. | Evaluation of anomaly‐based IDS for mobile devices using machine learning classifiers | |
US10958657B2 (en) | Utilizing transport layer security (TLS) fingerprints to determine agents and operating systems | |
US9043417B1 (en) | Detecting spam across a social network | |
JP2019079492A (en) | System and method for detection of anomalous events on the basis of popularity of convolutions | |
Gupta | A comparative study of the approach provided for preventing the data leakage | |
US20240241752A1 (en) | Risk profiling and rating of extended relationships using ontological databases | |
US20230283641A1 (en) | Dynamic cybersecurity scoring using traffic fingerprinting and risk score improvement | |
CN112099870B (en) | Document processing method, device, electronic equipment and computer readable storage medium | |
EP3365829B1 (en) | Method of aiding the detection of infection of a terminal by malware | |
EP3598330B1 (en) | Method and device for detecting anomalies | |
OA17866A (en) | Method for detecting anomalies in network traffic. | |
EP3729768A1 (en) | Method for automatically constructing computer attack scenarios, computer program product and associated construction system | |
FR3105489A3 (en) | FRAUD DETECTION DEVICE AND METHOD | |
US20240195841A1 (en) | System and method for manipulation of secure data | |
US20230306297A1 (en) | System and method for device attribute identification based on host configuration protocols | |
US20240348623A1 (en) | Unauthorized Activity Detection Based on User Agent String | |
Li | M-ISDS: A Mobilized Intrusion and Spam Detection System | |
Danaeifard | A Machine Learning Framework for Malware Triage |