Brevet FR2918833A1 — publié le 20090116

- 1- " Procédé et système pour la découverte de la topologie des communications entre applications d'un réseau informatique." La présente invention se rapporte à un procédé et un système de découverte de la topologie des communications entre applications d'un réseau informatique. Les mécanismes classiques de découverte de topologie d'un réseau permettent habituellement d'obtenir la topologie d'un point de vue niveau 1 io d'après la classification OSI, c'est-à-dire la topologie physique du réseau : les différents éléments constituant le réseau ainsi que la façon dont ils sont reliés entre eux par des câbles par exemple. D'autres mécanismes permettent également d'obtenir la topologie du point de vue de la couche 2 du modèle OSI, c'est-à-dire de définir avec quels équipements un élément 15 donné est capable de communiquer directement. Il existe également d'autres mécanismes permettant de découvrir la topologie de la couche 3 du modèle OSI d'un réseau, c'est-à-dire les différents sous-réseaux existants ainsi que la manière dont ils sont interconnectés. La présente invention s'intéresse, elle, à la découverte de la 20 topologie de niveau 7 du modèle OSI d'un réseau, c'est-à-dire de la topologie des communications entre les applications exécutées sur les équipements du réseau. Les procédés classiques de découverte de la topologie des communications entre applications utilisent une sonde passive à l'intérieur 25 du réseau, c'est-à-dire que celle-ci n'effectue aucune interaction avec le réseau. Elle ne fait que capturer les différentes communications effectuées à l'intérieur du réseau et essaye en analysant ces communications, de découvrir la liste des applications sur le réseau ainsi que des liens entre elles. Néanmoins, ce procédé possède de nombreux inconvénients. En effet, 30 la sonde doit être disposée à un point du réseau par lequel toutes les communications transitent afin de pouvoir faire la topologie de tout le réseau. Si un point de ce genre n'existe pas, il devient donc nécessaire de disposer de plusieurs sondes devant collaborer afin de pouvoir entièrement caractériser le réseau. De plus, la ou les sondes n'ont connaissance que des 35 communications entre les applications, elles ne sont donc pas capables de retrouver certaines informations qui ne transitent pas sur le réseau comme - 2- par exemple le nom de l'application, le temps d'exécution, la mémoire utilisée... De la même façon, à cause du manque d'informations, la ou les sondes ne sont pas capables de distinguer deux applications identiques situés sur le même équipement du réseau. La présente invention a pour but de remédier aux inconvénients précités en proposant un nouveau procédé pour découvrir la topologie des communications des applications sur un réseau. La présente invention a pour but un procédé permettant de io déterminer de façon exhaustive la topologie des communications d'un réseau. Un autre but de l'invention est de déterminer cette topologie de façon rapide. On atteint au moins l'un des objectifs précités avec un procédé pour 15 découvrir la topologie des communications entre applications d'un réseau informatique comprenant plusieurs équipements, ce procédé comprenant les étapes suivantes : a) connexion à chacun des équipements du réseau, en utilisant un et/ou plusieurs protocoles d'administration tels que SNMP, SSH..., 20 b) pour chaque équipement, acquisition de données brutes relatives à des applications hébergées dans cet équipement, c) pour chaque équipement, acquisition de données de connexion pour chaque connexion en cours établie par une application, ceci correspondant à des données de niveau 3 ou supérieur dans le modèle OSI, 25 d) à partir des données brutes et des données de connexion ainsi obtenues, on détermine des liens de communication entre respectivement des couples d'applications dudit réseau ; en d'autres termes on détermine le lien qui existe éventuellement entre les applications prises deux par deux ; et 30 e) on génère une topologie niveau 7 dudit réseau à partir desdits liens de communication. Avec le procédé selon l'invention, on scrute chaque équipement du réseau. On répertorie l'ensemble des applications et on établit le lien qu'il 35 peut y avoir entre deux applications données. On réalise une topologie complète du réseau. Cette topologie peut être réalisée de façon rapide -3puisqu'on rapatrie l'ensemble des informations récoltées au sein d'un serveur de traitement. Cette topologie peut être sauvegardée sous forme d'un fichier XML que l'on stocke dans une base de données. On peut aussi utiliser toute autre méthode de stockage permanente ou non. Selon un mode de mise en oeuvre avantageux de l'invention, pour déterminer lesdits liens de communication, on réalise une première phase de calcul au cours de laquelle, pour chaque équipement, à chaque connexion on associe l'application correspondante qui a initiée cette io connexion ; et on réalise une seconde phase de calcul au cours de laquelle, pour chaque équipement, à chaque connexion on associe l'application correspondante qui a été le destinataire de cette connexion. On réalise ainsi des correspondances à chaque extrémité d'une connexion. 15 Avantageusement, les données brutes peuvent comprendre : - le nom de chaque application, -l'adresse IP utilisé en temps normal par cette application, et - le port utilisé en temps normal par cette application, 20 Selon l'invention, les données de connexion peuvent comprendre : - le protocole utilisé pour chaque connexion établie, - l'adresse IP source, -le port source, - l'adresse IP destinataire, et 25 - le port destinataire. De préférence, les données de connexion comprennent en outre le numéro de processus PID (POUR Process Identifier en langue anglaise) utilisé pour chaque communication lors d'une connexion. Lorsqu'on est en mesure de récupérer un PID, à chaque communication d'une connexion, on 30 peut associer l'application correspondante qui a initiée cette communication. De la même manière, à chaque communication d'une connexion, on peut associer l'application correspondante qui a été le destinataire de cette communication. 35 Selon une caractéristique avantageuse de l'invention, l'association entre une connexion et l'application correspondante dans la première phase - O - de calcul comprend une étape de comparaison entre d'une part l'adresse IP source et le port source, et d'autre part l'adresse IP utilisé et le port utilisé. De la même manière, l'association entre une connexion et l'application correspondante dans la seconde phase de calcul comprend une étape de comparaison entre d'une part l'adresse IP destinataire et le port destinataire, et d'autre part l'adresse IP utilisé et le port utilisé. Avantageusement, les données brutes peuvent comprendre en outre des données de performances de chaque application, telles que des io données relatives à l'utilisation mémoire par l'application et la consommation CPU de cette application. On obtient donc des informations supplémentaires sur les applications, ces informations étant différentes de celles transitant sur le réseau. Cela permet donc d'obtenir une topologie plus riche qu'une 15 topologie obtenue avec un procédé classique selon l'art antérieur. On peut faire des recoupements parmi l'ensemble des données acquises de façon à obtenir de nombreuses informations sur une communication donnée ; ces informations étant obtenues des deux cotés de cette communication. Cette redondance d'information permet ici de 20 s'affranchir de problème dans l'art antérieur dû à la topographie du réseau au niveau 3 du modèle OSI comme le NAT (pour Network Address Translation en langue anglaise). Avec la redondance d'informations obtenue en scrutant la communication des deux cotés, il est possible dans certains cas de reconstruire la communication exacte ayant eue lieu en 25 s'affranchissant des intermédiaires utilisés à cause du NAT. Selon un mode de mise en oeuvre de l'invention, on effectue les étapes a) à e) de façon régulières. Cette découverte de topologie (scrutation des applications des 30 équipements par les étapes a) à e)) peut également être effectuée de façon planifiée (journalière, hebdomadaire, etc.) afin de suivre l'évolution de la topologie ou la déterminer une fois pour toute à un instant donné. A titre d'exemple, on peut effectuer les étapes a) à e) en réponse à 35 une consigne prédéterminée. Cela peut être une consigne déclenchée par -5un utilisateur ou une alarme générée de façon automatique lors par exemple d'un problème sur le réseau. Suivant un autre aspect de l'invention, il est proposé un serveur pour découvrir la topologie des communications entre applications d'un réseau informatique comprenant plusieurs équipements, ce serveur comprenant des moyens pour : a) se connecter à chacun des équipements du réseau, b) pour chaque équipement, acquérir des données brutes relatives à io des applications hébergées dans cet équipement, c) pour chaque équipement, acquérir des données de connexion pour chaque connexion en cours établie par des applications, d) à partir des données brutes et des données de connexion ainsi obtenues, déterminer des liens de communication entre respectivement des 15 couples d'applications dudit réseau, et e) générer une topologie niveau 7 dudit réseau à partir desdits liens de communication. D'autres avantages et caractéristiques de l'invention apparaîtront à 20 l'examen de la description détaillée d'un mode de mise en oeuvre nullement limitatif, et des dessins annexés, sur lesquels : La figure 1 est une vue générale d'un réseau mettant en oeuvre le procédé selon la présent invention, La figure 2 est un tableau illustrant des données brutes obtenues 25 après scrutation des applications des équipements du réseau, et La figure 3 est un tableau illustrant des données de connexion obtenues après scrutation des connexions relatives à l'équipement B. Sur la figure 1 on voit un réseau local LAN comprenant trois 30 équipements A, B et C, ainsi qu'un serveur de traitement D selon l'invention. Ce serveur de traitement est doté de moyens matériels et logiciels conventionnels permettant son bon fonctionnement dans un réseau de communication. Il intègre également une application selon l'invention lui permettant de se connecter à chaque équipement du réseau afin 35 d'effectuer des opérations d'analyse et d'acquisition de données. Chaque -6- équipement comporte une application permettant au serveur de traitement d'acquérir des données au travers d'un protocole d'administration. L'équipement est une machine comportant notamment deux application APA1 et APA2. Ces applications peuvent communiquer entre elles et aussi communiquer avec d'autres applications contenues dans d'autres équipements du réseau. L'équipement B comporte l'application APB1. L'équipement C comporte l'application APC1. On se propose d'établir la topologie du réseau LAN, c'est-à-dire les liens de communication de niveau 7 dans le modèle OSI. Pour ce faire, le io serveur de traitement scrute chaque équipement pour récupérer des données brutes. Ces données sont répertoriées dans le tableau de la figure 2. Ainsi, pour chaque équipement on acquière le nom de chaque application hébergée par cet équipement, l'adresse IP utilisé, le port utilisé 15 ainsi que des données sur la consommation mémoire, la consommation CPU de l'application considérée et le PID de l'application considérée. Par exemple, sur l'équipement A, on distingue l'application nommée APA1 qui utilise l'adresse IP 212.1.1.1 sur le port 2, ainsi que l'application nommée APA2 qui utilise l'adresse IP 212.1.1.2 sur le port 1. 20 Sur l'équipement B, on distingue l'application nommée APB1 qui utilise l'adresse IP 213.1.1.4 sur le port 1. Sur l'équipement C, on distingue l'application nommée APC1 qui utilise l'adresse IP 214.1.1.5 sur le port 1. Ensuite, à un instant donné ou de façon répétitive, on récupère des 25 données de connexion pour chaque équipement. Sur la figure 3 on distingue les données de connexion obtenues sur l'équipement B à un instant où les connexions connexions et connexion2 étaient en cours c'est-à-dire actives. Connexions est caractérisée par une adresse IP source de 213.1.1.4, 30 un port source de 1, une adresse IP destinataire de 212.1.1.2, un port destinataire égal à 1, un protocole TCP et un numéro de processus PID valant 44. De la même manière, connexion2 est affectée d'une adresse IP source égale à 213.1.1.4, un port source égal à 1, une adresse IP 35 destinataire égale à 214.1.1.5, un port destinataire égale à 1, un protocole UDP et un numéro de processus PID égal à 44. - 7- Avec l'ensemble de données récupérées, le serveur de traitement D effectue une première phase de calcul consistant, pour chaque équipement, à faire le lien entre les applications et les connexions découvertes sur ce même équipement. Pour cela, on compare les couples IP/Port source utilisés par l'application. Le serveur de traitement est alors capable d'attribuer à une application toutes les communications ayant comme source un couple IP/Port utilisé par cette application. Avantageusement, lorsqu'on possède le numéro du processus PID de chaque communication, io le serveur de traitement fait le lien entre l'application et les communications associées. Sur le tableau de la figure 3, chaque communication est associé au PID 44 et donc à l'application APB1. Lors de la seconde phase de calcul, le serveur de traitement fait le lien entre les IP/Port destination des communications et les applications 15 découvertes sur tous les équipements. De la même façon que précédemment, on utilise les données sur les IP/Port découverts lors de l'acquisition des données brutes des applications. Grâce à ces deux étapes, on fait le lien entre deux applications données d'un même réseau même si ces applications ne se situent pas sur 20 le même équipement. Bien sûr, l'invention n'est pas limitée aux exemples qui viennent d'être décrits et de nombreux aménagements peuvent être apportés à ces exemples sans sortir du cadre de l'invention. REVENDICATIONS 1. Procédé pour découvrir la topologie des communications entre applications d'un réseau informatique comprenant plusieurs équipements, ce procédé comprenant les étapes suivantes : a) connexion à chacun des équipements du réseau,, b) pour chaque équipement, acquisition de données brutes relatives à des applications hébergées dans cet équipement, c) pour chaque équipement, acquisition de données de connexion io pour chaque connexion en cours établie par une application, d) à partir des données brutes et des données de connexion ainsi obtenues, on détermine des liens de communication entre respectivement des couples d'applications dudit réseau, et e) on génère une topologie niveau 7 dudit réseau à partir desdits 15 liens de communication. 2. Procédé selon la revendication 1, caractérisé en ce que pour déterminer lesdits liens de communication, on réalise une première phase de calcul au cours de laquelle, pour chaque équipement, à chaque 20 connexion on associe l'application correspondante qui a initiée cette connexion ; et on réalise une seconde phase de calcul au cours de laquelle, pour chaque équipement, à chaque connexion on associe l'application correspondante qui a été le destinataire de cette connexion. 25 3. Procédé selon la revendication 1 ou 2, caractérisé en ce que les données brutes comprennent : - le nom de chaque application, - l'adresse IP utilisé par cette application, et - le port utilisé par cette application, 30 4. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que les données de connexion comprennent : - le protocole utilisé pour chaque connexion établie, - l'adresse IP source, 35 - le port source, - l'adresse IP destinataire, etle port destinataire. 5. Procédé selon les revendications 2 à 4, caractérisé en ce que l'association entre une connexion et l'application correspondante dans la première phase de calcul comprend une étape de comparaison entre d'une part l'adresse IP source et le port source, et d'autre part l'adresse IP utilisé et le port utilisé. 6. Procédé selon les revendications 2 à 4, caractérisé en ce que io l'association entre une connexion et l'application correspondante dans la seconde phase de calcul comprend une étape de comparaison entre d'une part l'adresse IP destinataire et le port destinataire, et d'autre part l'adresse IP utilisé et le port utilisé. 15 7. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que les données brutes comprennent en outre des données de performances de chaque application. 8. Procédé selon l'une quelconque des revendications précédentes, 20 caractérisé en ce que les données de connexion comprennent en outre le numéro de processus PID utilisé pour chaque communication lors d'une connexion. 9 Procédé selon l'une quelconque des revendications précédentes, 25 caractérisé en ce qu'on effectue les étapes a) à e) de façon régulières. 10. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'on effectue les étapes a) à e) de façon planifiées. 30 11. Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce qu'on effectue les étapes a) à e) en réponse à une consigne prédéterminée. 12. Procédé selon l'une quelconque des revendications précédentes, 35 caractérisé en ce qu'on stocke la topologie dans une base de données. 9- 10 - 13. Serveur pour découvrir la topologie des communications entre applications d'un réseau informatique comprenant plusieurs équipements, ce serveur comprenant des moyens pour : a) se connecter à chacun des équipements du réseau, b) pour chaque équipement, acquérir des données brutes relatives à des applications hébergées dans cet équipement, c) pour chaque équipement, acquérir des données de connexion pour chaque connexion en cours établie par des applications, d) à partir des données brutes et des données de connexion ainsi io obtenues, déterminer des liens de communication entre respectivement des couples d'applications dudit réseau, et e) générer une topologie niveau 7 dudit réseau à partir desdits liens de communication.