Brevet FR3091391A1 — publié le 20200703

Description Titre de l'invention : Procédé d'identification autonome d'une ap- plication génératrice d'un flux IP [0001] La présente invention se rapporte à un procédé pour identifier une application ayant générée un flux IP (Internet Protocol) au sein d'un réseau. Elle s'applique avantageusement au domaine des réseaux résidentiels, mais elle est d'un cadre plus large puisqu'elle peut s'appliquer à d'autres types de réseaux de communication comme un réseau mobile, un réseau d'entreprise ou autre. [0002] D'une façon générale, la détermination d'une application génératrice d'un flux IP a pour objectif d'associer une étiquette de type (SkypeO, YouTube®, Facebook®, etc.) à un flux bidirectionnel IP. Un flux bidirectionnel IP peut être représenté via le quintuplé suivant: adresse IP machine source, adresse IP machine distante, numéro du port source, numéro du port distant, protocole de transport. Ce quintuplé est l'entité minimale qui permet d'indexer un flux IP d'une manière unique à un instant t. Déterminer l'application qui a générée un flux IP est un processus clé dans la gestion et l'optimisation des réseaux et permet des mécanismes de gestion évolués tels que le blocage d'un flux applicatif donné (contrôle parental), la répartition dc charge, la détection d'anomalies, etc. [0003] Il existe de nombreux critères d'évaluation des techniques permettant d'identifier une application génératrice de flux IP. Les critères suivants sont des critères utilisés pour qualifier une technique ou un procédé en termes de fiabilité. [0004] Le critère d'opportunisme. [0005] On définit par opportunisme les opportunités d'actions offertes à l'instant où le procédé génère son résultat. On distingue deux catégories comme suit: [0006] - opportunisme au plus tôt : le procédé retourne le nom de l'application génératrice d'un flux IP d'une manière dite « au plus tôt » par rapport à l'instant de début du flux. Cette caractéristique est obligatoire pour effectuer des actions critiques de gestion du réseau tel que le blocage du flux, la sélection du chemin qu'il doit suivre dans le réseau, etc. [0007] - opportunisme post-mortem: le procédé détermine l'application génératrice qu'après l'expiration de son flux associé. Cette catégorie d'opportunisme ne permet pas d'actions critiques. [0008] Le critère de granularité d'identification. [0009] On définit par granularité d'identification la finesse associée au résultat d'identification. Un procédé produit une identification fine quand celui-ci est capable d'identifier le nom de l'application génératrice d'un flux IP (Facebook®, YouTube®, 2 etc.). Un procédé est dit à granularité grossière quand celui-ci identifie les protocoles liés au flux ou la catégorie d'applications (http, P2P, DNS, etc.). [0010] Le critère de robustesse à l'évolution des applications. [0011] Un procédé de détermination d'une application génératrice d'un flux IP est dit robuste quand l'efficacité de celui-ci n'est pas affectée par l'évolution des caractéristiques des applications Internet. L'apparition d'une nouvelle application Internet ne doit pas cntrainer une intervention humaine ou un effort de développement. Le procédé doit être résilient et apte à s'adapter d'une manière automatique. De plus, le procédé doit être agnostique vis-à-vis de l'évolution des technologies protocolaires (cryptage des flux via SSL, QUIC de Google0. Tor, etc.). [0012] Dans les techniques de l'art antérieur, on connait le procédé d'identification basé sur le nom du processus tournant sur la machine hôte. [0013] Une application génératrice de flux IP est exécutée obligatoirement sur une machine hôte (ordinateur, smartphone, tablette, console de jeux connectée, etc.). L'application étant un ou plusieurs processus exécutés d'une manière parallèle. Le procédé consiste à lier le nom du processus («facebook.exe » comme exemple) au flux IP qu'il a généré à partir de la machine. Ce lien est établi directement à partir des informations contenues dans la machine hôte : recoupement de la table des processus en cours et la table des sockets services en cours via l'identifiant du processus (PID pour « Process Identifier » en anglais). Cc procédé est considéré robuste, produit une identification au plus tôt et à granularité fine. Ceci-dit, ce procédé est limité d'un point de vue visibilité. En effet, une visibilité totale des applications actives dans un réseau de communication est nécessaire afin de prendre les bonnes décisions/actions de gestion. Dans le cas de ce procédé, cette visibilité est faisable si et seulement si ce procédé est exécuté sur toutes les machines connectées au réseau. Dans le cas d'un FAI (Fournisseur d'Accès Internet), l'hypothèse que tous les clients acceptent d'installer ce procédé sur tous leurs terminaux n'est pas viable. De plus, il suffirait qu'un équipement ne soit pas équipé de ce procédé (équipement (l'un invité) pour que l'activité liée à cet équipement ne soit pas observable. [0014] On connait le procédé d'identification basé sur l'inspection des paquets. [0015] Ce procédé, plus communément connu sous l'acronyme DPI k Deep Packet Inspection » en anglais), consiste en l'inspection du contenu des paquets associés à un flux IP donné. Pour chaque paquet appartenant à un flux IP donné, son contenu est inspecté et comparé à une base de signatures. Le processus est réitéré à chaque paquet jusqu'à l'instant ou une correspondance est trouvée. La base de signatures est établie au préalable et peut être illustrée comme un dictionnaire associant une application à un ensemble de motifs. Ce procédé est apte à produire une granularité fine et au plus tôt. Cependant, une première limite de ce procédé est liée à la complexité de sa mise en 3 oeuvre duc à la complexité de son fonctionnement (processus d'inspection et de recherche d'association en parcourant toute la base de signatures pour chaque paquet d'un flux). Si ccttc première limite peut être considérée comme un problème d'ingénierie algorithmique solvable sur l'échelle temporelle, ce procédé présente une deuxième limite liée à sa robustesse qui n'est pas solvable sur la même échelle temporelle. En effet, la logique de cc procédé se base sur l'inspection des paquets. Dans le cas où le contenu inspecté est crypte, le procédé devient complétement aveugle. De plus, ce procédé nécessite la mise en place de ressources d'ingénierie de signatures pour maintenir la base de signatures à jour. Ce processus s'avère couteux et non viable à long terme. [0016] On connait le procédé d'identification basé sur la résolution DNS (« Domain Name System » en anglais). [0017] Ce procédé consiste à se baser sur le protocole de résolution de nom de domaine DNS pour identifier l'application génératrice d'un flux IP. Ce procédé peut se mettre sous une première forme qui consiste à intercepter la requête DNS qui précède un flux lancé vers un serveur donnée et d'associer le flux à la réponse de la requête qui l'a précédée. Une deuxième forme consiste à procéder à une résolution inverse de l'adresse IP destination liée à un flux. Les deux formes de mise en oeuvre de ce procédé sont affectées par une limite majeure qui est l'usage des réseaux de diffusion de contenu CDNs pour « Content Delivery Networks » en anglais. En effet, plusieurs applications déploient leur contenus sur des CDNS afin d'optimiser la livraison de leur contenu. De ce fait, la résolution IP retourne le nom du CDN (Akamai0, CloudFront®, etc.) qui hébergent plusieurs applications. Par conséquent, la robustesse de ce procédé n'est pas assurée. [0018] On connait également le procédé d'identification basé sur une classification sta- tistique. [0019] Ce procédé consiste à la détermination d'une application génératrice d'un flux IP en se basant sur les caractéristiques statistiques de celui-ci. Le processus est comme suit : [0020] - Phase hors ligne (entrainement) : un algorithme d'apprentissage statistique est entrainé à l'aide d'un jeu de données qui est constitué d'un ensemble de vecteurs flux. Un vecteur flux est la représentation d'un flux IP donné via un ensemble de caractéristiques statistiques (taille des paquets, délais d'anivées entre les paquets, volume entrant, volume sortant, etc.). Dans le cas d'une approche statistique supervisée/ semi-supervisé, le vecteur flux est associé à une étiquette portant le nom de l'application génératrice (vérité établie au préalable). Dans le cas d'une approche non supervisée, cette étiquette n'est pas présente. L'algorithme est entrainé via ces entrées statistiques afin d'extraire de la connaissance sous la forme d'un modèle statistique. Ce modèle peut prendre plusieurs formes en fonction de l'algorithme choisi (arbres de décisions, réseaux de neurones, etc.). [0021] - Phase en ligne : le modèle généré lors de l'entrainement est utilisé afin de classifier des vecteurs flux nouveaux et inconnus en se basant sur les corrélations statistiques établies. [0022] Par rapport aux critères définis ci-dessus, cc procédé ne peut les remplir que sous certaines conditions. [0023] - Un opportunisme au plus tôt ne peut être fait que si l'extraction des caractéristiques statistiques utilisées pour entraincr l'algorithme est réalisable au plus tôt. Typiquement, si l'algorithme est entrainé avec une variable (volume total) qui ne peut être relevée qu'à la fin du flux, la classification résultante n'est réalisable que d'une manière postmortem. [0024] - La granularité dépend directement de la granularité donnée en entrée. [0025] - La robustesse à l'évolution des applications nécessite un réentrainement. Cela implique de refaire un entrainement avec une nouvelle base d'apprentissage. [0026] La présente invention a pour but un nouveau procédé d'identification de l'application génératrice de flux IP apte à permettre un opportunisme au plus tôt. [0027] Un autre but de l'invention est un procédé à granularité fine et robuste. [0028] On atteint au moins l'un des objectifs avec un procédé pour identifier une application ayant générée un flux IP au sein d'un réseau étendu comprenant un serveur distant et plusieurs passerelles connectées à des réseaux locaux respectifs, chaque passerelle comportant un modèle de classification statistique, le procédé comprenant les étapes suivantes pour un flux IP transitant par une passerelle vers ou depuis une machine hôte comportant une sonde d'identification : - au sein de la passerelle, application du modèle de classification statistique selon des paramètres prédéterminés de façon à générer un résultat de classification, ce résultat étant une identification prédictive de l'application ayant générée ce flux IP,transmission du résultat obtenu et desdits paramètres prédéterminés vers le serveur distant, l'ensemble résultat et paramètres prédéterminés pour un flux IP constituant un vecteur collecté pour ce flux IP, - au sein de la machine hôte, utilisation de la sonde d'identification pour générer un vecteur d'identification exacte de l'application ayant générée ce flux IP, - transmission du vecteur d'identification exacte vers le serveur distant, - comparaison entre le vecteur collecté et le vecteur d'identification exacte, - mise à jour autonome du modèle de classification statistique pour l'ensemble des passerelles lorsque le pourcentage de réussite pour plusieurs comparaisons entre des vecteurs collectés et des vecteurs d'identification exacte atteint un seuil prédéterminé. [0029] Une passerelle (en anglais « gateway ») selon l'invention est un système matériel et logiciel permettant de faire la liaison entre deux réseaux, un réseau étendu, souvent désigné par son acronyme anglais WAN (Wide Arca Nctwork), et un réseau domestique local par exemple. [0030] Avec le procédé selon l'invention, on combine de manière inventive la méthode de classification statistique et la méthode d'analyse sur la machine hôte. Cela permet d'obtenir un nouveau procédé bénéficiant des avantages de ces deux méthodes avec la particularité de mettre à jour les modèles statistiques de façon autonome. En effet, chaque passerelle possède un modèle de classification statistique, ce qui permet d'avoir un opportunisme au plus tôt lorsqu'on utilise des paramètres permettant d'identifier le flux IP au plus tôt. Le fait de pouvoir réaliser des mises à jour de façon autonome permet de rendre le procédé robuste car il est évolutif. Cette mise à jour automatique est rendue possible et manière efficace par l'utilisation de la technique d'analyse sur la machine hôte sur uniquement un sous-groupe des machines hôte. [0031] L'invention est notamment remarquable par le fait que l'ensemble des passerelles comporte un modèle de classification statistique qui permet de générer une prédiction, alors qu'un nombre limité d'utilisateurs possèdes une sonde d'identification qui permet d'identifier exactement l'application génératrice du flux IP, et le serveur distant qui sert de collecteur a pour fonction de comparer en temps réel notamment les résultats prédictifs et les résultats exacts et de mettre à jour l'ensemble des modèles lorsque l'écart est trop important entre la prédiction et la réalité. Avantageusement, le modèle est mis à jour et de façon autonome. En effet, dans les systèmes de l'art antérieur, un modèle de classification statistique est destiné à être installé une seule fois pour toute. [0032] Ainsi le procédé selon l'invention assure une granularité fine, est réalisable au plus tôt et est robuste à l'évolution des applications. [0033] A titre d'exemple non limitatif, on peut citer comme modèle de classification sta- tistique les modèles suivants : [0034] Arbre de décision, [0035] Arbre de Hoeffding, [0036] Modèle de mélanges gaussiens, [0037] Réseau de neurones, [0038] Machine à support de vecteurs, [0039] - - - [0040] La sonde d'identification peut par exemple être de type « end host ». Cette sonde peut être installée par l'utilisateur, de façon native (installée par le fabricant de la machine hôte), ou encore installée à dessein par un opérateur du réseau étendu. Chaque sonde d'identification est apte à transmettre un vecteur d'identification exacte quelle que soit la passerelle à laquelle est connectée la machine hôte. [0041] La machine hôte peut être par exemple un téléphone portable, un ordinateur, une tablette, un objet connecté, ou tout autre objet capable de communiquer avec un réseau 6 étendu via une passerelle et capable de mette en oeuvre une sonde d'identification. [0042] Le réseau selon l'invention peut consister en une partition de passerelles appliquant la classification statistique et un sous-groupe de machines hôte appliquant la technique de la sonde. [0043] Selon une caractéristique avantageuse de l'invention, le modèle de classification sta- tistique est appliqué dans chaque passerelle et pour chaque flux IP transitant dans cette passerelle. De cette manière, tous les flux IP sont analysés et le procédé est donc appliqué de manière continue. Toutefois, il est possible d'appliquer la classification statistique uniquement sur certains flux IP selon des critères prédéterminés. [0044] Selon l'invention, pour chaque machine hôte comportant une sonde d'identification, le vecteur d'identification exacte peut être transmis en temps réel à chaque identification ou en des instants prédéterminés ou en groupe de plusieurs vecteurs d'identification. [0045] Selon un mode de réalisation de l'invention, la transmission des vecteurs collectés vers le serveur distant peut être effectuée de façon continue pour chaque flux IP ou bien de façon périodique pour un groupe de plusieurs flux IP. [0046] A titre d'exemple non limitatif, le protocole d'envoi entre la passerelle et le serveur distant peut être le protocole ISON, IPFIX ou par envoi de fichiers. [0047] Selon une caractéristique avantageuse de l'invention, le vecteur d'identification exacte peut comprendre une étiquette et une clé du flux. L'étiquette comprend notamment le nom de l'application ayant générée le flux IP. L'intérêt d'utilisation de la sonde est la capacité de déterminer de façon certaine et complète l'identification de l'application source (génératrice du flux IP). On évite la problématique liée à la technique de sonde dans une machine hôte en impliquant qu'un petit groupe de machines hôte. Par exemple, au moins un pourcent de l'ensemble des machines hôtes de l'ensemble des réseaux locaux peut être utilisé pour déterminer l'identification des flux IP au moyen de sondes. [0048] Avantageusement, la clé du flux peut comprendre au moins les éléments suivants : adresse IP machine source, adresse IP machine distante, numéro du port source, numéro du port distant, protocole de transport. [0049] Selon une caractéristique avantageuse de l'invention, la mise à jour du modèle de classification statistique peut être partielle ou totale. [0050] En complément notamment de ce qui précède, la mise à jour peut consister à générer un nouveau modèle au sein du serveur distant puis à le télé-transmettre dans les passerelles. [0051] Ainsi, on utilise les ressources du serveur distant pour élaborer un nouveau modèle qui pourra être envoyé à la passerelle pour lesquels le ou les vecteurs collectés étaient erronés ou bien à plusieurs passerelles. 7 [0052] Selon un mode de mise en oeuvre de l'invention, la comparaison entre le vecteur collecté et le vecteur d'identification exacte consiste à déterminer un taux d'erreur de classification statistique. La mise à jour peut également être réalisée lorsqu'une nouvelle application génératrice de flux IP a été identifiée. [0053] Selon un autre aspect de l'invention, il est proposé un système comprenant : [0054] - un réseau étendu doté d'un serveur distant et de plusieurs passerelles, [0055] - des réseaux locaux connectés respectivement aux passerelles, chaque passerelle comportant un modèle de classification statistique, et plusieurs machines hôte des réseaux locaux comportant une sonde d'identification, le système étant configure pour mettre en oeuvre le procédé selon l'invention. [0056] D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée de mises en oeuvre et d'un mode de réalisation nullement limitatif. [0057] [fig.1] : L'unique figure 1 est une vue schématique d'un système selon l'invention appliqué à des réseaux domestiques locaux. [0058] Le mode de réalisation qui est décrit dans la suite n'est nullement limitatif; on pourra notamment mettre en oeuvre des variantes de l'invention ne comprenant qu'une sélection de caractéristiques décrites par la suite isolées des autres caractéristiques décrites, si cette sélection de caractéristiques est suffisante pour conférer un avantage technique ou pour différencier l'invention par rapport à l'état de la technique antérieur. Cette sélection comprend au moins une caractéristique de préférence fonctionnelle sans détails structurels, ou avec seulement une partie des détails structurels si cette partie uniquement est suffisante pour conférer un avantage technique ou pour différencier l'invention pal- rapport à l'état de la technique antérieur. [0059] Les différents modes de réalisation de la présente invention comprennent diverses étapes. Ces étapes peuvent être mises en oeuvre par des instructions d'une machine exécutable au moyen d'un microprocesseur par exemple. [0060] Alternativement, ces étapes peuvent être réalisées par des circuits intégrés spé- cifiques comprenant une logique câblée pour exécuter les étapes, ou par toute combinaison de composants programmable et composants personnalisés. [0061] Sur la figure 1 on distingue un réseau étendu comprenant un serveur distant 1 dit collecteur et des passerelles 2-4 disposées respectivement dans des foyers domestiques 5-7. Chaque foyer comporte notamment d'autres appareils ou machines hôtes 8- 10 telles que des smartphones, des ordinateurs, des tablettes ou autres. [0062] Ces machines hôtes sont aptes à se connecter au réseau étendu, notamment à intemet via la passerelle du foyer. Des applications depuis intemet transmettent des paquets IP vers les machines 8-10 via les passerelles 2-4. Ces paquets constituent un flux IP bidirectionnel. 8 [0063] Avantageusement, chaque passerelle 2-4 comporte un modèle de classification sta- tistique. Cc modèle a été élaboré à partir d'une phase hors ligne d'entrainement, puis il est appliqué selon une seconde phase en ligne. [0064] Dans chaque passerelle 2-4, on applique le modèle de classification statistique à tous les flux IP provenant du réseau étendu et allant vers les machines hôtes. Chaque passerelle domestique extrait les caractéristiques statistiques nécessaires comme entrée au modèle statistique embarqué. Le modèle renvoie en local un résultat de classification. [0065] Par exemple, la passerelle domestique 2 exporte via un protocole défini, ISON, IPFIX, transfert de fichier, ou autre, le résultat de la classification obtenue ainsi que les caractéristiques utilisées en entrée. Les experts sont réceptionnés par le collecteur 1 et représente les vecteurs collectés 11. [0066] La passerelle 4 est connectée au réseau domestique local 7 qui comprend la machine hôte 10. Avantageusement cette machine hôte 10 est équipée d'une sonde qui est apte à exporter une étiquette ainsi qu'une clé du flux sous la forme de vecteur d'identification exacte. Ce vecteur identifie parfaitement l'application génératrice du flux IP transitant entre la machine hôte et la passerelle. Les exports sont réceptionnés au niveau du collecteur 1 et constituent un ensemble dc vecteurs d'identification exacte 12 dits vecteurs oracles. [0067] Pour un flux IP généré par exemple par une application Faccbook ® du smartphone, la sonde d'identification dans la machine 10 génère un vecteur d'identification comportant le nom Facebook®, la passerelle 4 génère à son tour au passage du même flux IP un vecteur collecté en application du modèle de classification statistique. Ces vecteurs sont donc déterminés par deux techniques différentes. Le vecteur collecté est une prédiction alors que le vecteur d'identification exacte comporte le véritable nom de l'application génératrice du flux W. [0068] Dans l'ensemble du réseau étendu, les différentes passerelles utilisent le modèle de classification statistique pour identifier les applications génératrices et transmettre un grand nombre de vecteurs collectés vers le serveur distant dans le collecteur. Et en même temps, chaque machine hôte comportant une sonde transmet des vecteurs d'identification exacte vers le collecteur. Ce dernier réalisant des comparaisons sur des flux IP identiques. [0069] Il n'est pas nécessaire que toutes les machines hôte possèdent une telle sonde. Seul un nombre limité de machine hôte est nécessaire. En fait, il faut qu'il y ait une activité suffisante sur une ou plusieurs machines hôte pour que les comparaisons soient significatives : nombre suffisant dans un laps de temps donné. [0070] Sur la figure 1, les vecteurs d'identification exacte 12 sont comparés en continu avec leurs doublons dans la base des vecteurs collectés. Cette opération permet de détecter 9 des symptômes, c'est-à-dire des taux d'erreur de classification, une nouvelle application,... qui nécessitent une mise à jour du modèle déployé sur les passerelles domestiques. La mise à jour met en oeuvre un processus de récntrainemcnt 13 réalisé au sein du serveur distant 1 de façon à générer un nouveau modèle qui est transmis vers les passerelles 2 à 4 lors d'un processus de mise à jour 14. En d'autres termes, dès qu'un symptôme apparait, une mise à jour partielle ou complète du modèle est effectuée d'une manière autonome. Le modèle résultant de cette mise à jour est renvoyé vers les passerelles domestiques comportant une précédente version de ce modèle. [0071] Ainsi, la présente invention concerne un procédé apte à apprendre statistiquement les caractéristiques d'une application génératrice d'un flux IP d'une manière autonome. L'invention assure une granularité fine, réalisable au plus tôt et robuste à l'évolution des applications. [0072] 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 invention. [Revendication 1] [Revendication 2] [Revendication 3] [Revendication 4]