CA3226756A1 - Method and system for analysing data flows - Google Patents

Method and system for analysing data flows Download PDF

Info

Publication number
CA3226756A1
CA3226756A1 CA3226756A CA3226756A CA3226756A1 CA 3226756 A1 CA3226756 A1 CA 3226756A1 CA 3226756 A CA3226756 A CA 3226756A CA 3226756 A CA3226756 A CA 3226756A CA 3226756 A1 CA3226756 A1 CA 3226756A1
Authority
CA
Canada
Prior art keywords
protocol
detection
session
data
protocols
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CA3226756A
Other languages
French (fr)
Inventor
Francois Courvoisier
Frederic Le Picard
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NANO CORP
Original Assignee
NANO CORP
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from FR2109379A external-priority patent/FR3126830A1/en
Application filed by NANO CORP filed Critical NANO CORP
Publication of CA3226756A1 publication Critical patent/CA3226756A1/en
Pending legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/18Protocol analysers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

The invention relates to a method for analysing a flow of data packets received via a communication network, a protocol analysis (DAP) in accordance with the following steps: - analysing the first packet (P0) of a batch to check whether the first packet (P0) advertises the protocol of the following data packet (P1); - analysing the one or more following protocols Pi+n, where n?2, by repeating steps of classification through explicit detection (S10), classification through session detection (S20), and classification through deep packet inspection (S40) until identifying at least one protocol the identity of which is certain; and - associating a label with the data packets; and to the system for implementing it.

Description

Description Titre de l'invention : PROCÉDÉ ET SYSTEME D'ANALYSE DE FLUX DE
DONNÉES
knRRIE RE-P LAN
[0001] Les développements technologiques en matière de mise en réseau ont entrainé une augmentation des vitesses de mise en réseau au-delà des capacités de supervision du réseau et de l'équipement de gestion du trafic utilisé.
L'équipement connu de supervision du réseau et de gestion du trafic comprend généralement des sondes réseau, conçues pour surveiller un flux de données reçu via un réseau de communication.
Description Title of the invention: METHOD AND SYSTEM FOR ANALYZING FLOW FLOWS
DATA
knRRIE RE-P LAN
[0001] Technological developments in terms of implementation network have caused networking speeds to increase beyond capacity of supervision of the network and traffic management equipment used.
Equipment known network monitoring and traffic management generally includes of the network probes, designed to monitor a data stream received via a network of communication.

[0002] En pratique, les sondes réseau sont conçues pour traiter un flux fixe de données et surveiller des mesures spécifiques de ces données. En conséquence, chaque fois que le flux de données augmente et/ou qu'une nouvelle mesure de flux de données est identifiée pour la surveillance, ces sondes réseau doivent être repensées pour modifier leurs capacités de traitement afin de gérer le flux modifié de données. [0002] In practice, network probes are designed to process a fixed flow of data and monitor specific metrics of that data. Consequently, each time the data flow increases and/or a new measurement of flow data is identified for monitoring, these network probes must be redesigned to modify their processing capabilities to manage the flow modified from data.

[0003] Pour atténuer les inefficacités associées aux sondes réseau matérielles, on connait des solutions logicielles de supervision réseau et de gestion du trafic dans lesquelles on exécute une inspection approfondie des paquets (DPI) sur seulement quelques paquets, cette solution technique est appelée Packet Sampling (c'est-à-dire le fait de prendre des paquets complètement au hasard dans un flux réseau pour en réaliser un échantillonnage). Une telle solution connue permet d'éviter une surcharge de traitement élevée et des latences réseau plus élevées. Toutefois, une telle solution antérieure n'est pas totalement satisfaisante, car l'analyse est exécutée limitativement sur des chaines de protocoles ou session de communication comprenant cinq champs fixes (champ source, champ destinataire, port source, port destinataire, protocole de communication). Il en résulte qu'une telle analyse selon l'art antérieur ne permet pas de traiter des chaines ou session de protocoles dont le socle d'identification se base sur une valeur de 5-tuple (IP source, IP Destination, Port Source, Port destination et application), ni sur des protocoles de tunneling à
détection retardée, ni dans les couches 2 à 7 du modèle d'interconnexion des systèmes ouverts (0S1).
[0003] To mitigate the inefficiencies associated with network probes material, we knows network monitoring and network management software solutions traffic in which deep packet inspection (DPI) is performed on only few packets, this technical solution is called Packet Sampling (i.e.
mean taking packets completely randomly from a network flow For take a sample). Such a known solution makes it possible to avoid high processing overhead and higher network latencies. However, a such previous solution is not completely satisfactory, because the analysis is executed limitedly on protocol chains or communication sessions including five fixed fields (source field, recipient field, source port, port recipient, communication protocol). It follows that such an analysis according to art previous version does not allow processing of strings or protocol sessions including pedestal identification is based on a 5-tuple value (source IP, Destination IP, Port Source, Destination Port and Application), nor on tunneling protocols to detection delayed, nor in layers 2 to 7 of the systems interconnection model open (0S1).

[0004] On connait aussi une autre solution telle que celle présentée par le document EP 1 788 490 A (APPTITUDE INC), enseignant une architecture reposant sur l'implémentation d'une partie hardware spécifique FPGA et AS ICs, et d'une partie logicielle impliquant un découpage de paquet (packet slicing en anglais) [0004] We also know another solution such as that presented by the document EP 1 788 490 A (APPTITUDE INC), teaching a restful architecture on the implementation of a specific FPGA and AS ICs hardware part, and a part software involving packet slicing

[0005] Selon la solution décrite dans EP 1 788 490 A, le payload ou contenu attaché d'une couche protocolaire est au moins en partie gardé en mémoire d'abord dans le FPGA, puis délégué au processeur et à la RAM. L'architecture matérielle ne permet pas de retenir l'état d'une session suffisamment longtemps.
Le système est fortement ralenti lors d'une analyse d'un flux de données de débit important et empêche une identification a posteriori des protocoles. De plus, le FPGA ayant une mémoire limitée, celui-ci doit vider son cache périodiquement, ce qui entraine la perte d'informations et de paquets de données, et peut mener à
des statistiques d'analyse inexactes. De plus, l'utilisation du découpage de paquet (packet slicing), le réassemblage pour analyse implique donc un risque de perte d'informations. En outre, la gestion de la table d'empreintes numériques calculées sur la base de cinq tuples (adresse IP source/un numéro de port, une adresse IP/un numéro de port de destination et le protocole utilisé) implique l'identification d'une session sur la base d'un calcul d'empreinte numérique ne prenant en compte qu'une seule couche d'identification alors que dans le cas de sessions construites sur plusieurs protocoles tunnelés ou multiplexés, l'encapsulation crée plusieurs sessions cachées qu'il devient impossible d'identifier avec un 5-tuple. De plus, le chiffrement des communications ajoute de la variation qui va également fausser les comparaisons avec une base d'empreintes numériques de malware. Enfin, la solution selon EP 1 788 490 prend en compte le payload dans le calcul du hash ce qui entrainera trop de variations des valeurs d'analyse pour rester pertinentes dans le cadre d'une comparaison, et l'approche de calcul de 5-tuple.
[0005] According to the solution described in EP 1 788 490 A, the payload or content attached to a protocol layer is at least partly kept in memory first in the FPGA, then delegated to the CPU and RAM. Architecture hardware does not allow the state of a session to be retained sufficiently a long time.
The system is significantly slowed down when analyzing a data stream of Speed important and prevents a posteriori identification of the protocols. Moreover, THE
FPGA having limited memory, it must empty its cache periodically, This which results in the loss of information and data packets, and can lead to of the inaccurate analysis statistics. In addition, the use of cutting pack (packet slicing), reassembly for analysis therefore involves a risk of loss information. Additionally, digital fingerprint table management calculated based on five tuples (source IP address/port number, address IP/a destination port number and the protocol used) implies identification of a session on the basis of a digital fingerprint calculation not taking into account account only one layer of identification whereas in the case of sessions built on several tunneled or multiplexed protocols, encapsulation creates several hidden sessions that become impossible to identify with a 5-tuple. Of more, the encryption of communications adds variation which will also distort comparisons with a database of digital malware fingerprints. Finally, the solution according to EP 1 788 490 takes into account the payload in the calculation of the hash which will lead to too many variations in the analysis values to remain relevant as part of a comparison, and the 5-tuple calculation approach.

[0006] De plus, à très haut débit, l'utilisation pour le calcul de l'empreinte numérique ou hash selon une méthode de 5-tuple combinant des techniques matérielles (FPGA ou ASIC) et Racket Slicing (découpage du paquet sur les couches inférieures ou supérieures) pour accélérer le traitement des paquets, provoque nativement une perte de visibilité et des erreurs en cascades. [0006] Furthermore, at very high throughput, the use for calculating the imprint numeric or hash using a 5-tuple method combining techniques hardware (FPGA or ASIC) and Racket Slicing (cutting the package on the layers lower or higher) to speed up packet processing, causes natively a loss of visibility and cascading errors.

[0007] De plus, l'approche 5-tuple pour deux sessions ayant le même 5-tuple, mais dont la couche inférieure est différente, (c'est-à-dire un réseau virtuel différent) sera interprété comme si les deux sessions identiques alors que ce n'est pas le cas, et entraine alors une perte d'information pouvant lourdement affecter les résultats d'analyse de données. [0007] Furthermore, the 5-tuple approach for two sessions having the same 5-tuple, but whose lower layer is different, (i.e. a virtual network different) will be interpreted as if the two sessions are identical when this is not the case, and then leads to a loss of information which can seriously affect the results data analysis.

[0008] On entend par la suite par le terme hash , une empreinte numérique calculée. [0008] The term hash subsequently means a fingerprint digital calculated.

[0009] La présente invention remédie aux inconvénients et améliore la situation. [0009] The present invention remedies the drawbacks and improves the situation.

[0010] La présente invention porte sur un procédé d'analyse d'un flux de données de paquets de données reçus via un réseau de communication, le flux de données comprenant des lots de paquets définis chacun par une chaine de protocoles de communication rattachée à au moins une session. [0010] The present invention relates to a method of analyzing a data flow of data packets received via a communications network, the data flow comprising batches of packets each defined by a chain of protocols communication attached to at least one session.

[0011] Selon une définition générale de l'invention, le procédé
comprend une analyse de protocoles selon les étapes suivantes :
-analyser le premier protocole Pi d'une chaine de protocoles de communication selon une étape de classification par détection explicite configurée pour vérifier si le premier protocole Pi annonce le protocole de communication suivant Pi+1 de la chaine de protocoles :
-en cas d'annonce, le protocole suivant Pi+1 ainsi annoncé est identifié ;
-tandis qu'en cas de non-annonce, analyser le protocole suivant Pi+1 selon une étape de classification par détection de session ;
-analyser selon une étape de classification par détection de session, configurée pour vérifier si le protocole Pi+1 est attaché à une chaine de protocoles connue selon un arbre de décision dynamique par interrogation d'une base de données dynamique de session comprenant des chaines de protocoles identifiées:
-en cas d'attache, le protocole Pi+1 est identifié, et le protocole Pi+2 est analysé par répétition des étapes de classification par détection explicite, de classification par détection de session;
- tandis qu'en cas de non-attache, analyser le protocole Pi+1 selon une étape de classification par inspection profonde de paquet ;
-analyser le protocole Pi+1 selon une étape de classification par inspection profonde de paquet, configurée pour identifier le protocole de communication du paquet Pi+1 selon un arbre de décision dynamique corrélé à une base de données de connaissances comprenant des paramètres d'analyse de protocoles et une base de marqueurs spécifiques à chaque protocole connu;
- en cas de défaut d'identification du protocole Pi+1, émettre une liste de candidats de protocoles potentiels à prendre en compte selon au moins deux branches de détection, chaque détection étant rattachée à une sous-session déterminée pour analyser le ou les protocoles suivants Pi+n avec par répétition des étapes de classification par détection explicite, de classification par détection de session, et de classification par inspection profonde de paquet jusqu'à identifier au moins un protocole dont l'identité est certaine ;
-en cas d'identification d'un protocole Pi+n dont l'identité est certaine sur une branche de détection, valider rétroactivement la branche de détection, et écarter les branches de détection restantes non validées ;
-en cas d'absence d'identification d'un protocole Pi+n dont l'identité est certaine sur une branche de détection, classifier le protocole PH-1 comme inconnu rétroactivement ; et -associer une étiquette aux paquets de données en fonction de chaque session pour lesquels les protocoles ont été identifiés.
[0011] According to a general definition of the invention, the process includes a analysis of protocols according to the following steps:
-analyze the first Pi protocol of a chain of communication protocols according to an explicit detection classification step configured to check if the first protocol Pi announces the following communication protocol Pi+1 of the protocol chain:
-in the event of an announcement, the following protocol Pi+1 thus announced is identified;
-while in the event of non-announcement, analyze the following protocol Pi+1 according to a classification step by session detection;
-analyze according to a classification step by session detection, configured to check if the Pi+1 protocol is attached to a protocol chain known according to a dynamic decision tree by querying a database session dynamics including identified protocol chains:
-in case of attachment, the Pi+1 protocol is identified, and the Pi+2 protocol is analyzed by repeating the detection classification steps explicit, classification by session detection;
- while in the event of non-attachment, analyze the Pi+1 protocol according to a classification step by deep packet inspection;
-analyze the Pi+1 protocol according to a classification step by inspection deep packet, configured to identify the communication protocol of the packet Pi+1 according to a dynamic decision tree correlated to a base of knowledge data including analysis parameters protocols and a base of markers specific to each known protocol;
- in the event of a failure to identify the Pi+1 protocol, send a list of potential protocol candidates to be considered according to at least two detection branches, each detection being attached to a subsession determined to analyze the following protocol(s) Pi+n with by repetition of the classification steps by explicit detection, of classification by session detection, and classification by deep inspection of pack until at least one protocol whose identity is certain is identified;
-in the event of identification of a Pi+n protocol whose identity is certain on a detection branch, retroactively validate the detection branch, and discard the remaining uncommitted detection branches;
-in the event of absence of identification of a Pi+n protocol whose identity is certain on a detection branch, classify the PH-1 protocol as unknown retroactively; And -associate a label to data packets based on each session for which the protocols have been identified.

[0012]
Il est à noter que l'analyse des caractéristiques binaires de chaque paquet d'une session de communication (ou chaine de protocoles) est mise en oeuvre selon l'invention jusqu'à être en mesure (ou non) de déterminer (identifier) le protocole utilisé
dans cette session.
[0012]
It should be noted that the analysis of the binary characteristics of each pack of a communication session (or chain of protocols) is implemented according to the invention until being able (or not) to determine (identify) the protocol used in this session.

[0013]
Une telle approche selon l'invention a l'avantage de permettre d'avoir un taux de labellisation plus élevé que les approches antérieures, dans la mesure où elle peut être exécutée depuis la couche 2 jusqu'à la couche 7 du modèle OSI, en une seule passe d'analyse des paquets. Elle permet aussi d'identifier des chaines de protocoles dans le cas de protocoles de tunneling, ou de protocoles à
détection retardée ainsi qu'une détection continue, et ce, même si un protocole n'est pas identifié immédiatement, la détection des protocoles suivants continue.
[0013]
Such an approach according to the invention has the advantage of making it possible to have A
higher labeling rate than previous approaches, to the extent or her can be executed from layer 2 to layer 7 of the OSI model, in a single pass packet analysis. It also allows you to identify channels of protocols in the case of tunneling protocols, or protocols to detection delayed as well as continuous detection, even if a protocol is not not identified immediately, detection of subsequent protocols continues.

[0014]
De plus, grâce à l'usage de la base de données dynamique de sessions stockant les sessions de communication précédemment identifiées, la présente invention est plus rapide que les solutions antérieures basées sur une inspection de tous les paquets.
[0014]
In addition, thanks to the use of the dynamic session database storing previously identified communication sessions, this invention is faster than previous solutions based on a inspection of all packages.

[0015] Selon un autre aspect de l'invention, le procédé comprend en outre après chaque étape de classification, une étape de calcul d'une empreinte numérique de session à partir d'une fonction de hachage choisie, ladite empreinte numérique de session étant calculée sur la base du premier protocole identifié, et sur l'empreinte numérique précédemment calculée de la chaîne de protocoles déjà identifiée sans prise en compte du contenu attaché, chaque empreinte numérique étant calculée sur la base de paramètres (ou tuple) choisis et spécifiques à chaque type de protocole, chaque type de protocole disposant d'un nombre propre de marqueurs définit ;
et une étape d'enregistrement de l'empreinte numérique de session calculée après chaque étape d'identification de protocole suivant l'étape de classification de chaque protocole par inspection profonde de paquet ou après l'étape de validation rétroactive, dans une table de hash intégrée dans la base de données dynamique de session, chaque empreinte numérique étant liée à au moins une session choisie, lesdites empreintes numériques calculées après chaque étape de classification de chaque protocole par inspection profonde de paquet étant apte à être mis à jour rétroactivement en cas d'identification retardée d'un protocole selon l'étape de vérification.
[0015] According to another aspect of the invention, the method comprises furthermore after each classification step, a step of calculating a digital fingerprint of session from a chosen hash function, said digital fingerprint of session being calculated on the basis of the first identified protocol, and on the imprint previously calculated numeric of the already identified protocol chain without taking into account the attached content, each digital footprint being calculated on the basis of parameters (or tuple) chosen and specific to each type of protocol, each type of protocol having its own number of defined markers;
and a step of recording the calculated session digital fingerprint After each protocol identification step following the classification step of each protocol by deep packet inspection or after the validation step retroactive, in a hash table integrated into the dynamic session database, each digital fingerprint being linked to at least one chosen session, said digital fingerprints calculated after each classification step of each protocol by deep packet inspection being able to be updated retroactively in the event of delayed identification of a protocol according to the step of verification.

[0016] Avantageusement, le Demandeur a observé que la gestion dynamique des empreintes numériques selon l'invention permet à l'empreinte numérique d'un protocole non validé d'être mise à jour a posteriori, celui-ci évoluant à
mesure que le paquet est lu.
[0016] Advantageously, the Applicant observed that the management dynamics of digital prints according to the invention allows the digital print of a non-validated protocol to be updated a posteriori, this evolving extent that the packet is read.

[0017] Cette algorithmie unique permet de pouvoir détecter tous les types de protocoles avec une seule sonde, soit non limitativement les enchainements protocolaires simples, complexes, tunnelés et multiplexés. [0017] This unique algorithm makes it possible to detect all the types of protocols with a single probe, i.e. not limited to sequences simple, complex, tunneled and multiplexed protocols.

[0018] La gestion des empreintes numériques du procédé selon l'invention présente également l'avantage de s'affranchir d'une étape de découpage de la chaine protocolaire (slicing en anglais) et ainsi éliminer le risque de perte d'information, et permet en outre d'obtenir des identifiants réellement uniques sur la chaine de protocole, peu importe la longueur de ladite chaine de protocoles qui compose le ou les paquets. [0018] Management of digital imprints of the process according to the invention also has the advantage of avoiding a step of cutting the chain protocol (slicing in English) and thus eliminate the risk of loss information, and also allows you to obtain truly unique identifiers on the chain of protocol, regardless of the length of said chain of protocols which compose the OR
the packets.

[0019] En pratique, en cas de détection de protocoles tunnelés, multiplexés, multicanaux détectés de manière certaine, le procédé selon l'invention comprend les sous-étapes suivantes :

-Générer au moins une branche de détection par protocole vérifié à prendre en compte pour la détection ultérieure, -Calculer une empreinte numérique de session à partir d'une fonction de hachage choisie pour chaque branche de détection, chaque branche de détection étant rattachée à une sous-session déterminée pour analyser le ou les protocoles suivants Pi+n ; et -Enregistrer l'empreinte numérique de session de chaque branche de détection rattachée à une chaine de protocole, l'étape d'enregistrement étant configurée pour attribuer un identifiant unique à chaque branche de détection du/des protocoles tunnelés, multiplexés, ou multicanaux détectés.
[0019] In practice, in the event of detection of tunneled protocols, multiplexed, multichannels detected with certainty, the method according to the invention includes the following sub-steps:

-Generate at least one detection branch per verified protocol to support account for subsequent detection, -Calculate a session fingerprint from a function hash chosen for each detection branch, each detection branch being attached to a specific sub-session to analyze the protocol(s) following Pi+n; And -Save the session fingerprint of each detection branch attached to a protocol chain, the recording step being configured For assign a unique identifier to each detection branch of the protocols tunneled, multiplexed, or multi-channel detected.

[0020] Avantageusement, le procédé selon l'invention permet d'obtenir une empreinte numérique unique par canal, ou branche de protocoles détectés, et ainsi éviter une perte d'information telle que deux canaux disposant du même identifiant. [0020] Advantageously, the method according to the invention allows to obtain a unique digital fingerprint per channel, or branch of detected protocols, and Thus avoid a loss of information such as two channels having the same identifier.

[0021] A titre d'exemple, la table de hash est mise à jour si la détection d'au moins un protocole d'une session nécessite la mise en oeuvre d'une détection retardée sur plusieurs paquets. [0021] For example, the hash table is updated if the detection of at least a session protocol requires the implementation of detection delayed on several packages.

[0022] En pratique, la base de données de connaissances comprend une base de données de connaissances statiques, dans laquelle la base de données de connaissances statiques comprend des marqueurs basés sur une connaissance empirique des caractéristiques des protocoles, et dans lesquels la connaissance empirique comprend des moyens algorithmiques de détection de protocoles basés sur des normes de localisation, des liens logiques entre les protocoles de communication, les requêtes pour commentaires et les modèles de fréquence des protocoles de communication. [0022] In practice, the knowledge database includes a basis of static knowledge data, in which the database of static knowledge includes markers based on knowledge empirical characteristics of the protocols, and in which the awareness empirical includes algorithmic means of detecting protocols based on localization standards, logical links between the protocols of communication, requests for comments and frequency models of communication protocols.

[0023] En outre, le procédé selon l'invention comprend l'exécution d'une analyse de données suivie d'une extraction de données pour les paquets de données sur la base de l'étiquette associée. [0023] Furthermore, the method according to the invention comprises the execution of an analysis data followed by data extraction for data packets on the base of the associated label.

[0024] Selon un premier mode de réalisation de l'invention, l'exécution de l'analyse de protocoles et l'exécution, de l'analyse et de l'extraction des données pour un paquet de données sont effectuées de manière dynamique sur un seul coeur de traitement d'un processeur multicceur. [0024] According to a first embodiment of the invention, running the analysis protocols and the execution, analysis and extraction of data for A
data packet are performed dynamically on a single core processing of a multi-core processor.

[0025] Selon un second mode de réalisation de l'invention, l'exécution de l'analyse et l'extraction des données pour le paquet de données sont effectuées sur plusieurs coeurs de traitement d'un processeur multicceur. [0025] According to a second embodiment of the invention, running the analysis and data extraction for the data packet are performed on several processing cores of a multi-core processor.

[0026] En pratique, le procédé selon l'invention comprenant la séparation du flux de données en une pluralité de files d'attente de traitement dans laquelle l'analyse de protocoles suivie de l'analyse et de l'extraction des données sont effectuées sur des paquets de données dans chacune des files d'attente de traitement. [0026] In practice, the method according to the invention comprising the flow separation of data into a plurality of processing queues in which analysis of protocols followed by analysis and extraction of data are carried out on data packets in each of the processing queues.

[0027] En outre, la séparation du flux de données dans la pluralité des files d'attente de traitement est basée sur un algorithme RSS de mise à l'échelle côté
réception.
[0027] Furthermore, the separation of the data flow in the plurality of files processing wait is based on an RSS scaling algorithm side reception.

[0028] Selon un mode de réalisation du procédé selon l'invention, l'analyse de protocole est exécutée de manière dynamique sur les couches 2 à 7 du modèle de couches OSI. [0028] According to one embodiment of the method according to the invention, the analysis of protocol is executed dynamically on layers 2 to 7 of the model of OSI layers.

[0029] L'invention a également pour objet un système informatique d'analyse d'un flux de données de paquets de données reçu via un réseau de communication, le flux de données comprenant des lots de paquets définis chacun par une chaine de protocoles de communication rattachée à au moins une session. [0029] The invention also relates to a computer system analysis of a data stream of data packets received via a communications network, the data flow comprising batches of packets each defined by a string of communication protocols attached to at least one session.

[0030]Selon une autre définition générale de l'invention, le système comprend un processeur comprenant au moins un coeur de traitement pour traiter un nombre prédéterminé de paquets de données par minute et un moteur d'analyse de protocole sur au moins un coeur de traitement, dans lequel le moteur d'analyse de protocole -analyse du premier protocole d'une chaine de protocoles de communication selon une étape de classification par détection explicite configurée ? Pour vérifier si le premier protocole annonce le protocole de communication suivant de la chaine de protocoles, en cas d'annonce, le protocole suivant ainsi annoncé est identifié, tandis qu'en cas de non-annonce, le moteur d'analyse est apte à analyser le protocole selon une étape de classification par détection de session ;
-analyse selon une étape de classification par détection de session, configurée pour vérifier si le protocole PH-1 est attaché à une chaine de protocoles connue selon un arbre de décision dynamique par interrogation d'une base de données dynamique de session comprenant des chaines de protocoles identifiées:

-en cas d'attache, le protocole Pi+1 est identifié, et le moteur d'analyse est apte à analyser le protocole PH-2 par répétition des étapes de classification par détection explicite, de classification par détection de session ;
- tandis qu'en cas de non-attache, le moteur d'analyse est apte à
analyser le protocole Pi+1 selon une étape de classification par inspection profonde de paquet ;
-analyse le protocole Pi+1 selon une étape de classification par inspection profonde de paquet, configurée pour identifier le protocole de communication du paquet Pi+1 selon un arbre de décision dynamique corrélé à une base de données de connaissances comprenant des paramètres d'analyse de protocoles et une base de marqueurs spécifiques à chaque protocole connu;
- en cas de défaut d'identification du protocole Pi-F1, le moteur d'analyse est apte à émettre une liste de candidats de protocoles potentiels à prendre en compte selon au moins deux branches de détection, chaque détection étant rattachée à une sous-session déterminée pour analyser le ou les protocoles suivants Pi+n avec r-12 par répétition des étapes de classification par détection explicite, de classification par détection de session, et de classification par inspection profonde de paquet jusqu'à identifier au moins un protocole dont l'identité est certaine ;
-en cas d'identification d'un protocole Pi+n dont l'identité est certaine sur une branche de détection, le moteur d'analyse est apte à valider rétroactivement la branche de détection, et écarter les branches de détection restantes non validées ;
-en cas d'absence d'identification d'un protocole Pi+n dont l'identité est certaine sur une branche de détection, le moteur d'analyse est apte à classifier le protocole Pi+1 comme inconnu rétroactivement ; et -un moteur d'étiquetage apte à associer une étiquette aux paquets de données en fonction des protocoles ainsi identifiés.
[0030] According to another general definition of the invention, the system comprises A
processor comprising at least one processing core for processing a number predetermined data packets per minute and a data analysis engine protocol on at least one processing core, in which the analysis engine of protocol -analysis of the first protocol in a chain of communication protocols according to an explicit detection classification step configured? To check if the first protocol announces the next communication protocol in the chain of protocols, in the event of an announcement, the following protocol thus announced is identified, while in the event of non-announcement, the analysis engine is able to analyze the protocol according to a classification step by session detection;
-analysis according to a classification step by session detection, configured to check if the PH-1 protocol is attached to a protocol chain known according to a dynamic decision tree by querying a database session dynamics including identified protocol chains:

-in case of attachment, the Pi+1 protocol is identified, and the analysis engine is capable of analyzing the PH-2 protocol by repeating the steps of classification by explicit detection, classification by session detection;
- while in the event of non-attachment, the analysis engine is able to analyze the Pi+1 protocol according to a classification step by deep packet inspection;
-analyzes the Pi+1 protocol according to a classification step by inspection deep packet, configured to identify the communication protocol of the packet Pi+1 according to a dynamic decision tree correlated to a base of knowledge data including analysis parameters protocols and a base of markers specific to each known protocol;
- in the event of a failure to identify the Pi-F1 protocol, the analysis engine East capable of issuing a list of potential protocol candidates to be taken into account counts according to at least two branches of detection, each detection being attached to a specific sub-session to analyze the protocol(s) following Pi+n with r-12 by repetition of the classification steps by detection explicit, classification by session detection, and classification by deep packet inspection until identifying at least one protocol whose the identity is certain;
-in the event of identification of a Pi+n protocol whose identity is certain on a detection branch, the analysis engine is able to retroactively validate there detection branch, and discard the remaining detection branches not validated;
-in the event of absence of identification of a Pi+n protocol whose identity is certain on a detection branch, the analysis engine is able to classify the Pi+1 protocol as unknown retroactively; And -a labeling engine capable of associating a label with data packets according to the protocols thus identified.

[0031] En pratique, le moteur d'analyse de protocole :
-calcule une empreinte numérique de session à partir d'une fonction de hachage choisie après chaque étape de classification, ladite empreinte numérique étant calculée sur la base du premier protocole identifié, et sur l'empreinte numérique précédemment calculée de la chaîne de protocoles déjà identifiée sans prise en compte du contenu attaché, chaque empreinte numérique est calculée sur la base de paramètres (ou tuple) choisis et spécifiques à chaque type de protocole, chaque type de protocole disposant d'un nombre propre de marqueurs définit (n-Tuples) ;
-enregistre l'empreinte numérique de session calculée après chaque étape d'identification de protocole suivant étape de classification de chaque protocole par inspection profonde de paquet ou après l'étape de validation rétroactive, dans une table de hash intégrée dans la base de données dynamique de session, chaque empreinte numérique étant liée à au moins une session choisie, lesdites empreintes numériques calculées après chaque étape de classification de chaque protocole par inspection profonde de paquet étant apte à être mise à jour rétroactivement en cas d'identification retardée d'un protocole selon l'étape de vérification.
[0031] In practice, the protocol analysis engine:
-calculates a session fingerprint from a hash function chosen after each classification step, said digital fingerprint being calculated on the basis of the first identified protocol, and on the fingerprint digital previously calculated from the already identified protocol chain without taking into account account of the attached content, each digital footprint is calculated based on of parameters (or tuple) chosen and specific to each type of protocol, each type protocol with its own number of defined markers (n-Tuples);
-saves the calculated session fingerprint after each step protocol identification following classification step of each protocol by deep packet inspection or after the retroactive validation step, in a hash table integrated into the dynamic session database, each digital fingerprint being linked to at least one chosen session, said fingerprints numerical calculated after each classification step of each protocol by deep packet inspection being able to be retroactively updated in case delayed identification of a protocol according to the verification step.

[0032] Le moteur d'analyse de protocole du système selon l'invention comprend en outre en cas de détection de protocoles tunnelés, multiplexés, multicanal, ou multicanal multiplexés détectés de manière certaine, -Génère au moins une branche de détection par protocole vérifié à prendre en compte pour la détection ultérieure, -Calcule une empreinte numérique de session à partir d'une fonction de hachage choisie pour chaque branche de détection, chaque branche de détection étant rattachée à une sous-session déterminée pour analyser le ou les protocoles suivants ; et -Enregistre l'empreinte numérique de session de chaque branche de détection rattachée à une chaine de protocole, l'enregistrement étant configuré pour attribuer un identifiant unique à chaque branche de détection dufdes protocoles tunnelés, multiplexés, ou multicanaux détectés. [0032] The protocol analysis engine of the system according to the invention comprises in in addition in case of detection of tunneled, multiplexed, multichannel protocols, or multiplexed multichannels detected with certainty, -Generates at least one detection branch per verified protocol to support account for subsequent detection, -Calculates a session fingerprint from a hash function chosen for each detection branch, each detection branch being attached to a specific sub-session to analyze the protocol(s) following; And -Records the session fingerprint of each detection branch attached to a protocol chain, the recording being configured to assign a unique identifier for each detection branch of the protocols tunneled, multiplexed, or multi-channel detected.

[0033] Le système selon l'invention comprend, en outre, une base de données de connaissances comportant une base de données de connaissances statiques dans laquelle la base de données de connaissances statiques comprend des marqueurs, aussi appelés labels, basés sur une connaissance empirique des caractéristiques des protocoles, et dans lesquels la connaissance empirique comprend des moyens algorithmiques de détection de protocoles basés sur des normes sur la localisation, des liens logiques entre les protocoles de communication, les requêtes pour commentaires et les modèles de fréquence des protocoles de communication. [0033] The system according to the invention further comprises a base data from knowledge comprising a static knowledge database in which the static knowledge database includes markers, also called labels, based on empirical knowledge of characteristics of protocols, and in which empirical knowledge includes means protocol detection algorithms based on standards on the location, logical links between communication protocols, requests for Comments and frequency patterns of communication protocols.

[0034] En pratique, le système selon l'invention comprend un moteur d'analyse de contenu exécutable sur au moins un c ur de traitement pour analyser et extraire le paquet de données sur la base de l'étiquette associée. [0034] In practice, the system according to the invention comprises a analysis engine executable content on at least one processing core to analyze and extract the data packet based on the associated label.

[0035] Selon un mode de réalisation de l'invention, le moteur d'analyse de protocole et le moteur d'analyse de contenu effectuent consécutivement l'analyse de protocoles suivie de l'analyse et de l'extraction de données pour le flux de données de paquets de données, et dans lequel le moteur d'analyse de contenu effectue séparément l'analyse et l'extraction de données pour des paquets de données étiquetés différemment. [0035] According to one embodiment of the invention, the motor analysis of protocol and the content analysis engine consecutively perform the analysis of protocols followed by analysis and data extraction for the flow of data of data packets, and in which the content analysis engine performs separately parsing and extracting data for data packets labeled differently.

[0036] Le système selon l'invention comprend, en outre, une carte d'interface réseau couplée au processeur, dans laquelle la carte réseau sépare le flux de données des paquets de données en une pluralité de files d'attente de traitement, et dans laquelle le moteur d'analyse de protocole et le moteur d'analyse de contenu effectuent l'analyse des paquets et l'extraction de données des paquets sur chacune des pluralités de files d'attente de traitement. [0036] The system according to the invention further comprises a card interface network coupled to the processor, in which the network card separates the flow of data packets into a plurality of queues of treatment, and wherein the protocol analysis engine and the protocol analysis engine content perform packet analysis and data extraction from packets on each pluralities of processing queues.

[0037]A titre d'exemple, la carte réseau (NIC) sépare le flux de données des paquets de données en fonction de l'algorithme RSS de mise à l'échelle côté
réception.
[0037] For example, the network card (NIC) separates the data flow from the data packets based on RSS side scaling algorithm reception.

[0038] Le procédé et système selon l'invention permettent avantageusement d'identifier des couches protocolaires qui n'ont pas été annoncées. Dans le cas où ces protocoles ne s'annoncent pas, ou n'annoncent pas ceux qui suivent, et permettent de chercher un ensemble de marqueurs susceptibles de valider l'identification d'un protocole en particulier. [0038] The method and system according to the invention allow advantageously to identify protocol layers that have not been announced. In the case where these protocols do not announce themselves, or do not announce those that follow, and allow to look for a set of markers likely to validate the identification of a protocol in particular.

[0039] Avantageusement, le système et procédé selon l'invention permettent également de procéder à une validation par rebonds multiples et logiques des protocoles analysés si une couche décrétée comme "sûre" est validée, ladite couche sûre permettant ainsi de valider l'ensemble des choix de classification effectués.
En d'autres termes, les empilements de protocoles qui précèdent pourrons être déduits correctement.
[0039] Advantageously, the system and method according to the invention allow also to carry out validation by multiple and logical bounces of the protocols analyzed if a layer declared as “safe” is validated, said layer safe thus making it possible to validate all the classification choices carried out.
In other words, the preceding stacks of protocols can be deduced correctly.

[0040] De manière surprenante, le procédé et le système selon l'invention permettent de pouvoir attendre plusieurs paquets pour valider une chaine d'empilement de protocoles pour une session donnée, et de pouvoir garder une unicité
de session par branche tout en garantissant une empreinte numérique unique par session et par branche de détection en procédant à des calculs d'empreintes numériques continus sur chaque couche de protocoles contenus dans un paquet.
[0040] Surprisingly, the method and the system according to the invention allow you to wait for several packets to validate a chain stacking of protocols for a given session, and being able to keep a uniqueness session per branch while guaranteeing a unique digital footprint per session and by detection branch by performing fingerprint calculations continuous digital data on each layer of protocols contained in a packet.

[0041] Enfin, le procédé et le système selon l'invention permettent de maintenir une granularité très profonde de l'analyse des données réseau, et ainsi limiter les erreurs d'identification de protocole et garantir des données d'analyse fiables.
BREVE DESCRIPTION DES DESSINS
[0041] Finally, the method and the system according to the invention allow us to maintain very deep granularity of network data analysis, and thus limit the protocol identification errors and ensure analysis data reliable.
BRIEF DESCRIPTION OF THE DRAWINGS

[0042] La figure 1 illustre un système informatique d'analyse d'un flux de données de paquets de données reçus via un réseau de communication, conformément à un exemple de mise en uvre de la présente invention, [0042] Figure 1 illustrates a computer system for analyzing a data flow of data packets received via a communications network, in accordance with a example of implementation of the present invention,

[0043] La figure 2 illustre les schémas du système informatique, conformément à
un exemple de mise en oeuvre de la présente invention,
[0043] Figure 2 illustrates the diagrams of the computer system, in accordance with an example of implementation of the present invention,

[0044] La figure 3 illustre le système informatique d'analyse d'un flux de données de paquets de données reçus via un réseau de communication, conformément à un exemple de mise en oeuvre de la présente invention, [0044] Figure 3 illustrates the computer system for analyzing a data flow of data packets received via a communications network, in accordance with a example of implementation of the present invention,

[0045] La figure 4 illustre le flux d'événements à l'intérieur d'un noyau de traitement du système informatique, conformément à un exemple de mise en oeuvre de la présente invention, [0045] Figure 4 illustrates the flow of events within of a nucleus of processing of the computer system, in accordance with an example of implementation artwork of the present invention,

[0046] La figure 5 illustre l'étape de réception et de distribution des paquets par une carte d'interface réseau conformément à l'invention, [0046] Figure 5 illustrates the step of reception and distribution of packets by a network interface card according to the invention,

[0047] Les figures 6, 7 et 8 illustrent les étapes d'analyse d'un flux de données de paquets de données reçus via un réseau de communication, conformément à un exemple de mise en uvre de la présente invention, et [0047] Figures 6, 7 and 8 illustrate the steps of analyzing a data flow data packets received via a communications network, in accordance with a example of implementation of the present invention, and

[0048] Les figures 9, 10 et 11 illustrent des exemples d'analyse linéaire conformément à l'invention ; [0048] Figures 9, 10 and 11 illustrate examples of analysis linear in accordance with the invention;

[0049] Les figures 12, 13, et 14 illustrent un exemple d'analyse appliquée à une détection de protocoles à détection retardée conformément à l'invention ; [0049] Figures 12, 13, and 14 illustrate an example of analysis applied to a detection of delayed detection protocols in accordance with the invention;

[0050] La figure 15 illustre un exemple d'analyse appliquée à une détection de protocoles avec gestion d'une table de hash associée conforme à l'invention ; [0050] Figure 15 illustrates an example of analysis applied to a detection of protocols with management of an associated hash table conforming to the invention;

[0051] Les figures 16 et 17 illustrent la gestion des empreintes numériques lors de la détection conforme à l'invention ; et [0051] Figures 16 and 17 illustrate the management of imprints digital during detection according to the invention; And

[0052] La figure 18 illustre un exemple d'analyse appliquée à une détection de protocoles multiplexés et multicanal avec gestion d'une table de hash associée conforme à l'invention. [0052] Figure 18 illustrates an example of analysis applied to a detection of multiplexed and multichannel protocols with management of an associated hash table in accordance with the invention.

[0053] D'autres avantages et caractéristiques de l'invention apparaitront à
l'examen de la description et des dessins.
DESCRIPTION DÉTAILLÉE
[0053] Other advantages and characteristics of the invention will appear from the exam description and drawings.
DETAILED DESCRIPTION

[0054] Les techniques ci-dessus sont décrites plus en détail en référence aux figures 1 à 18. Il convient de noter que la description et les chiffres ne font qu'illustrer les principes du présent objet ainsi que les exemples décrits dans le présent document et ne doivent pas être interprétés comme une limitation au présent objet. Il est donc entendu que divers arrangements peuvent être conçus qui, bien qu'ils ne soient pas explicitement décrits ou montrés dans le présent document, les énoncés ci-après faisant état de principes, d'aspects et de mises en oeuvre du présent objet, ainsi que des exemples spécifiques de ceux-ci, sont destinés à englober des équivalents de ceux-ci. [0054] The above techniques are described in more detail in reference to Figures 1 to 18. It should be noted that the description and figures do not only illustrate the principles of this subject matter as well as the examples described herein document and should not be construed as a limitation of the present subject matter. He is therefore understood that various arrangements can be designed which, although not not explicitly described or shown in this document, the following statements After stating principles, aspects and implementations of this object, as well as specific examples thereof, are intended to encompass equivalents of these.

[0055] La figure 1 illustre un système informatique 100 pour l'analyse d'un flux de données de paquets de données reçus via un réseau de communication (non illustré), conformément à un exemple de la présente invention. Le système informatique peut être soit un ordinateur autonome, soit une combinaison de plusieurs systèmes informatiques fonctionnant ensemble dans un environnement informatique distribué.
Des exemples de système informatique 100 peuvent inclure, sans s'y limiter, les ordinateurs de bureau, les ordinateurs portables et les smartphones, ainsi que les assistants numériques personnels (PDA).
[0055] Figure 1 illustrates a computer system 100 for analyzing a flow of data from data packets received via a communications network (not illustrated), in accordance with an example of the present invention. The computer system can be either a standalone computer or a combination of several systems computers working together in an IT environment distributed.
Examples of computer system 100 may include, but are not limited to, THE
desktop computers, laptops and smartphones, as well as THE
personal digital assistants (PDAs).

[0056] Le réseau de communication peut être un réseau sans fil ou câblé, ou une combinaison de ceux-ci. Le réseau de communication peut être un ensemble de réseaux individuels, interconnectés les uns aux autres et fonctionnant corn me un seul grand réseau. Des exemples de tels réseaux individuels comprennent, sans toutefois s'y limiter, le réseau du Système mondial de communication mobile (GSM), le réseau du Système universel de télécommunications mobiles (UMTS), le réseau LTE (Long Term Evolution), le réseau de services de communications personnelles (PCS), le réseau d'accès multiple par répartition dans le temps (AMRC), le réseau CDMA

(Code-Division Multiple Access), le réseau de nouvelle génération (NGN), le réseau téléphonique public commuté (RTPC) et le réseau numérique à intégration de services (RNIS). Selon la terminologie, le réseau de communication comprend diverses entités de réseau, telles que des passerelles et des routeurs ; toutefois, ces détails ont été
omis pour maintenir la brièveté de la description.
[0056] The communication network can be a wireless network or wired, or a combination of these. The communication network can be a set of individual networks, interconnected with each other and functioning as only one large network. Examples of such individual networks include, but are not limited to however limited thereto, the network of the Global System for Mobile Communications (GSM), the network of the Universal Mobile Telecommunications System (UMTS), the LTE (Long Term Evolution), the Personal Communications Services (PCS) network, THE
time division multiple access network (CDMA), the CDMA network (Code-Division Multiple Access), the next generation network (NGN), the network public switched telephone (PSTN) and the integrated digital network services (ISDN). According to the terminology, the communication network includes various entities network, such as gateways and routers; However, these details have been omitted to maintain brevity of description.

[0057] Il convient de noter que, bien que les dispositions suivantes soient fournies en ce qui concerne le système informatique 100, les exemples de mise en oeuvre de la présente invention peuvent également être mis en oeuvre sur divers dispositifs ou réseaux utilisés par un fournisseur de services de réseau, fournissant une connectivité
réseau à un ou plusieurs abonnés, tels que des organisations gouvernementales, des sociétés multinationales, des sociétés, des entreprises et d'autres établissements. Le fournisseur de services de réseau peut servir de canal de connexion entre le réseau de communication et les dispositifs informatiques de ses abonnés. Il convient de noter que le fournisseur de services de réseau peut mettre en oeuvre divers autres équipements, dispositifs, noeuds de réseau interconnectés par une ou plusieurs liaisons de réseau câblées ou sans-fil pour fournir une connectivité réseau aux abonnés. Les noeuds du réseau peuvent généralement inclure des commutateurs, des routeurs, des points d'accès et des liaisons de données qui peuvent faciliter la communication entre divers hôtes d'abonnés (par exemple, des ordinateurs serveur, des ordinateurs clients, des appareils mobiles, etc.) qui peuvent produire et consommer du trafic de données. Dans un autre exemple, les exemples peuvent être mis en oeuvre sur divers périphériques réseau utilisés par des établissements /
organisations individuels, fournissant une connectivité et une sécurité réseau à un ou plusieurs de ses utilisateurs.
[0057] It should be noted that, although the provisions following are provided with regard to the computer system 100, the implementation examples of the present invention can also be implemented on various devices or networks used by a network service provider, providing connectivity network with one or more subscribers, such as government organizations, of the multinational companies, corporations, businesses and others establishments. THE
network service provider can serve as a connection channel between the network communications and computing devices of its subscribers. It suits to note that the network service provider may implement various other equipment, devices, network nodes interconnected by one or more wired or wireless network links to provide network connectivity to subscribers. Network nodes can typically include switches, of the routers, access points and data links that can facilitate there communication between various subscriber hosts (e.g. computers server, client computers, mobile devices, etc.) that can produce and consume data traffic. In another example, the examples can be implemented on various network devices used by establishments /
individual organizations, providing network connectivity and security to one or many of its users.

[0058] En référence aux figures 1 à 18, le système informatique 100 peut inclure un processeur 102, lorsque le processeur 102 comprend au moins un coeur de traitement 104. Le système informatique 100 peut en outre comprendre un moteur d'analyse de protocole 106 et un moteur d'étiquetage 108. Dans un exemple, le moteur d'analyse de protocole 106 et le moteur d'étiquetage 108 peuvent être exécutables sur au moins un coeur de traitement 104. [0058] With reference to Figures 1 to 18, the computer system 100 may include a processor 102, when the processor 102 comprises at least one core processing 104. The computer system 100 may further include an engine protocol analysis engine 106 and a labeling engine 108. In one example, the protocol analysis engine 106 and labeling engine 108 can be executable on at least one processing core 104.

[0059] Le terme moteur d'analyse 106 sera utilisé pour désigner le terme moteur d'analyse de protocole 106 . [0059] The term analysis engine 106 will be used to designate the term protocol analysis engine 106.

[0060] Le processeur 102 comprend au moins un coeur de traitement configuré pour traiter un nombre prédéterminé de paquets de données par minute et un moteur d'analyse de protocole 106 sur au moins un c ur de traitement 104. [0060] The processor 102 comprises at least one processing core configured to process a predetermined number of data packets per minute And a protocol analysis engine 106 on at least one processing core 104.

[0061] Dans un exemple d'implémentation, le moteur d'analyse de protocole 106 analyse le flux de données comprenant des lots de paquets définis chacun par une chaine de protocoles de communication rattachée à au moins une session. Ledit moteur d'analyse de protocole 106 est configuré pour analyser le premier protocole Pi d'une chaine de protocoles de communication selon une classification par détection explicite S10, S11, S12, S13 pour vérifier si ledit premier paquet Pi annonce le protocole de communication du paquet de données suivant Pi+1 de la chaîne de protocoles. [0061] In an example implementation, the analysis engine of protocol 106 analyzes the data stream comprising batches of packets each defined by a chain of communication protocols attached to at least one session. Said protocol analysis engine 106 is configured to analyze the first Pi protocol of a chain of communication protocols according to a classification by detection explicit S10, S11, S12, S13 to check if said first packet Pi announces THE
communication protocol of the following data packet Pi+1 of the chain of protocols.

[0062] En cas d'annonce, le protocole du paquet suivant, ainsi annoncé, est identifié S100. [0062] In the event of an announcement, the protocol of the following packet, as well announced, is identified S100.

[0063] En cas de non-annonce, le moteur d'analyse 106 est propre à
analyser le paquet suivant Pi+1 pour vérifier s'il est attaché à une chaine de protocoles connue et stockée dans la base de données dynamique BDDS comprenant des chaines de protocoles déjà identifiées, selon une classification par détection de session S20, S21, S22.
[0063] In the event of non-announcement, the analysis engine 106 is suitable for analyze the next packet Pi+1 to check if it is attached to a protocol chain known and stored in the dynamic database BDDS including chains of protocols already identified, according to a classification by session detection S20, S21, S22.

[0064] Le moteur d'analyse de protocole 106 est configuré pour appliquer une méthode de classification par détection de session S20 consistant à vérifier si le protocole PH-1 est attaché à une chaine de protocoles connue selon un arbre de décision dynamique par interrogation d'une base de données dynamique de session BDDS comprenant des chaines de protocoles identifiées. [0064] The protocol analysis engine 106 is configured to apply a classification method by session detection S20 consisting of checking if the PH-1 protocol is attached to a known protocol chain according to a tree of dynamic decision by querying a dynamic database of session BDDS including identified protocol chains.

[0065] En pratique, le système informatique 100 est, en outre, couplé à la base de données de connaissances 110 sur les paquets de données comprenant un étage dynamique BDDS propre à stocker les sessions, comme on le décrira plus en détail ci-après, et un étage BDC propre à stocker des connaissances relatives aux protocoles. Il convient de noter que si la base de données de connaissances 110 sur les paquets de données a été illustrée comme ainsi distincte du système informatique 100, la base de données de connaissances 110 sur les paquets de données peut également être hébergée dans le système informatique 100 en fonction de ses capacités. [0065] In practice, the computer system 100 is, moreover, coupled to the base of knowledge data 110 on data packets comprising a stage dynamic BDDS specific to storing sessions, as will be described more in detail below, and a BDC stage suitable for storing knowledge relating to protocols. It should be noted that if the knowledge database 110 on the data packets was illustrated as thus distinct from the system computer science 100, 110 data packet knowledge database can also be hosted in the computer system 100 depending on its abilities.

[0066] En cas d'attache, les protocoles de la chaine de protocole connue sont identifiés (étape S100), le protocole PH-1 est identifié, et le moteur d'analyse 106 est apte à analyser le protocole Pi+2 par répétition des étapes de classification par détection explicite S10, de classification par détection de session S20. [0066] In the event of attachment, the protocols of the protocol chain known are identified (step S100), the PH-1 protocol is identified, and the motor analysis 106 is capable of analyzing the Pi+2 protocol by repeating the classification steps by explicit detection S10, classification by session detection S20.

[0067] En cas de non-attache, le moteur d'analyse 106 est apte à
analyser le protocole suivant Pi-i-1 selon une classification par inspection profonde de paquet S40, S42, S44, S46.
[0067] In the event of non-attachment, the analysis engine 106 is able to analyze the protocol following Pi-i-1 according to classification by deep inspection of S40 package, S42, S44, S46.

[0068] Selon une classification par inspection profonde de paquet S40, le moteur d'analyse 106 est configuré pour identifier le protocole de communication du paquet Pi+1 selon un arbre de décision dynamique corrélé à une base de données de connaissances B D C comprenant des paramètres d'analyse de protocoles et une base de marqueurs spécifiques, aussi appelés labels (voir figure 11 et figure 15) à
chaque protocole connu.
[0068] According to classification by deep packet inspection S40, the engine analysis 106 is configured to identify the communication protocol of the pack Pi+1 according to a dynamic decision tree correlated to a database of BDC knowledge including protocol analysis parameters and base specific markers, also called labels (see figure 11 and figure 15) to each known protocol.

[0069] En cas de défaut d'identification du protocole PH-1, le moteur d'analyse 106 est apte à émettre une liste de candidats de protocoles potentiels à prendre en compte selon au moins deux branches de détection possible, chaque détection étant rattachée à une sous-session déterminée pour analyser le ou les protocoles suivants Pi+n avec r-i2 par répétition des analyses selon la classification par détection explicite S10, par détection de session S20, et par inspection profonde de paquet S40 jusqu'à identifier au moins un protocole dont l'identité est certaine. [0069] In the event of a failure to identify the PH-1 protocol, the engine analysis 106 is capable of issuing a list of potential protocol candidates to be taken into account account according to at least two possible detection branches, each detection being attached to a specific sub-session to analyze the protocol(s) following Pi+n with r-i2 by repetition of the analyzes according to the classification by explicit detection S10, by session detection S20, and by inspection deep of S40 packet until identifying at least one protocol whose identity is certain.

[0070] En cas d'identification d'un protocole Pi+n dont l'identité est certaine par le moteur d'analyse 106, sur une branche de détection, ledit moteur d'analyse 106 est apte à valider rétroactivement S60 la branche de détection, et à écarter les autres branches de détection restantes non validées. [0070] In the event of identification of a Pi+n protocol whose identity is certain by the analysis engine 106, on a detection branch, said analysis engine 106 is capable of retroactively validating S60 the detection branch, and of discarding THE
other remaining detection branches not validated.

[0071] En cas d'absence d'identification d'un protocole Pi+n dont l'identité
est certaine sur une branche de détection, le moteur d'analyse 106 est apte à classifier le protocole Pi+1 comme inconnu S60 rétroactivement et continuer l'analyse des paquets de données suivants.
[0071] In the event of absence of identification of a Pi+n protocol whose identity is certain on a detection branch, the analysis engine 106 is able to classify the protocol Pi+1 as unknown S60 retroactively and continue the analysis of following data packets.

[0072] Le moteur d'analyse de protocole 106 est en outre apte à calculer une empreinte numérique de session Hi+n à partir d'une fonction de hachage choisie après chaque étape de classification S10, 320, S40, ladite empreinte numérique Hi+n étant calculée sur la base du premier protocole identifié, et sur l'empreinte numérique précédemment calculée Hi+n-1 de la chaîne de protocoles déjà
identifiée sans prise en compte du contenu attaché ou payload.
[0072] The protocol analysis engine 106 is also capable of calculating a Hi+n session fingerprint from a chosen hash function after each classification step S10, 320, S40, said digital fingerprint Hi+n being calculated on the basis of the first identified protocol, and on the imprint previously calculated digital Hi+n-1 of the protocol chain already identified without taking into account the attached content or payload.

[0073]Chaque empreinte numérique Hi+n est ainsi calculée sur la base de paramètres ou tuple choisis et spécifiques à chaque type de protocole, chaque type de protocole disposant d'un nombre propre de tuple défini, soit n-Tuples. [0073]Each digital fingerprint Hi+n is thus calculated on the basis of parameters or tuple chosen and specific to each type of protocol, each type of protocol with its own number of defined tuples, i.e. n-Tuples.

[0074] Pour chaque protocole, un choix des paramètres pertinents est fait de manière dynamique, permettant ainsi de gérer les sessions complètes hors TCP/UDP. [0074] For each protocol, a choice of relevant parameters is made from manner dynamic, thus making it possible to manage complete sessions outside of TCP/UDP.

[0075] Le moteur d'analyse 106 est ensuite apte à enregistrer l'empreinte numérique de session Hi+n calculée après chaque étape d'identification de protocole suivant l'étape S40 ou après l'étape de validation rétroactive S60, dans une table de hash intégrée dans la base de données dynamique de session BDDS, chaque empreinte numérique Hi+n étant liée à au moins une session choisie, lesdites empreintes numériques Hi+n calculées après chaque étape de classification de chaque protocole par inspection profonde de paquet S40 étant apte à être mise à jour rétroactivement en cas d'identification retardée d'un protocole selon l'étape de vérification S60. [0075] The analysis engine 106 is then able to record the imprint digital session Hi+n calculated after each identification step of protocol following step S40 or after retroactive validation step S60, in a table of hash integrated into the dynamic BDDS session database, each Hi+n digital fingerprint being linked to at least one chosen session, said Hi+n digital fingerprints calculated after each classification step of each protocol by deep inspection of S40 packet being able to be implemented up to date retroactively in the event of delayed identification of a protocol according to the step of S60 verification.

[0076] En pratique, lorsque le moteur d'analyse 106 n'identifie pas un protocole Pi+1, et émet une liste de candidats de protocoles potentiels à prendre en compte selon au moins deux branches de détection possible B1, B2 pour détection retardée, chaque détection étant rattachée à une sous-session déterminée pour analyser le ou les protocoles suivants Pi+n avec r-12 par répétition des analyses selon la classification par détection explicite S10, par détection de session S20, et par inspection profonde de paquet S40 jusqu'à identifier au moins un protocole dont l'identité est certaine, le moteur d'analyse 106 calcule une empreinte numérique de session Hi+n à partir d'une fonction de hachage choisie, pour chaque branche de détection B1, B2 étant rattachée à une sous-session déterminée pour analyser le ou les protocoles suivants Pi+n. [0076] In practice, when the analysis engine 106 does not identify not a protocol Pi+1, and issues a list of potential protocol candidates to take into account account according to at least two possible detection branches B1, B2 for detection delayed, each detection being attached to a determined sub-session to analyze the OR
the following protocols Pi+n with r-12 by repeating the analyzes according to the classification by explicit detection S10, by session detection S20, and by S40 deep packet inspection until at least one protocol is identified of which the identity is certain, the analysis engine 106 calculates a fingerprint digital Hi+n session from a chosen hash function, for each branch of detection B1, B2 being attached to a specific subsession to analyze the OR
the following protocols Pi+n.

[0077] Les empreintes numériques de session Hi+n ainsi calculées permettent l'identification a posteriori d'un ou plusieurs protocoles préalablement non identifiés, même si la détection de la session nécessite plusieurs paquets, la table de hash pourra être remise à jour pour prendre en compte ces nouveaux éléments et ainsi ne jamais perdre un seul paquet ou données associées. [0077] The Hi+n session digital fingerprints thus calculated allow the a posteriori identification of one or more protocols previously not identified, even if session detection requires several packets, the table of hash may be updated to take these new elements into account and so do not never lose a single packet or associated data.

[0078] En outre, le moteur d'analyse 106 enregistre l'empreinte numérique de session Hi+n de chaque branche de détection B1 , B2 rattachée à une chaine de protocole, l'enregistrement étant configuré pour attribuer un identifiant unique à
chaque branche de détection_
[0078] In addition, the analysis engine 106 records the fingerprint digital Hi+n session of each detection branch B1, B2 attached to a chain of protocol, the record being configured to assign an identifier unique to each detection branch_

[0079] En référence à la figure 8, à titre d'exemple, les empreintes numériques H1, H2, et 1-13 sont calculées respectivement après identification des protocoles Pi, PH-1 et Pi+2 de la chaîne de protocole, et lorsque la classification selon une inspection profonde de paquets S40 échoue à identifier le protocole PH-1, une empreinte numérique H2T est calculée, et dans le cas où l'identification du protocole Pi+3 valide la chaine de protocole, et que PH-1 peut être déduit, alors, Pi+1 est validé
et l'empreinte numérique H2T est mise à jour par calcul et enregistrement d'une nouvelle empreinte numérique H2.
[0079] With reference to Figure 8, by way of example, the H1 digital fingerprints, H2, and 1-13 are calculated respectively after identification of the protocols Pi, PH-1 and Pi+2 of the protocol chain, and when the classification according to a inspection Deep S40 packet fails to identify PH-1 protocol, fingerprint digital H2T is calculated, and in the case where the protocol identification Pi+3 valid the protocol chain, and PH-1 can be deduced, then, Pi+1 is validated And the H2T digital footprint is updated by calculating and recording a new H2 digital fingerprint.

[0080] Selon un mode de réalisation particulier de l'invention, le moteur d'analyse 106, en cas de détection de protocoles tunnelés, multiplexés, ou multicanaux détectés de manière certaine, est apte à générer au moins une branche de détection Ai, A2, Bi, B2, Cl, 02 par protocole vérifié à prendre en compte pour la détection ultérieure. [0080] According to a particular embodiment of the invention, the analysis engine 106, in case of detection of tunneled, multiplexed, or multichannel protocols detected with certainty, is capable of generating at least one branch of detection Ai, A2, Bi, B2, Cl, 02 by verified protocol to be taken into account for the subsequent detection.

[0081] Pour chaque branche de détection générée Ai, A2, Bi, B2, Cl, C2, le moteur d'analyse 106 calcule une empreinte numérique de session Hi+n à partir d'une fonction de hachage choisie, chaque branche de détection étant rattachée à
une sous-session déterminée pour analyser le ou les protocoles suivants PH-n;
et
[0081] For each generated detection branch Ai, A2, Bi, B2, Cl, C2, the analysis engine 106 calculates a Hi+n session digital fingerprint from of a chosen hash function, each detection branch being attached has a sub-session determined to analyze the following protocol(s) PH-n;
And

[0082] -Enregistre l'empreinte numérique de session Hi+n de chaque branche de détection rattachée à une chaine de protocole, l'enregistrement étant configuré
pour attribuer un identifiant unique à chaque branche de détection du/des protocoles tunnelés, multiplexés ou multicanaux détectés.
[0082] -Records the Hi+n session digital fingerprint of each branch of detection attached to a protocol chain, the recording being configured to assign a unique identifier to each detection branch of the tunneled, multiplexed or multichannel protocols detected.

[0083]Avantageusement, le hash calculé évolue à mesure que le paquet de données est lu, permettant de pouvoir faire analyser et détecter tous les protocoles avec une seule sonde (c'est-à-dire les enchainements simples, complexes, tunnelés, multicanaux et multiplexés), et grâce à cette répétition de calcul de hash, sur chaque couche, chacun des identifiants est réellement unique, peu importe la longueur de la chaine de protocoles qui compose le ou les paquets. [0083] Advantageously, the calculated hash evolves as the packet of data is read, making it possible to analyze and detect all protocols with a single probe (i.e. simple sequences, complex, tunneled, multichannel and multiplexed), and thanks to this repetition of hash calculation, on each layer, each of the identifiers is actually unique, regardless of the length of the protocol chain that makes up the or THE
packages.

[0084] Le système 100 comprend, en outre, le moteur d'étiquetage 108, propre à
associer une étiquette aux paquets de données en fonction des protocoles ainsi identifiés.
[0084] The system 100 further comprises the labeling engine 108, specific to associate a label with data packets based on protocols as well identified.

[0085] Le moteur d'analyse 106 est apte à enregistrer l'état de session si la session courante est inconnue avec une empreinte numérique calculée avec n-tuples S31, 32 et S33. [0085] The analysis engine 106 is capable of recording the state of session if the current session is unknown with a fingerprint calculated with n-tuples S31, 32 and S33.

[0086] La figure 2 illustre les schémas du système informatique 100 pour l'analyse du flux de données des paquets de données reçus via le réseau de communication, conformément à un exemple de mise en uvre de la présente invention. [0086] Figure 2 illustrates the diagrams of the computer system 100 for analysis of the data flow of data packets received via the network of communication, in accordance with an example of implementation of the present invention.

[0087] Comme déjà décrit, le système informatique 100 peut inclure le processeur 102, ou le processeur 102 peut inclure plusieurs coeurs de traitement 104-1, 104-2, 104-3, ..., 104-n. Les fonctions du bloc fonctionnel étiqueté comme processeur(s) , peuvent être fournies par l'utilisation de matériel dédié ainsi que de matériel capable d'exécuter des instructions. Lorsqu'elles sont fournies par un processeur, les fonctions peuvent être fournies par un seul processeur dédié, par un seul processeur partagé
ou par une pluralité de processeurs individuels, dont certains peuvent être partagés.
En outre, l'utilisation explicite du terme processeur ne serait pas interprétée comme se référant exclusivement au matériel capable d'exécuter des instructions et peut implicitement inclure, sans s'y limiter, le matériel de processeur de signal numérique (DSP), le processeur réseau, le circuit intégré spécifique à
l'application (AS IC), le FPGA (field programmable gate array), la mémoire en lecture seule (ROM) pour le stockage des instructions, la mémoire vive (RAM), le stockage non volatil.
D'autres matériels, standard et/ou personnalisés, peuvent également être inclus.
[0087] As already described, the computer system 100 can include the processor 102, or the processor 102 may include several processing cores 104-1, 104-2, 104-3, ..., 104-n. The functional block functions labeled as processor(s), can be provided through the use of dedicated hardware as well as equipment capable to execute instructions. When provided by a processor, the functions can be provided by a single dedicated processor, by a single processor sharing or by a plurality of individual processors, some of which may be shared.
Furthermore, explicit use of the term processor would not be interpreted as referring exclusively to hardware capable of executing instructions and may implicitly include, but is not limited to, the processor hardware of signal digital processor (DSP), the network processor, the integrated circuit specific to the app (AS IC), FPGA (field programmable gate array), read-only memory (ROM) for storing instructions, random access memory (RAM), storage not volatile.
Other materials, standard and/or personalized, can also be included.

[0088] Le système informatique 100 peut en outre inclure une mémoire 202 couplée au processeur 102, où la mémoire 202 peut inclure tout support lisible par ordinateur, y compris, par exemple, la mémoire volatile (par exemple, la RAM) et/ou la mémoire non volatile (par exemple, EPROM, mémoire flash, etc.). [0088] The computer system 100 can also include a memory 202 coupled to processor 102, where memory 202 can include any readable media by computer, including, for example, volatile memory (e.g. RAM) and or non-volatile memory (e.g. EPROM, flash memory, etc.).

[0089] En outre, le système informatique 100 peut inclure une carte d'interface réseau (NIC) 204 couplée au processeur 102 et à la mémoire 202. La carte réseau 204 peut être un composant intégré du système informatique 100 ou peut être un composant séparé, couplé à l'extérieur au système informatique 100. [0089] In addition, the computer system 100 may include a interface card network (NIC) 204 coupled to processor 102 and memory 202. The card network 204 may be an integrated component of the computer system 100 or may be a separate component, externally coupled to the computer system 100.

[0090] Le système informatique 100 peut, en outre, inclure les moteurs 206, ou les moteurs 206 peuvent inclure le moteur d'analyse de protocole 106, le moteur d'étiquetage 108 et le moteur d'analyse de contenu 112. Dans un exemple, les moteurs 206 peuvent être implémentés comme une combinaison de matériel et de firmware. Dans les exemples décrits ici, de telles combinaisons de matériel et de micrologiciels peuvent être mises en oeuvre de plusieurs manières différentes.
Par exemple, le micrologiciel du moteur peut être des instructions exécutables du processeur, stockées sur un support de stockage non transitoire, lisible par machine et le matériel du moteur peut inclure une ressource de traitement (par exemple, implémentée en tant que processeur unique ou une combinaison de plusieurs processeurs) pour exécuter ces instructions.
[0090] The computer system 100 can, in addition, include the 206 engines, or the engines 206 may include protocol analysis engine 106, engine labeling engine 108 and the content analysis engine 112. In one example, the 206 motors can be implemented as a combination of hardware and firmware. In the examples described here, such combinations of hardware and of Firmware can be implemented in several different ways.
By example, the engine firmware may be executable instructions from the processor, stored on a non-transitory storage medium, readable by machine and the engine hardware may include a processing resource (e.g.
example, implemented as a single processor or a combination of several processors) to execute these instructions.

[0091] Dans les présents exemples, le support de stockage lisible par machine peut stocker des instructions qui, lorsqu'elles sont exécutées par la ressource de traitement, implémentent les fonctionnalités du moteur. Dans de tels exemples, le système informatique 100 peut inclure le support de stockage lisible par machine stockant les instructions et la ressource de traitement pour exécuter les instructions.
Dans d'autres exemples du présent sujet, le support de stockage lisible par machine peut être situé à un endroit différent, mais accessible au système informatique 100 et au processeur 102.
[0091] In the present examples, the readable storage medium per machine can store instructions which, when executed by the resource of processing, implement the engine functionalities. In such examples, THE
computer system 100 may include the human-readable storage medium machine storing the instructions and processing resource to execute the instructions.
In other examples of the present subject, the storage medium readable by machine may be located in a different location, but accessible to the system computer science 100 and to processor 102.

[0092] Le système informatique 100 peut, en outre, inclure les données 208, qui servent, entre autres, de référentiel pour stocker des données qui peuvent être récupérées, traitées, reçues ou générées par le moteur d'analyse de protocole 106, le moteur d'étiquetage 108 et le moteur d'analyse de contenu 112. Les données 208 peuvent inclure les données d'analyse de protocole 210, les données d'étiquetage 212, les données d'analyse de contenu 214 et d'autres données 216. Dans un exemple, les données 208 peuvent être stockées dans la mémoire 202. [0092] The computer system 100 can, in addition, include the data 208, which serve, among other things, as a repository for storing data that can be retrieved, processed, received or generated by the protocol analysis engine 106, the labeling engine 108 and content analysis engine 112. Data 208 may include protocol analysis data 210, data labeling 212, content analysis data 214 and other data 216. In a example, data 208 can be stored in memory 202.

[0093] Dans un exemple d'implémentation, la carte réseau 204 peut recevoir le flux de données des paquets de données via le réseau de communication. La carte réseau 204 peut séparer le flux de données en plusieurs files d'attente RX de traitement et allouer chaque file d'attente de traitement à au moins un coeur de traitement 104-1, 104-2, 104-3, ..., 104-n. Dans un exemple, la carte réseau 204 peut séparer le flux de données dans les files d'attente de traitement multiples en fonction de l'algorithme RSS (Receive Side Scaling) mise à l'échelle côté réception. Un tel algorithme permet de distribuer des paquets sur plusieurs files d'attentes Psa, Psb (queues de réception). Il existe plusieurs algorithmes de distribution, le plus utilisé se nomme Toeplitz de microsoft (marque déposée). [0093] In an example implementation, the network card 204 can receive the Data flow of data packets through the communication network. There map network 204 can separate the data stream into multiple RX queues of processing and allocate each processing queue to at least one core of treatment 104-1, 104-2, 104-3, ..., 104-n. In an example, the network card 204 can separate data flow into multiple processing queues into function of the RSS (Receive Side Scaling) algorithm scaling on the reception side. A
such algorithm allows packets to be distributed across multiple queues Psa, Psb (reception queues). There are several distribution algorithms, the no longer used names Toeplitz from Microsoft (registered trademark).

[0094] Il convient de noter que chacun des multiples coeurs de traitement 104-1, 104-2, 104-3, .., 104-n peut permettre d'exécuter différentes instances des multiples moteurs sur ceux-ci. Par exemple, des instances distinctes du moteur d'analyse de protocole 106, du moteur d'étiquetage 108 et du moteur d'analyse de contenu peuvent être exécutées en parallèle sur chacun des coeurs de traitement 104-1, 2, 104-3 104-n. Toutefois, pour faciliter la compréhension, l'exemple d'implémentation suivant a été expliqué en ce qui concerne un seul coeur de traitement 104-1 du processeur 102, ci-après dénommé le coeur de traitement 104. [0094] It should be noted that each of the multiple cores of treatment 104-1, 104-2, 104-3, .., 104-n can allow different instances of the multiple motors on these. For example, separate instances of the analytics engine of protocol 106, labeling engine 108 and content analysis engine can be executed in parallel on each of the processing cores 104-1, 2, 104-3 104-n. However, to facilitate understanding, The example following implementation has been explained with regard to a single core of treatment 104-1 of the processor 102, hereinafter referred to as the processing core 104.

[0095] En référence à la figure 5, on a représenté un exemple de réception et de distribution des paquets. [0095] With reference to Figure 5, an example of reception and packet distribution.

[0096] La carte réseau 204 reçoit les paquets selon l'étape S200. [0096] The network card 204 receives the packets according to step S200.

[0097] Selon l'étape S202 la carte réseau envoie directement les paquets vers la mémoire cache 202. [0097] According to step S202, the network card directly sends the packets to cache memory 202.

[0098] Selon l'étape S204, la carte réseau envoie les champs des paquets sur de multiples queues RX (files d'attente) et choisit la queue correcte selon l'algorithme RSS (receive side scaling) mise à l'échelle côté réception. [0098] According to step S204, the network card sends the fields of the packages on multiple RX queues (queues) and chooses the correct queue according to the algorithm RSS (receive side scaling) scaling on the reception side.

[0099] Selon l'étape S206, chaque coeur de CPU est lié à une queue RX. [0099] According to step S206, each CPU core is linked to a queue RX.

[00100] Selon l'étape S208, chaque coeur de CPU récupère un lot LOT de paquets depuis la mémoire cache (RAM) 202. [00100] According to step S208, each CPU core recovers a LOT batch of packets from cache memory (RAM) 202.

[00101] Selon l'étape S210, le paquet Pn est reçu par un coeur de CPU, le premier protocole dans la chaine de protocole (ou pile) est analysé selon l'analyse DAP (S212) conforme à l'invention. [00101] According to step S210, the Pn packet is received by a CPU core, the first protocol in the protocol chain (or stack) is analyzed according to the analysis DAP (S212) in accordance with the invention.

[00102] Dans un exemple, la base de données de paquets dynamiques de sessions BDDS peut être stockée dans les données d'analyse de protocole 210. Dans un autre exemple, la base de données BDDS peut être incluse dans la base de données de connaissances 110 sur les paquets de données. [00102] In one example, the dynamic session packet database BDDS can be stored in protocol 210 analysis data. In a other example, the BDDS database can be included in the database of 110 knowledge about data packets.

[00103] Dans cet exemple, en plus de la base de données dynamique de sessions BDDS, la base de données de connaissances de paquets de données 110 peut également inclure une base de données de paquets de données statiques. La base de données statique sur les paquets de données peut inclure des marqueurs basés sur une connaissance empirique des caractéristiques des protocoles, et dans lesquels la connaissance empirique comprend des moyens algorithmiques de détection de protocoles basés sur des normes sur la localisation, des liens logiques entre les protocoles de communication, les requêtes pour commentaires RFC et les modèles de fréquence des protocoles de communication_ [00103] In this example, in addition to the dynamic session database BDDS, 110 data packet knowledge database can also include a database of static data packets. The base static data on data packets may include markers based on an empirical knowledge of the characteristics of the protocols, and in which empirical knowledge includes algorithmic means of detecting protocols based on standards on localization, logical links between THE
communication protocols, requests for RFC comments and templates frequency of communication protocols_

[00104] Le moteur d'analyse de protocole 106 peut également stocker le protocole de communication ainsi identifié dans les données d'étiquetage 212. Le moteur d'étiquetage 108 peut alors accéder aux données d'étiquetage 212 et associer une étiquette sur les paquets de données ainsi analysés et dont les protocoles sont ainsi identifiés. [00104] The protocol analysis engine 106 can also store the protocol communication thus identified in the labeling data 212. The motor labeling device 108 can then access the labeling data 212 and associate a label on the data packets thus analyzed and whose protocols are like this identified.

[00105] Le moteur d'étiquetage 108 transmet ensuite les paquets de données étiquetés au moteur d'analyse de contenu 112. Le moteur d'analyse de contenu analyse et extrait les paquets de données en fonction de l'étiquette qui leur est associée. Par exemple, le moteur d'analyse de contenu 112 peut analyser et extraire un premier paquet de données avec une étiquette indiquant un premier protocole de communication basé sur le premier protocole de communication. De même, le moteur d'analyse de contenu 112 peut analyser et extraire un deuxième paquet de données avec l'étiquette indiquant un deuxième protocole de communication différemment du premier paquet de données. Le moteur d'analyse de contenu 112 peut ensuite stocker les paquets de données analysés et extraits dans les données d'analyse de contenu 214. [00105] The labeling engine 108 then transmits the data packets tagged to the content analysis engine 112. The content analysis engine analyzes and extracts data packets based on their label East associated. For example, the content analysis engine 112 can analyze and extract a first data packet with a label indicating a first protocol of communication based on the first communication protocol. Likewise, the engine content analysis 112 can analyze and extract a second packet of data with the label indicating a second communication protocol differently of first data packet. The content analysis engine 112 can then store the data packets analyzed and extracted into the analysis data of content 214.

[00106] Dans un exemple, le moteur d'analyse de contenu 112 peut analyser et extraire les paquets de données (ou des métadonnées desdits paquets) pour surveiller et visualiser le trafic de données, détecter une réduction de la qualité de service, détecter les cyberattaques et identifier toute incohérence dans la configuration du réseau. Si le moteur d'analyse de contenu 112 détecte l'un des événements mentionnés ci-dessus sur la base de l'analyse et de l'extraction de données, le moteur d'analyse de contenu 112 peut générer un déclencheur indiquant l'occurrence de l'événement lors de l'analyse des données et de l'extraction d'un ensemble de paquets de données du flux de données. Dans une telle situation, l'ensemble des paquets de données peut être stocké pour un traitement ultérieur. Dans un exemple, l'ensemble des paquets de données peut être stocké dans les autres données 216. [00106] In one example, the content analysis engine 112 can analyze and extract data packets (or metadata from said packets) to to watch and visualize data traffic, detect a reduction in the quality of service, detect cyberattacks and identify any inconsistencies in the configuration of the network. If the content analysis engine 112 detects one of the events mentioned above based on data analysis and mining, engine content analysis 112 can generate a trigger indicating the occurrence of the event when analyzing the data and extracting a set of packages of the data flow. In such a situation, all of the packages of Data can be stored for further processing. In an example, all data packets can be stored in other data 216.

[00107] La figure 3 illustre le système informatique 100, conformément à un autre exemple de mise en oeuvre de la présente invention. Comme déjà décrit, le système informatique 100 peut inclure le processeur 102 ayant plusieurs coeurs de traitement 104-1, 104-2, 104-3, ..., 104-n. Le système informatique 100 peut, en outre, inclure la carte réseau 204 couplée au processeur 102 et les multiples coeurs de traitement 104-1, 104-2, 104-3, ..., 104-n qui y sont inclus. En outre, chacun des coeurs de traitement multiples 104-1, 104-2, 104-3, ..., 104-n peut permettre d'exécuter des instances distinctes du moteur d'analyse de protocole 106, du moteur d'étiquetage 108 et du moteur d'analyse de contenu 112. En outre, le système informatique 100 peut être couplé à la base de données de connaissances sur les paquets de données 110. [00107] Figure 3 illustrates the computer system 100, in accordance with a other example of implementation of the present invention. As already described, the system computer 100 may include processor 102 having multiple cores treatment 104-1, 104-2, 104-3, ..., 104-n. The computer system 100 can, in addition, include the network card 204 coupled to processor 102 and the multiple cores of treatment 104-1, 104-2, 104-3, ..., 104-n which are included therein. Furthermore, each of the hearts of treatment multiples 104-1, 104-2, 104-3, ..., 104-n can make it possible to execute instances distinct from the protocol analysis engine 106, the labeling engine 108 and of content analysis engine 112. In addition, the computer system 100 can be coupled to the data packet knowledge database 110.

[00108] Le moteur d'analyse de contenu 112, exécuté sur le coeur de traitement 104-1, peut ensuite analyser et extraire le premier paquet de données en fonction de l'étiquette de données qui lui est associée. [00108] The content analysis engine 112, executed on the processing core 104-1, can then analyze and extract the first data packet by function of the data label associated with it.

[00109] Dans un exemple, le moteur d'analyse de protocole 106 et le moteur d'analyse de contenu 112 peuvent effectuer de manière séquentielle l'analyse de protocole DAP comme illustrée en figures 6 et 7, suivie de l'analyse et de l'extraction de données DAC pour le flux de données reçu via le réseau de communication.
Par exemple, une fois que le moteur d'analyse de protocole 106 a identifié le protocole de communication pour le premier paquet de données, le premier paquet de données peut être étiqueté et transmis au moteur d'analyse de contenu 112 pour l'analyse et l'extraction de données.
[00109] In one example, the protocol analysis engine 106 and the engine content analysis tool 112 can sequentially perform the analysis of DAP protocol as illustrated in Figures 6 and 7, followed by analysis and extraction data DAC for the data stream received via the communication network.
By example, once the protocol analysis engine 106 has identified the protocol of communication for the first data packet, the first data packet can be labeled and transmitted to the content analysis engine 112 for analysis and data extraction.

[00110] En alternative, alors que le moteur d'analyse de contenu 112 effectue l'analyse et l'extraction de données sur le premier paquet de données Pn, le moteur d'analyse de protocole 106 peut simultanément commencer à exécuter l'analyse DAP
pour un deuxième paquet de données Pn+1 suivant le premier paquet de données dans le flux de données Pn.
[00110] Alternatively, while the content analysis engine 112 performs analyzing and extracting data on the first data packet Pn, the engine protocol analysis 106 can simultaneously start executing the analysis DAP
for a second data packet Pn+1 following the first data packet in the Pn data stream.

[00111] En pratique, l'exécution de l'analyse DAP peut être suivie de manière séquentielle par l'analyse et de l'extraction DAC des données pour les paquets de données sur un seul coeur de traitement du processeur. [00111] In practice, the execution of the DAP analysis can be followed in a manner sequential analysis and extraction of DAC data for packets of data on a single processing core of the processor.

[00112] En alternative, l'analyse DAP et de l'extraction DAC des données qui suit l'analyse DAP peut être traitée en parallèle sur un ou plusieurs coeurs ou machines dédiées, ce qui facilite l'évolutivité pour gérer un flux plus élevé de données reçues du réseau de communication. Ainsi, les techniques décrites ci-dessus peuvent faciliter le traitement des flux de données ayant un trafic de données supérieur à 100 Gbps. [00112] Alternatively, DAP analysis and DAC extraction of data which follows DAP analysis can be processed in parallel on one or more cores or machines dedicated, which facilitates scalability to handle a higher flow of data received from communications network. Thus, the techniques described above can facilitate the processing data streams with data traffic greater than 100 Gbps.

[00113] Dans un autre exemple, comme illustré à la figure 4, une instance du moteur d'analyse de protocole 106 ainsi que plusieurs instances du moteur d'analyse de contenu 112 peuvent être exécutées sur le coeur de traitement 104-1.
Autrement dit, une fois que le moteur d'analyse de protocole 106 a effectué l'analyse DAP sur les paquets de données du flux de données et identifié le protocole de communication pour les paquets de données, le noyau de traitement 104-1 peut permettre l'exécution parallèle de plusieurs instances du moteur d'analyse de contenu 112 pour traiter des paquets de données basés sur différentes étiquettes associées aux paquets de données, les différentes étiquettes étant associées en fonction du protocole de communication identifié pour les paquets de données du flux de données.
[00113] In another example, as illustrated in Figure 4, an instance of the protocol analysis engine 106 as well as several instances of the engine analysis content 112 can be executed on the processing core 104-1.
Otherwise said, once the protocol analysis engine 106 has performed the analysis DAP on the data packets of the data stream and identified the protocol of communication for data packets, the processing core 104-1 can allow execution parallel of several instances of the content analysis engine 112 for treat data packets based on different labels associated with the data packets data, the different labels being associated according to the protocol of communication identified for the data packets of the data flow.

[00114] En pratique, un seul coeur de processeur traite de manière consécutive l'analyse de protocole DAP suivie de l'analyse et extraction de contenu DAC. [00114] In practice, a single processor core processes consecutively DAP protocol analysis followed by DAC content analysis and extraction.

[00115] Dans une optique de scalabilité, il est possible de dédier des coeurs, des processeurs complets ou des machines dédiées dont l'objectif est de faire tourner plusieurs DAC, dans le cas où l'analyse et l'extraction des métadonnées sont trop lourds pour être fait sur un seul coeur de processeur [00115] With a view to scalability, it is possible to dedicate cores, of the complete processors or dedicated machines whose objective is to make turn multiple DACs, in case the analysis and extraction of metadata is too much heavy to be done on a single processor core

[00116] De cette manière, plusieurs paquets de données ayant des étiquettes associées différentes peuvent être traités en parallèle par le noyau de traitement 104-1, augmentant ainsi le débit global des paquets de données analysés et extraits par le système informatique 100 dans un laps de temps donné. [00116] In this way, several data packets having labels different associated can be processed in parallel by the core of treatment 104-1, thus increasing the overall throughput of analyzed data packets and extracted by the computer system 100 in a given period of time.

[00117] En alternative, la conception d'une solution basée sur un traitement asynchrone, en deux temps, des paquets (DAP d'une part et DAC d'autre part) permet une cassure physique, en séparant le traitement DAP du traitement DAC (ici le traitement DAC est à la suite du traitement DAP pour le même paquet de données).
Sur la base des besoins requis par l'utilisateur, les ressources allouées aux DAC
peuvent se trouver congestionnées. Cette cassure permet alors de dédier certains coeurs à un travail unique du DAC. Au-delà des coeurs d'un seul processeur CPU, il est alors possible de dédier des Processeurs complets au DAC, voire même des machines entières.
[00117] Alternatively, the design of a solution based on a treatment asynchronous, two-stage packets (DAP on the one hand and DAC on the other hand) allow a physical break, by separating the DAP processing from the DAC processing (here the DAC processing is following DAP processing for the same packet data).
Based on the needs required by the user, the resources allocated to DAC
may become congested. This break then makes it possible to dedicate some cores to a unique work of the DAC. Beyond single processor cores CPU, it is then possible to dedicate complete processors to the DAC, or even whole machines.

[00118] En référence aux figures 6 à 18, l'invention porte également sur un procédé
d'analyse d'un flux de données de paquets de données reçus via un réseau de communication, le flux de données comprenant des lots de paquets définis chacun par une chaine de protocoles de communication rattachés à au moins une session.
[00118] With reference to Figures 6 to 18, the invention also relates to a process analyzing a data stream of data packets received via a network of communication, the data flow comprising defined batches of packets each by a chain of communication protocols attached to at least one session.

[00119] Le procédé selon l'invention comprend une analyse de protocoles DAP
selon une première étape d'analyse du premier protocole Pi d'une chaine de protocoles de communication selon une étape de classification par détection explicite S10 configurée pour vérifier si le premier protocole Pi annonce le protocole de communication suivant Pi+1 de la chaine de protocoles.
[00119] The method according to the invention comprises an analysis of DAP protocols according to a first step of analysis of the first Pi protocol of a chain of communication protocols according to a detection classification step explicit S10 configured to check if the first Pi protocol announces the communication protocol following Pi+1 of the protocol chain.

[00120] En pratique, en cas d'annonce, le protocole suivant Pi+1 ainsi annoncé
est identifié, tandis qu'en cas de non-annonce, le procédé selon l'invention est configuré pour analyser le protocole suivant Pi+1 selon une étape de classification par détection de session S20.
[00120] In practice, in the event of an announcement, the following protocol Pi+1 thus announced East identified, while in the event of non-announcement, the method according to the invention is configured to analyze the following protocol Pi+1 according to a step of classification by S20 session detection.

[00121] L'étape de classification par détection de session S20 conforme à
l'invention est configurée pour vérifier si le protocole Pi+1 est attaché à
une chaine de protocoles connue selon un arbre de décision dynamique par interrogation d'une base de données dynamique de session BDDS comprenant des chaines de protocoles identifiées.
[00121] The classification step by session detection S20 in accordance with the invention is configured to check whether the Pi+1 protocol is attached to chain of known protocols according to a dynamic decision tree by interrogation a dynamic BDDS session database including chains of identified protocols.

[00122] Selon un mode de réalisation de l'invention, après identification d'un protocole lors de l'étape de classification par détection de session S20, la base de données dynamique de session BDDS est mise à jour. [00122] According to one embodiment of the invention, after identification of a protocol during the classification step by session detection S20, the base of dynamic BDDS session data is updated.

[00123] En cas d'attache, le protocole Pi+1 est identifié, et le protocole Pi+2 est analysé par répétition des étapes de classification par détection explicite S10, de classification par détection de session S20. [00123] In the event of attachment, the Pi+1 protocol is identified, and the Pi+2 protocol is analyzed by repeating the classification steps by explicit detection S10, from classification by session detection S20.

[00124] Alternativement, en cas de non-attache, le protocole Pi+1 est analysé
selon une étape de classification par inspection profonde de paquet S40.
[00124] Alternatively, in the event of non-attachment, the Pi+1 protocol is analyzed according to a classification step by deep packet inspection S40.

[00125] L'étape de classification par inspection profonde de paquet S40 est configurée pour identifier le protocole de communication du paquet Pi+1 selon un arbre de décision dynamique corrélé à une base de données de connaissances BDC comprenant des paramètres d'analyse de protocoles et une base de marqueurs spécifiques à chaque protocole connu. [00125] The classification step by deep packet inspection S40 is configured to identify the communication protocol of the Pi+1 packet according to A
dynamic decision tree correlated to a knowledge database BDC including protocol analysis parameters and a database markers specific to each known protocol.

[00126] En pratique, en cas de détection des marqueurs spécifiques d'un protocole testé, le protocole Pi+1 est alors identifié. [00126] In practice, in the event of detection of specific markers of a protocol tested, the Pi+1 protocol is then identified.

[00127] Selon un mode de réalisation de l'invention, après identification d'un protocole lors de l'étape de classification par inspection profonde de paquets S40, la base de données dynamique de session BDDS est mise à jour. [00127] According to one embodiment of the invention, after identification of a protocol during the classification step by deep packet inspection S40, the BDDS dynamic session database is updated.

[00128] Alternativement, en cas de défaut d'identification du protocole Pi+1, le procédé selon l'invention comprend une sous-étape d'émission d'une liste de candidats de protocoles potentiels pour PH-1, à prendre en compte selon au moins deux branches de détection B1, B2, chaque détection étant rattachée à une sous-session déterminée pour analyser le ou les protocoles suivants Pi+n avec n2 par répétition des étapes de classification par détection explicite S10, de classification par détection de session S20, et de classification par inspection profonde de paquet S40 jusqu'à identifier au moins un protocole dont l'identité est certaine. [00128] Alternatively, in the event of a failure to identify the Pi+1 protocol, THE
method according to the invention comprises a sub-step of transmitting a list of potential protocol candidates for PH-1, to be considered according to less two detection branches B1, B2, each detection being attached to a sub-section session determined to analyze the following protocol(s) Pi+n with n2 by repetition of the classification steps by explicit detection S10, of classification by S20 session detection, and classification by deep inspection of S40 packet until it identifies at least one protocol whose identity is certain.

[00129] En d'autres termes, une branche de détection B1, B2 sera générée sur la base d'une hypothèse d'un protocole potentiel donné, et l'identification de protocole Pi+n après Pi+1 sera mise en uvre par répétition des étapes de classification S10, S20 et S40. [00129] In other words, a detection branch B1, B2 will be generated on there basis of a hypothesis of a given potential protocol, and the identification of protocol Pi+n after Pi+1 will be implemented by repeating the steps of classification S10, S20 and S40.

[00130] Si un protocole Pi+n dont l'identité est certaine est identifié sur une branche de détection B1, B2, la branche de détection B1, B2 sera rétroactivement validée, et les branches de détection restantes non validées seront écartées. [00130] If a Pi+n protocol whose identity is certain is identified on a branch detection branch B1, B2, the detection branch B1, B2 will be retroactively validated, and the remaining uncommitted detection branches will be discarded.

[00131] Selon un mode de réalisation de l'invention, après identification d'un protocole lors des étapes de classification par détection de session S20 et classification par inspection profonde de paquets S40, ou par identification a posteriori, la base de données dynamique de session BDDS est mise à jour. [00131] According to one embodiment of the invention, after identification of a protocol during the classification steps by session detection S20 and classification by deep packet inspection S40, or by identification a subsequently, the dynamic BDDS session database is updated.

[00132] Dans le cas ou l'identification d'un protocole Pi+n dont l'identité est certaine n'est pas possible sur une branche de détection, le protocole Pi-i-1 est alors classifié comme inconnu S60 rétroactivement. [00132] In the case where the identification of a Pi+n protocol of which identity is certain is not possible on a detection branch, the Pi-i-1 protocol is then classified as unknown S60 retroactively.

[00133] Avantageusement, la mise à jour de la base de données dynamique de session BDDS permet une accélération du procédé d'identification, et de limiter les protocoles étiquetés comme inconnus. [00133] Advantageously, updating the dynamic database of BDDS session allows an acceleration of the identification process, and limit the protocols labeled as unknown.

[00134] Le procédé comprend, en outre, une étape d'étiquetage comprenant l'association d'une étiquette aux paquets de données en fonction de chaque session pour lesquels les protocoles ont été identifiés. [00134] The method further comprises a labeling step comprising the association of a label with the data packets according to each session for which the protocols have been identified.

[00135] Le procédé selon l'invention comprend, en outre, après chaque étape de classification S10, S20, S40, une étape de calcul d'une empreinte numérique de session H i+n à partir d'une fonction de hachage choisie, ladite empreinte numérique Hi+n étant calculée sur la base du premier protocole identifié, et sur l'empreinte numérique précédemment calculée Hi+n-1 de la chaine de protocoles déjà identifiée sans prise en compte du contenu attaché. [00135] The method according to the invention further comprises, after each step of classification S10, S20, S40, a step of calculating a digital fingerprint of session H i+n from a chosen hash function, said fingerprint digital Hi+n being calculated on the basis of the first identified protocol, and on the previously calculated digital fingerprint Hi+n-1 of the protocol chain already identified without taking into account the attached content.

[00136] En pratique, chaque empreinte numérique Hi+n est calculée sur la base de paramètres ou tuples dynamiques choisis et spécifiques à chaque type de protocole, chaque type de protocole disposant d'un nombre propre de marqueurs définit aussi appelés n-Tuples. [00136] In practice, each Hi+n digital fingerprint is calculated on the basis of parameters or dynamic tuples chosen and specific to each type of protocol, each type of protocol having its own number of markers defines also called n-Tuples.

[00137] A titre d'exemple, les marqueurs définit aussi appelés n-Tuples peuvent non lim itativement au groupe formé par IP destinataire, IP source, Port destinataire, Port Source, protocole, adresse IP, port, paramètres de qualité de service QoS, Tag de réseau, Volume de la session, taille des paquets, nombre de répétition (retry en anglais), version, type et version de l'algorithme de chiffrement, type de chiffrement, CERT (Computer Emergency Response Team en anglais) du certificat , valeur du SNI (indication du nom du serveur ou Server Name Indication en anglais), Taille des paquets, IP retournée, drapeau d'erreurs (flag error en anglais), nom de domaine, version du client, version du serveur, version d'algorithme de chiffrement, algorithme de compression, horodatage, Version d'IP, nom d'hébergeur (hostname en anglais), durée de bail (lease-time en anglais), URL, agent d'utilisateur, nombre d'octet du contenu attaché, type de contenu, code d'état, entête de cookie, nom du client, service de la requête, valeur du code d'erreur, type de requête, valeur du protocole, horodatage de réponse, niveau de privilège, type et langue du clavier, identification du produit, taille d'écran, ou toute autres métadonnées spécifiques analogues extraites des protocoles dans un ou plusieurs paquets de données de la session validée, métadonnées spécifiques analogues extraites du contenu attaché à un ou plusieurs paquets de données de la session validée [00137] As an example, the defined markers also called n-Tuples can not limited to the group formed by recipient IP, source IP, Port RECIPIENT, Source port, protocol, IP address, port, QoS settings QoS, Network Tag, Session Volume, Packet Size, Repeat Count (retry in English), version, type and version of the encryption algorithm, type of encryption, CERT (Computer Emergency Response Team in English) certificate, SNI value (indication of the server name or Server Name Indication in English), Packet size, IP returned, error flag (flag error in English), domain name, client version, server version, version encryption algorithm, compression algorithm, timestamp, Version of IP, host name (hostname in English), lease duration (lease-time in English), URL, user agent, number of bytes of attached content, content type, coded status, cookie header, client name, request service, code value error, request type, protocol value, response timestamp, level of privilege, keyboard type and language, product identification, size screen, or any other similar specific metadata extracted from the protocols in one or several data packets from the validated session, specific metadata analogs extracted from the content attached to one or more data packets of the validated session

[00138] A titre d'exemple conforme à l'invention, chaque protocole peut avec un ensemble de n-tuples spécifique :
PROTOCOLES EXEMPLES DE METADONNEES EXTRAITES
VLAN et VxLAN Tag de réseau MPLS Id TCP Volume de la session, taille des paquets, nombre de retry TLS version, type et version de l'algorithme de chiffrement, CERT du certificat, valeur du SNI

DNS
m Taille des paquets, IP retournée, Flag d'erreurs, no de domaine, rcode SSH Version du client, version du serveur, version d'algorithme de chiffrement, algorithme de compression Timestamp, Version d'IP, Adresses IP du serveur, adresse IP de DHCP endpoint, le port/protocole d'origine ¨ TCP ou UDP ¨ le hostname du serveur ou du endponit, lease-time,...
HTTP Url, user-agent, nombre d'octet du payload, content-type, status code, header de cookie, nom du client, service requested, valeur du code d'erreur, type de Kerberos requête, valeur du protocole, timestamp de réponse, niveau de privilège, type de chiffrement, ...
LDAP durée de session, nombre de logon-errors, flag de fin de session, code de résultat de query, code d'erreur, ...
RDP cookie username, type et langue du clavier, version du client, product ID, taille d'écran, ...
Tableau d'exemples de métadonnées extractibles pour une liste de protocoles choisis.
[00138] By way of example in accordance with the invention, each protocol can with A
specific set of n-tuples:
PROTOCOLS EXAMPLES OF EXTRACTED METADATA
VLAN and VxLAN Network Tag MPLS ID
TCP Session volume, packet size, number of retry TLS version, type and algorithm version encryption, CERT of certificate, SNI value DNS
m Packet size, returned IP, error flag, domain number, rcode SSH Client version, server version, version algorithm encryption, compression algorithm Timestamp, IP version, Server IP addresses, IP address of DHCP endpoint, the original port/protocol ¨ TCP or UDP ¨ the hostname from the server or endponit, lease-time,...
HTTP Url, user-agent, number of payload bytes, content-type, status code, cookie header, customer name, service requested, error code value, type of Kerberos request, protocol value, response timestamp, level of privilege, encryption type, ...
LDAP session duration, number of logon-errors, end of session flag, query result code, error code, ...
RDP cookie username, keyboard type and language, version client, product ID, screen size, ...
Table of extractable metadata examples for a list of protocols choose.

[00139] L'étape de calcul d'empreinte numérique Hi+n est suivie d'une étape d'enregistrement de ladite empreinte numérique de session Hi+n calculée après chaque étape d'identification de protocole suivant l'étape S40 ou après l'étape de validation rétroactive S60. [00139] The step of Hi+n digital fingerprint calculation is followed by a step recording of said Hi+n session digital fingerprint calculated after each protocol identification step following step S40 or after the stage of retroactive validation S60.

[00140]
L'enregistrement est effectué dans une table de hash intégrée dans la base de données dynamique de session BDDS, chaque empreinte numérique Hi+n étant liée à au moins une session choisie.
[00140]
The recording is carried out in a hash table integrated into the BDDS dynamic session database, each digital fingerprint Hi+n being linked to at least one chosen session.

[00141] En pratique, les empreintes numériques Hi+n calculées après chaque étape de classification de chaque protocole par inspection profonde de paquet étant apte à être mis à jour rétroactivement en cas d'identification retardée d'un protocole selon l'étape de vérification S60. [00141] In practical, the Hi+n digital fingerprints calculated after each classification step of each protocol by deep packet inspection being able to be updated retroactively in the event of delayed identification of a protocol according to verification step S60.

[00142] En d'autres termes, la table de hash est mise à jour si la détection d'au moins un protocole d'une session nécessite la mise en oeuvre d'une détection retardée sur plusieurs paquets S60. [00142] In other words, the hash table is updated if the detection from to least one session protocol requires the implementation of detection delayed on several S60 packets.

[00143] Selon un mode de réalisation de l'invention, en cas de détection de protocoles tunnelés, multiplexés, multicanaux de manière certaine, le procédé
selon l'invention comprend une première sous-étape de génération d'au moins une branche de détection Ai, A2, B1, B2, Ci, C2 par protocole vérifié à prendre en compte pour l'analyse ultérieure.
[00143] According to a embodiment of the invention, in the event of detection of tunneled, multiplexed, multichannel protocols in a certain manner, the process according to the invention comprises a first sub-step of generating at least a detection branch Ai, A2, B1, B2, Ci, C2 by verified protocol to be taken into account account for subsequent analysis.

[00144] Selon une seconde sous-étape, chaque branche de détection AI, A2, B1 , B2, Ci, C2 sera traitée comme une chaine de protocole unique et apte à être analysée, et comprend une sous-étape de calcul d'une empreinte numérique unique de session Hi+n à partir d'une fonction de hachage choisie, rattachée à
une sous-session déterminée pour chaque branche de détection AI, A2, B1 , B2, CI, C2, et permettant d'analyser le ou les protocoles suivants Pi+n.
[00144] According to a second sub-step, each detection branch AI, A2, B1, B2, Ci, C2 will be treated as a single protocol chain and capable of being analyzed, and includes a sub-step of calculating a digital fingerprint unique Hi+n session from a chosen hash function, attached to a subsession determined for each detection branch AI, A2, B1, B2, CI, C2, and allowing analysis of the following protocol(s) Pi+n.

[00145] Enfin, la détection de protocoles tunnelés, multiplexés, ou multicanaux comprend une dernière sous-étape d'enregistrement de l'empreinte numérique de session Hi+n de chaque branche de détection Ai, A2, Bi, B2, Cl, C2, rattachée à
une chaine de protocole, l'étape d'enregistrement étant configurée pour attribuer un identifiant unique à chaque branche de détection Ai, A2, Bi, B2, Cl, C2 du/des protocoles tunnelés, multiplexés, multicanaux, détectés, et ainsi avantageusement ne pas confondre deux sous-sessions pouvant mener à des informations d'analyse erronées.
[00145] Finally, the detection of tunneled, multiplexed, or multichannel includes a final sub-step of recording the digital fingerprint of Hi+n session of each detection branch Ai, A2, Bi, B2, Cl, C2, attached has a protocol chain, the recording step being configured to assign a unique identifier for each detection branch Ai, A2, Bi, B2, Cl, C2 of tunneled, multiplexed, multichannel, detected protocols, and so on advantageously do not confuse two sub-sessions that could lead to analysis information erroneous.

[00146] En référence aux figures 9, et 10 est représentée, à titre d'exemple, une implémentation du procédé selon l'invention selon une analyse linéaire conformément à l'invention. [00146] With reference to Figures 9, and 10 is shown, by way of example, a implementation of the method according to the invention according to a linear analysis in accordance to the invention.

[00147] Ici le lot LOTI comprend quatre paquets individualisés PO, Pi, P2, et P3.
Le paquet PO supporte le protocole ETHERNET ETH. Le paquet P1 supporte le protocole INTERNET IP. Le paquet P2 supporte le protocole TCP et le paquet P3 supporte le protocole http.
[00147] Here the LOTI lot includes four individualized packages PO, Pi, P2, and P3.
The PO package supports the ETHERNET ETH protocol. The P1 package supports INTERNET IP protocol. P2 packet supports TCP protocol and P3 packet support http protocol.

[00148] Après réception du lot LOTI de paquets, le paquet PO est lu (étape SDL1 ), ici PO = ETH. A l'étape SLD2, le moteur d'analyse vérifie si le paquet PO
annonce le protocole du paquet suivant Pi. Ici, on sait que ETH annonce toujours le protocole qui suit. Ici Pl = IP.
[00148] After receipt of the LOTI batch of packets, the PO packet is read (step SDL1), here PO = ETH. At step SLD2, the analysis engine checks whether the PO packet announce it protocol of the next packet Pi. Here, we know that ETH always announces the protocol which follows. Here Pl = IP.

[00149] A l'étape SDL3, le moteur vérifie si le paquet P1 annonce le protocole du paquet suivant P2. Ici on sait qu' IP annonce TCP. [00149] In step SDL3, the engine checks whether the packet P1 announces the protocol of next packet P2. Here we know that IP announces TCP.

[00150] A l'étape SDL4, le moteur vérifie si TCP annonce le protocole du paquet suivant P3. La réponse est négative, mais les connaissances sur les protocoles indiquent que si TCP port = 80 alors il est fort probable que P3 = http. Si le test http en P3 est vérifié ou non, alors la session est connue ou inconnue. [00150] In step SDL4, the engine checks if TCP announces the protocol of the pack following P3. The answer is negative, but knowledge of the protocols indicate that if TCP port = 80 then it is most likely that P3 = http. If the http test in P3 is checked or not, then the session is known or unknown.

[00151] En étape SLD5, si la session est inconnue (par exemple P3 n'est pas http) alors création d'une empreinte numérique des IP de la source A, du destinataire B, des ports A et B et d'un identifiant de protocole. Ensuite la session ainsi reconnue pour la première fois est stockée dans la base de données dynamique de session pour analyse ultérieure. [00151] In step SLD5, if the session is unknown (for example P3 is not http) then creation of a digital fingerprint of the IPs of source A, of recipient B, ports A and B and a protocol identifier. Then the session like this recognized for the first time is stored in the dynamic session database for subsequent analysis.

[00152] En référence à la figure 11 on a représenté un exemple d'analyse appliquée à une détection de protocoles linéaire pour laquelle le protocole UDP est identifié, mais n'annonce pas le protocole suivant, le moteur d'analyse 106 mettant en uvre une analyse selon un classification par détection de session S20 et par inspection profonde S40, dont le port identifié est le port :53, et pour lequel l'un des protocoles les plus probables est le protocole DNS. [00152] Referring to Figure 11, an example of analysis is shown applied to linear protocol detection for which the UDP protocol is identified, but does not announce the following protocol, the analysis engine 106 implementing work an analysis according to a classification by S20 session detection and by inspection deep S40, whose identified port is port:53, and for which one of the protocols the most likely is the DNS protocol.

[00153] Le protocole DNS est identifié comme le plus probable, et sera donc testé
par tentative d'identification des marqueurs propres au protocole DNS.
[00153] The DNS protocol is identified as the most probable, and will therefore be tested by attempting to identify markers specific to the DNS protocol.

[00154] Selon le mode de réalisation, tous les marqueurs (ou labels) pour le protocole DNS ne sont pas retrouvés. [00154] According to the embodiment, all the markers (or labels) for the DNS protocol are not found.

[00155] Selon la figure 11, le protocole QU IC est identifié à l'aide de ses marqueurs propres par le moteur d'analyse 106. [00155] According to Figure 11, the QU IC protocol is identified using its markers clean by the analysis engine 106.

[00156] En pratique, l'identification des protocoles probables et leurs tests en cas d'échec d'identification sont répétés jusqu'à ce qu'une limite du nombre de tests choisis soit atteinte. [00156] In practice, the identification of probable protocols and their tests in case identification failures are repeated until a limit on the number of tests chosen is achieved.

[00157] En référence à la figure 14, on a représenté un second exemple d'analyse appliquée à une détection de protocoles linéaire à identification a posteriori pour laquelle le protocole MPLS est identifié sur une chaine de protocole, mais n'annonce pas le protocole suivant, [00157] With reference to Figure 14, a second example is shown analysis applied to linear protocol detection with a posteriori identification For which the MPLS protocol is identified on a protocol chain, but does not announce not the following protocol,

[00158] L'analyse par classification par inspection profonde S40 ne permet pas d'identifier le protocole associé si le protocole ne comprend pas de marqueurs suffisants pour être identifié. [00158] Analysis by classification by deep inspection S40 does not allow to identify the associated protocol if the protocol does not include markers sufficient to be identified.

[00159] En référence aux figures 12, et 13 on a représenté, à titre d'exemple, une implémentation du procédé selon l'invention pour une analyse appliquée à une détection de protocoles de tunneling, nécessitant une détection retardée conformément à l'invention. [00159] With reference to Figures 12 and 13, we have shown, by way of example, a implementation of the method according to the invention for an analysis applied to a detection of tunneling protocols, requiring delayed detection in accordance with the invention.

[00160] Ici le lot LOT2 comprend quatre paquets individualisés PO, P1, P2, et P3.
Le paquet PO supporte le protocole ETHERNET ETH. Le paquet P1 supporte le protocole MPLS. Le paquet P2 supporte le protocole ETH CW et le paquet P3 supporte le protocole IP.
[00160] Here lot LOT2 includes four individualized packages PO, P1, P2, and P3.
The PO package supports the ETHERNET ETH protocol. The P1 package supports MPLS protocol. P2 package supports ETH CW protocol and P3 package Support IP protocol.

[00161] Après réception du lot LOT2 de paquets (étape SPT1), le paquet PO est lu (étape SPT2), ici PO = ETH. A l'étape SPT3, le moteur d'analyse 106 vérifie si le paquet PO annonce le protocole du paquet suivant P1 selon l'étape de classification explicite S10. Ici, on sait ici que ETH annonce toujours le protocole qui suit. Ici P1 =
MPLS.
[00161] After receipt of the batch LOT2 of packets (step SPT1), the packet PO is read (step SPT2), here PO = ETH. In step SPT3, the analysis engine 106 checks whether THE
packet PO announces the protocol of the following packet P1 according to the step of classification explicit S10. Here we know here that ETH always announces the protocol which follows. Here P1 =
MPLS.

[00162] A l'étape SPT4, le moteur vérifie si le paquet P1 annonce le protocole du paquet suivant P2. Ici on sait que MPLS n'annonce pas forcément le protocole du paquet suivant. [00162] At step SPT4, the engine checks whether the packet P1 announces the protocol of next packet P2. Here we know that MPLS does not necessarily announce the protocol of next package.

[00163] L'analyse de protocole selon l'invention met en uvre une analyse selon une classification par détection de session S20 et par inspection profonde de paquet S40, pour lequel les protocoles les plus probables sont testés. [00163] The protocol analysis according to the invention implements an analysis according to classification by S20 session detection and deep inspection of pack S40, for which the most probable protocols are tested.

[00164] On suppose alors que P2 est suivi d'un mot de contrôle ETH CW. [00164] We then assume that P2 is followed by an ETH CW control word.

[00165] Le procédé selon l'invention comprendra, en outre, une étape de supposition du protocole restant le plus probable, et continuera la détection sur le protocole suivant en testant le ou les protocoles suivant normalement le premier protocole supposé. [00165] The method according to the invention will further comprise a step of assumption of the most probable remaining protocol, and will continue detection on the next protocol by testing the protocol(s) normally following the first supposed protocol.

[00166] A l'étape SPT5, si P2 = ETW CW alors il est probable que P3 = ETH, les étapes S20 et S40 de classification seront alors répétées pour vérifier si ETH
est bien identifié et validé.
[00166] In step SPT5, if P2 = ETW CW then it is probable that P3 = ETH, the classification steps S20 and S40 will then be repeated to check if ETH
is good identified and validated.

[00167] A l'étape SPT6, si P3 = ETH alors P3 annonce P4 qui est ici IP. [00167] In step SPT6, if P3 = ETH then P3 announces P4 which here is IP.

[00168] A l'étape SPT7, P4 est confirmé par la sonde comme IP. [00168] In step SPT7, P4 is confirmed by the probe as IP.

[00169] A l'étape SPT8, la chaine d'enchainement de protocoles est validée, P2 est rétroactivement validé comme ETH CW. [00169] At step SPT8, the protocol sequence chain is validated, P2 East retroactively validated as ETH CW.

[00170] En pratique, l'identification des protocoles probables et leurs tests en cas d'échec d'identification est répétée jusqu'à ce qu'une limite du nombre de tests choisis soit atteinte. [00170] In practice, the identification of probable protocols and their tests in case identification failure is repeated until a limit on the number of selected tests is achieved.

[00171] Avantageusement, le procédé de détection selon l'invention, comprenant une gestion d'une table de hash dynamique sur une base de n-tuples, associée à
une identification de protocole selon des classifications explicites S10, par détection de session S20, par inspection profonde de paquet S40, et par détection a posteriori, permet de limiter fortement la perte de visibilité et éliminer les erreurs en cascades lors de l'analyse d'un flux de données à très haut débit, contrairement aux systèmes de l'art antérieur et notamment ceux se basant sur un calcul d'empreinte numérique de type 5-tuple.
[00171] Advantageously, the detection method according to the invention, comprising management of a dynamic hash table on a base of n-tuples, associated with a protocol identification according to explicit classifications S10, by detection of session S20, by deep packet inspection S40, and by detection a posteriori, allows you to greatly limit the loss of visibility and eliminate errors by waterfalls when analyzing a very high-speed data stream, unlike systems of the prior art and in particular those based on an imprint calculation digital of type 5-tuple.

[00172] Le Demandeur a également observé que les systèmes de l'art antérieur nécessitent souvent des techniques matérielles (FPGA ou ASIC) qui permettent de faire du Packet Slicing (découpage du paquet sur les couches inférieures ou supérieures) pour accélérer le traitement des paquets, alors que la solution selon l'invention est un procédé ne nécessitant pas de techniques matérielles pour être implémenté et conserver une vitesse de traitement de paquets stable pour des débits supérieurs à 100 Gb/s à titre d'exemple non limitatif. [00172] The Applicant has also observed that the systems of the prior art often require hardware techniques (FPGA or ASIC) which allow of carry out Packet Slicing (cutting the packet on the lower layers or higher) to speed up packet processing, while the solution according to the invention is a method not requiring material techniques for be implemented and maintain a stable packet processing speed for flow rates greater than 100 Gb/s as a non-limiting example.

[00173] Bien que des exemples aient été décrits dans un langage spécifique aux méthodes et/ou aux caractéristiques structurelles, il faut comprendre que la présente invention ne se limite pas aux méthodes ou caractéristiques spécifiques décrites. Au contraire, les méthodes et les caractéristiques spécifiques sont divulguées et expliquées à titre d'exemples de la présente invention. [00173] Although examples have been described in language specific to methods and/or structural characteristics, it must be understood that the present invention is not limited to specific methods or features described. At otherwise, the specific methods and characteristics are disclosed and explained by way of examples of the present invention.

Claims (2)

Revendications [Revendication 1] Procédé d'analyse d'un flux de données de paquets de données reçues via un réseau de communication, le flux de données comprenant des lots de paquets définis chacun par une chaine de protocoles de communication rattachée à au moins une session, caractérisée en ce que le procédé comprend une analyse de protocoles (DAP) selon les étapes suivantes :
-analyser le premier protocole (Pi) d'une chaine de protocoles de communication selon une étape de classification par détection explicite (S10) configurée pour vérifier si le premier protocole (Pi) annonce le protocole de communication suivant (Pi+1) de la chaine de protocoles :
-en cas d'annonce, le protocole suivant (Pi+1) ainsi annoncé est identifié ;
-tandis qu'en cas de non-annonce, analyser le protocole suivant (Pi+1) selon une étape de classification par détection de session (S20) ;
-analyser selon une étape de classification par détection de session (S20), configurée pour vérifier si le protocole Pi+1 est attaché à une chaine de protocoles connue selon un arbre de décision dynamique par interrogation d'une base de données dynamique de session (BDDS) comprenant des chaines de protocoles identifiées :
-en cas d'attache, le protocole Pi+1 est identifié, et le protocole Pi+2 est analysé par répétition des étapes de classification par détection explicite (S10), de classification par détection de session (S20) ;
- tandis qu'en cas de non-attache, analyser le protocole Pi+1 selon une étape de classification par inspection profonde de paquet (S40) ;
-analyser le protocole Pi+1 selon une étape de classification par inspection profonde de paquet (S40), configuré pour identifier le protocole de communication du paquet Pi+1 selon un arbre de décision dynamique corrélé à une base de données de connaissances (BDC) comprenant des paramètres d'analyse de protocoles et une base de marqueurs spécifiques à chaque protocole connu ;
- en cas de défaut d'identification du protocole Pi+1, émettre une liste de candidats de protocoles potentiels à prendre en compte selon au moins deux branches de détection, chaque détection étant rattachée à une sous-session déterminée pour analyser le ou les protocoles suivants Pi+n avec r-i2 par répétition des étapes de classification par détection explicite (S10), de classification par détection de session (S20), et de classification par inspection profonde de paquet (S40) jusqu'à
identifier au moins un protocole dont l'identité est certaine ;
-en cas d'identification d'un protocole Pi+n dont l'identité est certaine sur une branche de détection, valider (S60) rétroactivement la branche de détection, et écarter les branches de détection restantes non validées ;
-en cas d'absence d'identification d'un protocole Pi+n dont l'identité est certaine sur une branche de détection, classifier le protocole Pi+1 comme inconnu (S60) rétroactivement ; et -associer une étiquette aux paquets de données en fonction de chaque session pour lesquels les protocoles ont été identifiés.
[Revendication 2] Procédé d'analyse d'un flux de données de paquets de données reçues via un réseau de communication selon la revendication 1, caractérisé en ce qu'après chaque étape de classification (S10, S20, S40) :-calculer une empreinte numérique de session (Hi+n) à partir d'une fonction de hachage choisie, ladite empreinte numérique (Hi+n) étant calculée sur la base du premier protocole identifié, et sur l'empreinte numérique précédemment calculé

(Hi+n-1) de la chaine de protocoles déjà identifiée sans prise en compte du contenu attaché, chaque empreinte numérique (Hi+n) étant calculée sur la base de paramètres (ou tuple) choisis et spécifiques à chaque type de protocole, chaque type de protocole disposant d'un nombre propre de marqueurs définis (n-Tuples) ;
-enregistrer l'empreinte numérique de session (Hi+n) calculée après chaque étape d'identification de protocole suivant l'étape S40 ou après l'étape de validation rétroactive (S60), dans une table de hash intégrée dans la base de données dynamique de session (BDDS), chaque empreinte numérique (Hi+n) étant liée à
au moins une session choisie, lesdites empreintes numériques (Hi+n) calculées après chaque étape de classification de chaque protocole par inspection profonde de paquet (S40) étant aptes à être mises à jour rétroactivement en cas d'identification retardée d'un protocole selon l'étape de vérification (S60).

[Revendication 3] Procédé d'analyse d'un flux de données de paquets de données reçues via un réseau de comrnunication selon la revendication 2, caractérisé
en ce qu'en cas de détection de protocoles tunnelés, rnultiplexés, multicanal de manière certaine, le procédé selon l'invention comprend les sous-étapes suivantes :
-Générer au moins une branche de détection par protocole vérifié à prendre en compte pour la détection ultérieure, -Calculer une empreinte numérique de session (Hi+n) à partir d'une fonction de hachage choisie pour chaque branche de détection, chaque branche de détection étant rattachée à une sous-session déterminée pour analyser le ou les protocoles suivants Pi+n ; et -Enregistrer l'empreinte numérique de session (Hi+n) de chaque branche de détection rattachée à une chaine de protocole, l'étape d'enregistrement étant configurée pour attribuer un identifiant unique à chaque branche de détection du/des protocoles tunnelés, multiplexés, multicanaux, ou multiplexés détectés.
[Revendication 4] Procédé d'analyse d'un flux de données de paquets de données reçus via un réseau de communication selon la revendication 2 ou la revendication 3, caractérisé en ce que la table de hash est mise à jour si la détection d'au moins un protocole d'une session nécessite la mise en oeuvre d'une détection retardée sur plusieurs paquets (S60).
[Revendication 5] Procédé selon l'une des revendications 1 à 4, dans lequel la base de données de connaissances (BDC) comprend une base de données de connaissances statiques, dans laquelle la base de données de connaissances statiques comprend des marqueurs basés sur une connaissance empirique des caractéristiques des protocoles, et dans lesquels la connaissance empirique comprend des moyens algorithmiques de détection de protocoles basés sur des normes sur la localisation, des liens logiques entre les protocoles de communication, les requêtes pour commentaires (RFC) et les modèles de fréquence des protocoles de communication.

[Revendication 6] Procédé selon l'une des revendications 1 à 5, comprenant en outre l'exécution d'une analyse de données suivie d'une extraction de données (DAC) pour les paquets de données sur la base de l'étiquette associée.
[Revendication 7] Procédé selon la revendication 6, dans lequel l'exécution de l'analyse de protocoles (DAP) et l'exécution de l'analyse et de l'extraction des données (DAC) pour un paquet de données sont effectuées de manière dynamique sur un seul c ur de traitement d'un processeur multic ur.
[Revendication 8] Procédé selon la revendication 6 ou 7, dans lequel l'exécution de l'analyse et l'extraction des données (DAC) pour le paquet de données sont effectuées sur plusieurs c urs de traitement d'un processeur multic ur.
[Revendication 9] Procédé selon l'une des revendications 6 à 8, comprenant en outre la séparation du flux de données en une pluralité de files d'attente de traitement dans laquelle l'analyse de protocoles (DAP) suivie de l'analyse et de l'extraction des données (DAC) sont effectués sur des paquets de données dans chacune des files d'attente de traitement.
[Revendication 10] Procédé selon la revendication 9, dans lequel la séparation du flux de données dans la pluralité des files d'attente de traitement est basée sur un algorithme RSS de mise à l'échelle côté réception.
[Revendication 11] Procédé selon l'une des revendications 1 à 10, dans lequel l'analyse de protocole (DAP) est exécutée de manière dynamique sur les couches
Claims [Claim 1] Method for analyzing a data stream of data packets received via a communications network, the data flow comprising batches of packets each defined by a chain of communication protocols attached to at least one session, characterized in that the method comprises a protocol analysis (DAP) according to the following steps:
-analyze the first protocol (Pi) of a chain of protocols communication according to an explicit detection classification step (S10) configured to check if the first protocol (Pi) announces the following communication protocol (Pi+1) of the protocol chain:
-in the event of an announcement, the following protocol (Pi+1) thus announced is identified;
-while in the event of no announcement, analyze the following protocol (Pi+1) according to a session detection classification step (S20);
-analyze according to a classification step by session detection (S20), configured to check if the Pi+1 protocol is attached to a protocol chain known according to a dynamic decision tree by querying a database dynamic session (BDDS) comprising identified protocol chains:
-in case of attachment, the Pi+1 protocol is identified, and the Pi+2 protocol is analyzed by repetition of the classification steps by explicit detection (S10), of classification by session detection (S20);
- while in the event of non-attachment, analyze the Pi+1 protocol according to a stage of classification by deep packet inspection (S40);
-analyze the Pi+1 protocol according to a classification step by inspection deep packet (S40), configured to identify the communication protocol of the pack Pi+1 according to a dynamic decision tree correlated to a database of knowledge (BDC) including protocol analysis parameters and a base of markers specific to each known protocol;
- in the event of a failure to identify the Pi+1 protocol, send a list of candidates of potential protocols to be taken into account according to at least two branches of detection, each detection being attached to a determined sub-session for analyze the following protocol(s) Pi+n with r-i2 by repeating the steps of classification by explicit detection (S10), classification by detection of session (S20), and classification by deep packet inspection (S40) until identify at least one protocol whose identity is certain;
-in the event of identification of a Pi+n protocol whose identity is certain on a branch detection, validate (S60) retroactively the detection branch, and dismiss them remaining detection branches not validated;
-in the event of absence of identification of a Pi+n protocol whose identity is certain about a detection branch, classify the Pi+1 protocol as unknown (S60) retroactively; And -associate a label to data packets based on each session For which protocols have been identified.
[Claim 2] Method for analyzing a data stream of data packets received via a communications network according to claim 1, characterized in what after each classification step (S10, S20, S40):-calculate a session fingerprint (Hi+n) from a function of chosen hash, said digital fingerprint (Hi+n) being calculated on the basis of first protocol identified, and on the digital fingerprint previously calculated (Hi+n-1) of the protocol chain already identified without taking into account the attached content, each digital fingerprint (Hi+n) being calculated on the basis of parameters (or tuple) chosen and specific to each type of protocol, each type of protocol with its own number of defined markers (n-Tuples) ;
-save the digital session fingerprint (Hi+n) calculated after each stage protocol identification following step S40 or after the step of validation retroactive (S60), in a hash table integrated into the database dynamic session (BDDS), each digital fingerprint (Hi+n) being linked to at least one chosen session, said digital fingerprints (Hi+n) calculated after each classification step of each protocol by inspection deep packet (S40) being capable of being updated retroactively in the event delayed identification of a protocol according to the verification step (S60).

[Claim 3] Method for analyzing a data stream of data packets received via a communications network according to claim 2, characterized in what in the event of detection of tunneled, multiplexed, multichannel protocols certainty, the method according to the invention comprises the sub-steps following:
-Generate at least one detection branch per verified protocol to support account for subsequent detection, -Calculate a session fingerprint (Hi+n) from a function hash chosen for each detection branch, each detection branch being attached to a specific sub-session to analyze the protocols following Pi+n ; And -Record the session fingerprint (Hi+n) of each branch of detection attached to a protocol chain, the recording step being configured to assign a unique identifier to each detection branch of the tunneled, multiplexed, multichannel, or multiplexed protocols detected.
[Claim 4] Method for analyzing a data stream of data packets received via a communications network according to claim 2 or claim 3, characterized in that the hash table is updated if the detection of at less a session protocol requires the implementation of detection delayed on several packets (S60).
[Claim 5] Method according to one of claims 1 to 4, in which the base Knowledge Data Base (BDC) includes a database of static knowledge, in which the knowledge database static includes markers based on empirical knowledge of characteristics of the protocols, and in which empirical knowledge includes algorithmic means for detecting protocols based on standards on localization, logical links between protocols of communication, requests for comments (RFC) and templates frequency of communication protocols.

[Claim 6] Method according to one of claims 1 to 5, comprising in in addition to performing data analysis followed by data extraction (DAC) for data packets based on the associated label.
[Claim 7] Method according to claim 6, in which the execution of protocol analysis (DAP) and performing analysis and extraction of the data (DAC) for a data packet is carried out in a manner dynamics on a single processing core of a multi-core processor.
[Claim 8] Method according to claim 6 or 7, wherein the execution of Data analysis and extraction (DAC) for the data packet are carried out on several processing cores of a multi-core processor.
[Claim 9] Method according to one of claims 6 to 8, including in addition to separating the data stream into a plurality of queues of processing in which protocol analysis (DAP) followed by analysis and of Data extraction (DAC) are performed on data packets in each of the processing queues.
[Claim 10] Process according to claim 9, in which the separation of data flow in the plurality of processing queues is based on a RSS scaling algorithm on the receiving side.
[Claim 11] Method according to one of claims 1 to 10, in which protocol analysis (DAP) is performed dynamically on layers
2 à 7 du modèle de couches (0S1).
[Revendication 12] Système informatique d'analyse d'un flux de données de paquets de données reçus via un réseau de communication, le flux de données comprenant des lots de paquets définis chacun par une chaine de protocoles de communication rattaché à au moins une session, caractérisé en ce que le système comprend un processeur comprenant au moins un c ur de traitement pour traiter un nombre prédéterminé de paquets de données par minute et un moteur d'analyse de protocole (106) sur au moins un c ur de traitement, dans lequel le moteur d'analyse de protocole (106) :
-analyse du premier protocole (Pi) d'une chaine de protocoles de communication selon une étape de classification par détection explicite (S10) configurée pour vérifier si le premier protocole (Pi) annonce le protocole de communication suivant (Pi+1) de la chaine de protocoles, en cas d'annonce, le protocole suivant (Pi+1) ainsi annoncé est identifié, tandis qu'en cas de non-annonce, le moteur d'analyse de protocole (106) est apte à analyser le protocole (Pi+1) selon une étape de classification par détection de session (S20) ;
-analyse selon une étape de classification par détection de session (S20), configurée pour vérifier s'il le protocole Pi+1 est attaché à une chaine de protocoles connue selon un arbre de décision dynamique par interrogation d'une base de données dynamique de session (BDDS) comprenant des chaines de protocoles identifiées :
-en cas d'attache, le protocole Pi+1 est identifié, et le moteur d'analyse de protocole (106) est apte à analyser le protocole Pi+2 par répétition des étapes de classification par détection explicite (S10), de classification par détection de session (S20) ;
- tandis qu'en cas de non-attache, le moteur d'analyse de protocole (106) est apte à
analyser le protocole Pi+1 selon une étape de classification par inspection profonde de paquet (S40) ;
-analyse le protocole Pi+1 selon une étape de classification par inspection profonde de paquet (S40), configurée pour identifier le protocole de communication du paquet Pi+1 selon un arbre de décision dynamique corrélé à une base de données de connaissances (BDC) comprenant des paramètres d'analyse de protocoles et une base de marqueurs spécifiques à chaque protocole connu ;
- en cas de défaut d'identification du protocole Pi+1, le moteur d'analyse de protocole (106) est apte à émettre une liste de candidats de protocoles potentiels à
prendre en compte selon au moins deux branches de détection, chaque détection étant rattachée à une sous-session déterminée pour analyser le ou les protocoles suivants Pi+n avec r-12 par répétition des étapes de classification par détection explicite (S10), de classification par détection de session (S20), et de classification par inspection profonde de paquet (S40) jusqu'à identifier au moins un protocole dont l'identité est certaine ;
-en cas d'identification d'un protocole Pi+n dont l'identité est certaine sur une branche de détection, le moteur d'analyse de protocole (1 06) est apte à valider (S60) rétroactivement la branche de détection, et écarter les branches de détection restantes non validées ;
-en cas d'absence d'identification d'un protocole Pi+n dont l'identité est certaine sur une branche de détection, le moteur d'analyse de protocole (106) est apte à
classifier le protocole Pi+1 comme inconnu (S60) rétroactivement ; et -un moteur d'étiquetage apte à associer une étiquette aux paquets de données en fonction des protocoles ainsi identifiés.
[Revendication 13] Système informatique selon la revendication 12, caractérisé
en ce que le moteur d'analyse de protocole (106) :
-calcule une empreinte numérique de session (Hi+n) à partir d'une fonction de hachage choisie après chaque étape de classification (S10, S20, S40), ladite empreinte numérique (Hi+n) étant calculée sur la base du premier protocole identifié, et sur l'empreinte numérique précédemment calculée (Hi+n-1) de la chaine de protocoles déjà identifiée sans prise en compte du contenu attaché, chaque empreinte numérique (Hi+n) étant calculée sur la base de paramètres (ou tuple) choisis et spécifiques à chaque type de protocole, chaque type de protocole disposant d'un nombre propre de marqueurs définis (n-Tuples) ;
-enregistre l'empreinte numérique de session (Hi+n) calculée après chaque étape d'identification de protocole suivant l'étape S40 ou après l'étape de validation rétroactive (S60), dans une table de hash intégrée dans la base de données dynamique de session (BDDS), chaque empreinte numérique (Hi+n) étant liée à
au moins une session choisie, lesdites empreintes numériques (Hi+n) calculées après chaque étape de classification de chaque protocole par inspection profonde de paquet (S40) étant aptes à être mises à jour rétroactivement en cas d'identification retardée d'un protocole selon l'étape de vérification (S60).
[Revendication 14] Système informatique selon la revendication 12 ou 13, caractérisé en ce que le moteur d'analyse de protocole (106), en cas de détection de protocoles tunnelés, multiplexés, multicanaux, ou multicanal multiplexés détectés de manière certaine, -Génère au moins une branche de détection par protocole vérifié à prendre en compte pour la détection ultérieure, -Calcule une empreinte numérique de session (Hi+n) à partir d'une fonction de hachage choisie pour chaque branche de détection, chaque branche de détection étant rattachée à une sous-session déterminée pour analyser le ou les protocoles suivants Pi+n ; et -Enregistre l'empreinte numérique de session (Hi+n) de chaque branche de détection rattachée à une chaine de protocole, l'enregistrement étant configuré pour attribuer un identifiant unique à chaque branche de détection du/des protocoles tunnelés, multiplexés, multicanaux, ou multicanal multiplexés détectés.
[Revendication 15] Système informatique selon l'une des revendications 12 à
14, dans lequel la base de données de connaissances comprend, en outre, une base de données de connaissances statiques dans laquelle la base de données de connaissances statiques comprend des marqueurs basés sur une connaissance empirique des caractéristiques des protocoles, et dans lesquels la connaissance empirique comprend des moyens algorithmiques de détection de protocoles basés sur des normes sur la localisation, des liens logiques entre les protocoles de communication, les requêtes pour commentaires (RFC) et les modèles de fréquence des protocoles de communication.
[Revendication 16] Système informatique selon l'une des revendications 12 à
15, comprenant, en outre, un moteur d'analyse de contenu (112) exécutable sur au moins un coeur de traitement pour analyser et extraire le paquet de données sur la base de l'étiquette associée.
[Revendication 17] Système informatique selon la revendication 16, dans lequel le moteur d'analyse de protocole (106) et le moteur d'analyse de contenu (112) effectuent consécutivement l'analyse de protocoles (DAP) suivie de l'analyse et de l'extraction de données (DAC) pour le flux de données de paquets de données, et dans lequel le moteur d'analyse de contenu effectue, séparément, l'analyse et l'extraction de données (DAC) pour des paquets de données étiquetés différemment.
[Revendication 18] Système informatique selon la revendication 16 ou 17, comprenant en outre une carte d'interface réseau (NIC) couplée au processeur, dans laquelle la carte réseau sépare le flux de données des paquets de données en une pluralité de files d'attente de traitement, et dans laquelle le moteur d'analyse de protocole (DAP) et le moteur d'analyse de contenu (112) effectuent l'analyse des paquets (DAP) et l'extraction de données (DAC) des paquets sur chacune des pluralités de files d'attente de traitement.
[Revendication 19] Système informatique selon la revendication 18, dans lequel la carte réseau (NIC) sépare le flux de données des paquets de données en fonction de l'algorithme RSS de mise à l'échelle côté réception.
2 to 7 of the layer model (0S1).
[Claim 12] Computer system for analyzing a data flow of packages of data received via a communications network, the data flow comprising batches of packets each defined by a chain of protocols communication attached to at least one session, characterized in that the system comprises a processor comprising at least one processing core for processing a number predetermined data packets per minute and a data analysis engine protocol (106) on at least one processing core, in which the engine protocol analysis (106):
-analysis of the first protocol (Pi) of a chain of communication protocols according to an explicit detection classification step (S10) configured to check if the first protocol (Pi) announces the following communication protocol (Pi+1) of the chain of protocols, in the event of an announcement, the following protocol (Pi+1) as well announced is identified, while in the event of non-announcement, the analysis engine of protocol (106) is capable of analyzing the protocol (Pi+1) according to a step of classification by session detection (S20);
-analysis according to a classification step by session detection (S20), configured to check if the Pi+1 protocol is attached to a chain of protocols known according to a dynamic decision tree by querying a database dynamic session (BDDS) comprising identified protocol chains:
-in case of attachment, the Pi+1 protocol is identified, and the analysis engine protocol (106) is capable of analyzing the Pi+2 protocol by repeating the steps of classification by explicit detection (S10), classification by detection of session (S20);
- while in the event of non-attachment, the protocol analysis engine (106) is suitable for analyze the Pi+1 protocol according to a classification step by inspection deep package (S40);
-analyzes the Pi+1 protocol according to a classification step by inspection deep packet (S40), configured to identify the communication protocol of the Pi+1 packet according to a dynamic decision tree correlated to a database knowledge base (BDC) including protocol analysis parameters and a base of markers specific to each known protocol;
- in the event of a failure to identify the Pi+1 protocol, the analysis engine protocol (106) is able to emit a list of potential protocol candidates to take taken into account according to at least two branches of detection, each detection being attached to a specific sub-session to analyze the protocol(s) following Pi+n with r-12 by repetition of the classification steps by detection explicit (S10), classification by session detection (S20), and classification by deep packet inspection (S40) until identifying at least one protocol whose identity is certain;
-in the event of identification of a Pi+n protocol whose identity is certain on a branch detection, the protocol analysis engine (1 06) is able to validate (S60) retroactively the detection branch, and discard the detection branches remaining unvalidated;
-in the event of absence of identification of a Pi+n protocol whose identity is certain about a detection branch, the protocol analysis engine (106) is capable of classify the Pi+1 protocol as unknown (S60) retroactively; And -a labeling engine capable of associating a label with data packets in function of the protocols thus identified.
[Claim 13] Computer system according to claim 12, characterized in what the protocol analysis engine (106):
-calculates a session fingerprint (Hi+n) from a function of hash chosen after each classification step (S10, S20, S40), said digital fingerprint (Hi+n) being calculated on the basis of the first protocol identified, and on the previously calculated digital fingerprint (Hi+n-1) of the chain of protocols already identified without taking into account the attached content, each digital fingerprint (Hi+n) being calculated on the basis of parameters (or tuple) chosen and specific to each type of protocol, each type of protocol having its own number of defined markers (n-Tuples);
-records the digital session fingerprint (Hi+n) calculated after each stage protocol identification following step S40 or after the step of validation retroactive (S60), in a hash table integrated into the database dynamic session (BDDS), each digital fingerprint (Hi+n) being linked to at least one chosen session, said digital fingerprints (Hi+n) calculated after each classification step of each protocol by inspection deep packet (S40) being capable of being updated retroactively in the event delayed identification of a protocol according to the verification step (S60).
[Claim 14] Computer system according to claim 12 or 13, characterized in that the protocol analysis engine (106), in the event of detection tunneled, multiplexed, multichannel, or multiplexed multichannel protocols detected with certainty, -Generates at least one detection branch per verified protocol to support account for subsequent detection, -Calculates a session fingerprint (Hi+n) from a function of hash chosen for each detection branch, each detection branch being attached to a specific sub-session to analyze the protocols following Pi+n ; And -Records the session fingerprint (Hi+n) of each branch of detection attached to a protocol chain, the recording being configured to assign a unique identifier for each detection branch of the protocol(s) tunneled, multiplexed, multichannel, or multiplexed multichannel detected.
[Claim 15] Computer system according to one of claims 12 to 14, in which the knowledge database further comprises a database static knowledge data in which the knowledge database static knowledge includes markers based on knowledge empirical characteristics of the protocols, and in which the awareness empirical includes algorithmic means of detecting protocols based on standards on localization, logical links between protocols of communication, requests for comments (RFC) and templates frequency of communication protocols.
[Claim 16] Computer system according to one of claims 12 to 15, further comprising a content analysis engine (112) executable on at minus one processing core to analyze and extract the data packet on the base of the associated label.
[Claim 17] Computer system according to claim 16, wherein THE
protocol analysis engine (106) and the content analysis engine (112) consecutively perform protocol analysis (DAP) followed by analysis and of data extraction (DAC) for data stream of data packets, And in which the content analysis engine separately performs the analysis and data extraction (DAC) for labeled data packets differently.
[Claim 18] Computer system according to claim 16 or 17, further comprising a network interface card (NIC) coupled to the processor, in which the network card separates the data stream from the data packets into a plurality of processing queues, and in which the engine analysis protocol (DAP) and the content analysis engine (112) perform analysis packets (DAP) and data extraction (DAC) of packets on each of the pluralities of processing queues.
[Claim 19] Computer system according to claim 18, wherein there network card (NIC) separates the data stream from data packets into function of the RSS scaling algorithm on the receiving side.
CA3226756A 2021-09-07 2022-09-07 Method and system for analysing data flows Pending CA3226756A1 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR2109379A FR3126830A1 (en) 2021-09-07 2021-09-07 DATA FLOW ANALYSIS METHOD AND SYSTEM
FRFR2109379 2021-09-07
PCT/EP2022/074915 WO2023036846A1 (en) 2021-09-07 2022-09-07 Method and system for analysing data flows

Publications (1)

Publication Number Publication Date
CA3226756A1 true CA3226756A1 (en) 2023-03-16

Family

ID=89658242

Family Applications (1)

Application Number Title Priority Date Filing Date
CA3226756A Pending CA3226756A1 (en) 2021-09-07 2022-09-07 Method and system for analysing data flows

Country Status (2)

Country Link
EP (1) EP4399862A1 (en)
CA (1) CA3226756A1 (en)

Also Published As

Publication number Publication date
EP4399862A1 (en) 2024-07-17

Similar Documents

Publication Publication Date Title
Holland et al. New directions in automated traffic analysis
US9083740B1 (en) Network traffic pattern matching using adaptive deterministic finite automata
EP2810412B1 (en) Systems and methods for extracting structured application data from a communications link
US8111629B2 (en) Media session identification method for IP networks
WO2008056041A1 (en) Method and device for providing a charge balance based on the flow
EP3364601A1 (en) Testing method, device and system
US11894994B2 (en) Network traffic identification device
Mazhar Rathore et al. Exploiting encrypted and tunneled multimedia calls in high-speed big data environment
Gharakheili et al. iTeleScope: Softwarized network middle-box for real-time video telemetry and classification
CN108234345A (en) A kind of traffic characteristic recognition methods of terminal network application, device and system
Anderson et al. Accurate TLS fingerprinting using destination context and knowledge bases
US9100326B1 (en) Automatic parsing of text-based application protocols using network traffic data
CN110266603B (en) System and method for analyzing network flow of identity authentication service based on HTTP (hyper text transport protocol)
KR100608541B1 (en) An apparatus for capturing Internet ProtocolIP packet with sampling and signature searching function, and a method thereof
CN101854366B (en) Peer-to-peer network flow-rate identification method and device
JP2009182573A (en) Monitor analyzer, method and program
CA3226756A1 (en) Method and system for analysing data flows
WO2023036846A1 (en) Method and system for analysing data flows
Lukashin et al. Distributed packet trace processing method for information security analysis
US20220407722A1 (en) Method for detecting anomalies in ssl and/or tls communications, corresponding device, and computer program product
Moradi et al. On collection of large-scale multi-purpose datasets on internet backbone links
Muelas et al. On the impact of TCP segmentation: Experience in VoIP monitoring
EP4009584A1 (en) Method for determining classifiers for detecting attacks in a communication network, associated determination device
Yoon et al. Header signature maintenance for Internet traffic identification
Wehner et al. On learning hierarchical embeddings from encrypted network traffic