WO2011144880A1 - Procédé et dispositif d'analyse de données interceptées sur un réseau ip pour la surveillance de l'activité des utilisateurs d'un site web - Google Patents

Procédé et dispositif d'analyse de données interceptées sur un réseau ip pour la surveillance de l'activité des utilisateurs d'un site web Download PDF

Info

Publication number
WO2011144880A1
WO2011144880A1 PCT/FR2011/051153 FR2011051153W WO2011144880A1 WO 2011144880 A1 WO2011144880 A1 WO 2011144880A1 FR 2011051153 W FR2011051153 W FR 2011051153W WO 2011144880 A1 WO2011144880 A1 WO 2011144880A1
Authority
WO
WIPO (PCT)
Prior art keywords
frame
layer
data
packet
http
Prior art date
Application number
PCT/FR2011/051153
Other languages
English (en)
Inventor
Gregory Crapella
Thibaud Bazelle
Laurent Chollon
Original Assignee
Thales
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thales filed Critical Thales
Priority to EP11727248A priority Critical patent/EP2572488A1/fr
Priority to US13/699,262 priority patent/US20130205015A1/en
Publication of WO2011144880A1 publication Critical patent/WO2011144880A1/fr

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/535Tracking the activity of the user
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/564Enhancement of application control based on intercepted application data
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/16Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
    • H04L69/161Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/22Parsing or analysis of headers

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Computer And Data Communications (AREA)

Abstract

Ce procédé comporte les étapes consistant à: acquérir (612) la trame de données complète d'une requête HTTP; sélectionner (614) la trame de données acquise si sa structure binaire vérifie une pluralité de conditions comportant au moins une condition correspondant à la couche IP (1040, 1050) de la trame, au moins une condition correspondant à la couche de transport (1080) de la trame et au moins une condition correspondant à la couche d'application (1100, 1110) de la trame; extraire (616) des données d'intérêt de la couche d'application de la trame sélectionnée; enregistrer (618, 620, 712, 714, 716, 718) les données extraites, dans une base de données (301, 303, 305).

Description

Procédé et dispositif d'analyse de données interceptées sur un réseau IP pour la surveillance de l'activité des utilisateurs d'un site Web
L'invention a pour domaine celui des procédés et des dispositifs de traitement en temps réel d'un flux de données intercepté sur un réseau de communication IP.
Pour la surveillance d'un site Web particulier, l'administration légalement autorisée (notée ALA dans le document) d'un état se font remettre, par l'hébergeur du site Web ou son administrateur, un ou plusieurs fichiers « log », regroupant l'historique de la connexion sur le serveur d'accès au site Web.
Cette manière de faire implique de mettre l'hébergeur ou l'administrateur au courant du fait que le site Web qu'il héberge est sous écoute.
De plus, si l'hébergeur ou l'administrateur ne relève pas de la loi nationale, le site Web étant hébergé à l'étranger bien que les utilisateurs de ce site Web soient des nationaux de cet état, il est difficile pour l'ALA de contraindre l'hébergeur ou l'administrateur étranger de fournir les fichiers « log ».
L'invention a donc pour but de pallier aux problèmes précités en proposant un procédé et un dispositif d'analyse permettant de traiter, en temps réel, un flux de données interceptées sur un réseau de communication IP pour la surveillance détaillée de l'activité des utilisateurs d'un site Web d'intérêt.
Pour cela l'invention a pour objet un procédé d'analyse de requête HTTP interceptées sur un réseau IP pour la surveillance de l'activité des utilisateurs d'un site Web prédéterminé, comportant les étapes consistant à :
- acquérir la trame de données complète d'une requête HTTP;
- sélectionner la trame de données acquise si sa structure binaire vérifie une pluralité de conditions comportant au moins une condition correspondant à la couche IP de la trame, au moins une condition correspondant à la couche de transport de la trame et au moins une condition correspondant à la couche d'application de la trame;
- extraire des données d'intérêt de la couche d'application de la trame sélectionnée
- enregistrer les données extraites, dans une base de données.
Suivant des modes particuliers de réalisation, le procédé comporte une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaison techniquement possibles :
- l'étape de sélection permet la sélection d'une trame dont la couche de transport est une couche TCP et dont la couche d'application est une couche HTTP. - à l'étape de sélection, ladite au moins une condition sur la couche IP, respectivement ladite au moins une condition sur la couche TCP, consiste à comparer la longueur d'un paquet de bits inclus dans la trame acquise, paquet considéré comme étant un paquet IP, respectivement un paquet TCP, avec une longueur prédéfinie de l'en-tête d'un paquet IP, respectivement d'un paquet TCP.
- à l'étape de sélection, ladite au moins une condition sur la couche IP, respectivement ladite au moins une condition sur la couche HTTP, consiste à appliquer, sur l'en-tête d'un paquet de bits inclus dans la trame acquise, paquet considéré comme étant un paquet IP, respectivement un paquet HTTP, un masque pour extraire un groupe de bits et à comparer ce groupe de bits avec valeur binaire attendue pour un paramètre présent dans l'en-tête d'un paquet IP, respectivement l'en-tête d'un paquet HTTP.
- entre l'étape consistant à extraire les données de la couche d'application de ladite trame et à enregistrer ces données dans une base de données, le procédé comporte une étape supplémentaire consistant à mettre en forme les données extraites selon un modèle prédéterminé, de préférence en y associant des meta-données.
L'invention a également pour objet un dispositif pour la mise en œuvre du procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comporte :
- un moyen d'acquisition d'une trame de données complète d'une requête HTTP interceptée sur un réseau de communication IP auquel ledit dispositif est connecté ;
- un moyen de sélection propre à vérifier une pluralité de conditions sur la structure binaire d'une trame de données acquise obtenue en sortie du moyen d'acquisition, et comportant au moins une routine de vérification d'une condition correspondant à la couche IP de la trame, au moins une routine de vérification d'une condition correspondant à la couche de transport de la trame et au moins une routine de vérification d'une condition correspondant à la couche d'application de la trame ;
- un moyen d'extraction apte à extraire des données de la couche d'application d'une trame de données sélectionnée obtenue en sortie du moyen de sélection ;
- un moyen d'enregistrement apte à stocker les données extraites obtenues en sortie du module d'extraction dans une base de données.
Suivant des modes particuliers de réalisation, le dispositif comporte une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles.
- le moyen de sélection est adapté pour la sélection d'une trame de données acquises dont la couche de transport est une couche TCP et dont la couche d'application est une couche HTTP. - le dispositif comporte un étage de traitement comportant une pluralité d'ordinateurs serveur de traitement, chaque ordinateur serveur de traitement étant connecté audit réseau de communication IP et comportant une instanciation desdits moyens d'acquisition, de sélection et d'extraction.
- le dispositif comporte, en outre, un étage de stockage comportant une pluralité d'ordinateurs serveur de stockage, chaque ordinateur serveur de stockage étant connecté à ladite pluralité d'ordinateurs serveur de traitement, étant associé à au moins une base de données, et comportant une instanciation desdits moyens de stockage apte à stocker les données extraites communiquées par un ordinateur serveur de traitement dans la base de données associée à l'ordinateur serveur de stockage considéré.
- le dispositif comporte, en outre, un étage de restitution comportant au moins un ordinateur de restitution comportant des moyens d'interrogation des différentes bases de données de l'étage de stockage.
La modularité du dispositif, c'est à dire la séparation en modules des étapes de traitement, de stockage et de restitution, et l'extensibilité du dispositif, c'est-à-dire la possibilité d'avoir plusieurs instances de chaque module, autorise l'analyse, en temps réel, d'un flux de données IP présentant un débit très élevé et/ou un volume important.
Grâce à la mise en œuvre d'une étape de sélection comportant une analyse « en profondeur » des données IP incidentes, c'est-à-dire une analyse au niveau binaire des trames, le procédé permet de traiter, en temps réel, un flux de données présentant un débit très élevé, de l'ordre de quelques Gbits. L'étape d'extraction des données présentant un intérêt pour la surveillance du site Web n'est réalisée qu'en aval de l'étape de sélection, sur un nombre réduit de trames sélectionnées.
L'invention et ses avantages seront mieux compris à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés sur lesquels :
- la figure 1 est une représentation schématique de l'architecture matérielle pour la mise en œuvre du procédé de traitement ;
- la figure 2 est une représentation schématique des différents logiciels permettant la mise en œuvre du procédé de traitement ;
- la figure 3 est un organigramme schématique représentant les différentes étapes du procédé d'analyse ;
- la figure 4 est un organigramme détaillé représentant l'étape de filtrage du procédé de traitement ; et,
- la figure 5 représente les différentes couches d'une trame. De manière générique, un ordinateur comporte des moyens de mémorisation, tels qu'une mémoire vive RAM, une mémoire morte ROM et un espace de stockage tels qu'un ou plusieurs disques durs, et des moyens de calcul, tels qu'un processeur, aptes à exécuter les instructions de programmes informatiques qui sont stockées dans les moyens de mémorisation de l'ordinateur.
Un ordinateur comporte en outre des interfaces entrée/sortie adaptées pour la connexion de l'ordinateur à au moins un réseau lui permettant d'entrer en communication avec au moins un autre ordinateur connecté à ce réseau.
En se référant à la figure 1 , l'architecture 1 comporte un premier ordinateur client 10, un second ordinateur client 12, et un troisième ordinateur client 14. Les ordinateurs client 10 et 12 sont du type ordinateur personnel (PC) et l'ordinateur client 14 est du type téléphone mobile capable de se connecter à un réseau de téléphonie cellulaire du type 3G.
L'architecture 1 comporte également un ordinateur serveur 20 constituant un serveur HTTP ou Web. Il héberge un site Web à surveiller.
L'architecture 1 comporte deux réseaux de communication IP. Le premier réseau
30 est un réseau géré par un fournisseur d'accès à Internet pouvant coopérer avec l'ALA.
Le second réseau 32 est géré par un autre opérateur. Le serveur 20 est connecté au second réseau. En variante, il appartient au premier réseau.
Les réseaux 30 et 32 autorisent la communication IP entre un ordinateur client 10,
12, 14 et le serveur HTTP 20. Les réseaux comportent une pluralité d'équipements d'accès 40, 42, 44 et 46 ainsi qu'une pluralité d'équipements routeur 50, 52 et 54, et d'équipement d'interconnexion entre réseaux 100 et 102.
Un équipement routeur est apte à réémettre un paquet IP incident vers un nœud du réseau que l'équipement routeur choisit en fonction de l'adresse du destinataire final du paquet, adresse que l'équipement routeur est apte à lire dans le paquet incident.
Un équipement d'interconnexion constitue un point d'accès au réseau 30 pour les autres réseaux. Les équipements d'interconnexion 100, 102 sont gérés par le fournisseur d'accès, en accord avec le ou les autres opérateurs des autres réseaux.
Un ordinateur client appartenant à un utilisateur ayant un abonnement auprès du fournisseur d'accès peut être connecté au premier réseau 30 de différentes manières.
Ainsi, l'ordinateur client 10 est connecté à l'équipement d'accès 40 par un lien du type
ADSL. L'ordinateur 12 est connecté à l'équipement d'accès 42 par un lien du type RTC.
Le téléphone mobile 14 est connecté par un lien hertzien à l'équipement d'accès 46. Une adresse IP est attribuée à l'ordinateur client lorsqu'il se connecte à l'équipement d'accès. Le dispositif pour la mise en œuvre du procédé de traitement est représenté sur la figure 1 et est indiqué par la référence générale 150.
Le dispositif 150 comporte un premier étage de traitement 152. Sur la figure 1 , l'étage de traitement comporte deux ordinateurs serveur de traitement 200 et 202.
Un serveur de traitement comporte un espace de mémoire adressable.
Un serveur de traitement est connecté, en amont, au premier réseau IP. Ainsi le premier ordinateur de traitement 200 est connecté au routeur 50 et le second ordinateur de traitement 202 est connecté à l'équipement d'interconnexion 100.
Un serveur de traitement est connecté, en aval, à un ou plusieurs serveurs de stockage qui vont maintenant être décrits.
Le dispositif 150 comporte un second étage de stockage 154. Sur la figure 1 , l'étage de stockage comporte trois ordinateurs serveur de stockage 300, 302 et 304. Chaque serveur de stockage est associé à une base de données, respectivement 301 , 303, 305.
Enfin, le dispositif 150 comporte un étage de restitution 156. Sur la figure 1 , l'étage de restitution comporte un ordinateur client de restitution 400. L'ordinateur client de restitution est connecté à chacune des bases de données 301 , 303, 305.
Un logiciel d'interception passive est stocké et exécuté sur un ou plusieurs des équipements du premier réseau géré par le fournisseur d'accès. Par exemple, l'équipement d'interconnexion 100 met en œuvre un logiciel d'interception. Celui-ci comporte un module de duplication du type « port mirroring » pour dupliquer la totalité des requêtes HTTP transitant sur l'équipement 100.
Le logiciel d'interception comporte un module de filtrage permettant de filtrer les requêtes HTTP dupliquées comportant une URL faisant partie d'une liste d'URLs ou de parties d'URL de référence avec laquelle le module de filtrage est paramétré. L'URL du site Web surveillé est mentionnée dans cette liste de référence.
L'équipement d'interconnexion 100 est propre à router une requête HTTP interceptée vers l'un des serveurs de traitement 200, 202 du dispositif 150.
La figure 2 représente un programme dont l'exécution permet la mise en oeuvre du procédé de traitement. Dans le mode de réalisation décrit, ce programme est réparti en différents logiciels, qui sont respectivement mémorisés et exécutés par des ordinateurs différents du dispositif 150.
Un logiciel de traitement 210 est mémorisé sur chacun des serveurs de traitement 200, 202.
Le logiciel de traitement 210 est capable de lire un fichier de configuration 21 1 contenant les différents paramètres nécessaires à son fonctionnement, tels que des longueurs, exprimées en nombre de bits, correspondant aux longueurs des en-têtes (« HEADER ») des paquets des différentes couches OSI encapsulées dans une trame, des masques d'extraction de groupes de bits, et des valeurs prédéfinies attendues pour ces groupes de bits.
Le logiciel 210 comporte un module d'acquisition 212 capable d'écouter un port prédéfini du serveur de traitement, port sur lequel les trames interceptées sont incidentes. Le module 212 est capable d'acquérir l'intégralité d'une trame incidente sur le port écouté, de stocker la trame dans l'espace de mémoire adressable du serveur de traitement, et de placer, dans une pile 213 associée à une trame, un premier pointeur indiquant l'adresse du premier bit de cette trame acquise.
Le logiciel 210 comporte un module de sélection 214 apte à analyser en profondeur les trames acquises. Le module 214 est capable d'accéder, bit à bit, aux trames mémorisées dans l'espace de mémoire adressable du serveur de traitement. Le module de sélection est capable d'ajouter ou de soustraire des pointeurs de la pile 213 associée à une trame.
Le module 214 comporte une pluralité de routines de vérification :
- une première routine de vérification d'une condition sur la couche IP, apte à comparer la longueur d'un paquet de bits inclus dans une trame avec une longueur prédéfinie de l'entête d'un paquet IP,
- une seconde routine de vérification d'une condition sur la couche IP, apte à appliquer un second masque adapté pour extraire un second groupe de bits, et à comparer ce second groupe de bit avec une seconde valeur binaire correspondant à une valeur attendue pour un paramètre de protocole présent dans un en-tête de paquet IP,
- une troisième routine de vérification d'une condition sur la couche TCP, apte à comparer la longueur d'un paquet de bits inclus dans une trame avec une longueur prédéfinie de l'en-tête d'un paquet TCP,
- une quatrième routine de vérification d'une condition sur la couche HTTP, apte à appliquer un quatrième masque adapté pour extraire un quatrième groupe de bits, et à comparer ce quatrième groupe de bits avec une quatrième valeur binaire correspondant à une valeur attendue pour un paramètre de type, présent dans un en-tête de paquet HTTP, et,
- une cinquième routine de vérification d'une condition sur la couche HTTP, apte à appliquer un cinquième masque adapté pour extraire un cinquième groupe de bits, et à comparer ce cinquième groupe de bits avec au moins une cinquième valeur binaire correspondant à une valeur attendue pour au moins une portion d'un paramètre d'URL présent dans un en-tête de paquet HTTP. Toutes ces vérifications sont effectuées sans désencapsuler les différentes couches du modèle OSI (IP, TCP et HTTP) permettant ainsi d'obtenir des temps de traitement réduits et donc de pouvoir analyser un flux de donnée ayant un débit très important.
Le logiciel 210 comporte également un module 216 d'extraction des données contenues dans un paquet HTTP. Le module 216 génère en sortie des données, et ajoute des meta-données associées. L'ensemble de ces données est appelé D.
Le logiciel de traitement 210 comporte un module 218 de sélection du serveur de stockage parmi les différents serveurs constituant l'étage de stockage 154. Le module 218 comporte une table d'occupation 219 donnant l'adresse des différents serveurs de stockage 300, 302, 304, ainsi que leur état respectif instantané d'occupation parmi des états « libre » et « occupé ».
Enfin, le logiciel de traitement 210 comporte un module 220 de codage et d'émission capable de prendre, en entrée, l'adresse du serveur choisi par le module 218, le port utilisé, et les données produites par le module 216, puis de communiquer ces données D au serveur de stockage choisi. Ces données peuvent être chiffrées en utilisant par exemple le code de cryptage AES 256 connu de l'homme du métier.
Un logiciel de stockage 310 est exécuté sur chacun des serveurs de stockage 300, 302, 304.
Le logiciel de stockage 310 est capable de lire un fichier de configuration 31 1 contenant les différents paramètres nécessaires à son fonctionnement.
Le logiciel 310 comporte un module d'acquisition 312 apte à écouter un port prédéfini du serveur de stockage et à acquérir les données D entrantes.
Le logiciel 310 comporte un module de décodage 314 apte à extraire les données. Le logiciel 310 comporte un module 316 propre à décoder les meta-données aux données D et à stocker l'ensemble de ces données dans un fichier F. Celui-ci est placé dans un répertoire particulier d'une structure d'archivage comportant une pluralité de répertoires.
Enfin, le logiciel 310 comporte un module de stockage 318 propre à surveiller le taux de remplissage de chacun des répertoires de la structure d'archivage, à comparer ce taux avec une valeur seuil, et à stocker le contenu d'un répertoire dans une table particulière de la base de données associée au serveur de stockage.
Un logiciel de restitution 410 est propre à être exécuté par le serveur de restitution
400.
Le logiciel 410 comporte une interface homme/machine 1 12 permettant l'élaboration de requêtes complexes d'interrogation des bases de données 301 , 303, 305. Le logiciel 410 comporte un module 414 d'interrogation des bases de données. Il est capable d'interpréter une requête complexe en une pluralité de requêtes conformes au langage d'interrogation utilisé par les bases de données. Le module 414 est propre à émettre une requête d'interrogation vers les bases de données 301 , 303, 305, et à recevoir les réponses correspondantes. Il est capable d'agréger ces réponses avant de les transmettre au module d'interface 412.
Le procédé d'analyse va maintenant être décrit en référence aux figures 3 et 4, la figure 5 rappelant la structure binaire d'une trame.
Le serveur 20 héberge un site Web sur lequel des utilisateurs échangent des données (telles que messages écrits, photos, vidéos, fichiers binaires), déposés sur le site et consultables au travers d'une page Web adaptée.
L'ALA souhaitant surveiller se site Web met en œuvre le procédé pour acquérir des informations sur les utilisateurs de ce site Web.
L'ALA se rapproche alors du fournisseur d'accès à l'Internet gérant le premier réseau pour qu'il paramètre les différents instances du logiciel d'interception avec, comme URL de référence, la racine du site Internet à surveiller. Les logiciels d'interception sont exécutés.
Lorsque l'utilisateur du poste client 10 dépose un message sur le site Web hébergé par le serveur 20, le poste client 10 émet une requête HTTP dont l'en-tête comporte la méthode « POST », de manière à ce que le serveur 20, destinataire, sache comment interpréter le message HTTP contenu dans la requête HTTP.
De manière similaire, lorsque l'utilisateur du poste 10 consulte une page du site Web, le poste client 10 émet une requête HTTP dont l'en-tête comporte la méthode « G ET ».
Grâce au logiciel d'interception passive exécuté sur l'équipement d'interconnexion
100 les requêtes HTTP à destination du site Web accessible sur le serveur 20 et transitant sur l'équipement 100 sont interceptées. Elles sont dupliquées et leurs copies sont filtrées. Les requêtes HTTP comportant l'URL du site Web surveillé sont envoyées vers le dispositif 150. Les trames IP originales ne sont absolument pas impactées par le logiciel d'interception, ce qui garantit un fonctionnement normal du point de vue de l'utilisateur.
Le nombre des requêtes HTTP incidentes sur les serveurs de traitement est très élevé. La structure du dispositif 150 permet de repartir cette charge entre les différents serveurs de traitement.
Par l'exécution du logiciel de traitement 210, les étapes de traitement suivantes sont mises en œuvre au niveau du serveur 200. Dans une étape initiale d'acquisition 612, le module 212 stocke une trame complète, correspondant à une requête HTTP incidente, dans l'espace mémoire adressable du serveur 200. Un premier pointeur P1 est placé dans une pile associée à cette trame. Le premier pointeur P1 indique l'adresse mémoire du premier bit de la trame à filtrer.
Puis, le procédé se poursuit par une étape de sélection 614 consistant en une analyse, en profondeur, de la structure binaire de la trame.
Comme cela est représenté en détail sur la figure 4, l'étape de sélection 614, qui est réalisée par l'exécution du module de sélection 214, débute par la détermination de la longueur L0 de la trame (étape 1010 sur la figure 4).
L'en-tête de la couche de transport d'une trame (couches 2 du modèle OSI) ayant une première longueur prédéterminée L1 , un second pointeur P2 est placé dans la pile associée à la trame. Ce second pointeur pointe vers une adresse de l'espace mémoire obtenue par décalage d'une longueur L1 de l'adresse indiquée par le premier pointeur P1 (étape 1020). Ainsi, le second pointeur pointe sur le premier octet de la couche IP de la trame (couche de niveau 3 du modèle OSI).
La longueur L2 du paquet IP encapsulé dans la trame est calculée à l'étape 1030. Cette longueur L2 est obtenue en soustrayant à la longueur L0, la longueur L1 .
La longueur L3 de l'en-tête d'un paquet IP est définie par le protocole IP. Cette longueur L3 permet de vérifier une première condition qui consiste à comparer la longueur L2 du paquet IP à la longueur L3 (étape 1040).
Si la longueur L2 est inférieure à la longueur L3, cela signifie que le paquet considéré n'est pas un paquet IP. En conséquence, la trame est rejetée et le procédé passe à la sélection de la trame suivante.
En revanche, si la longueur L2 est supérieure à la longueur L3, cela signifie que, s'il s'agit effectivement d'un paquet IP, celui-ci comporte, en plus d'un en-tête IP, un message IP comportant éventuellement des données pertinentes.
A l'étape 1050, un second masque M2 est appliqué sur l'en-tête IP du paquet IP (« HEADER » du paquet IP) de manière à extraire un second groupe de bits et à le comparer à une seconde valeur binaire attendue d'un second paramètre relatif au protocole utilisé dans la couche de transport (couche de niveau 4 du modèle OSI), second paramètre présent dans l'en-tête IP. Dans le présent mode de réalisation, la seconde valeur attendue correspond à l'utilisation du protocole TCP.
A l'issue de la vérification de cette seconde condition, si la valeur du second paramètre de protocole est différente de « TCP », la trame est rejetée et le procédé passe à la sélection de la trame suivante. En revanche, si la valeur du second paramètre de protocole est égale à « TCP » , un troisième pointeur P3 est placé, à l'étape 1060, dans la pile 213 associée à la trame. Ce troisième pointeur pointe sur une adresse obtenue par décalage d'une longueur L3 de l'adresse indiquée par le second pointeur P2. Le troisième pointeur indique le début de la couche TCP de la trame.
A l'étape 1070, une longueur L4 est calculée qui correspond à la longueur du paquet TCP. Cette longueur L4 est obtenue par la différence entre la longueur L2 et la longueur L3.
La longueur L5 de l'en-tête d'un paquet TCP est prédéterminée. Cette longueur L5 permet la tester une troisième condition qui consiste à comparer la longueur L4 du paquet TCP à la longueur L5 (étape 1080).
Si la longueur L4 est inférieure à la longueur L5, cela signifie que le paquet considéré n'est pas un paquet TCP. En conséquence, la trame est rejetée et le procédé passe à la sélection de la trame suivante.
En revanche, si la longueur L4 est supérieure à la longueur L5, le paquet TCP comporte, en plus d'un en-tête TCP, un message TCP pouvant contenir des informations pertinentes.
A l'étape 1090, un quatrième pointeur P4 est placé dans la pile associée à la trame. Ce quatrième pointeur pointe vers une adresse qui correspond au décalage d'une longueur L5 de l'adresse indiqué par le troisième pointeur P3. Le quatrième pointeur pointe sur le début de la couche HTTP de la trame étudiée (couches d'application 5 à 7 du modèle OSI).
Puis, à l'étape 1 100, un quatrième masque M4 est appliqué sur l'en-tête HTTP de manière à extraire un quatrième groupe de bits et à le comparer à une quatrième valeur binaire attendue pour un quatrième paramètre de type du paquet HTTP. La quatrième valeur attendue est la valeur « POST » ou la valeur « GET » de ce paramètre de méthode.
Si la méthode HTTP utilisée n'est pas l'une des deux méthodes précédentes, la trame n'est pas considérée et le procédé passe à l'étape de sélection de la trame suivante.
Si la méthode HTTP est un POST ou un GET, à l'étape 1 1 10, un cinquième masque M5 est appliqué sur l'en-tête HTTP de manière à comparer une partie de l'URL à une pluralité de cinquième valeurs non-souhaitées correspondant à des chaînes de caractères de référence.
Si la comparaison s'avère positive, la trame est rejetée sinon la trame est sélectionnée. Ce dernier test permet, par exemple, d'écarter les requêtes HTTP comportant un message correspondant à une image, en mentionnant la chaîne « .jpg »dans la liste des chaînes de caractères de référence.
Pour une trame sélectionnée, le procédé se poursuit par une étape 616 d'extraction et de reformatage des données HTTP par exécution du module 216. Les données extraites de l'en-tête HTTP de la requête HTTP sont l'URL, l'adresse IP source de la trame, l'adresse IP destinataire de la trame, le « User-Agent » c'est-à-dire l'identifiant du navigateur utilisé, et le « REFERER » c'est-à-dire l'URL d'une page Web sur laquelle se situe un lien du type HyperText, que le client vient de suivre, pour accéder à une ressource du site Web surveillé. Cela peut être un lien sur une page extérieure au site Web surveillé, mais également un lien sur le site Web surveillé.
Chacune de ces données est conservée dans une variable associée.
Avantageusement, des données supplémentaires, dites meta-données, sont associées à la trame traitée. Ainsi, si l'URL de la requête HTTP correspond à une URLO de référence qui, dans le fichier de configuration 21 1 , est associée à un type d'affaire particulier, tel que le type « terrorisme », le type d'affaire constitue une meta-donnée associée à la trame lors de l'étape 616.
Un ensemble de données et de meta-données, composant un message de données D, est finalement mémorisé dans un espace mémoire tampon du serveur de traitement 200.
A l'étape 618, le module de sélection 218 surveillant cet espace mémoire tampon, constate qu'un nouveau message de données vient d'y être déposé afin d'être envoyé vers une base de données de stockage.
Le module 218 lit la table 219 à la recherche de l'adresse d'un serveur de stockage 300, 302, 304 dans l'état « libre » auquel adresser le message de données. Le module 218 sélectionne un serveur de stockage destinataire, par exemple le serveur de stockage 300.
Le message de données est donc envoyé au serveur de stockage choisi. Ce message peut être chiffré en AES 256. Du côté du serveur de stockage 300, après une étape 712 d'acquisition du message de données D, une étape de décodage 714 permet de récupérer les données D qui sont stockées dans un fichier F.
Une étape de classification 716 du fichier de données permet alors de choisir un répertoire d'archivage pour ce fichier. Le choix d'un répertoire particulier s'effectue sur la base des meta-données qui ont été associées au fichier F.
L'étape de stockage dans une base de données 301 associée au serveur de stockage 300, étape 718 sur la figure 3, est réalisée par l'exécution du module 318 qui scrute en permanence le taux de remplissage de chacun des répertoires de la structure d'archivage. Lorsque le taux de remplissage d'un répertoire dépasse un taux seuil prédéterminé, l'intégralité du contenu de ce répertoire est sauvegardée dans la base de données 301 , dans un tableau ayant un format prédéterminé.
A l'étape 812, hors ligne, au travers de l'interface homme/machine 412 affichée sur l'écran du serveur de restitution 400, un membre de l'ALA construit des requêtes complexes d'interrogation des bases de données 301 , 303, 305. ce membre utilise un meta-langage.
A l'étape 814, ces requêtes complexes sont transmises au module de consultation 414 qui les traduit en autant de requêtes utilisant le langage SQL permettant une interrogation directe des bases de données 301 , 303 et/ou 305. Les données extraites des différentes bases de données sont rapatriées sur le serveur de restitution 400. Le module de consultation 414 agrège ces différentes données pour qu'elles soient présentées à l'opérateur à travers l'interface 412.
Le dispositif et le procédé de traitement qui viennent d'être décrits permettent de traiter un flux de données de grand volume par un unique ordinateur serveur de traitement comportant une carte mère présentant des caractéristiques standard. L'échelle du dispositif de traitement étant facilement adaptable aux besoins, en multipliant les ordinateurs composant chacune des couches du dispositif, des flux de données très élevés peuvent être traités par le dispositif selon l'invention. Ces flux de données élevés sont typiquement ceux que l'on trouve au point d'accès d'un sous-réseau national du réseau Internet.
Par le traitement en profondeur d'une requête HTTP, c'est-à-dire au niveau binaire de la trame correspondante, le procédé évite une multiplication des temps de calcul et un allongement considérable des temps de traitement requis pour chaque requête, tout en permettant l'extraction d'un grand nombre de données nécessaires à la surveillance du site Web et des activités de ses utilisateurs.

Claims

REVENDICATIONS
1 .- Procédé d'analyse de requête HTTP interceptées sur un réseau IP (30) pour la surveillance de l'activité des utilisateurs d'un site Web prédéterminé, comportant les étapes consistant à :
- acquérir (612) la trame de données complète d'une requête HTTP;
- sélectionner (614) la trame de données acquise si sa structure binaire vérifie une pluralité de conditions comportant au moins une condition correspondant à la couche IP (1040, 1050) de la trame, au moins une condition correspondant à la couche de transport (1080) de la trame et au moins une condition correspondant à la couche d'application (1 100, 1 1 10) de la trame;
- extraire (616) des données d'intérêt de la couche d'application de la trame sélectionnée ;
- enregistrer (618, 620, 712, 714, 716, 718) les données extraites, dans une base de données (301 , 303, 305).
2.- Procédé selon la revendication 1 , caractérisé en ce que l'étape de sélection
(612) permet la sélection d'une trame dont la couche de transport est une couche TCP et dont la couche d'application est une couche HTTP.
3. - Procédé selon la revendication 2, caractérisé en ce que, à l'étape de sélection (612), ladite au moins une condition sur la couche IP, respectivement ladite au moins une condition sur la couche TCP, consiste à comparer (1040 ; 1080) la longueur d'un paquet de bits inclus dans la trame acquise, paquet considéré comme étant un paquet IP, respectivement un paquet TCP, avec une longueur prédéfinie de l'en-tête d'un paquet IP, respectivement d'un paquet TCP.
4. - Procédé selon la revendication 2 ou la revendication 3, caractérisé en ce que, à l'étape de sélection (612), ladite au moins une condition sur la couche IP, respectivement ladite au moins une condition sur la couche HTTP, consiste à appliquer, sur l'en-tête d'un paquet de bits inclus dans la trame acquise, paquet considéré comme étant un paquet IP, respectivement un paquet HTTP, un masque pour extraire un groupe de bits et à comparer (1050 ; 1 100, 1 1 10) ce groupe de bits avec valeur binaire attendue pour un paramètre présent dans l'en-tête d'un paquet IP, respectivement l'en-tête d'un paquet HTTP.
5. - Procédé selon l'une quelconque des revendications précédentes, caractérisé en ce que, entre l'étape consistant à extraire les données de la couche d'application de ladite trame et à enregistrer ces données dans une base de données, le procédé comporte une étape supplémentaire consistant à mettre en forme les données extraites selon un modèle prédéterminé, de préférence en y associant des meta-données.
6. - Dispositif pour la mise en œuvre du procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce qu'il comporte :
- un moyen d'acquisition (212) d'une trame de données complète d'une requête HTTP interceptée sur un réseau de communication IP auquel ledit dispositif est connecté ;
- un moyen de sélection (214) propre à vérifier une pluralité de conditions sur la structure binaire d'une trame de données acquise obtenue en sortie du moyen d'acquisition, et comportant au moins une routine de vérification d'une condition correspondant à la couche IP de la trame, au moins une routine de vérification d'une condition correspondant à la couche de transport de la trame et au moins une routine de vérification d'une condition correspondant à la couche d'application de la trame ;
- un moyen d'extraction (216) apte à extraire des données de la couche d'application d'une trame de données sélectionnée obtenue en sortie du moyen de sélection ;
- un moyen d'enregistrement (218 à 318) apte à stocker les données extraites obtenues en sortie du module d'extraction dans une base de données (301 , 303, 305).
7. - Dispositif selon la revendication 6, caractérisé en ce que le moyen de sélection (212) est adapté pour la sélection d'une trame de données acquises dont la couche de transport est une couche TCP et dont la couche d'application est une couche HTTP.
8. - Dispositif selon la revendication 6 ou la revendication 7, caractérisé en ce qu'il comporte un étage de traitement (152) comportant une pluralité d'ordinateurs serveur de traitement (200, 202), chaque ordinateur serveur de traitement étant connecté audit réseau de communication IP et comportant une instanciation desdits moyens d'acquisition, de sélection et d'extraction.
9. - Dispositif selon la revendication 8, caractérisé en ce qu'il comporte, en outre, un étage de stockage (154) comportant une pluralité d'ordinateurs serveur de stockage (300, 3020, 304), chaque ordinateur serveur de stockage étant connecté à ladite pluralité d'ordinateurs serveur de traitement, étant associé à au moins une base de données (301 , 303, 305), et comportant une instanciation desdits moyens de stockage apte à stocker les données extraites communiquées par un ordinateur serveur de traitement dans la base de données associée à l'ordinateur serveur de stockage considéré.
10.- Dispositif selon la revendication 9, caractérisé en ce qu'il comporte, en outre, un étage de restitution (156) comportant au moins un ordinateur de restitution (400) comportant des moyens d'interrogation des différentes bases de données de l'étage de stockage.
PCT/FR2011/051153 2010-05-20 2011-05-20 Procédé et dispositif d'analyse de données interceptées sur un réseau ip pour la surveillance de l'activité des utilisateurs d'un site web WO2011144880A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP11727248A EP2572488A1 (fr) 2010-05-20 2011-05-20 Procédé et dispositif d'analyse de données interceptées sur un réseau ip pour la surveillance de l'activité des utilisateurs d'un site web
US13/699,262 US20130205015A1 (en) 2010-05-20 2011-05-20 Method and Device for Analyzing Data Intercepted on an IP Network in order to Monitor the Activity of Users on a Website

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1002132 2010-05-20
FR1002132A FR2960371B1 (fr) 2010-05-20 2010-05-20 Procede et dispositif d'analyse de donnees interceptees sur un reseau ip pour la surveillance de l'activite des utilisateurs d'un site web

Publications (1)

Publication Number Publication Date
WO2011144880A1 true WO2011144880A1 (fr) 2011-11-24

Family

ID=43332999

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR2011/051153 WO2011144880A1 (fr) 2010-05-20 2011-05-20 Procédé et dispositif d'analyse de données interceptées sur un réseau ip pour la surveillance de l'activité des utilisateurs d'un site web

Country Status (4)

Country Link
US (1) US20130205015A1 (fr)
EP (1) EP2572488A1 (fr)
FR (1) FR2960371B1 (fr)
WO (1) WO2011144880A1 (fr)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3028370A1 (fr) * 2014-11-12 2016-05-13 Bull Sas Methodes et systemes de supervision applicative

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105577496B (zh) * 2016-03-03 2018-06-15 烽火通信科技股份有限公司 一种家庭网关利用云平台识别接入设备类型的系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004145583A (ja) * 2002-10-24 2004-05-20 Nippon Telegr & Teleph Corp <Ntt> フィルタリングシステム
WO2005077009A2 (fr) * 2004-02-10 2005-08-25 Narus, Inc. Surveillance du trafic dans un reseau en vue d'analyser des taux de consultation de pages web

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20020035681A1 (en) * 2000-07-31 2002-03-21 Guillermo Maturana Strategy for handling long SSL messages
US7760719B2 (en) * 2004-06-30 2010-07-20 Conexant Systems, Inc. Combined pipelined classification and address search method and apparatus for switching environments
US7706291B2 (en) * 2007-08-01 2010-04-27 Zeugma Systems Inc. Monitoring quality of experience on a per subscriber, per session basis

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2004145583A (ja) * 2002-10-24 2004-05-20 Nippon Telegr & Teleph Corp <Ntt> フィルタリングシステム
WO2005077009A2 (fr) * 2004-02-10 2005-08-25 Narus, Inc. Surveillance du trafic dans un reseau en vue d'analyser des taux de consultation de pages web

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
AHMED M K ET AL: "An Automated User Transparent Approach to log Web URLs for Forensic Analysis", IT SECURITY INCIDENT MANAGEMENT AND IT FORENSICS, 2009. IMF '09. FIFTH INTERNATIONAL CONFERENCE ON, IEEE, PISCATAWAY, NJ, USA, 15 September 2009 (2009-09-15), pages 120 - 127, XP031540596, ISBN: 978-0-7695-3807-5 *
MAO ET. AL: "Cluster-based Online Monitoring System of Web Traffic", ACM, 2 PENN PLAZA, SUITE 701 - NEW YORK USA, 9 November 2001 (2001-11-09), pages 47 - 53, XP040131337 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3028370A1 (fr) * 2014-11-12 2016-05-13 Bull Sas Methodes et systemes de supervision applicative
EP3021523A1 (fr) * 2014-11-12 2016-05-18 Bull S.A.S. Méthode et système de supervision applicative

Also Published As

Publication number Publication date
FR2960371A1 (fr) 2011-11-25
EP2572488A1 (fr) 2013-03-27
US20130205015A1 (en) 2013-08-08
FR2960371B1 (fr) 2012-06-22

Similar Documents

Publication Publication Date Title
US11936764B1 (en) Generating event streams based on application-layer events captured by remote capture agents
US10193916B2 (en) Configuring the generation of event data based on a triggering search query
EP1899887B1 (fr) Procede et systeme de reperage et de filtrage d&#39;informations multimedia sur un reseau
FR2855691A1 (fr) Securisation de la distribution de documents numeriques dans un reseau pair a pair
CN106878074B (zh) 流量过滤方法及装置
US20160127180A1 (en) Streamlining configuration of protocol-based network data capture by remote capture agents
FR2849559A1 (fr) Outil et methode d&#39;analyse de chemin dans un reseau de transmission de donnees comprenant plusieurs systemes autonomes internet
US11477161B1 (en) Systems and methods for detecting DNS communications through time-to-live analyses
EP2572488A1 (fr) Procédé et dispositif d&#39;analyse de données interceptées sur un réseau ip pour la surveillance de l&#39;activité des utilisateurs d&#39;un site web
CN111211995B (zh) 一种字符串匹配库获取网络流量业务分析方法及装置
Qin et al. Behavior spectrum: An effective method for user's web access behavior monitoring and measurement
EP3818676A1 (fr) Identification de protocole d&#39;un flux de données
EP1254535B1 (fr) Procede et systeme pour la diffusion de donnees en boucle
Kim et al. Today's usenet usage: NNTP traffic characterization
Kaczmarski et al. Content delivery network monitoring
Qiao et al. FLAS: Traffic analysis of emerging applications on Mobile Internet using cloud computing tools
EP2880558B1 (fr) Procédé de traitement de données pour analyse situationnelle
Pujol Gil Web content delivery, monetization, and search
FR2994297A1 (fr) Procede de traitement de donnees de connexion d&#39;une plateforme d&#39;un site internet
EP2365680A1 (fr) Dispositif de gestion dynamique des pages de sites internet dont les fréquentations et audience doivent être analysées
WO2023036847A1 (fr) Procede et système de surveillance et gestion du trafic de données
Gil Web content delivery, monetization, and search: Back-office and advertisement traffic on the Internet
CN116996732A (zh) 一种伪造识别场景下的存储、调度检测方法和系统
FR3081075A1 (fr) Utilisation d&#39;une technologie a chaine de blocs et systeme d&#39;authentification pour authentifier un fichier informatique
EP2830281A1 (fr) Procédé d&#39;association de sources de données hétérogènes pour la sécurité des réseaux de communication et système associé

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 11727248

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

WWE Wipo information: entry into national phase

Ref document number: 10083/DELNP/2012

Country of ref document: IN

WWE Wipo information: entry into national phase

Ref document number: 2011727248

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 13699262

Country of ref document: US