FR 2902954 A1 20071228 FR 0605578 A 20060621 SYSTEME ET PROCEDE STOCKAGE D'UN INVENTAIRE DES SYSTEMES ET/OU SERVICES PRESENTS SUR UN RESEAU DE COMMUNICATION La présente invention a pour objet un système et un procédé de stockage d'un inventaire des systèmes et/ou services présents sur un réseau de communication. Elle trouve notamment son application à tous les systèmes et procédés dans lesquels il est nécessaire de disposer d'un inventaire des systèmes et/ou services présents sur le réseau de communication utilisé. En particulier, l'invention trouve son application aux systèmes passifs de surveillance d'un réseau de communication et procédés associés, aux systèmes de détection et de prévention d'intrusion dans un réseau de communication et procédés associés, ou encore aux systèmes de gestion des mises à jour des services et/ou systèmes présents sur un réseau de communication. Par systèmes et/ou entités présentes sur un réseau de communication, on entend tout système ou service, par exemple de type système d'exploitation ou serveur (web, d'application, de messagerie, de base de données, etc...). Par souci de simplification, dans toute la suite de la description, on utilisera l'expression entités présentes sur le réseau de communication au lieu de l'expression systèmes et/ou services présents sur le réseau de communication . Généralement, dans tous ces systèmes dans lesquels il est nécessaire de disposer d'un inventaire des entités présentes sur le réseau de communication, on maintient une liste séquentielle de ces entités. Une telle liste n'est cependant pas optimale dans la mesure où sa mise à jour et la recherche d'une entité dans la liste sont coûteuses en temps de traitement. Par ailleurs, l'ajout d'une nouvelle dans une telle liste est une opération qui ne peut être réalisée de façon optimale. Par ailleurs, les performances des systèmes utilisant un inventaire des entités présentes sur un réseau de communication sont primordiales. Ces systèmes nécessitent en effet généralement une analyse rapide car le traitement du trafic sur le réseau se fait en temps réel. Enfin, la question de la consommation mémoire se pose également. En effet, de tels systèmes sont généralement embarqués sur du matériel à faible capacité mémoire. Ces problèmes se posent de façon particulièrement importante dans le contexte d'une application aux systèmes de surveillance d'un réseau de communication et systèmes de détection de vulnérabilités. Dans ces applications, on distingue généralement entre les systèmes dits actifs qui vont initier les connexions vers les machines analysées, et les systèmes passifs qui se contentent d'analyser le trafic du réseau qu'ils protègent. Un système passif est tout particulièrement intéressant pour l'intégration dans un système plus général de détection et de prévention 15 des intrusions dans un réseau de communication. Les performances de ces systèmes reposent essentiellement sur la capacité à reconnaître une vulnérabilité d'un service ou d'un système donné, donc d'une entité, en temps réel. Or, les systèmes classiques utilisant des listes séquentielles des 20 entités présentes sur le réseau de communication n'atteignent pas les performances optimales, en raison notamment de la place qu'occupe la liste en mémoire, et de la complexité des règles de vulnérabilité. Avec de telles listes, il est également difficile de gérer les regroupements de versions d'entités, ainsi que de comparer ces versions 25 entre elles. Enfin, chaque introduction d'une nouvelle version provoque un bouleversement non négligeable de la liste. Tous ces inconvénients rendent les systèmes utilisant de telles listes compliqués et souvent peu performants. 30 Le problème qui se pose alors est donc de disposer d'un système de stockage d'un inventaire des entités présentes sur un réseau de communication qui occupe peu de place en mémoire, qui soit facilement évolutif, et dont le parcours, c'est-à-dire la recherche d'informations dans ce système, soit rapide. En particulier, un tel système doit permettre de définir et gérer une entité avec toutes les versions sans mêmes les connaître à l'avance. L'objet de l'invention est donc d'apporter une solution au problème précité parmi d'autres problèmes. L'invention se rapporte donc, selon un premier aspect, à un système de stockage d'un inventaire des entités présentes sur un réseau 10 de communication. De façon caractéristique, le système de stockage comprend une base de données qui contient une première arborescence hiérarchique. Dans cette arborescence, les feuilles, c'est-à-dire les éléments de l'arborescence qui n'ont pas de fils, représentent des versions ou des 15 groupes de version d'entités, et les noeuds, c'est-à-dire les éléments de l'arborescence qui ont des fils, des groupes de versions d'entités. Par ailleurs, un noeud fils ou une feuille est lié à son noeud parent par une relation d'ordre telle que la version d'entité représentée par la feuille ou le groupe de versions d'entités représenté par la feuille ou le 20 noeud fils fait partie du groupe de versions d'entités représenté par son noeud parent. Ainsi, avec une telle structure de système de stockage de l'inventaire des entités présentes sur un réseau de communication, il est possible de manipuler une entité unique indépendamment de la façon de 25 la reconnaître sur le réseau. Il est possible également de gérer les regroupements de versions d'entités. Par ailleurs, un tel système génère un gain de place en mémoire car il permet une instanciation unique pour toutes les références à une entité donnée. Pour les noeuds générés, seuls les noeuds utilisés sont instanciés. 30 Enfin, un tel système permet de définir une entité avec toutes ses versions sans les connaître à l'avance, ces dernières étant raccrochées au fur et à mesure en tant que noeuds fils ou feuilles d'un noeud parent représentant un groupe de versions préalablement généré. Dans une première variante de réalisation, les feuilles d'un même noeud parent sont liées par une relation d'ordre telle que la version de l'entité représentée par une feuille est inférieure à la version représentée par sa soeur droite ou gauche. Ainsi, un tel système facilite le contrôle de la comparaison des versions d'un même groupe. Dans une autre variante de réalisation éventuellement en combinaison avec la précédente, un noeud de la première arborescence contient la signature de la version de l'entité ou du groupe de versions de d'entités qu'il représente. Dans encore une autre variante, éventuellement en combinaison avec l'une ou plusieurs quelconques des précédentes, les noeuds de première arborescence contiennent des identificateurs de noeuds. Par ailleurs, le système contient également une deuxième arborescence hiérarchique des noms des noeuds de la première arborescence hiérarchique. Dans cette deuxième arborescence hiérarchique, la concaténation des chaînes de caractères contenues dans les noeuds d'une même lignée, à partir de la racine (c'est-à-dire le noeud ascendant de tous les autres noeuds ou feuilles), jusqu'à un noeud donné identifié par un identificateur donné, correspond au nom de la version de l'entité ou au nom du groupe de versions d'entités du noeud dans la première arborescence identifié par l'identificateur donné. Une telle caractéristique permet ainsi d'accélérer la recherche d'une entité à partir de sa signature, et de diminuer la mémoire utilisée pour stocker l'ensemble des entités représentées. Par ailleurs, avec une telle caractéristique, la recherche d'une entité à partir d'une signature n'est plus proportionnelle au nombre de noeuds à 30 évaluer. De plus, cela permet d'éviter le stockage d'un gros volume de texte pour chaque noeud, et d'éviter une certaine redondance entre les contenus respectifs des noeuds. La structure d'une deuxième arborescence permet donc de mettre en commun les textes qui ont le même commencement. Dans une variante de réalisation, les noeuds de la première arborescence contiennent uniquement des identificateurs de noeuds. Ainsi, les noeuds représentant les versions ou groupes de versions d'entités dans la première arborescence, ne stockent plus le nom de l'entité qu'ils représentent mais référencent un noeud dans la deuxième arborescence. L'invention se rapporte également, selon un deuxième aspect, à un procédé de mise en place d'un système de stockage d'un inventaire des entités présentes sur un réseau de communication tel que présenté ci-dessus. De façon caractéristique, le procédé comprend une étape de déclaration d'un générateur unique pour toutes les versions d'entités présentes sur le réseau de communication. De préférence, le générateur décrit le nom de l'entité, et/ou le numéro de version. De préférence également, le procédé distingue les versions réelles d'entités des groupes de versions d'entités, et le générateur décrit l'appartenance à un groupe de versions d'entités. De préférence encore, le générateur décrit la relation d'ordre entre les versions au sein d'un groupe de versions d'entités. Ainsi, il est possible de définir une entité avec toutes ses versions sans les connaître à l'avance, et de définir l'étendue de la relation d'ordre entre les entités. L'invention se rapporte également, selon un troisième aspect, à un système passif de surveillance d'un réseau de communication. De façon caractéristique, le système passif de surveillance comprend un système de stockage d'un inventaire des entités présentes sur le réseau de communication tel que décrit précédemment. Dans une première variante de réalisation, le système passif de surveillance comprend une base de connaissances. Cette base de connaissances contient des règles de traitement de messages en provenance du réseau de communication, des règles de vulnérabilité des entités présentes sur le réseau de communication. Les règles de vulnérabilité décrivent les conditions de présence d'une vulnérabilité. Par ailleurs, la base de connaissances contient le système de stockage de l'inventaire des entités présentes sur le réseau de communication. De préférence, les règles de traitement des messages provenant du réseau de communication et contenues dans la base de connaissances, sont basées sur des hypothèses et décrivent les actions à effectuer lors de la réception des messages si les hypothèses sont vérifiées. De préférence encore, le système comprend un moteur d'inférences pour l'évaluation des hypothèses des règles de vulnérabilité et le déclenchement des actions à effectuer en fonction du résultat de l'évaluation. Dans encore une autre variante de réalisation éventuellement en combinaison avec une ou plusieurs quelconques des précédentes, le système comprend une base de faits. Cette base de faits contient des données dynamiques représentatives du réseau de communication. De préférence, les données dynamiques représentatives du réseau de communication contenues dans la base de faits, comprennent des adresses réseau et/ou des noms ou numéros de ports et/ou des noms ou numéros d'entités et/ou des vulnérabilités. L'invention se rapporte encore, selon un quatrième aspect, à un procédé de surveillance passive d'un réseau de communication, dans 30 lequel les messages provenant du réseau de communication et contenant une bannière sont analysés par un moteur d'inférence. De façon caractéristique, l'analyse comprend une étape d'extraction, au cours de laquelle la signature de l'entité concernée et/ou de la version de l'entité concernée, est extraite de la bannière. L'analyse comprend également une étape de recherche de la signature dans un inventaire des entités. Cette étape de recherche sélectionne un noeud dans une première arborescence hiérarchique. Cette première arborescence hiérarchique comprend des feuilles représentant des versions ou des groupes de version des entités, et des noeuds représentant des groupes de versions d'entités. Dans cette arborescence, un noeud fils ou une feuille est lié à son noeud parent par une relation d'ordre telle que la version de l'entité ou le groupe de versions d'entités représenté par la feuille ou le noeud fils fait partie du groupe de versions d'entités représenté par son noeud parent. Dans une variante de réalisation, l'étape de recherche retourne le noeud le plus profond dans la première arborescence qui contient la signature concordant sur la plus grande longueur avec la signature recherchée. De préférence, pour retourner le noeud dans la première arborescence qui contient la signature concordant sur la plus grande longueur avec la signature recherchée, on parcourt une deuxième arborescence hiérarchique des noms des noeuds de la première arborescence hiérarchique. Dans cette deuxième arborescence hiérarchique, la concaténation des chaînes de caractères contenues dans les noeuds d'une même lignée, à partir de la racine et jusqu'à un noeud donné identifié par un identificateur donné, correspond au nom de la version de l'entité ou au nom du groupe de versions d'entités du noeud dans la première arborescence identifié par l'identificateur donné. L'invention se rapporte également, selon un cinquième aspect, à un système de détection et de prévention d'intrusion dans un réseau de communication, caractérisé en ce qu'il comprend un système passif de surveillance tel que présenté précédemment. De préférence, le système de détection et de prévention d'intrusion comprend un module de détection automatique de protocole et d'analyse protocolaire, destiné notamment à extraire l'information utile pour le système passif de surveillance. Selon un sixième aspect, l'invention se rapporte également à un procédé de détection et de prévention d'intrusion dans un réseau de communication mis en oeuvre par le système de détection et de prévention d'intrusion présenté ci-dessus. L'invention se rapporte encore, selon un septième aspect, à un système de gestion des mises à jour d'entités présentes sur un réseau de communication, qui est caractérisé en ce qu'il comprend un système de stockage d'un inventaire de ces entité présentes sur le réseau de communication tel que présenté précédemment. D'autres caractéristiques et avantages de l'invention apparaîtront plus clairement et de manière complète à la lecture de la description ci-après des variantes préférées de réalisation, lesquelles sont données à titres d'exemples non limitatifs, et en référence aux figures annexées suivantes. figure 1 : représente schématiquement une application particulière du système de stockage d'un inventaire des entités présentes sur un réseau de communication, - figure 2 : représente schématiquement un exemple de première arborescence hiérarchique, - figure 3 : représente schématiquement un exemple de deuxième arborescence hiérarchique, La figure 1 représente schématiquement l'application du système de stockage d'un inventaire des entités présentes sur un réseau de communication de l'invention, au domaine de la surveillance passive du 30 réseau de communication et de la détection et prévention d'intrusion dans ce réseau de communication. Le réseau de communication peut par exemple être constitué d'un réseau de type Internet 18 et/ou d'un réseau interne 19. Classiquement, un système de détection et de prévention d'intrusion dans le réseau de communication 18, 19 pourra comporter un pare-feu qui intègre un moyen de prévention des intrusions par détection des connexions, sur un point central et avant chaque branche du réseau. On pourra par exemple se référer au dispositif décrit dans le document FR 2 868 230. Ce système comprend un module 17 de détection automatique de protocole et d'analyse protocolaire. Ce module analyse le flux du réseau et envoie les messages à un système 12 passif de surveillance du réseau de communication 18, 19 selon l'invention. Les messages envoyés contiennent des champs protocolaires intéressants, notamment des en-têtes et/ou bannières. La détection automatique des protocoles réalisée par le module 17 est obtenue grâce à l'analyse protocolaire qui repose sur plusieurs modules de type plugins d'analyse de protocoles dédiés à un protocole donné (http, ftp, smtp, ...). Chacun de ces modules d'analyse de protocole peut effectuer les 20 opérations suivantes : - reconnaissance automatique du protocole, analyse du flux pour vérification de la conformité au protocole (pour générer d'éventuelles alarmes) et pour extraction des données protocolaires (pour envoi des messages au système 12 passif de 25 surveillance du réseau de communication 18, 19). Quand le module 17 de détection automatique de protocole et d'analyse protocolaire rencontre une nouvelle connexion, il interroge chacun des modules d'analyse de protocole donné pour déterminer si l'un de ces modules reconnaît le protocole en question. Ainsi, tout le contrôle 30 et l'analyse du trafic d'une connexion donnée sont délégués à un module d'analyse de protocole donné. Le module 17 de détection automatique de protocole et d'analyse protocolaire extrait donc l'information utile pour le système 12 passif de surveillance. Les messages envoyés à ce système 12 passif de surveillance peuvent contenir l'adresse réseau (adresse IP) et/ou le numéro de port de la machine impactée, un identifiant de message, et éventuellement des données d'extraction du protocole. Les messages émis par le module 17 de détection automatique de protocole et d'analyse protocolaire sont reçus par le moteur d'inférence 15 du système 12 passif de surveillance. Ce moteur d'inférence 15 gère les contextes des machines suivies dans une base de faits 16. En particulier, sont stockés les messages reçus préalablement épurés, les faits (par exemple port, service, système d'exploitation) et les vulnérabilités. Ce moteur d'inférence 15 est le composant central du système 12 passif de surveillance. Il réalise l'évaluation des hypothèses des règles stockées dans une base de connaissances 13. Ces règles sont des règles d'épuration des bannières de messages, de création de faits (port, service, système d'exploitation) et de vulnérabilité. Ces règles de traitement des messages décrivent donc les actions à effectuer lors de la réception d'un message en provenance du module 17 de détection automatique de protocole et d'analyse protocolaire. Ces règles permettent de définir des actions de prétraitement des messages avant leur stockage. Les règles de vulnérabilité stockées dans la base de connaissances 25 13 décrivent les conditions de présence d'une vulnérabilité. L'évaluation des règles de vulnérabilité réalisée par le moteur d'inférence 15 consiste en la vérification des hypothèses de ces règles. La définition des règles de vulnérabilité inclut les actions à effectuer lors de la réception d'un message si les hypothèses sont effectivement vérifiées. 30 Le moteur d'inférence 15 est donc chargé du déclenchement des actions spécifiques à effectuer en fonction du résultat de l'évaluation des règles. Les résultats de l'évaluation sont intégrés dans les contextes dans la base de faits 16. Par ailleurs, les résultats sont propagés par l'intermédiaire de 5 l'évaluation d'autres règles impactées par les nouveaux faits. Le moteur d'inférence 15 se charge également de l'envoi des résultats pour affichage sur des consoles d'administration, non représentées sur la figure 1. De préférence, les messages ont une durée limitée et expirent au 10 bout d'un certain nombre de jours, par exemple sept jours. Si, au bout de ce nombre de jours, un message n'a pas été réémis, tous les faits présents dans la base de faits 16 découlant de ce message sont effacés. Les mises à jour des messages sont gérées de la façon suivante. Un fait peut avoir des valeurs multiples, par exemple service = 15 Apache 1.3.31, Apache . Mais à un instant donné, seule la valeur plus précise est prise en compte, dans cet exemple service = Apache 1.3.31 . Lorsque la valeur d'un fait vient à expiration, le fait prend alors la valeur la plus précise parmi les valeurs récentes. Le moteur d'inférence 15 se charge également de l'extraction des 20 parties pertinentes des bannières envoyées par le module 17 de détection automatique de protocole et d'analyse protocolaire, encore appelée épuration des bannières. Ainsi, il est possible de ne réévaluer les règles qui découlent des bannières que si des informations pertinentes concernant le service ont 25 changé (par exemple la version). Par ailleurs, l'épuration des bannières permet de diminuer la taille des messages stockés. A titre d'exemple, les bannières peuvent être épurées de la façon suivante. Exemple 1 : 30 bannière en entrée : 220 www.comp.com SMTP Server (Microsoft Exchange Internet 11 Mail Service 5.5.2448.0) bannière épurée : MS Exchange 5.5.2448.0 . Exemple 2 : - bannière en entrée : 220-toto.com Microsoft SMTP MAIL ready at Thu, 7 Apr 2005 01:49:01 Version: 5.5.1877.197.19 bannière épurée : MSIlS5.5.1877.197.19 . La base de faits 16 contient des données dynamiques représentatives du réseau de communication 18, 19 surveillé. Par exemple, elle contient les numéros d'adresse réseau (adresse IP), les noms et/ou numéros de port, les entités (service et système) et les vulnérabilités. La base de connaissances 13 contient par ailleurs le système 14 de stockage d'un inventaire des entités présentes sur le réseau de communication 18, 19. Ce système 14 contient une première arborescence hiérarchique 1 des entités présentes sur le réseau de communication 18, 19, qui sera décrite plus en détail relativement aux figures 2 et 3. La figure 2 représente effectivement et schématiquement un exemple de cette première arborescence hiérarchique 1. Les services et systèmes, que l'on appelle entités, présents sur le réseau de communication 18, 19, sont représentés par des noeuds 2, 3, 4, 25 5, 6, 20, 21, 22, 23, 24, dans l'arbre 1. Les noeuds sont classés hiérarchiquement. On distingue les noeuds représentant un groupe de versions d'entités, des noeuds représentant des versions réelles d'entités. Par exemple, le noeud 23 représente le groupement d'entités IIS. 30 Les noeuds 21 et 22 représentent quant à eux des versions réelles d'entités, respectivement IIS 4.0 et 11S 5.0. Le noeud 4 représente le groupe de versions Apache, qui se scinde en sous-groupes. Le sous-groupe Apache 1.3.x représenté par le noeud 3 regroupe les trois versions réelles d'entités Apache 1.3.29, Apache 1.3.30, Apache 1.3.34, représentées respectivement par les noeuds 2, 5 et 6. Les noeuds qui n'ont pas de fils, tel que c'est le cas pour les noeuds 21, 22, 20, 2, 5 et 6, sont classiquement appelés des feuilles. Ces feuilles représentent généralement des versions réelles d'entités, sauf dans le cas de la feuille 20. En effet, il faut considérer une telle arborescence hiérarchique 1 comme un système de stockage évolutif qui permet de raccrocher à une feuille, ultérieurement, des versions réelles ou groupes de versions d'entités non connus à l'avance. Dans cet exemple, on comprend qu'il sera possible de rattacher facilement des noeuds fils ou feuilles, sous le noeud 20 représentant le groupe d'entités Apache 2.0.x. Le noeud 24, dans l'exemple représenté à la figure 2, est le noeud parent de tous les autres noeuds, classiquement appelé racine, et représente le groupe de versions d'entités de type Serveur HTTP. Cette première arborescence 1 définit donc un classement hiérarchique des entités ou groupes d'entités, avec une relation d'ordre. En effet, un noeud fils ou une feuille est lié à son noeud parent par une relation d'ordre telle que la version d'entités représentée par la feuille ou le groupe de versions d'entités représenté par le noeud fils, fait partie du groupe de versions d'entités représenté par son noeud parent. Eventuellement, il peut exister également une relation d'ordre horizontale , entre les noeuds représentant des versions réelles d'entités, c'est-à-dire entre les feuilles soeur issues d'un même noeud parent. Ainsi, dans l'exemple représenté à la figure 2, la version Apache 1.3.29 représentée par la feuille 2, est inférieure à la version Apache 1.3.30 représentée par la feuille 5, elle-même inférieure à la version Apache 1.3.34 représentée par la feuille 6. De la même façon, la version d'entité IIS 4.0 représentée par la feuille 21, est inférieure à la version d'entité IIS 5.0 représentée par la feuille 22. Evidemment, le classement selon cette relation d'ordre horizontale pourrait tout aussi bien être réalisé de gauche à droite, au lieu de droite à gauche comme c'est le cas dans l'exemple représenté à la figure 2. Chaque noeud ou feuille contient la signature de la version d'entité ou du groupe de versions d'entités qu'il représente, tel que cela est schématisé dans l'exemple de la figure 2. Ceci permet de retrouver rapidement un noeud particulier à partir d'une bannière épurée, tel que cela a été expliqué précédemment. La recherche d'un noeud à partir d'une bannière se fait par la recherche de la signature. Cette recherche retourne le noeud le plus profond dans cette première arborescence 1 qui contient la signature qui concorde sur la plus grande longueur avec la signature recherchée. La recherche renvoie donc l'entité la plus précise avec une signature qui correspond le plus à la bannière épurée provenant du message émis par le module 17 de détection automatique de protocole et d'analyse protocolaire tel que représenté à la figure 1. Une telle arborescence hiérarchique 1 fournit des possibilités d'interrogation intéressantes et efficaces, telles que la comparaison ou la généralisation. Par exemple, dans l'exemple représenté à la figure 2, l'interrogation Apache 1.3.33 > Apache 1.3.28 renverra vrai . L'interrogation Apache 2.0.25 > Apache 2.0.53 renverra faux . L'interrogation Apache 2.0.6 > Apache 1.3.33 renverra impossible , car la comparaison ne peut pas se faire entre deux entités appartenant à deux domaines de comparaison différents. Autrement dit, comme cela a été expliqué précédemment, ce type de relation d'ordre horizontale n'existe qu'entre les feuilles soeurs issues d'un même noeud parent. Egalement, dans l'exemple représenté à la figure 2, une interrogation de généralisation peut être effectuée, du type Apache 1.3.30 est un Apache qui renvoie vrai , ou Apache 1.3.30 est un Serveur DNS qui renvoie faux . Dans la mise en place du système 14 de stockage de l'inventaire des entités présentes sur le réseau de communication 18, 19, tel que présenté à la figure 1, on utilise une étape de déclaration d'un générateur 11 unique pour toute version d'entités présente sur le réseau de communication 18, 19. Le générateur décrit alors le nom du service, et/ou le numéro de version. II peut décrire également l'appartenance à un groupe donné de versions d'entités, c'est-à-dire la hiérarchie. Il peut décrire également la relation d'ordre horizontale entre les versions d'un même groupe de versions d'entités. Le générateur génère également les signatures. On comprend que cela permet de définir une entité avec toutes ses versions sans les connaître à l'avance, et de définir l'étendue de la relation d'ordre. A titre d'exemple, le générateur 11 représenté à la figure 2 pour 20 toutes les versions d'entités de type apache, peut être présenté sous la forme du script suivant : Generator : Apache Parent : HTTP Server Suffix : . . 25 StartOrderingAtLevel :2 Signature: apache/Signature:Apache/ Pour optimiser le système 14 de stockage de l'inventaire des entités présentes sur le réseau de communication 18, 19, on peut prévoir 30 l'utilisation d'une deuxième arborescence hiérarchique 7 qui stocke les noms des noeuds de la première arborescence hiérarchique 1 d'une façon particulière, dérivée de ce que l'on appelle classiquement un arbre de type patricia tree ou radix tree . C'est donc ce qui est décrit relativement à la figure 3. La figure 3 représente en effet schématiquement un exemple de 5 cette deuxième arborescence hiérarchique 7, associé à un exemple de première arborescence hiérarchique 1. Les noeuds de la première arborescence 1 contiennent des identificateurs id. Dans cet exemple, le noeud 5 qui représente le groupement de 10 versions d'entités Apache est identifié par l'identificateur 2, le noeud 6 qui représente le groupe de versions d'entités AdvancedServer est identifié par l'identificateur 4, le noeud 2 qui représente la version réelle d'entités Apache _l est identifié par l'identificateur 5, le noeud 3 qui représente la version réelles d'entités Apache _2 est identifié par l'identificateur 6, et le 15 noeud 4 qui représente la version réelle d'entités Apache 4 est identifié par l'identificateur 7. La deuxième arborescence hiérarchique 7 est constituée de noeuds contenant des chaînes de caractères et des identificateurs id. La concaténation des chaînes de caractères contenues dans les noeuds 20 d'une même lignée, à partir de la racine 8 de cette arborescence hiérarchique 7, jusqu'à un noeud donné identifié par un identificateur donné, correspond au nom de la version d'entité ou au nom du groupe de versions d'entités d'un noeud dans la première arborescence identifiée par l'identificateur donné. 25 A titre d'exemple, tel que cela est représenté à la figure 3, la concaténation des chaînes de caractères contenues dans les noeuds de la lignée à partir de la racine 8 jusqu'au noeud 10 identifié par l'identificateur 7, correspond au nom de version d'entité Apache Tomcat qui est bien identifié par le même identificateur 7 dans la première arborescence 30 hiérarchique 1. Idéalement, dans une telle configuration, la première arborescence hiérarchique 1 ne stocke plus que les identificateurs id. La présence de cette deuxième arborescence hiérarchique correspond à une optimisation du système 14 de stockage de l'inventaire des entités présentes sur le réseau de communication 18, 19 de la figure 1, dans le souci de respecter les contraintes liées aux applications de type détection et prévention d'intrusion dans un réseau. Ces contraintes sont essentiellement de deux types : performance et consommation mémoire. Il est en effet nécessaire de pouvoir réaliser une analyse rapide car le traitement du trafic réseau doit être effectué en temps réel. Par ailleurs, ce type de système est embarqué sur du matériel avec une faible capacité mémoire. Il est donc important de réduire la consommation mémoire au minimum. Ces contraintes de performance et de consommation mémoire sont respectées avec une configuration à double arborescence hiérarchique 1 et 7, tel que représenté à la figure 3. En effet, la recherche des noeuds à partir de leur signature est accélérée, et la mémoire utilisée pour stocker l'ensemble des noeuds représentés est diminuée. La recherche d'un noeud à partir d'une signature n'est plus proportionnelle au nombre de noeuds à évaluer puisqu'il n'est plus nécessaire d'énumérer et d'évaluer la signature sur tous les noeuds. Chacun des noeuds de la première arborescence hiérarchique 1 ne stocke plus que les identificateurs, ce qui réduit considérablement le volume de texte stocké et la redondance d'informations entre les deux. A titre d'exemple, si l'on n'utilise pas la deuxième arborescence hiérarchique 7 telle que présentée ci-dessus, le texte Apache est stocké dans la première arborescence hiérarchique 1 sur chacun des noeuds de la famille Apache . Une telle structure arborescente 7 permet donc de mettre en commun les textes qui ont le même commencement. Ainsi, pour identifier 30 un texte dans la deuxième arborescence hiérarchique 7, il suffit de référencer l'identificateur id du noeud dans cet arbre. De la sorte, les noeuds représentant des versions d'entités ou groupes de versions d'entités dans la première arborescence hiérarchique 1 ne stockent plus le nom de l'entité mais référencent un noeud dans la deuxième arborescence hiérarchique 7, que l'on pourrait encore appeler l'arbre des noms. Ainsi, un tel système de stockage de l'inventaire des entités présentes sur le réseau de communication 18, 19 permet de simplifier considérablement les règles que le moteur d'inférence 15 doit évaluer. De telles règles sont par exemple du type service Par ailleurs, pour un service donné, un tel système de stockage de l'inventaire des entités présentes sur le réseau permet de manipuler une entité unique, indépendamment de la façon de la reconnaître sur le réseau. De plus, les signatures des entités peuvent être gérées de façon 20 centralisée et unique. Comme il a été expliqué également précédemment, l'abstraction des services modélisés permet de gérer le regroupement des versions, et permet de faciliter et de contrôler la comparaison des versions. L'optimisation, notamment en termes de consommation mémoire, a 25 déjà été présentée plus haut. Elle constitue un avantage important du système de l'invention. Il est ainsi possible d'utiliser une instanciation unique pour toutes les références à un service (entité) donné. De plus, pour les noeuds générés, seuls les noeuds utilisés sont instanciés. Egalement, l'exhaustivité d'un tel système a été mentionnée 30 précédemment, dans la mesure où ce système permet de définir une entité avec toutes ses versions sans les connaître à l'avance. Comme il a été expliqué plus haut, le moteur d'inférence 15 décrit relativement à la figure 1, se charge également de l'envoi des résultats pour affichage sur des consoles d'administration. Ces résultats peuvent être une liste donnant une visibilité des 5 équipements réseau et présentant des vulnérabilités, un suivi des vulnérabilités clients-serveur. Contrairement aux systèmes actifs de surveillance et systèmes à audit récurrent, dans le système de l'invention, le contrôle des vulnérabilités est continu. 10 Par ailleurs, les nouvelles machines ou entités (services, systèmes) ajoutées sur le réseau sont immédiatement détectées. Intégré dans un système de prévention et détection des intrusions dans le réseau, le système 12 de surveillance passif de l'invention basé sur l'utilisation du système 14 de stockage de l'inventaire des entités 15 présentes sur le réseau, permet l'application des signatures de détection d'attaque dans le contexte des services protégés. A titre d'exemple, les alarmes d'exploitation de vulnérabilité de type IIS seront uniquement générées si le système de prévention et de détection des intrusions protège un service de type IIS. 20 Enfin, le système 14 de stockage d'un inventaire des entités présentes sur le réseau de communication 18, 19, tel qu'il a été présenté relativement aux figures précédentes, peut être intégré dans un système de gestion des mises à jour des entités présentes sur un réseau de communication 18,19. 25 Plus généralement, toute application nécessitant la gestion des entités (système et services) présentes sur un réseau de communication peut tirer parti du système 14 de stockage de l'inventaire de ces entités présentes sur le réseau 18, 19, tel que décrit dans la présente description. Il est rappelé que l'ensemble de la description ci-dessus est donné 30 à titre d'exemple et n'est donc pas limitatif de l'invention. REVENDICATIONS 1. Système (14) de stockage d'un inventaire des entités présentes sur un réseau de communication (18, 19) caractérisé en ce qu'il comprend une base de données contenant une première arborescence hiérarchique (1) dans laquelle les feuilles (2, 5, 6) représentent des versions d'entités et les noeuds (3, 4) représentent des groupes de version d'entités, et dans laquelle un noeud fils (3) ou une feuille (2, 5, 6) est lié à son noeud parent (4) par une relation d'ordre telle que la version d'entité représentée par ladite feuille (2, 5, 6) ou groupe de versions d'entités représenté par ledit noeud fils (3) fait partie du groupe de versions d'entités représenté par son noeud parent (4). 2. Système (14) selon la revendication 1, caractérisé en ce que les feuilles (2, 5, 6) issues d'un même noeud parent (3, 4) sont liées par une relation d'ordre telle que la version d'entité représentée par une feuille (2) est inférieure à la version représentée par sa feuille soeur droite (5) ou gauche (6). 3. Système (14) selon l'une quelconque des revendications 1 et 2, caractérisé en ce qu'un noeud (2, 3, 4, 5, 6), de la première arborescence (1) contient la signature de la version d'entité ou du groupe de versions d'entités qu'il représente. 4. Système (14) selon l'une quelconque des revendications 1 à 3, caractérisé en ce que les noeuds (2, 3, 4, 5, 6) de la première arborescence (1) contiennent des identificateurs (id) de noeud, et en ce que ledit système contient une deuxième arborescence hiérarchique (7) des noms des noeuds de la première arborescence hiérarchique (1) dans laquelle la concaténation des chaînes de caractère contenues dans les noeuds (8, 9, 10) d'une même lignée, à partir de la racine (8) jusqu'à un noeud donné (10) identifié par un identificateur donné (id) correspond au nom de la version d'entitéou au nom du groupe de versions d'entités du noeud (2, 3, 4, 5, 6) dans ladite première arborescence (1) identifié par ledit identificateur donné (id). 5. Système (14) selon la revendication 4, caractérisé en ce que les noeuds (2, 3, 4, 5, 6) de la première arborescence (1) contiennent uniquement des identificateurs (id) de noeud. 6. Procédé de mise en place d'un système (14) de stockage d'un inventaire des entités présentes sur un réseau de communication (18, 19) selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comprend une étape de déclaration d'un générateur (11) unique pour toutes les versions d'entités présentes sur ledit réseau de communication (18, 19). 7. Procédé selon la revendication 6, caractérisé en ce que le générateur (11) décrit le nom de l'entité, et/ou le numéro de version. 8. Procédé selon l'une quelconque des revendications 6 et 7, caractérisé en ce qu'il distingue les versions réelles d'entités des groupes de versions d'entités, et en ce que le générateur (11) décrit l'appartenance à un tel groupe de versions d'entités. 9. Procédé selon l'une quelconque des revendications 6 à 8, caractérisé en ce que le générateur (11) décrit la relation d'ordre entre les versions d'un groupe de versions d'entités. 10. Système (12) passif de surveillance d'un réseau de communication (18, 19), caractérisé en ce qu'il comprend un système (14) de stockage d'un inventaire des entités présentes sur ledit réseau de communication (18, 19) selon l'une quelconque des revendications 1 à 5. 11. Système (12) selon la revendication 10, caractérisé en ce qu'il comprend une base de connaissances (13) contenant des règles de traitement de messages en provenance du réseau de communication (18, 19), des règles de vulnérabilité des entitésprésentes sur ledit réseau de communication (18, 19) qui décrivent les conditions de présence d'une vulnérabilité, et contenant le système (14) de stockage de l'inventaire des entités présentes sur ledit réseau de communication (18, 19). 12. Système (12) selon la revendication 11, caractérisé en ce que les règles de traitement des messages provenant du réseau de communication (18, 19) contenues dans la base de connaissances (13) sont basées sur des hypothèses et décrivent les actions à effectuer lors de la réception desdits messages si lesdites hypothèses sont vérifiées. 13. Système (12) selon la revendication 12, caractérisé en ce qu'il comprend un moteur d'inférence (15) pour l'évaluation des hypothèses des règles de vulnérabilités et le déclenchement des actions à effectuer en fonction du résultat de ladite évaluation. 14. Système (12) selon l'une quelconque des revendications 10 à 13, caractérisé en ce qu'il comprend une base de faits (16) contenant des données dynamiques représentatives du réseau de communication (18, 19). 15. Système selon la revendication 14, caractérisé en ce que les données dynamiques représentatives du réseau de communication (18, 19) contenues dans la base de faits (16) comprennent des adresses réseau et/ou des noms ou numéros de ports et ou des noms ou numéros d'entités et/ou des vulnérabilités. 16. Procédé de surveillance passive d'un réseau de communication (18, 19) dans lequel des messages provenant dudit réseau de communication (18, 19) et contenant une bannière sont analysés par un moteur d'inférence (15), caractérisé en ce que ladite analyse comprend : - une étape d'extraction au cours de laquelle la signature de l'entité concernée et/ou de la version d'entité concernée, est extraite de ladite bannière,une étape de recherche de ladite signature dans un inventaire des entités par sélection dans une première arborescence hiérarchique (1) dans laquelle les feuilles (2, 5, 6) représentent des versions d'entités et les noeuds (3, 4) représentent des groupes de version d'entités, et dans laquelle un noeud fils (3) ou une feuille (2, 5, 6) est lié à son noeud parent (4) par une relation d'ordre telle que la version d'entité ou groupe de versions d'entités représenté par ladite feuille (2, 5, 6) ou ledit noeud fils (3) fait partie du groupe de versions d'entités représenté par son noeud parent (4). 17. Procédé selon la revendication 16, caractérisé en ce que l'étape de recherche retourne le noeud (2, 3, 4, 5, 6) le plus profond dans la première arborescence (1) et qui contient la signature qui concorde sur la plus grande longueur avec la signature recherchée. 18. Procédé selon la revendication 17, caractérisé en ce que pour retourner le noeud dans la première arborescence (1) qui contient la signature qui concorde sur la plus grande longueur avec la signature recherchée, on parcours une deuxième arborescence hiérarchique (7) des noms des noeuds de la première arborescence hiérarchique (1) dans laquelle la concaténation des chaînes de caractères contenues dans les noeuds (8, 9, 10) d'une même lignée, à partir de la racine (8) jusqu'à un noeud (10) donné identifié par un identificateur donné (id) correspond au nom de la version d'entité ou au nom du groupe de versions d'entités du noeud (2, 3, 4, 5, 6) dans ladite première arborescence (1) identifié par ledit identificateur donné (id). 19. Système de détection et de prévention d'intrusions dans un réseau de communication (18, 19), caractérisé en ce qu'il comprend un système (12) passif de surveillance selon l'une quelconque des revendications 10 à 15. 20. Système selon la revendication 19, caractérisé en ce qu'ilcomprend un module (17) de détection automatique de protocole et d'analyse protocolaire, destiné notamment à extraire l'information utile pour le système (12) passif de surveillance. 21. Procédé de détection et de prévention d'intrusions dans un réseau de communication (18, 19) mis en oeuvre par le système selon l'une quelconque des revendications 19 et 20. 22. Système de gestion des mises à jour des entités présentes sur un réseau de communication (18, 19), caractérisé en ce qu'il comprend un système (14) de stockage d'un inventaire des entités présentes sur ledit réseau de communication (18, 19) selon l'une quelconque des revendications 1 à 5.