Brevet FR2949934A1 — publié le 20110311

SURVEILLANCE D'UNE SESSION DE COMMUNICATION COMPORTANT PLUSIEURS FLUX SUR UN RESEAU DE DONNEES. La présente invention concerne un procédé et un système de surveillance d'une session de communication sur un réseau de données, ladite session comprenant un premier flux de données, dit flux parent, utilisant un premier protocole, ledit flux parent comprenant des données permettant l'établissement d'un second flux de données, dit flux enfant, utilisant un second protocole pour ladite session. Elle concerne également un produit programme d'ordinateur pour mettre en oeuvre le procédé de surveillance. Les applications réseau actuelles utilisent en général plus d'une session et d'un protocole pour effectuer leur tâche. Par exemple, lors d'un appel vidéo généré par la mise en place d'une vidéoconférence, une session RTP (� real-time Protocol � - protocole temps réel) va être initiée par une session SIP (� Session Initiation Protocol � - protocole d'initialisation de session), et les paramètres de la session RTP dépendront d'informations échangées par la session SIP. Les appareils de surveillance de réseau, tels que, par exemple, les pare-feux, font la liaison entre les sessions des différents protocoles par l'intermédiaire de machines d'état. Cette solution a pour inconvénient de rendre ces appareils complexes car il faut, en particulier, écrire le comportement d'une machine d'état pour chaque nouvelle application réseau. De plus, le traitement des différents flux peut s'avérer très consommateur de ressource, ce qui limite la bande passante disponible au travers de ces appareils, ou bien oblige aux développements de machines onéreuses ou à limiter la quantité de données surveillées. Il serait donc avantageux d'obtenir un procédé et un système de surveillance permettant de surveiller des applications réseaux utilisant de nombreux protocoles avec une meilleure efficacité en termes de ressources matérielles et de mise en oeuvre. Pour résoudre un ou plusieurs des inconvénients cités précédemment, un procédé de surveillance d'une session de communication sur un réseau de données, la session comprenant un premier flux de données, dit flux parent, utilisant un premier protocole, le flux parent comprenant des données permettant l'établissement d'un second flux de données, dit flux enfant, utilisant un second protocole pour cette session, comprend: • rechercher dans le flux parent les données permettant l'établissement du flux enfant ; • générer et stocker une signature, dite clé parente, à partir de ces données ; • auditer des flux de données utilisant le second protocole sur le réseau de données ; • créer une signature pour chacun des flux ; • comparer la signature de chacun des flux à la clé parente ; et • si la comparaison est positive, déterminer que le flux de données correspondant est le flux enfant de la session. En définissant chaque flux par une signature adaptée, et en faisant une simple comparaison de signatures, opération informatiquement simple et rapide, ce procédé permet avantageusement de regrouper aisément les flux apparentés, et, en particulier, sans définir de machine d'état. Des caractéristiques ou des modes de réalisation particuliers, utilisables seuls ou en combinaison, sont : • la session comportant une pluralité déterminée de flux enfants, les flux de données sont audités jusqu'à ce que l'ensemble des flux enfants soit déterminé. • le flux enfant comprenant des données permettant l'établissement d'un troisième flux de données utilisant un troisième protocole pour la session, une signature est générée à partir de ces données, et des flux de données utilisant le troisième protocole sont audités jusqu'à la détermination du flux de données correspondant à la session. • le procédé surveillant une pluralité de sessions comprenant chacune un flux parent pour lequel est générée et stockée une clé parente, pour chacun des flux utilisant le second protocole, la signature est comparée à chacune des clés parentes pour déterminer si le flux est, ou non, le flux enfant d'une des sessions. Il est à noter en particulier que ce procédé s'applique avantageusement à une multitude de flux parents, de flux enfants et à tout type d'arborescence définissant un héritage entre un ou des flux parents, un ou des flux enfants avec un niveau quelconque d'héritages. Dans un deuxième aspect de l'invention, un produit programme d'ordinateur comprend des instructions de code de programme enregistrées sur un support lisible par un ordinateur, pour mettre en oeuvre les étapes du procédé précédent lorsque ledit programme fonctionne sur un ordinateur. Dans un troisième aspect de l'invention, un système de surveillance d'une session de communication sur un réseau de données, la session comprenant un premier flux de données, dit flux parent, utilisant un premier protocole, le flux parent comprenant des données permettant l'établissement d'un second flux de données, dit flux enfant, utilisant un second protocole pour la session, comprend: • un premier analyseur de flux pour rechercher dans le flux parent les données permettant l'établissement du flux enfant ; • un premier générateur de signature, dite clé parente, à partir de ces données; • une mémoire de stockage de la signature ; • un second analyseur de flux pour auditer des flux de données utilisant le second protocole sur le réseau de données ; • un second générateur de signature pour chacun de ces flux ; • un comparateur de la signature de chacun des flux à la clé parente ; et • un étiqueteur pour attacher le flux correspondant à la signature, si le résultat du comparateur est positif, en tant que flux enfant de la session. Dans des modes particuliers de réalisation, le système comporte aux moins deux dispositifs reliés par un réseau de données, un premier dispositif comportant au moins la mémoire de stockage, le comparateur de signature et l'étiqueteur et le second dispositif comportant au moins le premier analyseur de flux et le premier générateur de signature et une interface pour transmettre la signature générée au premier dispositif. Il peut également comporter au moins un troisième dispositif relié au premier dispositif par le réseau de données et comportant au moins le second analyseur de flux et le second générateur de signature et une interface pour transmettre la signature générée au premier dispositif. L'invention sera mieux comprise à la lecture de la description qui suit, faite uniquement à titre d'exemple, et en référence aux figures en annexe dans lesquelles : - la figure 1 est une vue schématique d'un réseau de données ; - la figure 2 est un ordinogramme d'un procédé selon un mode de réalisation de l'invention ; - la figure 3 est une vue schématique d'un système de surveillance selon un mode de réalisation de l'invention ; et - la figure 4 est une vue schématique d'un système de surveillance selon un second mode de réalisation de l'invention. En référence à la figure 1, un réseau numérique de données 1 connecte une multitude d'équipements 3 entre eux. Un système de surveillance 5 est connecté à ce réseau pour capter les flux de données échangés entre les équipements 3. Le système 5 surveille donc les sessions de communication circulant sur le réseau 1. On appelle � session �, ou session applicative, l'ensemble des échanges de données généré par une application réseau donnée. Par exemple, comme il est bien connu, lorsqu'un premier équipement souhaite transférer vers un second équipement un fichier en utilisant le protocole FTP, le premier équipement et le second équipement vont commencer par établir un premier échange en utilisant le protocole TCP sur le port 21 puis ils vont se mettre d'accord pour transférer le fichier proprement dit en utilisant FTP-DATA qui utilise le protocole TCP sur un port de numéro variable supérieur à 1024. L'ensemble de ces échanges constitue une session. On appellera alors sous-session, ou simplement flux de données, le premier échange TCP sur port 21 d'une part et le transfert en FTP-DATA d'autre part. La première sous-session sera appelée sous-session parente, ou flux parent, en ce qu'elle permet d'échanger les données entre les deux équipements permettant l'établissement de la seconde sous-session qui sera donc appelée sous-session enfant, ou flux enfant. Pour surveiller une session, le système 5 met en oeuvre le procédé suivant, figure 2. En analysant les données transférées, le système détecte, étape 11, l'établissement d'une session applicative sous la forme d'un flux parent. Le système 5 analyse, étape 13, alors le flux parent à la recherche de données d'établissement d'un flux enfant. Par exemple, dans le cadre d'une session FTP, le système 5 va analyser les paquets émis pour déterminer le numéro du port sur lequel va s'effectuer le transfert de fichier. Une fois ces données recueillies, le système 5 génère, étape 15, une signature, dite clé parent, à partir de ces données. Par exemple, pour une session FTP, le système 5 génère une signature à partir des adresses IP de l'équipement source et de l'équipement récepteur et du numéro de port. Cette signature est, par exemple, une valeur de hachage de ces données. Cette clé parent est stockée, étape 17, par le système 5. Le système 5 surveille alors, étape 19, les flux pouvant correspondre au flux enfant car mettant en oeuvre, par exemple, un protocole compatible avec celui-ci. Pour chacun de ces flux, il calcule, étape 21, une signature. Le calcul de cette signature est similaire au calcul de la clé parent. Par exemple, pour la session FTP, il calcule la clé de hachage des adresses IP des deux équipements et du numéro de port. Cette signature est comparée, étape 23, à la clé parent. Si la comparaison est positive, le flux correspondant est alors, étape 25, le flux enfant recherché. Dans un souci explicatif, la description ci-dessus se limite à un flux parent et un flux enfant. Cependant le procédé se généralise sans difficulté à une pluralité de flux parents et de flux enfants. Ainsi, si une session se compose d'un flux parent et d'une pluralité de flux enfants, le système calcule autant de clés parents que nécessaire et il surveille l'ensemble des flux jusqu'à ce que la totalité des flux enfants soit trouvée. Réciproquement, plusieurs sessions, et donc plusieurs flux parents, peuvent être surveillés en parallèle. La comparaison des signatures de flux est faite alors sur l'ensemble des clés parents jusqu'à ce qu'une clé parent corresponde, définissant ainsi la session de rattachement. Si aucune clé ne correspond, cela veut dire que le flux n'appartient à aucune session surveillée. Le procédé s'applique également sans difficulté à des sessions comportant des héritages multiples en cascade, c'est-à-dire qu'un flux enfant comporte des données d'établissement d'un autre flux et se comporte comme un flux parent pour cet autre flux qui en est alors son flux enfant. Basé sur les données d'établissement transportées par le flux enfant, le système définit une clé parent sur laquelle sont comparées les signatures des flux enfants potentiels. L'implémentation détaillée du procédé peut prendre différentes formes en fonction des caractéristiques techniques recherchées et des capacités de traitement du système. Par exemple, l'ensemble des clés parents peut correspondre à un vecteur d'index ordonné dont un des attributs est le nom de session. Une fois la signature d'un flux calculé, la recherche et la comparaison avec la ou les clés parents et l'attribution du flux à une session correspondent alors à une opération sur des index, opération informatique extrêmement efficace en termes de ressources utilisées et de rapidité. Cela permet également de mutualiser les opérations de surveillance d'une multitude de sessions. Le système de surveillance 5 comprend donc, figure 3 : • un premier analyseur 31 de flux pour rechercher dans le flux parent les données permettant l'établissement du flux enfant ; • un premier générateur 33 de signature, dite clé parente, à partir de ces données ; • une mémoire de stockage 35 de la signature ; • un second analyseur 37 de flux pour auditer des flux de données utilisant le second protocole sur le réseau de données ; • un second générateur 39 de signature pour chacun de ces flux ; • un comparateur 41 de la signature de chacun de ces flux à la clé parente ; et • un étiqueteur 43 pour attacher le flux correspondant à la signature, si le résultat du comparateur est positif, en tant que flux enfant de la session. Ce système de surveillance est réalisable sous forme d'un circuit électronique spécialisé ou bien en programmant spécifiquement un ordinateur avec un programme d'ordinateur comprenant des instructions de code de programme enregistrées sur un support lisible par un ordinateur, pour mettre en oeuvre les étapes du procédé de surveillance lorsque le programme fonctionne sur un ordinateur. Cet ordinateur comporte en particulier une interface réseau lui permettant d'écouter les transmissions réalisées sur le réseau, des mémoires volatiles à accès aléatoire reliées à une unité de calcul pour générer les clés et signatures, des mémoires de stockage pouvant être, par exemple, un disque dur magnétique pour stocker en particulier les règles de formation des signatures. Un mode de réalisation particulièrement intéressant de ce système consiste en le décomposer en plusieurs dispositifs décentralisés, figure 4. Une première série de dispositifs 50 installés au plus près des flux comportent les analyseurs de flux 31, 37 et les générateurs de signature 33, 39. Chacun comporte alors une interface de communication 52 avec un dispositif 54 de centralisation comportant, outre une interface de communication 56 en liaison avec les interfaces 52, la mémoire de stockage 35 des signatures ainsi que le comparateur 41 de la signature et l'étiqueteur 43. Ce dernier élément peut également se trouver dans les premiers dispositifs 50 afin d'étiqueter les flux au plus près de leur production. L'invention a été illustrée et décrite en détail dans les dessins et la description précédente. Celle-ci doit être considérée comme illustrative et donnée à titre d'exemple et non comme limitant l'invention a cette seule description. De nombreuses variantes de réalisation sont possibles. En particulier, le système de surveillance peut ne comprendre en fait qu'un seul analyseur de flux et qu'un seul générateur de signature capables d'auditer les flux et de générer les signatures aussi bien pour les flux parents que pour les flux enfants. Ou bien, pour des raisons de rapidité, ceux-ci peuvent être aussi nombreux qu'il y a de types de protocoles. Dans les revendications, le mot � comprenant � n'exclue pas d'autres éléments et l'article indéfini � un/une � n'exclue pas une pluralité. REVENDICATIONS1. Procédé de surveillance d'une session de communication sur un réseau de données, ladite session comprenant un premier flux de données, dit flux parent, utilisant un premier protocole, ledit flux parent comprenant des données permettant l'établissement d'un second flux de données, dit flux enfant, utilisant un second protocole pour ladite session, ledit procédé comprenant: • rechercher (13) dans le flux parent les données permettant l'établissement du flux enfant ; • générer (15) et stocker (17) une signature, dite clé parente, à partir desdites données ; • auditer (19) des flux de données utilisant le second protocole sur ledit réseau de données ; • créer (21) une signature pour chacun desdits flux ; • comparer (23) ladite signature de chacun desdits flux à la clé parente ; et • si la comparaison est positive, déterminer (25) que le flux de données correspondant est le flux enfant de ladite session. 2. Procédé selon la revendication 1, caractérisé en ce que la session comportant une pluralité déterminée de flux enfants, les flux de données sont audités jusqu'à ce que l'ensemble des flux enfants soit déterminé. 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que ledit flux enfant comprenant des données permettant l'établissement d'un troisième flux de données utilisant un troisième protocole pour ladite session, une signature est générée à partir desdites données, et des flux de données utilisant le troisième protocole sont audités jusqu'à la détermination du flux de données correspondant à la session. 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que ledit procédé surveillant une pluralité de sessions comprenant chacune un flux parent pour lequel est générée et stockéeune clé parente, pour chacun des dits flux utilisant le second protocole, la signature est comparée à chacune des clés parentes pour déterminer si ledit flux est, ou non, le flux enfant d'une desdites sessions. 5. Produit programme d'ordinateur comprenant des instructions de code de programme enregistrées sur un support lisible par un ordinateur, pour mettre en oeuvre les étapes du procédé selon l'une quelconque des revendications 1 à 4 lorsque ledit programme fonctionne sur un ordinateur. 6. Système de surveillance d'une session de communication sur un réseau de données, ladite session comprenant un premier flux de données, dit flux parent, utilisant un premier protocole, ledit flux parent comprenant des données permettant l'établissement d'un second flux de données, dit flux enfant, utilisant un second protocole pour ladite session, ledit système comprenant: • un premier analyseur de flux (31) pour rechercher dans le flux parent les données permettant l'établissement du flux enfant ; • un premier générateur de signature (33) , dite clé parente, à partir desdites données ; • une mémoire de stockage (35) de ladite signature ; • un second analyseur de flux (37) pour auditer des flux de données utilisant le second protocole sur ledit réseau de données ; • un second générateur de signature (39) pour chacun desdits flux ; • un comparateur (41) de ladite signature de chacun desdits flux à la clé parente ; et • un étiqueteur (43) pour attacher le flux correspondant à la signature, si le résultat du comparateur est positif, en tant que flux enfant de ladite session. 7. Système selon la revendication 6, caractérisé en ce qu'il comporte aux moins deux dispositifs reliés par un réseau de données, un premier dispositif comportant au moins la mémoire de stockage, le comparateur de signature et l'étiqueteur et le second dispositif comportant au moins lepremier analyseur de flux et le premier générateur de signature et une interface pour transmettre la signature générée au premier dispositif. 8. Système selon la revendication 7, caractérisé en ce qu'il comporte au moins un troisième dispositif relié au premier dispositif par le réseau de données et comportant au moins le second analyseur de flux et le second générateur de signature et une interface pour transmettre la signature générée au premier dispositif.