FR2850503A1 - Procede et systeme dynamique de securisation d'un reseau de communication au moyen d'agents portables - Google Patents
Procede et systeme dynamique de securisation d'un reseau de communication au moyen d'agents portables Download PDFInfo
- Publication number
- FR2850503A1 FR2850503A1 FR0300719A FR0300719A FR2850503A1 FR 2850503 A1 FR2850503 A1 FR 2850503A1 FR 0300719 A FR0300719 A FR 0300719A FR 0300719 A FR0300719 A FR 0300719A FR 2850503 A1 FR2850503 A1 FR 2850503A1
- Authority
- FR
- France
- Prior art keywords
- agents
- data packets
- functions
- security policy
- packet
- Prior art date
- Legal status (The legal status 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 status listed.)
- Granted
Links
- 238000004891 communication Methods 0.000 title claims abstract description 42
- 230000006870 function Effects 0.000 claims abstract description 99
- 238000000034 method Methods 0.000 claims description 66
- 238000001914 filtration Methods 0.000 claims description 39
- 238000012986 modification Methods 0.000 claims description 25
- 230000004048 modification Effects 0.000 claims description 25
- 238000012545 processing Methods 0.000 claims description 25
- 238000004458 analytical method Methods 0.000 claims description 12
- 230000009471 action Effects 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 5
- 230000014509 gene expression Effects 0.000 claims description 5
- 230000003213 activating effect Effects 0.000 claims description 2
- 230000004913 activation Effects 0.000 claims description 2
- 238000012544 monitoring process Methods 0.000 claims 1
- 238000001514 detection method Methods 0.000 description 8
- 101001094649 Homo sapiens Popeye domain-containing protein 3 Proteins 0.000 description 6
- 101000608234 Homo sapiens Pyrin domain-containing protein 5 Proteins 0.000 description 6
- 101000578693 Homo sapiens Target of rapamycin complex subunit LST8 Proteins 0.000 description 6
- 102100027802 Target of rapamycin complex subunit LST8 Human genes 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 6
- 241000700605 Viruses Species 0.000 description 5
- 238000012546 transfer Methods 0.000 description 5
- 230000002155 anti-virotic effect Effects 0.000 description 4
- 230000001427 coherent effect Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 4
- 230000006399 behavior Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 3
- 239000000284 extract Substances 0.000 description 3
- 230000002093 peripheral effect Effects 0.000 description 3
- 238000003860 storage Methods 0.000 description 3
- 238000012795 verification Methods 0.000 description 3
- 238000013475 authorization Methods 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 238000011282 treatment Methods 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 101150030531 POP3 gene Proteins 0.000 description 1
- 230000001133 acceleration Effects 0.000 description 1
- 230000004888 barrier function Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000009792 diffusion process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000005111 flow chemistry technique Methods 0.000 description 1
- 230000001939 inductive effect Effects 0.000 description 1
- 238000003780 insertion Methods 0.000 description 1
- 230000037431 insertion Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000000116 mitigating effect Effects 0.000 description 1
- 230000000135 prohibitive effect Effects 0.000 description 1
- 230000035484 reaction time Effects 0.000 description 1
- 238000011084 recovery Methods 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000010963 scalable process Methods 0.000 description 1
- 238000010845 search algorithm Methods 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 238000012549 training Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
- 238000000844 transformation Methods 0.000 description 1
- 230000007704 transition Effects 0.000 description 1
- 230000003612 virological effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0209—Architectural arrangements, e.g. perimeter networks or demilitarized zones
- H04L63/0218—Distributed architectures, e.g. distributed firewalls
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/02—Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
- H04L63/0227—Filtering policies
- H04L63/0263—Rule management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/16—Implementing security features at a particular protocol layer
- H04L63/162—Implementing security features at a particular protocol layer at the data link layer
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Business, Economics & Management (AREA)
- General Business, Economics & Management (AREA)
- Computer And Data Communications (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
L'invention concerne un dispositif placé dans un réseau informatique et servant à sécuriser les flux de communication le traversant.La sécurisation des flux de communication est effectuée au moyen de codes portables, dénommés agents portables, qui peuvent être téléchargés depuis un poste distant. Les agents portables ne sont pas exécutables par le dispositif. Ils le deviennent une fois compilés par un compilateur (c) présent dans le dispositif : ce sont alors des agents exécutables. Le compilateur traduit les agents portables écrits dans un langage indépendant du processeur (P) en des agents exécutables écrits dans le langage du processeur du dispositif, tout en réalisant des contrôles sur les fonctions réalisées par l'agent. Les agents exécutables sont alors exécutés sur le dispositif, en fonction des flux de communication (PD) le traversant et d'une politique de sécurité qui peut également être téléchargée depuis un poste distant.
Description
PROC D ET SYSTEME DYNAbMQUE DE S CURISATION D'UN R SEAU DE
CObMUNICATION AU MOYEN D'AGENTS PORTABLES CADRE DE L'INVENTION La sécurité du réseau informatique est un élément critique pour une entreprise et passe par la sécurisation des communications et des accès aux éléments du réseau. 5 Avec l'avènement d'Internet et l'opportunité commerciale qu'il représente, de plus en plus d'organisations ont ouvert leur réseau vers l'extérieur. Mais communication réseau et sécurité sont deux concepts fortement incompatibles, et les menaces qui découlent d'un assemblage 10 malheureux de ces deux concepts ont souvent amené les entreprises vers les deux seules possibilités offertes par le marché : pas d'ouverture sur Internet ou un blindage des flux de communications entrant et sortant entraînant des surcots énormes. Le marché de la sécurité a donc explosé : 15 les offres de sécurisation des réseaux d'entreprise abondent mais restent axées autour d'une protection frontalière entre deux sous-réseaux (principalement le réseau de l'entreprise et Internet). Bien qu'Internet représente une menace potentielle indéniable, la majeure 20 partie des attaques et des menaces provient de l'intérieur.
Malgré ce constat, le marché actuel de la sécurité continue de proposer des solutions qui répondent de moins en moins bien aux besoins des entreprises et, plus généralement, aux besoins des utilisateurs des réseaux.
Les procédés utilisés dans la sécurisation des réseaux 5 informatiques reposent essentiellement sur la technologie de filtrage de paquets. Cette technologie permet d'autoriser le passage des flux de communication réseau tout en exerçant un contrôle sur ces flux. Les meilleures illustrations (et les plus répandues) sont les écluses (communément appelées " Firewall " 10 dans le jargon informaticien: IEEE COMMUNICATIONS MAGAZINE., Vol. 32 N09 September 1994, page 50 à 57, S.M. BELLOVIN ET AL 'NETWORK FIREWALLS') et les passerelles filtrantes au niveau application (désignées par le nom " Proxy "). Ces deux types d'entités réseau créent une barrière entre deux sous-réseaux et 15 réalisent leur filtrage en fonction de certaines règles de sécurité définies de manière cohérente au sein d'une politique de sécurité. D'autres entités viennent compléter l'offre de sécurité en proposant des services complémentaires: citons entre autres les systèmes de détection d'intrusion (intrusion 20 détection system ou IDS), les antivirus, les passerelles pour les réseaux privés virtuels (appelées passerelles VPN pour Virtual Private Network), les outils logiciels et matériels de chiffrement, les clients/serveurs d'authentification, les serveurs de journalisation, etc. Malgré la variété des produits, 25 de nombreuses limitations deviennent de plus en plus contraignantes pour les entreprises. Leur demande a évolué à l'image du secteur de la sécurité informatique: la protection des réseaux ne doit plus être focalisée sur les points de contact entre plusieurs sous-réseaux mais doit être axée sur la 30 protection de chacun des éléments constituant le réseau.
Dans cette nouvelle optique, tous les services proposés par les différentes offres de sécurité devraient pouvoir s'exercer pour chaque élément du réseau. Les technologies actuelles n'ont pas été pensées en ce sens. Ainsi, 35 deux principaux problèmes freinent le passage vers une sécurité globale et homogène du réseau: la spécialisation des offres de sécurité et le cot d'une telle sécurité. En effet, les entités dédiées à la sécurisation du réseau sont confinées, de par la technologie employée actuellement, à un rôle défini au préalable 5: une écluse ne peut être utilisée pour réaliser autre chose que du filtrage; on ne peut ni changer sa fonction ni lui rajouter de nouvelles fonctionnalités. Dès lors, il est nécessaire de combiner un grand nombre de produits pour atteindre une vaste gamme de services (et donc une bonne sécurité) à un point donné 10 du réseau. Ce grand nombre de produits engendre inévitablement des cots très importants d'acquisition, de formation et de maintenance, sans atténuer les risques de défaillance dus au fait que ces produits n'ont pas été forcément développés pour travailler ensemble. Le cot de la protection d'un seul point 15 étant déjà relativement élevé, ce cot deviendrait prohibitif dans le cas d'une protection totale du réseau.
Au-delà du cot, la multitude de produits spécialisés complique sévèrement l'administration du réseau et la mise en place d'une politique de sécurité efficace et cohérente. Chaque 20 produit dispose de sa propre interface d'administration et cette pluralité ne permet pas de fournir une vision organisée du réseau. Ces problèmes de clarté et de cohérence entraînent non seulement la présence de failles dans la politique de sécurité mais également un ralentissement dans les temps de réaction 25 d'une entreprise à déployer une politique de sécurité face à des menaces.
Dans la grande majorité des solutions actuelles pour la sécurisation des réseaux, l'élément central est l'écluse. La politique de sécurité de l'entreprise est centrée sur cette 30 écluse autour de laquelle peuvent graviter d'autres entités fournissant des services de sécurité complémentaires. Un serveur d'administration permet de définir les différents éléments du réseau (ordinateurs, périphériques réseau, services réseau, utilisateurs...) et de définir des règles de filtrage entre ces 35 différents éléments. Ces règles de filtrage constituent la politique de sécurité qui sera ensuite envoyée à l'écluse l'autorisation ou le refus de passage des paquets des flux de communication sont alors réalisés par l'écluse conformément aux règles de filtrage. Historiquement, l'envoi de la politique de 5 sécurité a constitué une évolution des écluses permettant de palier à la rigidité et au manque d'évolutivité d'une configuration écrite directement dans l'écluse. De plus, les règles de filtrage ont évolué pour permettre de filtrer de nouveaux protocoles en proposant de définir ses propres éléments 10 du réseau dans le serveur d'administration. Toutes ces nouveautés ont fait avancer la technologie des écluses jusqu'au stade dit de " firewall de troisième génération ". Néanmoins, les besoins naissant en matière de sécurité réseau nécessitent une nouvelle évolution que ne pourraient apporter des écluses, 15 quelle que soit leur génération. Cette évolution se définit par la possibilité de réaliser n'importe quel type de traitement sur les paquets par la même entité réseau, que ce soit du filtrage de type écluse, de la détection d'intrusion, de la détection de virus, de la qualité de service réseau, etc. En effet, il 20 devient primordial d'analyser et de contrôler les informations transitant dans les flux autorisés par l'écluse, car ces flux peuvent être utilisés à des fins de piratage informatique. Dans le modèle en couche de la norme OSI (ISO/IEC 7498-1:1994) dont l'une des implémentations est le protocole TCP/IP (Internet 25 Protocol: RFC 791, Transmission Control Protocol: RFC 793), le filtrage des écluses est réalisé au niveau des couches réseau et transport. La couche la plus haute est la couche application et contient les informations transmises par les applications client/serveur. Il existe un très grand nombre de protocoles 30 dans la couche application, ce qui représente autant de flux d'informations susceptibles de contenir une attaque. Chaque jour, de nouvelles failles sont décelées dans tel ou tel protocole et permettent à des pirates informatiques d'attaquer le système hébergeant un service utilisant ce protocole. Un 35 produit de sécurité devrait donc être en mesure de récupérer de nouveaux services pour rester à jour face aux menaces. Autour d'une même politique de sécurité, l'administrateur devrait pouvoir définir les services qu'il veut réaliser sur chacun des points du réseau, en fonction des utilisateurs du réseau et en fonction des menaces du moment.
Une des méthodes pour y parvenir est de disposer de codes mobiles. La théorie des codes mobiles repose sur la présence d'un module capable d'exécuter du code qui lui est fourni à distance. Ceci permet de conserver une plate-forme 10 homogène capable d'exécuter n'importe quel type de programme.
L'une des implémentations du concept de codes mobiles repose sur la présence d'une machine virtuelle. Une machine virtuelle émule un processeur (c'est-à-dire qu'elle simule, sur un autre matériel, le fonctionnement de ce processeur). C'est un 15 processeur virtuel avec un langage qui lui est propre. A ce titre, il dispose de registres de travail et exécute les séquences d'instructions d'un code compilé dans son propre langage. Ceci est réalisé non pas de manière matérielle mais de manière logicielle.
La machine virtuelle apporte l'évolutivité à un système, en permettant l'apport de nouvelles fonctionnalités.
Elle apporte également l'indépendance par rapport au système et donc la portabilité.
Certaines des écluses les plus évoluées intègrent une 25 machine virtuelle afin de réaliser le filtrage de paquets par un code mobile généré à partir de la politique de sécurité définie dans le serveur d'administration, comme présenté dans le brevet US 5606668 ou le brevet US 5835726. Cette méthode d'utilisation de la machine virtuelle, bien que très utile, continue de 30 confiner le rôle de l'écluse à un rôle de filtrage simpliste car la machine virtuelle est cantonnée à l'autorisation ou au refus de passage des paquets en fonction de règles de sécurité.
Bien qu'apportant quelques avantages, la machine virtuelle présente un défaut majeur: la baisse sensible de 35 performance. En effet, la machine virtuelle émule un processeur au-dessus d'un vrai processeur, induisant par-là même une surcouche: les codes mobiles (appelés aussi applets dans le jargon informaticien) sont exécutés par la machine virtuelle qui est elle-même exécutée par le processeur. Cette couche 5 d'abstraction logicielle provoque une baisse de performance qui peut être critique dans des applications temps réel de type traitement de flux réseau.
Une autre implémentation possible du concept de codes mobiles consiste à envoyer directement du code natif 10 (que nous appellerons, par convention, agent) à un dispositif. Cet agent est un code compilé dans le langage du processeur. Cette solution est optimale en terme de vitesse d'exécution. Les agents étant directement exécutés par le processeur, ils peuvent être optimisés compte tenu 15 des caractéristiques particulières de ce processeur. Leur compilation se fait dans une phase antérieure (généralement au moment du développement de l'agent). Le compilateur traduit alors le code de l'agent à partir d'un code développé dans un langage de haut niveau (c'est-à-dire 20 compréhensible facilement par l'homme par ses similitudes avec un langage naturel), le compilateur génère une traduction du code dans un langage de bas niveau (compris par la machine). La compilation d'un code comprend différentes étapes au travers desquelles le code subit 25 plusieurs transformations. Dans une première étape, les différents fichiers composant le code sont compilés individuellement en langage d'assemblage (phase de compilation), puis ils sont translatés du langage d'assemblage au langage machine, c'est-à-dire en langage 30 binaire (phase d'assemblage). On dispose alors de fichiers objets qui sont la traduction en langage machine des fichiers sources. La dernière phase génère l'exécutable proprement dit: les fichiers sont liés les uns aux autres afin de former un seul fichier binaire (phase dite 35 d'édition de liens). Le compilateur doit résoudre toutes les dépendances de chacun des fichiers objets afin de former un exécutable cohérent. L'inconvénient majeur de cette méthode est qu'elle est incompatible avec une indépendance de la plate-forme et un langage propriétaire 5 optimisé pour les besoins de ladite plate-forme. En effet, les codes compilés ne sont pas du tout portables car ils dépendent du processeur du dispositif. Seuls les fichiers sources sont portables. La solution de distribuer les fichiers sources pose de nombreux problèmes: le code est 10 lisible et modifiable par tout le monde, ce qui peut être un problème pour une entreprise désireuse de conserver une expertise, un savoir-faire ou simplement des algorithmes confidentiels. En outre, les fichiers sources demandent d'être compilés pour le processeur adéquat. Il paraît peu 15 probable qu'un client s'étant procuré différents dispositifs (avec des processeurs différents) soit prêt à effectuer les compilations des codes sources avec, à chaque fois, le bon compilateur, en vue de disposer de différentes versions binaires d'un même code source, organiser l'envoi 20 du bon code compilé aux divers dispositifs. En outre, le fait de pouvoir envoyer au dispositif des codes compilés dans le langage de son processeur peut s'avérer très dangereux. En effet, on autorise alors n'importe quel utilisateur, y compris un utilisateur mal intentionné, à 25 développer un code permettant de prendre entièrement le contrôle sur le dispositif. Pour limiter les possibilités des agents, il est nécessaire d'effectuer des contrôles lors de leur exécution ce qui affecterait sensiblement les performances.
L'invention, objet du présent brevet, permet de résoudre les problèmes évoqués précédemment sans présenter les inconvénients de l'art antérieur. L'invention permet de conserver les avantages des codes mobiles tout en accroissant les performances. Elle pallie les problèmes et les limitations des technologies existantes en proposant une solution innovante.
DESCRIPTION DE L'INVENTION
Le cadre général de l'invention concerne une méthode 5 de sécurisation des réseaux informatiques par le contrôle des flux de communication entre éléments desdits réseaux. Ce contrôle s'effectue grâce à la réalisation de traitements sur les paquets des flux de communication par un procédé flexible, dynamique, évolutif, qui peut être administré de manière simple 10 et déployé de façon homogène sur l'ensemble du réseau.
La présente invention se rapporte à un procédé de traitements évolutifs des flux de communication réseau, ces traitements étant effectués en temps réel.
En outre, la présente invention permet de réaliser 15 tout type de traitements évolués des paquets à tous les niveaux du modèle OSI et en particulier au niveau de la couche application.
En outre, la présente invention rend le système évolutif en terme de nouvelles fonctionnalités pour un type de 20 traitement donné (il est possible, par exemple, de rajouter facilement de nouvelles fonctionnalités de filtrage à une écluse (firewall) ou de nouvelles signatures virales à un antivirus.
En outre, la présente invention permet à un système de changer de type de traitement en temps réel (une écluse peut 25 devenir un antivirus ou un système de détection d'intrusion ou encore une passerelle VPN).
En outre, la présente invention permet à un système de réaliser tous les changements évoqués précédemment, et ce, de manière évolutive et en temps réel.
En outre, la présente invention permet d'apporter une protection efficace et personnalisable en tout point du réseau, et ce de manière homogène.
En outre, la présente invention apporte des solutions en terme de performance et de rapidité d'exécution permettant à un système embarqué de traiter efficacement des flux de communication en temps réel.
La présente invention concerne un procédé permettant de réaliser l'analyse et/ou la modification sélective et/ou le 5 filtrage sélectif de paquets de données traversant un dispositif placé en coupure dans un réseau informatique; ledit dispositif comprenant un processeur exécutant un compilateur et un logiciel conformément à une politique de sécurité ; ledit procédé étant caractérisé en ce qu'il comprend les étapes 10 suivantes: - l'étape de définir ladite politique de sécurité au moyen d'agents portables, écrits dans un langage informatique indépendant du langage dudit processeur et dédiés à l'analyse et/ou à la modification sélective et/ou au filtrage sélectif 15 desdits paquets de données; l'étape de démarrer l'exécution dudit compilateur, par ledit logiciel, pour traduire lesdits agents portables en des agents exécutables écrits dans le langage dudit processeur; - l'étape d'exécuter ledit logiciel pour filtrer 20 lesdits paquets de données traversant ledit dispositif, en autorisant ou non leur passage, conformément à ladite politique de sécurité ; - l'étape d'analyser, lesdits paquets de données autorisés par ledit logiciel à traverser ledit dispositif, en 25 exécutant lesdits agents exécutables par ledit processeur; et/ou - l'étape de modifier sélectivement, lesdits paquets de données autorisés par ledit logiciel à traverser ledit dispositif, en exécutant lesdits agents exécutables par ledit 30 processeur; et/ou - l'étape de filtrer sélectivement, lesdits paquets de données autorisés par ledit logiciel à traverser ledit dispositif, en exécutant lesdits agents exécutables par ledit processeur.
La présente invention se caractérise donc par un dispositif se connectant au réseau. La connexion au réseau induit une coupure du réseau en deux sous-réseaux, ce qui permet d'intercepter tous les flux de communication d'un des sous5 réseaux à destination de l'autre.
Ce procédé permet à un dispositif réseau de recevoir une politique de sécurité composée de règles de filtrage classiques et d'agents de traitement des paquets. Ces agents sont compilés automatiquement dans le dispositif: ils 10 deviennent alors directement exécutables par le processeur, ce qui est optimal en terme de vitesse d'exécution. Ainsi, le procédé permet à un dispositif de modifier son propre comportement en fonction des agents téléchargés, ce qui le rend totalement évolutif. En effet, cette modification de 15 comportement peut être une modification globale du rôle du dispositif (une écluse devient un antivirus, par exemple) ou une simple mise à jour des fonctionnalités (un rajout de nouvelles détections de signatures par exemple). De plus, les agents sont envoyés dans un langage indépendant du processeur du dispositif. 20 Cette indépendance assure leur portabilité sur des dispositifs utilisant des processeurs différents. De plus, cela permet éventuellement de concevoir un langage propriétaire, intermédiaire entre un langage de haut niveau et le langage natif du processeur, ce langage propriétaire pouvant avoir des 25 fonctionnalités adaptées aux besoins en matière d'analyse, de modification et de filtrage de paquets dans des flux de communication réseau.
Avantageusement, la politique de sécurité comprend en outre une définition des différents objets dudit réseau 30 informatique.
Avantageusement, la politique de sécurité comprend en outre une définition des différents services dudit réseau informatique.
Avantageusement, la politique de sécurité comprend en outre une définition des différents utilisateurs dudit réseau informatique.
Avantageusement, le procédé selon l'invention 5 comprend l'étape de générer des paramètres de configuration permettant de configurer lesdits agents portables en fonction desdits utilisateurs dudit réseau informatique.
Avantageusement, la politique de sécurité comprend en outre une définition dudit dispositif.
Ceci permet à la politique de sécurité d'inclure de multiples paramètres représentant divers aspects du réseau. Il est donc possible de définir des règles de filtrage entre éléments du réseau ou entre des utilisateurs et des services ou encore entre le dispositif et les services réseaux. A tous ces 15 types de règles de filtrage, il est possible de rajouter des agents qui vont réaliser des traitements supplémentaires. Le logiciel embarqué dans le dispositif réalise alors le filtrage en fonction des règles de la politique de sécurité et, pour les paquets autorisés par ces règles, lance l'exécution des agents 20 qui ont été rajoutés pour ses règles.
Ainsi le dispositif n'est pas limité au travail d'une écluse (filtrage de paquets). En effet, il est possible, au niveau des règles de filtrage du logiciel embarqué, d'autoriser tous les flux de paquets à traverser le dispositif (ce qui a 25 pour effet de désactiver la fonctionnalité d'écluse), tout en rajoutant des agents dédiés, par exemple, au filtrage des tentatives d'intrusion.
Avantageusement, ledit langage informatique desdits agents portables est un langage de bas niveau dédié 30 à des traitements sur lesdits paquets de données dudit réseau informatique et permettant de contrôler et de limiter les actions possibles desdits agents portables au sein dudit dispositif.
Ainsi, les agents ne peuvent être lus car ils 35 sont inintelligibles pour l'homme. De plus, ils peuvent préalablement être développés dans un langage de haut niveau au moment de leur conception puis compilés et fournis par la suite dans ce langage de bas niveau. Le fournisseur des agents conserve ainsi les sources de ses 5 agents. Le langage dans lequel sont écrits les agents est spécialement adapté aux traitements des flux de communication réseau et permet de garder un contrôle sur les possibilités de l'agent au sein du dispositif. En effet, un agent, directement compilé dans le langage du 10 processeur du dispositif, pourrait potentiellement effectuer des dommages graves au dispositif s'il n'y a pas de contrôle lors de son exécution. Un contrôle de l'agent pendant son exécution affecterait très nettement ses performances. En limitant les possibilités de l'agent dans 15 le langage dans lequel il est écrit et dans le compilateur de ce langage, les agents sont contrôlés lors de la compilation et non lors de l'exécution ce qui augmente les performances.
Avantageusement, le procédé selon l'invention 20 comprend l'étape de définir, sur un serveur distant dudit dispositif, ladite politique de sécurité.
Avantageusement, le procédé selon l'invention comprend l'étape de définir, sur ledit dispositif, ladite politique de sécurité.
La politique de sécurité peut être configurée à distance et envoyée au dispositif via le réseau. Elle peut également être définie directement sur le dispositif avec, par exemple, un serveur web embarqué dans le dispositif ou via un port série du dispositif.
Avantageusement, le procédé selon l'invention comprend l'étape d'authentifier le ou les utilisateurs, non authentifiés, dudit dispositif.
Avantageusement, ladite politique de sécurité comprend en outre une définition desdits utilisateurs authentifiés dudit 35 dispositif.
Avantageusement, le procédé selon l'invention comprend l'étape d'authentifier ledit ou lesdits utilisateurs, non authentifiés, dudit dispositif à l'aide d'un moyen d'identification associé audit dispositif.
Avantageusement, le procédé selon l'invention comprend l'étape d'authentifier ledit ou lesdits utilisateurs, non authentifiés, dudit dispositif à l'aide d'une application client/serveur dont l'application serveur est contenue dans ledit dispositif.
Il devient donc possible de définir une politique de sécurité en fonction des utilisateurs du dispositif. Le procédé permet ainsi de définir une politique de sécurité et des agents propres aux utilisateurs du dispositif: sur le même dispositif, des utilisateurs différents se verront attribuer des politiques 15 de sécurité différentes. A titre d'exemple purement illustratif et non limitatif des possibilités d'application de l'invention, on peut mettre en place une politique de sécurité dans laquelle un stagiaire, après s'être authentifié, n'aura accès qu'aux services réseaux et aux serveurs non confidentiels, alors qu'un 20 développeur pourra accéder aux serveurs de développement.
Les méthodes d'authentification des utilisateurs du dispositif peuvent être de plusieurs sortes: au moyen d'un élément du dispositif (à titre d'exemple purement illustratif et non limitatif des possibilités d'application de l'invention, on 25 peut citer, entre autres, un lecteur de carte à puces ou un identificateur biométrique) ou par un mécanisme de type client / serveur dans lequel le serveur d'authentification résiderait dans le dispositif. Les informations d'authentification peuvent alors être contrôlées dans le dispositif ou sur un serveur 30 distant dans lequel est stockée la politique de sécurité.
Avantageusement, le procédé selon l'invention comprend l'étape d'exécuter des fonctions d'une bibliothèque de fonctions contenue dans ledit logiciel et appelée par lesdits
agents exécutables.
Ceci permet de mettre à disposition des agents exécutables un ensemble de fonctions répondant aux besoins et aux spécificités du dispositif.
Avantageusement, le procédé selon l'invention 5 comprend l'étape d'exécuter des fonctions, de ladite bibliothèque de fonctions, spécialisées dans une gestion d'un cache desdits paquets de données.
Avantageusement, la gestion dudit cache desdits paquets de données comprend les étapes suivantes: - l'étape, après exécution desdits agents exécutables, de mémoriser, dans ledit cache, des informations de paquets concernant lesdits paquets de données et en outre lesdits paquets de données eux-mêmes lorsqu'ils ont été modifiés lors de ladite exécution; l'étape, lors de l'arrivée d'un paquet entrant dans ledit dispositif, de vérifier, grâce audites informations de paquets mémorisées dans ledit cache, si ledit paquet entrant est un paquet déjà reçu; - l'étape, lorsque ledit paquet entrant n'est pas un 20 paquet déjà reçu, d'exécuter lesdits agents exécutables; - l'étape, lorsque ledit paquet entrant est un paquet déjà reçu, de déterminer, grâce audites informations de paquets mémorisées dans ledit cache, si ledit paquet déjà reçu avait été modifié par lesdits agents exécutables; - l'étape, lorsque ledit paquet déjà reçu avait été modifié par lesdits agents exécutables, de transmettre vers ledit réseau informatique, sans exécuter lesdits agents exécutables, une version dudit paquet déjà reçu mémorisée dans ledit cache; - l'étape, lorsque ledit paquet déjà reçu n'avait pas été modifié par lesdits agents exécutables, de transmettre vers ledit réseau informatique ledit paquet entrant tel quel, sans exécuter lesdits agents exécutables.
Cet ensemble de fonctions permet aux agents de 35 disposer d'une gestion adaptée de cache de paquets. Le cache de paquet permet aux agents de ne pas voir les paquets de données déjà reçus afin de conserver la vision d'un flux cohérent. De plus, le cache de paquets de données permet d'améliorer sensiblement les performances du dispositif en courtcircuitant 5 l'exécution des agents et en envoyant directement le paquet déjà reçu - dans le cas o il n'a pas été modifié par les agents lors de sa première réception - ou sa version modifiée, stockée dans le cache de paquets de données, - dans le cas o il a été modifié par les agents lors de sa première réception.
Avantageusement, le procédé selon l'invention comprend l'étape d'exécuter des fonctions, de ladite bibliothèque de fonctions, spécialisées dans une gestion des couches réseau et transport du protocole de communication utilisé.
Avantageusement, la gestion desdites couches réseau et transport comprend les étapes suivantes: - l'étape de mémoriser des informations de protocole desdites couches réseau et transport desdits paquets de données traversant ledit dispositif afin de réaliser un suivi des 20 différents flux desditspaquets de données; - l'étape de mémoriser des modifications desdits paquets de données réalisées par lesdits agents exécutables; - l'étape de mettre à jour lesdites informations de protocole desdites couches réseau et transport desdits paquets 25 de données traversant ledit dispositif, en fonction desdites informations de protocole et desdites modifications mémorisées, sur lesdits paquets de données afin de conserver une cohérence des flux desdits paquets de données.
Le procédé permet de conserver les informations 30 importantes des flux autorisés afin de pouvoir modifier et analyser correctement les informations des paquets de données en cours de traitement. A titre d'exemple purement illustratif et non limitatif des possibilités d'application de l'invention, les informations conservées peuvent être les numéros de séquence et 35 d'acquittement du protocole TCP (tels que définis dans la RFC 793 déjà citée) ce qui permet d'agrandir ou de réduire les paquets de données, de recalculer les sommes de contrôle des entêtes, de conserver des informations passées dans le flux tel qu'un nom d'utilisateur, un mot clé important, l'appel d'une commande spéciale, etc. Avantageusement, le procédé selon l'invention comprend l'étape d'exécuter des fonctions, de ladite bibliothèque de fonctions, spécialisées dans une recherche de motifs et d'expressions régulières.
Par le biais de ces fonctions, les agents peuvent alors réaliser des recherches complexes de motifs dans les paquets, ce que nécessite souvent l'analyse de paquets de données à titre d'exemple purement illustratif et non limitatif des possibilités d'application de l'invention, ces 15 fonctions peuvent être, entre autres, des fonctions de comparaisons de chaînes, de bloc mémoire, d'expressions régulières, des fonctions de recherche simultanée de plusieurs chaînes dans un bloc mémoire, etc. Avantageusement, le procédé selon l'invention 20 comprend l'étape d'exécuter des fonctions, de ladite bibliothèque de fonctions, spécialisées dans une communication entre lesdits agents exécutables.
Dans de nombreux cas, un agent aura besoin d'échanger des informations avec les autres agents afin de les avertir ou 25 d'être prévenu d'évènements imminents un exemple purement illustratif et non limitatif des possibilités d'application de l'invention est celui d'un agent ayant détecté la présence d'un virus et décidant d'interdire le passage du paquet. Il doit alors avertir les autres agents que le paquet a été détruit.
Avantageusement, le procédé selon l'invention comprend l'étape d'exécuter des fonctions, de ladite bibliothèque de fonctions, spécialisées dans une communication entre lesdits agents exécutables et desdits objets dudit réseau informatique.
Le procédé permet de donner la possibilité aux agents de dialoguer avec des composants réseaux dans leur protocole de communication. Ceci permet, entre autres, de reconfigurer des périphériques ou d'échanger des informations. En effet, un 5 réseau efficacement protégé est un réseau o chaque élément a un rôle cohérent dans la politique de sécurité. Il est important que chaque composant du réseau puisse participer à la sécurité du réseau. Un exemple purement illustratif et non limitatif des possibilités d'application de l'invention est celui d'un agent 10 utilisant les fonctions de la bibliothèque pour reconfigurer la politique de sécurité d'un routeur via le protocole SNMP (Simple Network Management Protocol: RFC 1157) ou pour envoyer des logs à des serveurs de logs déjà existants (comme syslog par
exemple: RFC 3164).
Avantageusement, le procédé selon l'invention comprend l'étape d'associer des composants matériels spécialisés dudit dispositif à des fonctions de ladite bibliothèque de fonctions afin d'accélérer l'exécution desdites fonctions.
Afin d'optimiser les performances du dispositif, les 20 fonctions les plus utilisées de la bibliothèque de fonctions peuvent être directement intégrées au dispositif au niveau matériel: par exemple, des algorithmes de chiffrement ou de recherches de motifs peuvent être câblés dans un coprocesseur dédié. L'accélération matérielle permet d'obtenir un gain de 25 performance non négligeable pour des dispositifs de traitements en temps réel.
Avantageusement, le procédé selon l'invention comprend l'étape de modifier ladite politique de sécurité en exécutant lesdits agents exécutables par ledit processeur.
Pour obtenir une sécurité globale et cohérente du dispositif et du réseau en général, les agents doivent pouvoir influer sur la politique de sécurité en cours. En effet, les agents peuvent réaliser des analyses très poussées sur les paquets, entre autres, en vue de détecter 35 des attaques réseaux, des intrusions, des comportements anormaux, des virus, des dépassements de quota, des motifs non autorisés à transiter sur le réseau. Toutes ces analyses amènent les agents à prendre des décisions de modification de la politique de sécurité. Un exemple 5 purement illustratif et non limitatif des possibilités d'application de l'invention est celui d'un agent chargé de détecter la négociation -du port du canal de données du protocole FTP (File Transfer Protocol: RFC 959) et devant décider d'autoriser ou non les paquets du canal de données 10 à traverser le dispositif. Un autre exemple est celui d'un agent, détectant une tentative d'attaque depuis un poste A, et rajoutant alors une règle de filtrage interdisant toute communication avec le poste A. L'invention concerne également un système permettant 15 de réaliser l'analyse et/ou la modification sélective et/ou le filtrage sélectif de paquets de données; ledit système comprenant: - un dispositif traversé par lesdits paquets de données et placé en coupure dans un réseau informatique, ledit 20 dispositif comprenant un processeur exécutant un compilateur et un logiciel conformément à une politique de sécurité et; - des agents portables, destinés à définir ladite politique de sécurité, écrits dans un langage informatique indépendant du langage dudit processeur et dédiés à l'analyse 25 et/ou la modification sélective et/ou le filtrage sélectif desdits paquets de données; 1 ledit compilateur étant activé par ledit logiciel pour traduire lesdits agents portables en des agents exécutables écrits dans le langage dudit processeur; ledit logiciel comprenant des moyens de filtrage pour filtrer lesdits paquets de données traversant ledit dispositif, en autorisant ou non leur passage, conformément à ladite politique de sécurité ; lesdits agents exécutables étant exécutés par ledit 35 processeur pour: - analyser lesdits paquets de données autorisés par ledit logiciel à traverser ledit dispositif, et/ou - modifier sélectivement lesdits paquets de données autorisés par ledit logiciel à traverser ledit dispositif, et/ou 5 - filtrer sélectivement lesdits paquets de données autorisés par ledit logiciel à traverser ledit dispositif.
Avantageusement, ladite politique de sécurité comprend en outre une définition des différents objets dudit réseau informatique.
Avantageusement, ladite politique de sécurité comprend en outre une définition des différents services dudit réseau informatique.
Avantageusement, ladite politique de sécurité comprend en outre une définition des différents utilisateurs dudit réseau informatique.
Avantageusement, ledit système comprend en outre des moyens de génération de paramètres de configuration pour configurer lesdits agents portables, en fonction desdits utilisateurs dudit réseau informatique.
Avantageusement, ladite politique de sécurité comprend en outre une définition dudit dispositif.
Avantageusement, ledit langage informatique est un langage de bas niveau dédié à des traitements sur lesdits paquets de données dudit réseau informatique et permettant de 25 contrôler et de limiter les actions possibles desdits agents portables au sein dudit dispositif.
Avantageusement, ledit système comprend un serveur distant dudit dispositif pour définir ladite politique de sécurité.
Avantageusement, ledit dispositif comprend des moyens d'administration pour définir ladite politique de sécurité.
Avantageusement, ledit système comprend des moyens d'authentification du ou des utilisateurs, non authentifiés, dudit dispositif.
Avantageusement, ladite politique de sécurité comprend en outre une définition desdits utilisateurs authentifiés dudit dispositif.
Avantageusement, ledit dispositif comprend un moyen 5 d'identification pour authentifier ledit ou lesdits utilisateurs, non authentifiés, dudit dispositif.
Avantageusement, ledit dispositif comprend une application serveur d'une application client/serveur destinée à authentifier ledit ou lesdits utilisateurs, non authentifiés, 10 dudit dispositif.
Avantageusement, ledit logiciel comprend une bibliothèque de fonctions dont les fonctions sont appelées par lesdits agents exécutables.
Avantageusement, ladite bibliothèque de fonctions 15 comprend en outre des fonctions spécialisées dans une gestion d'un cache desdits paquets de données.
Avantageusement, ledit cache desdits paquets de données comprend: - une mémoire pour stocker, après exécution desdits 20 agents exécutables, des informations de paquets concernant lesdits paquets de données et pour stocker lesdits paquets de données eux-mêmes; - des moyens de contrôle pour vérifier, grâce audites informations de paquets mémorisées dans ledit cache, si un 25 paquet entrant est un paquet déjà reçu et s'il avait été modifié par lesdits agents exécutables; - des moyens d'activation pour activer, en fonction des vérifications opérées par les moyens de contrôles, - soit des moyens de transmission pour transmettre 30 vers ledit réseau informatique sans modification un paquet de données stocké dans ladite mémoire; - soit des moyens de transmission pour transmettre vers ledit réseau informatique sans modification un paquet entrant.
Avantageusement, ladite bibliothèque de fonctions comprend en outre des fonctions spécialisées dans une gestion des couches réseau et transport du protocole de communication utilisé.
Avantageusement, ledit dispositif comprend - au moins une mémoire pour stocker des informations de protocole desdites couches réseau et transport desdits paquets de données traversant ledit dispositif afin de réaliser un suivi des différents flux desdits paquets de données, et pour 10 stocker des modifications desdits paquets de données réalisées par lesdits agents exécutables; - des moyens de mise à jour desdites informations de protocole desdites couches réseau et transport desdits paquets de données traversant ledit dispositif, en fonction desdites 15 informations de protocole et desdites modifications mémorisées, sur lesdits paquets de données afin de conserver une cohérence des flux desdits paquets de données.
Avantageusement, ladite bibliothèque de fonctions comprend en outre des fonctions spécialisées dans une recherche 20 de motifs et d'expressions régulières.
Avantageusement, ladite bibliothèque de fonctions comprend en outre des fonctions spécialisées dans une communication entre lesdits agents exécutables.
Avantageusement, ladite bibliothèque de fonctions 25 comprend des fonctions spécialisées dans une communication entre lesdits agents exécutables et desdits objets dudit réseau informatique.
Avantageusement, ledit dispositif comprend des composants matériels spécialisés associés à des fonctions de 30 ladite bibliothèque de fonctions afin d'accélérer l'exécution desdites fonctions.
Avantageusement, lesdits agents exécutables, exécutés par ledit processeur, modifient ladite politique de sécurité.
Le système, objet de la présente invention, permet ainsi de réaliser parfaitement toutes les fonctionnalités du procédé décrit précédemment.
Afin de mieux faire comprendre l'invention, différents 5 exemples vont être décrits à l'aide de figures. Ces exemples donnent, à titre purement illustratif, des modes de réalisation possibles, modes auxquels ne se limite pas l'invention.
La figure 1 représente le schéma général de l'interconnexion du dispositif agissant dans l'invention avec un réseau informatique.
La figure 2 illustre l'effet de la compilation des agents au sein du dispositif.
La figure 3 représente le schéma général de l'interconnexion du dispositif agissant dans l'invention avec un réseau informatique après la compilation des agents portables en
agents exécutables.
La figure 4 représente l'automate de traitement des paquets et d'exécution des agents dans le dispositif.
La figure 5 représente le schéma général du réseau 20 informatique associé à une politique de sécurité.
La figure 6 présente l'automate d'un agent susceptible de modifier la politique de sécurité.
La figure 7 présente une procédure d'authentification d'un utilisateur du dispositif avec un serveur distant.
La figure 8 présente une procédure d'authentification d'un utilisateur du dispositif avec une application serveur dans le dispositif.
La figure 9 représente l'automate de traitement des paquets d'un agent.
La figure 10 représente un autre mode d'interconnexion du dispositif à un réseau informatique.
La figure 11 représente l'automate de cache de paquets.
La figure 12 présente un exemple de communication entre un agent et différents éléments du réseau.
La figure 13 illustre la façon dont des composants matériels spécialisés peuvent réaliser certaines fonctions de la bibliothèque de fonctions.
Sur la figure 1, le dispositif D contient un 5 processeur P. Le dispositif D est placé en coupure d'un réseau informatique quelconque: il peut aussi bien s'agir d'un intranet d'entreprise, du réseau Internet, de deux sous-réseaux adjacents ou bien simplement de deux postes. Il peut également s'agir d'un ordinateur connecté à un réseau. On entend par 10 coupure la séparation physique du réseau R en deux sous-réseaux reliés entre eux à l'aide du dispositif D. Ainsi tout flux de communication composé de paquets de données PD d'un des sousréseaux à destination de l'autre sous-réseau doit traverser le dispositif D. Ceci assure le contrôle de tout flux de données et 15 permet de fournir des services de sécurité et de filtrage au niveau du dispositif D. Le dispositif D comprend en outre un logiciel L et un compilateur C qui sont destinés à être exécutés 4 par le processeur P. Le dispositif D contient également une politique de sécurité PS. Cette politique de sécurité PS est 20 définie au moyen d'agents portables Ai écrits dans un langage informatique Li indépendant du langage du processeur P. La phase de compilation des agents est présentée en figure 2. Dès que la politique de sécurité PS est présente dans le dispositif D, le logiciel L appelle 25 automatiquement le compilateur C afin d'effectuer la compilation des agents portables Al présents dans la politique de sécurité PS et écrits dans ledit langage informatique Li indépendant du langage du processeur P pour les traduire en agents exécutables A2 écrits dans le 30 langage du processeur P (langage représenté par LP). Les agents portables Al ne sont pas exécutables par le processeur P mais ils le deviennent après compilation sous leur forme d'agents exécutables A2. Les agents exécutables A2 remplacent les agents portables Ai dans la définition de 35 la politique de sécurité PS.
La figure 3 illustre l'état du dispositif présenté dans la figure 1 après la compilation, montrée en figure 2, des agents portables Ai en agents exécutables A2.
Les différences par rapport à la figure 1 sont les suivantes: - Les agents portables Al définissant la politique de sécurité PS ont été remplacés par les agents exécutables A2 écrits dans le langage du processeur P (langage représenté par LP) et qui sont leur version 10 compilée.
- Les agents exécutables A2 sont alors exécutés 4 par le processeur P au même titre que le logiciel L et le compilateur C. Les agents exécutables A2 sont donc au même niveau que 15 le logiciel L et sont exécutés 4 par le processeur P. Contrairement à des codes mobiles (ou applets dans le jargon informatique), il n'y a pas de couche d'abstraction logicielle (comme une machine virtuelle). L'agent exécutable A2 apporte une nouvelle fonctionnalité au dispositif D, tout se passant comme 20 si cette fonctionnalité était déjà présente dans le logiciel L. Les agents portables Ai peuvent être développés dans un langage de haut niveau (comme le langage " C " défini par la norme ISO/IEC 9899:1999) ou intermédiaire (comme de l'assembleur) puis traduit si nécessaire vers un langage de bas 25 niveau indépendant du langage du processeur P dudit dispositif D. Le compilateur C permet de réaliser des vérifications sur les agents portables Ai, pour les restreindre dans leur environnement d'exécution et protéger le dispositif D d'agents portables Ai qui seraient mal intentionnés ou mal codés. Ainsi 30 un agent exécutable A2 ne pourra pas, par exemple, utiliser toutes les fonctions de la bibliothèque du logiciel L et/ou ne pourra pas accéder à toute la mémoire de travail et/ou de stockage du dispositif D. Le logiciel L réalise l'ensemble des traitements au 35 sein du dispositif D: à ce titre, il peut, selon le cas d'utilisation, authentifier les utilisateurs du dispositif D, récupérer une politique de sécurité PS, récupérer avec ladite politique de sécurité PS des agents portables Ai spécialisés dans certaines fonctions de sécurité, récupérer les paquets de 5 données PD, filtrer les paquets de données en fonction de ladite politique de sécurité PS, etc. Sur la figure 4, l'automate de traitement des paquets du logiciel L est présenté. Les éléments suivants constituent cette figure: - 5: Pas de paquet reçu; - 6: Attendre l'arrivée d'un paquet; - 51 Paquet reçu; - 7: Filtrer le paquet; - 8 Y a-t-il des agents exécutables A2 concernés par le paquet ? - 9 Exécuter les agents exécutables A2 - 10 Y a-t-il des traitements secondaires ? - 11 Effectuer les traitements secondaires sur le paquet 12 Envoyer le paquet - 13 Paquet refusé ; - 14 Paquet autorisé - 15 Non 16 Oui.
Le logiciel L attend l'arrivée de nouveaux paquets. 25 Après réception, il vérifie si le paquet est conforme à la politique de sécurité PS et filtre le paquet en autorisant ou non son passage. Si le paquet est autorisé, le logiciel L vérifie si des agents exécutables A2 sont concernés par le paquet, conformément à la politique de sécurité, et le cas échéant lesdits agents exécutables A2 sont exécutés. Le paquet subit ensuite optionnellement des traitements supplémentaires (chiffrement...). Après traitement et s'il y est autorisé par les agents exécutables A2, le paquet est envoyé au destinataire, sinon il est détruit.
Afin de permettre au logiciel L de déterminer si des agents doivent être appelés pour réaliser des traitements supplémentaires sur les paquets, la politique de sécurité doit pouvoir contenir une définition des agents et des relations avec les autres éléments de la politique de sécurité.
Il est possible de concevoir une politique de sécurité classique (pour un réseau utilisant la norme TCP/IP), basée sur des actions d'autorisation et de refus de paquet en fonction des adresses IP source et destination, des ports source et 10 destination et du protocole de transport, tout en lui rajoutant une liste d'agents à exécuter. Le tableau suivant n'est qu'un exemple de politique de sécurité et les agents donnés dans cette politique de sécurité ne sont eux-mêmes donnés qu'à titre
d'exemple.
Adresse Adresse desti- Service Port Protocole Action Agent source nation IP A IP B FTP 21 TCP Autorisé Agent
FTP
Autorisé Agent IP A IP C POP3 110 TCP SSOn Chiffré POP3 Autorisé IP A IP C SMTP 25 TCP Chiffré Contrôle IP A IP C HTTP 80 TCP Autorisé ______Parental Al All All * All Refusé - On peut voir sur ce tableau, que tout flux de communication est interdit entre des adresses Internet autre que IP A, IP B et IP C (dernière ligne du tableau). Le flux de 20 communication entre les adresses IP B et IP C est également interdit (il n'y a pas de règle explicite d'autorisation de communication entre B et C, c'est donc la dernière ligne qui prévaut). Entre les adresses Internet IP A et IP B, tout le flux de communication est interdit mis à part le service FTP (protocole de transfert de fichiers), service sur lequel a été rajouté un agent FTP chargé de détecter la procédure de 5 négociation dynamique de port du protocole FTP. Et entre les adresses IP A et IP C tout le flux est interdit mis à part: - le service pop3 (réception de courriers électroniques, Post Office Protocol - Version 3: RFC 1939) qui est autorisé, qui doit, dans cet exemple, être chiffré et sur 10 lequel a été ajouté l'agent SSOn POP 3 chargé de détecter la procédure d'authentification et d'insérer automatiquement le mot de passe de l'utilisateur.
- le service SMTP (Simple Mail Transfer Protocol, protocole de transfert de courrier électronique - RFC 821) qui 15 est autorisé et qui, dans cet exemple, doit être chiffré.
- le service HTTP (HyperText Transfer Protocol, navigation sur les pages Internet - RFC 2068) qui est autorisé et sur lequel est appliqué un contrôle parental.
La figure 5 représente un schéma de réseau qui peut 20 être employé dans le cas d'application de la politique de sécurité décrite dans le tableau précédent. Ce réseau comprend trois hôtes représentés par les adresses Internet IP A, IP B et IP C, ces hôtes sont reliés au même réseau. Deux dispositifs Dl et D2 sont positionnés respectivement entre l'hôte d'adresse IP 25 A et le reste du réseau et entre l'hôte d'adresse IP C et le reste du réseau. Ainsi les hôtes d'adresses IP A et IP B (ainsi que IP B et IP C) n'ont qu'un dispositif les séparant alors que les hôtes d'adresses IP A et IP C ont les deux dispositifs qui les séparent.
La figure 6 explique le fonctionnement de l'agent FTP chargé de détecter la procédure de négociation dynamique de port. Les éléments suivants constituent cette figure - 15: Non - 16: Oui - 17: Début; - 18 Détection d'une négociation d'ouverture dynamique de port - 19 Récupération de l'IP B et du port X - 20 Modification de la politique de sécurité par l'ajout d'une règle; - 21 Fin.
Pour mieux comprendre l'utilité de l'exemple de l'agent FTP utilisé dans la figure 6, il faut expliquer le protocole FTP. Ce protocole est divisé en deux flux de 10 communication distincts: le premier est le flux de contrôle permettant d'envoyer les commandes au serveur et de recevoir les réponses. Ce flux utilise habituellement le port TCP 21; le deuxième est le flux de données des fichiers envoyés. Le port permettant de récupérer ce deuxième flux est initialement 15 inconnu car il est négocié dans le premier flux, ce qui rend impossible l'autorisation préalable du flux de données FTP pendant la phase de définition de la politique de sécurité.
L'agent est appelé pour chaque paquet FTP. Il se charge de détecter la phase de négociation de port 20 dynamique du flux de données FTP dans le flux de communication initial. Une fois qu'il l'a détectée, l'agent récupère l'adresse IP B et le port négocié, ici X. Ensuite, il modifie la politique de sécurité en rajoutant une règle temporaire autorisant ce flux à passer. 25 Adresse Adresse Service Port Protocole Action Agent source destination Autori Agent IP A IP B FTP 21 TCP sé FTP Autori Agent IP A IP C POP3 110 TCP SSOn Chiffr POP3 Autori sé IP A IP C SMTP 25 TCP Chiffr é Contrôl Autori e IP A IP C HTTP 80 TCP sé Parenta FTP Autori
IP A IP B X TCP
Data sé All All Al * All Refusé - Nous pouvons constater dans le tableau précédent que l'agent FTP, après détection de la négociation dynamique de port, a rajouté une règle à la politique de sécurité, permettant 5 aux hôtes d'adresse IP A et IP B de s'envoyer des fichiers via le port négocié (X dans notre exemple).
Par ailleurs, la politique de sécurité du dispositif D peut être fonction du ou des utilisateurs qui se sont identifiés auprès du dispositif. Plusieurs méthodes de réalisation sont 10 alors possibles. Deux méthodes sont présentées: une méthode liée à un serveur d'authentification distant (figure 7) et une autre méthode liée à une authentification locale (figure 8).
Les éléments suivants constituent la figure 7: - 17: Début; - 21: Fin; 22: Un utilisateur Ui s'authentifie sur le dispositif D à l'aide d'un moyen d'identification; - 23 Envoie de l'authentification au serveur distant - 24 Vérification de l'authentification par le serveur distant; 25: Le serveur distant extrait * La politique de sécurité PS en fonction de l'utilisateur Ui, * Les agents portables Al correspondants, * Les paramètres de configuration correspondants - 26: Envoie de la politique de sécurité PS, des agents portables Al et des paramètres de configurations au dispositif; - 27: Stockage de la politique de sécurité PS, des 15 paramètres de configuration et des agents exécutables A2 qui ont été obtenus après compilation des agents portables Ai par le compilateur C; 28 Authentification refusée; - 29 Authentification accordée.
En figure 7, un utilisateur Ui s'authentifie sur le dispositif D (ceci peut être réalisé entre autre à l'aide d'un lecteur de carte à puce ou par un système d'identification biométrique...). L'authentification est envoyée au serveur distant qui vérifie l'authentification de l'utilisateur. Si cette 25 authentification est refusée, le serveur coupe la communication.
Au contraire, si l'authentification est autorisée, le serveur construit la politique de sécurité PS en fonction de l'utilisateur Ui en y incluant les agents portables Ai et les paramètres de configuration correspondants. Le serveur envoie 30 alors toutes ces informations au dispositif D qui les stocke (par exemple en mémoire). L'utilisateur est alors authentifié et peut utiliser le dispositif avec sa politique de sécurité.
Cette méthode permet de centraliser toutes les politiques de sécurité PS de tous les dispositifs D dans un ou 35 plusieurs serveurs centraux sur lesquels l'administration peut se faire globalement. Cette méthode permet en outre d'envoyer de nouveaux agents portables Ai et donc de modifier totalement le comportement de tout ou partie des dispositifs D. Les éléments suivants constituent la figure 8 - 17 Début; - 21 Fin; - 27 Stockage de la politique de sécurité PS, des paramètres de configuration et des agents A2 qui ont été obtenus après compilation des agents portables Al par le 10 compilateur C; - 28: Authentification refusée; 29: Authentification accordée - 30: Un utilisateur Ui s'authentifie sur le dispositif D à l'aide d'une application client/serveur dont 15 l'application serveur se trouve dans le dispositif D - 31: Vérification de l'authentification par le dispositif D; - 32: L'application serveur extrait * La politique de sécurité PS en fonction de 20 l'utilisateur Ui, * Les agents portables Al correspondants, * Les paramètres de configuration correspondants.
En figure 8, un utilisateur s'authentifie via une application serveur (par exemple un serveur =TTP) incluse dans 25 le logiciel L du dispositif. L'application serveur vérifie l'authentification. Si celle-ci est correcte, l'application serveur récupère et active alors la politique de sécurité PS de l'utilisateur Ui (comme dans la figure 7). Les informations sont directement contenues dans le dispositif D. Il est possible de 30 paramétrer ces fonctionnalités et, d'une façon plus générale, la politique de sécurité PS, en fonction d'un utilisateur Ui. L'administration se fait localement sur le dispositif D via l'application
serveur. Cette méthode peut être utilisée dans le cadre d'un dispositif D unique pour un réseau familial accédant 35 à Internet ou pour une petite entreprise.
Les figures 7 et 8 ne sont que des exemples d'implémentation de l'invention. Il est tout à fait possible de coupler ces deux exemples et d'avoir une authentification de l'utilisateur à l'aide d'un serveur (Web ou autre) embarqué dans 5 le dispositif D et d'avoir un serveur central qui vérifie cette authentification, génère la politique de sécurité puis la transmet au dispositif D. Les services autres que le filtrage classique des paquets réalisé par une écluse (firewall) classique sont 10 réalisés par les agents. Un agent peut potentiellement réaliser n'importe quel traitement sur les paquets. L'exemple qui suit montre la facilité d'implémentation d'un agent.
La figure 9 illustre l'automate d'un agent réalisant une fonctionnalité très originale de sécurité au niveau 15 application (et non pas au niveau TCP/IP par exemple). Les éléments suivants constituent cette figure Non - 16 Oui - 17 Début - 21:Fin; - 33 Initialisation de l'agent; - 34 Le paquet contient-il la commande " USER " ? - 35 Le paquet contient-il la commande " PASS " ? - 36 Y a-t-il un mot de passe associé au nom d'utilisateur ? - 37 Récupération et stockage du nom d'utilisateur; - 38 Sauvegarde des paramètres de l'agent; - 39 Calcul de la taille des données à rajouter au paquet; - 40: Modification de la taille du paquet - 41: Insertion du mot de passe dans le paquet.
Cet agent se charge de réaliser l'authentification d'un utilisateur à son serveur de messagerie électronique via le protocole POP3 (Post Office 35 Protocol - Version 3: RFC 1939, commandes d'authentification de POP3: RFC 1734). L'utilisateur n'a plus à connaître son mot de passe. L'agent se charge de placer le mot de passe en fonction de l'identifiant de l'utilisateur.
L'automate de l'agent est relativement simple. L'agent cherche un paquet contenant la commande USER et extrait l'identifiant de l'utilisateur si la commande est trouvée. Puis il cherche un paquet contenant la commande PASS. Une fois qu'il l'a trouvée, l'agent retrouve le mot de passe correspondant à 10 l'identifiant, calcule la taille à rajouter au paquet, agrandit le paquet et insère le mot de passe valide.
Voici un exemple de ce code écrit en " C ", langage informatique de haut niveau.
int main() /* definition des variables */ int packet_size; char *packet; char *(param[6]); int error, loginsize, offset, pass_size; /* Récupération du paquet et des paramètres de l'agent */ if ( !( packet = agentgetPacketData( &packet_size))) return OK; agentgetAgentParam( param); /* On cherche la commande USER pour récupérer le login */ if ( !strncmp( packet, "USER ", 5)) login size = size - 7; if (loginsize > 32) return -1; /* On sauvegarde le login et sa taille */ strncpy( param[l] , packet + 5, loginsize); (int)(param[2]) = loginsize; /* On cherche la commande PASS pour insérer le mot de passe */ if ( !strncmp( packet, "PASS ", 5)) /* On récupère le mot de passe correspondant au login */ if ( (offset = agentgetMatch( param[O], param[l], (int)(param[2]))) == -1) return OK; pass_size = strlen( param[0] + offset) ; /* On augmente la taille du paquet 15 et on insère le passe */ agentmodifyMemSpace( packet + 5, pass_size); strncpy( packet + 5, param[1] , pass-size); /* Sauvegarde des paramètres de l'agent */ 20 agent_saveAgentParam( param) ; return OK; Cet exemple montre bien la facilité apportée par la présente invention pour permettre le rajout de nouvelles 25 fonctionnalités de sécurité et/ou de gestion du réseau, sur le dispositif D. En quelques lignes de codes, il est possible d'effectuer des opérations sur les paquets. Etant donné la facilité d'accès aux paquets des flux de communication, l'agent peut rapidement lire et modifier les données des paquets. Ainsi, 30 tout développeur peut écrire ses propres agents et augmenter sa base de fonctionnalités. Avec l'apparition de nouvelles menaces, l'implémentation de nouveaux agents détectant ces menaces et y remédiant est rapide et efficace. La diffusion à l'ensemble des dispositifs protège de manière homogène et instantanée 35 l'ensemble du parc informatique. Concernant des services tels que celui présenté plus haut, une politique de sécurité globale peut être déployée de la même manière à tout un réseau informatique.
La figure 10 présente un autre mode de réalisation de 5 l'invention. Deux utilisateurs Ul et U2, sur deux postes différents POl et P02, sont identifiés auprès du dispositif D et ont leur propre politique de sécurité. Tout flux de communication provenant du réseau R à destination d'un des postes est filtré avec la politique de sécurité correspondant à 10 l'utilisateur du poste.
Cet exemple ne limite pas la présente invention à deux utilisateurs. La présente invention est capable de protéger autant de postes et/ou d'utilisateurs que souhaité, et cela, si souhaité, avec des politiques de sécurité PS différentes pour 15 chacun d'eux.
Afin d'optimiser l'exécution des agents exécutables A2 sur les paquets, un cache de paquets permet de n'envoyer aux agents exécutables A2 qu'une seule version d'un même paquet et donc de leur présenter un flux cohérent. Le cache de paquets 20 permet de prendre en charge les paquets déjà reçus afin de ne pas perturber les algorithmes des agents qui ne s'attendent pas à recevoir une nouvelle fois un paquet déjà traité. Ces phénomènes sont connus sous le nom de ré-émission de paquets et sont présents au niveau du protocole TCP.
La figure 11 donne l'automate général d'un cache de paquets. Les éléments suivants constituent cette figure - 15: Non - 16: Oui - 42: Arrivée d'un paquet dans le dispositif 30 - 43: Le paquet a-t-il déjà été reçu ? - 44: Le paquet a-t-il été modifié précédemment par les agents ? - 45: Envoi du paquet modifié sauvegardé - 46: Envoi du paquet; - 47: Traitement par les agents - 48 Le paquet a-t-il été modifié par les agents ? - 49 Mémorise le paquet et les informations qui l'identifient; - 50: Mémorise les informations identifiant le paquet.
Lorsqu'un paquet est reçu (42), le cache de paquet vérifie si le paquet a déjà été reçu précédemment (43). Dans la négative, les agents concernés par le paquet sont appelés (47).
Une fois traitées, les informations permettant d'identifier le paquet (par exemple, son numéro de séquence TCP) sont 10 sauvegardées ((49) ou (50)). Si le paquet a été modifié par les agents, le paquet modifié est sauvegardé avec les informations l'identifiant (49) puis il est envoyé sur le réseau (46). Sinon, il est simplement envoyé sur le réseau (46) après sauvegarde des informations permettant de l'identifier (50). Si le paquet a 15 déjà été reçu (c'est-à-dire si on retrouve les informations l'identifiant dans le cache de paquet), le cache de paquet vérifie si le paquet modifié est sauvegardé (44), auquel cas le paquet modifié est envoyé sur le réseau sans exécution des agents (45). Sinon, le paquet déjà reçu est directement envoyé 20 sur le réseau sans exécution des agents (46). On garantit ainsi aux agents qu'ils ne recevront pas une nouvelle fois un paquet qu'ils ont déjà traité.
Illustrons un cas particulier possible un agent chargé de détecter un virus suspecte la présence d'un virus dans 25 un paquet 1, mais nécessite de réaliser une analyse du paquet 2 pour en être convaincu. Si le paquet 1 est reçu pour la deuxième fois (paquet 1 bis), l'agent réalisera le traitement du paquet 2 sur ce paquet 1 bis, ce qui faussera l'analyse. Le cache de paquet permet de renvoyer directement la bonne version du paquet 30 1 sans exécuter les agents. Deux cas se présentent: le paquet 1 a ou n'a pas été modifié par un agent lors de sa première réception. Dans le premier cas, le paquet 1 modifié a été sauvegardé la première fois. C'est la version sauvegardée qui est envoyée sans exécuter les agents. Dans le second cas, le 35 paquet 1 bis est renvoyé directement sans exécution des agents.
Les agents disposent de nombreuses fonctions de traitement des paquets. Mais ils disposent également de fonctions leur permettant de communiquer avec l'ensemble des éléments constitutifs du réseau. Ces fonctions sont 5 indispensables pour mettre en place une sécurité globale du reseau.
La figure 12 en démontre l'intérêt. Considérons un réseau R peu sr, dans lequel évolue un pirate informatique depuis un poste H. Ce pirate élabore une attaque (1) en 10 destination d'un serveur web SW d'une entreprise, ce serveur web étant accessible via un routeur RO. Le serveur web SW est protégé par le dispositif D (mettant en òuvre l'invention).
L'agent A est chargé de sécuriser le serveur web. A la détection de l'attaque (1), l'agent A bloque l'attaque (1) et envoie un 15 ordre (2) de reconfiguration du routeur RO afin de bloquer les communications venant du poste H (par exemple via le protocole SNMP). Il envoie alors un message d'avertissement (3) au serveur de log SL centralisant un journal des évènements (par exemple via le protocole syslog). Le dispositif D est ainsi réactif aux 20 attaques et il peut communiquer aux autres périphériques réseau des informations oeuvrant pour la sécurité du réseau.
La figure 13 présente l'utilisation de fonctions F d'une bibliothèque de fonctions BF contenue le logiciel L, certaines de ces fonctions F pouvant être associées à des 25 composants matériels spécialisés CM présents dans le dispositif D. Le processeur P contenu dans le dispositif D exécute 4 le logiciel L. Le logiciel L fait appel à des fonctions F contenues dans la bibliothèque de fonctions BF. Ces fonctions F peuvent être codées sous la forme d'un logiciel exécuté par le 30 processeur P. Elles peuvent aussi utiliser (52) des composants matériels spécialisés CM qui leur sont associés.
Claims (46)
1. Procédé permettant de réaliser l'analyse et/ou la modification sélective et/ou le filtrage sélectif de paquets de données (PD) traversant un dispositif (D) placé en coupure dans un réseau informatique (R) ; ledit dispositif (D) 5 comprenant un processeur (P) exécutant un compilateur (C) et un logiciel (L) conformément à une politique de sécurité (PS) ; ledit procédé étant caractérisé en ce qu'il comprend les étapes suivantes: l'étape de définir ladite politique de sécurité (PS) 10 au moyen d'agents portables (Al), écrits dans un langage informatique (Li) indépendant du langage dudit processeur (P) et dédiés à l'analyse et/ou à la modification sélective et/ou au filtrage sélectif desdits paquets de données (PD) ; l'étape de démarrer l'exécution dudit compilateur 15 (C) par ledit logiciel (L), pour traduire lesdits agents portables (Ai) en des agents exécutables (A2) écrits dans le langage dudit processeur (P) ; - l'étape d'exécuter ledit logiciel (L) pour filtrer lesdits paquets de données (PD) traversant ledit dispositif (D), 20 en autorisant ou non leur passage, conformément à ladite politique de sécurité (PS) ; - l'étape d'analyser, lesdits paquets de données (PD) autorisés par ledit logiciel (L) à traverser ledit dispositif (D), en exécutant lesdits agents exécutables (A2) par ledit 25 processeur (P) ; et/ou - l'étape de modifier sélectivement, lesdits paquets de données (PD) autorisés par ledit logiciel (L) à traverser ledit dispositif (D), en exécutant lesdits agents exécutables (A2) par ledit processeur (P) ; et/ou - l'étape de filtrer sélectivement, lesdits paquets de données (PD) autorisés par ledit logiciel (L) à traverser ledit dispositif (D), en exécutant lesdits agents exécutables (A2) par ledit processeur (P).
2. Procédé selon la revendication 1, caractérisé en ce que ladite politique de sécurité (PS) comprend en outre une définition des différents objets dudit réseau informatique (R).
3. Procédé selon l'une quelconque des revendications 1 ou 2, caractérisé en ce que ladite politique de sécurité (PS) comprend en outre une définition des différents services dudit réseau informatique (R).
4. Procédé selon l'une quelconque des revendications 1 à 3, caractérisé en ce que ladite politique de 10 sécurité (PS) comprend en outre une définition des différents utilisateurs (Ui) dudit réseau informatique (R).
5. Procédé selon la revendication 4, caractérisé en ce qu'il comprend en outre l'étape de générer des paramètres de configuration permettant de configurer lesdits agents portables 15 (Ai) en fonction desdits utilisateurs (Ui) dudit réseau informatique (R).
6. Procédé selon l'une quelconque des revendications 1 à 5, caractérisé en ce que ladite politique de sécurité (PS) comprend en outre une définition dudit dispositif 20 (D).
7. Procédé selon l'une quelconque des revendications 1 à 6, caractérisé en ce que ledit langage informatique (Li) est un langage de bas niveau dédié à des traitements sur lesdits paquets de données (PD) dudit réseau 25 informatique (R) et permettant de contrôler et de limiter les actions possibles desdits agents portables (Ai) au sein dudit dispositif (D).
8. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'il comprend en outre 30 l'étape de définir, sur un serveur distant dudit dispositif (D), ladite politique de sécurité (PS).
9. Procédé selon l'une quelconque des revendications 1 à 7, caractérisé en ce qu'il comprend en outre l'étape de définir, sur ledit dispositif (D) , ladite politique 35 de sécurité (PS).
10. Procédé selon l'une quelconque des revendications 1 à 9, caractérisé en ce qu'il comprend en outre l'étape d'authentifier le ou les utilisateurs (Ui), non authentifiés, dudit dispositif (D).
11. Procédé selon la revendication 10, caractérisé en ce que ladite politique de sécurité (PS) comprend en outre une définition desdits utilisateurs (Ui) authentifiés dudit dispositif (D).
12. Procédé selon la revendication 11, caractérisé 10 en ce qu'il comprend en outre l'étape d'authentifier ledit ou lesdits utilisateurs (Ui), non authentifiés, dudit dispositif (D) à l'aide d'un moyen d'identification associé audit dispositif (D).
13. Procédé selon la revendication 11, caractérisé 15 en ce qu'il comprend en outre l'étape d'authentifier ledit ou lesdits utilisateurs (Ui), non authentifiés, dudit dispositif (D) à l'aide d'une application client/serveur dont l'application serveur est contenue dans ledit dispositif (D).
14. Procédé selon l'une quelconque des revendications 1 à 13, caractérisé en ce qu'il comprend en outre l'étape d'exécuter des fonctions (F) d'une bibliothèque de fonctions (BF) contenue dans ledit logiciel (L) et appelée par lesdits agents exécutables (A2).
15. Procédé selon la revendication 14 caractérisé, 25 en ce qu'il comprend en outre l'étape d'exécuter des fonctions (F), de ladite bibliothèque de fonctions (BF), spécialisées dans une gestion d'un cache desdits paquets de données (PD).
16. Procédé selon la revendication 15, caractérisé en ce que la gestion dudit cache desdits paquets de données (PD) 30 comprend les étapes suivantes: - l'étape, après exécution desdits agents exécutables (A2), de mémoriser, dans ledit cache, des informations de paquets concernant lesdits paquets de données (PD) et en outre lesdits paquets de données (PD) eux-mêmes lorsqu'ils ont été 35 modifiés lors de ladite exécution; l'étape, lors de l'arrivée d'un paquet entrant dans ledit dispositif (D) , de vérifier, grâce audites informations de paquets enregistrées dans ledit cache, si ledit paquet entrant est un paquet déjà reçu; - l'étape, lorsque ledit paquet entrant n'est pas un paquet déjà reçu, d'exécuter lesdits agents exécutables (A2) ; - l'étape, lorsque ledit paquet entrant est un paquet déjà reçu, de déterminer, grâce audites informations de paquets mémorisées dans ledit cache, si ledit paquet déjà reçu avait été 10 modifié par lesdits agents exécutables (A2) ; - l'étape, lorsque ledit paquet déjà reçu avait été modifié par lesdits agents exécutables (A2), de transmettre vers ledit réseau informatique (R) , sans exécuter lesdits agents exécutables (A2), une version dudit paquet déjà reçu mémorisée 15 dans ledit cache; - l'étape, lorsque ledit paquet déjà reçu n'avait pas été modifié par lesdits agents exécutables (A2), de transmettre vers ledit réseau informatique (R) ledit paquet entrant tel quel, sans exécuter lesdits agents exécutables (A2).
17. Procédé selon l'une quelconque des revendications 14 à 16, caractérisé en ce qu'il comprend en outre l'étape d'exécuter des fonctions (F), de ladite bibliothèque de fonctions (BF), spécialisées dans une gestion des couches réseau et transport du protocole de communication 25 utilisé.
18. Procédé selon la revendication 17 caractérisé en ce que la gestion desdites couches réseau et transport comprend en outre les étapes suivantes: - l'étape de mémoriser des informations de protocole 30 desdites couches réseau et transport desdits paquets de données (PD) traversant ledit dispositif (D) afin de réaliser un suivi des différents flux desdits paquets de données (PD) ; - l'étape de mémoriser des modifications desdits paquets de données (PD) réalisées par lesdits agents exécutables 35 (A2) ; - l'étape de mettre à jour lesdites informations de protocole desdites couches réseau et transport desdits paquets de données (PD) traversant ledit dispositif (D), en fonction desdites informations de protocole et desdites modifications 5 mémorisées, sur lesdits paquets de données (PD) afin de conserver une cohérence des flux desdits paquets de données (PD).
19. Procédé selon l'une quelconque des revendications 14 à 18 caractérisé en ce qu'il comprend en 10 outre l'étape d'exécuter des fonctions (F), de ladite bibliothèque de fonctions (BF), spécialisées dans une recherche de motifs et d'expressions régulières.
20. Procédé selon l'une quelconque des revendications 14 à 19 caractérisé en ce qu'il comprend en 15 outre l'étape d'exécuter des fonctions (F), de ladite bibliothèque de fonctions (BF), spécialisées dans une communication entre lesdits agents exécutables (A2).
21. Procédé selon l'une quelconque des revendications 14 à 20 caractérisé en ce qu'il comprend en 20 outre l'étape d'exécuter des fonctions (F), de ladite bibliothèque de fonctions (BF), spécialisées dans une communication entre lesdits agents exécutables (A2) et desdits objets dudit réseau informatique (R).
22. Procédé selon l'une quelconque des 25 revendications 14 à 21 caractérisé en ce qu'il comprend en outre l'étape d'associer des composants matériels spécialisés (CM) dudit dispositif (D) à des fonctions (F) de ladite bibliothèque de fonctions (BF) afin d'accélérer l'exécution desdites fonctions (F).
23. Procédé selon l'une quelconque des revendications 1 à 22 caractérisé en ce qu'il comprend en outre l'étape de modifier ladite politique de sécurité (PS) en exécutant lesdits agents exécutables (A2) par ledit processeur (P).
24. Système permettant de réaliser l'analyse et/ou la modification sélective et/ou le filtrage sélectif de paquets de données (PD) ; ledit système comprenant: - un dispositif (D) traversé par lesdits paquets de 5 données (PD) et placé en coupure dans un réseau informatique (R), ledit dispositif (D) comprenant un processeur (P) exécutant un compilateur (C) et un logiciel (L) conformément à une politique de sécurité (PS) et; - des agents portables (Ai), destinés à définir ladite 10 politique de sécurité (PS), écrits dans un langage informatique (Li) indépendant du langage dudit processeur (P) et dédiés à l'analyse et/ou la modification sélective et/ou le filtrage sélectif desdits paquets de données (PD) ; ledit compilateur (C) étant activé par ledit logiciel (L) pour traduire lesdits agents portables (Al) en des agents exécutables (A2) écrits dans le langage dudit processeur (P) ; ledit logiciel (L) comprenant des moyens de filtrage pour filtrer lesdits paquets de données (PD) traversant ledit dispositif (D), en autorisant ou non leur passage, conformément 20 à ladite politique de sécurité (PS) ; lesdits agents exécutables (A2) étant exécutés par ledit processeur (P) pour: - analyser lesdits paquets de données (PD) autorisés par ledit logiciel (L) à traverser ledit dispositif (D), et/ou - modifier sélectivement lesdits paquets de données (PD) autorisés par ledit logiciel (L) à traverser ledit dispositif (D), et/ou filtrer sélectivement lesdits paquets de données (PD) autorisés par ledit logiciel (L) à traverser ledit 30 dispositif (D).
25. Système selon la revendication 24; ledit système étant tel que ladite politique de sécurité (PS) comprend en outre une définition des différents objets dudit réseau informatique (R).
26. Système selon l'une quelconque des revendications 24 ou 25; ledit système étant tel que ladite politique de sécurité (PS) comprend en outre une définition des différents services dudit réseau informatique (R).
27. Système selon l'une quelconque des revendications 24 à 26; ledit système étant tel que ladite politique de sécurité (PS) comprend en outre une définition des différents utilisateurs (Ui) dudit réseau informatique 10 (R).
28. Système selon la revendication 27 caractérisé en ce qu'il comprend en outre des moyens de génération de paramètres de configuration pour configurer lesdits agents portables (Al), en fonction desdits 15 utilisateurs (Ui) dudit réseau informatique (R).
29. Système selon l'une quelconque des revendications 24 à 28; ledit système étant tel que ladite politique de sécurité (PS) comprend en outre une définition dudit dispositif (D).
30. Système selon l'une quelconque des revendications 24 à 29; ledit système étant tel que ledit langage informatique (Li) est un langage de bas niveau dédié à des traitements sur lesdits paquets de données (PD) dudit réseau informatique (R) et permettant de contrôler et 25 de limiter les actions possibles desdits agents portables (Al) au sein dudit dispositif (D).
31. Système selon l'une quelconque des revendications 24 à 30 caractérisé en ce qu'il comprend un serveur distant dudit dispositif (D) pour définir ladite 30 politique de sécurité (PS).
32. Système selon l'une quelconque des revendications 24 à 30; ledit système étant tel que ledit dispositif comprend des moyens d'administration pour définir ladite politique de sécurité (PS).
33. Système selon l'une quelconque des revendications 24 à 32 caractérisé en ce qu'il comprend des moyens d'authentification du ou des utilisateurs (Ui), non authentifiés, dudit dispositif (D).
34. Système selon la revendication 33; ledit système étant tel que ladite politique de sécurité (PS) comprend en outre une définition desdits utilisateurs (Ui) authentifiés dudit dispositif (D).
35. Système selon la revendication 34 10 caractérisé en ce que ledit dispositif (D) comprend un moyen d'identification pour authentifier ledit ou lesdits utilisateurs (Ui), non authentifiés, dudit dispositif (D).
36. Système selon la revendication 34 caractérisé en ce que ledit dispositif (D) comprend une 15 application serveur d'une application client/serveur destinée à authentifier ledit ou lesdits utilisateurs (Ui), non authentifiés, dudit dispositif (D).
37. Système selon l'une quelconque des revendications 24 à 36 caractérisé en ce que ledit logiciel 20 comprend une bibliothèque de fonctions (BF) dont les fonctions (F) sont appelées par lesdits agents exécutables (A2).
38. Système selon la revendication 37; ledit système étant tel que ladite bibliothèque de fonctions (BF) 25 comprend en outre des fonctions (F) spécialisées dans une gestion d'un cache desdits paquets de données (PD).
39. Système selon la revendication 38 caractérisé en ce que ledit cache desdits paquets de données (PD) comprend: - une mémoire pour stocker, après exécution desdits agents exécutables (A2), des informations de paquets concernant lesdits paquets de données (PD) et pour stocker lesdits paquets de données (PD) eux-mêmes; - des moyens de contrôle pour vérifier, grâce 35 audites informations de paquets mémorisées dans ledit cache, si un paquet entrant est un paquet déjà reçu et s'il avait été modifié par lesdits agents exécutables (A2) ; - des moyens d'activation pour activer, en fonction des vérifications opérées par les moyens de contrôles, * soit des moyens de transmission pour transmettre vers ledit réseau informatique (R) sans modification un paquet de données (PD) stocké dans ladite mémoire; * soit des moyens de transmission pour transmettre vers ledit réseau informatique (R) sans modification un paquet entrant.
40. Système selon l'une quelconque des revendications 37 à 39; ledit système étant tel que ladite 15 bibliothèque de fonctions (BF) comprend en outre des fonctions (F) spécialisées dans une gestion des couches réseau et transport du protocole de communication utilisé.
41. Système selon la revendication 40; ledit système étant tel que ledit dispositif (D) comprend 20 - au moins une mémoire * pour stocker des informations de protocole desdites couches réseau et transport desdits paquets de données (PD) traversant ledit dispositif (D) afin de réaliser un suivi des différents flux desdits paquets de 25 données (PD), * pour stocker des modifications desdits paquets de données (PD) réalisées par lesdits agents exécutables (A2) ; - des moyens de mise à jour desdites informations 30 de protocole desdites couches réseau et transport desdits paquets de données (PD) traversant ledit dispositif (D), en fonction desdites informations de protocole et desdites modifications mémorisées, sur lesdits paquets de données (PD) afin de conserver une cohérence des flux desdits 35 paquets de données (PD).
42. Système selon l'une quelconque des revendications 37 à 41; ledit système étant tel que ladite bibliothèque de fonctions (BF) comprend en outre des fonctions (F) spécialisées dans une recherche de motifs et d'expressions régulières.
43. Système selon l'une quelconque des revendications 37 à 42; ledit système étant tel que ladite bibliothèque de fonctions (BF) comprend en outre des fonctions (F) spécialisées dans une communication entre lesdits agents 10 exécutables (A2).
44. Système selon l'une quelconque des revendications 37 à 43; ledit système étant tel que ladite bibliothèque de fonctions (BF) comprend des fonctions (F) spécialisées dans une communication entre lesdits agents 15 exécutables (A2) et desdits objets dudit réseau informatique (R).
45. Système selon l'une quelconque des revendications 37 à 44 caractérisé en ce que ledit dispositif (D) comprend des composants matériels spécialisés (CM) associés 20 à des fonctions (F) de ladite bibliothèque de fonctions (BF) afin d'accélérer l'exécution desdites fonctions (F).
46. Système selon l'une quelconque des revendications 24 à 45; ledit système étant tel que lesdits agents exécutables (A2), exécutés par ledit processeur (P), 25 modifient ladite politique de sécurité (PS).
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0300719A FR2850503B1 (fr) | 2003-01-23 | 2003-01-23 | Procede et systeme dynamique de securisation d'un reseau de communication au moyen d'agents portables |
US10/541,805 US20060101511A1 (en) | 2003-01-23 | 2004-01-08 | Dynamic system and method for securing a communication network using portable agents |
EP04700719A EP1590938A2 (fr) | 2003-01-23 | 2004-01-08 | Procede et systeme dynamique de securisation d un reseau de communication au moyen d agents portables |
PCT/FR2004/050009 WO2004068817A2 (fr) | 2003-01-23 | 2004-01-08 | Procede et systeme dynamique de securisation d'un reseau de communication au moyen d'agents portables |
CA002513664A CA2513664A1 (fr) | 2003-01-23 | 2004-01-08 | Procede et systeme dynamique de securisation d'un reseau de communication au moyen d'agents portables |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR0300719A FR2850503B1 (fr) | 2003-01-23 | 2003-01-23 | Procede et systeme dynamique de securisation d'un reseau de communication au moyen d'agents portables |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2850503A1 true FR2850503A1 (fr) | 2004-07-30 |
FR2850503B1 FR2850503B1 (fr) | 2005-04-08 |
Family
ID=32669160
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR0300719A Expired - Fee Related FR2850503B1 (fr) | 2003-01-23 | 2003-01-23 | Procede et systeme dynamique de securisation d'un reseau de communication au moyen d'agents portables |
Country Status (5)
Country | Link |
---|---|
US (1) | US20060101511A1 (fr) |
EP (1) | EP1590938A2 (fr) |
CA (1) | CA2513664A1 (fr) |
FR (1) | FR2850503B1 (fr) |
WO (1) | WO2004068817A2 (fr) |
Families Citing this family (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8286237B2 (en) * | 2003-02-25 | 2012-10-09 | Ibm International Group B.V. | Method and apparatus to detect unauthorized information disclosure via content anomaly detection |
US8880893B2 (en) * | 2003-09-26 | 2014-11-04 | Ibm International Group B.V. | Enterprise information asset protection through insider attack specification, monitoring and mitigation |
JP4164036B2 (ja) * | 2004-02-05 | 2008-10-08 | トレンドマイクロ株式会社 | ネットワークを介して提供されるプログラムに対する受信装置上でのセキュリティの確保 |
US7490350B1 (en) | 2004-03-12 | 2009-02-10 | Sca Technica, Inc. | Achieving high assurance connectivity on computing devices and defeating blended hacking attacks |
US7840763B2 (en) | 2004-03-12 | 2010-11-23 | Sca Technica, Inc. | Methods and systems for achieving high assurance computing using low assurance operating systems and processes |
US7873608B2 (en) * | 2005-05-25 | 2011-01-18 | Hewlett-Packard Development Company, L.P. | Pattern matching algorithm to determine valid syslog messages |
US20060288418A1 (en) * | 2005-06-15 | 2006-12-21 | Tzu-Jian Yang | Computer-implemented method with real-time response mechanism for detecting viruses in data transfer on a stream basis |
US20070150934A1 (en) * | 2005-12-22 | 2007-06-28 | Nortel Networks Ltd. | Dynamic Network Identity and Policy management |
US8176525B2 (en) * | 2006-09-29 | 2012-05-08 | Rockstar Bidco, L.P. | Method and system for trusted contextual communications |
US7853998B2 (en) * | 2007-03-22 | 2010-12-14 | Mocana Corporation | Firewall propagation |
US8291495B1 (en) * | 2007-08-08 | 2012-10-16 | Juniper Networks, Inc. | Identifying applications for intrusion detection systems |
US8112800B1 (en) | 2007-11-08 | 2012-02-07 | Juniper Networks, Inc. | Multi-layered application classification and decoding |
US8572717B2 (en) * | 2008-10-09 | 2013-10-29 | Juniper Networks, Inc. | Dynamic access control policy with port restrictions for a network security appliance |
US9398043B1 (en) | 2009-03-24 | 2016-07-19 | Juniper Networks, Inc. | Applying fine-grain policy action to encapsulated network attacks |
US20110035804A1 (en) * | 2009-04-07 | 2011-02-10 | Pratyush Moghe | Appliance-based parallelized analytics of data auditing events |
US8509071B1 (en) | 2010-10-06 | 2013-08-13 | Juniper Networks, Inc. | Multi-dimensional traffic management |
WO2012161707A1 (fr) * | 2011-05-25 | 2012-11-29 | Hewlett-Packard Development Company, L.P. | Mise en œuvre de composants de dispositif en réseau dans des dispositifs en réseau |
US8898784B1 (en) * | 2013-05-29 | 2014-11-25 | The United States of America, as represented by the Director, National Security Agency | Device for and method of computer intrusion anticipation, detection, and remediation |
US10075416B2 (en) | 2015-12-30 | 2018-09-11 | Juniper Networks, Inc. | Network session data sharing |
FR3131154A1 (fr) * | 2021-12-17 | 2023-06-23 | Thales | Procede de configuration d un systeme de detection d intrusion dans un reseau de communication, procede de detection, arcitecture et ensemble associes. |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5151899A (en) * | 1991-02-11 | 1992-09-29 | Digital Equipment Corporation | Tracking sequence numbers in packet data communication system |
US5835726A (en) * | 1993-12-15 | 1998-11-10 | Check Point Software Technologies Ltd. | System for securing the flow of and selectively modifying packets in a computer network |
WO2001022686A1 (fr) * | 1999-09-21 | 2001-03-29 | Infineon Technologies North America Corp. | Traitement des donnees pi base sur des regles |
US6219706B1 (en) * | 1998-10-16 | 2001-04-17 | Cisco Technology, Inc. | Access control for networks |
WO2002078240A2 (fr) * | 2001-03-23 | 2002-10-03 | Securify, Inc. | Systeme et procede de conception d'un atelier de developpeur de politique de securite |
WO2002101968A2 (fr) * | 2001-06-11 | 2002-12-19 | Bluefire Security Technology | Systeme et procedes de filtrage de paquets |
Family Cites Families (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6170012B1 (en) * | 1997-09-12 | 2001-01-02 | Lucent Technologies Inc. | Methods and apparatus for a computer network firewall with cache query processing |
US6400707B1 (en) * | 1998-08-27 | 2002-06-04 | Bell Atlantic Network Services, Inc. | Real time firewall security |
US6158010A (en) * | 1998-10-28 | 2000-12-05 | Crosslogix, Inc. | System and method for maintaining security in a distributed computer network |
CA2296989C (fr) * | 1999-01-29 | 2005-10-25 | Lucent Technologies Inc. | Methode et dispositif de gestion d'un coupe-feu |
US7051365B1 (en) * | 1999-06-30 | 2006-05-23 | At&T Corp. | Method and apparatus for a distributed firewall |
US6779120B1 (en) * | 2000-01-07 | 2004-08-17 | Securify, Inc. | Declarative language for specifying a security policy |
US7143439B2 (en) * | 2000-01-07 | 2006-11-28 | Security, Inc. | Efficient evaluation of rules |
US6798777B1 (en) * | 2000-04-17 | 2004-09-28 | Juniper Networks, Inc. | Filtering and route lookup in a switching device |
US7257833B1 (en) * | 2001-01-17 | 2007-08-14 | Ipolicy Networks, Inc. | Architecture for an integrated policy enforcement system |
US6845452B1 (en) * | 2002-03-12 | 2005-01-18 | Reactivity, Inc. | Providing security for external access to a protected computer network |
-
2003
- 2003-01-23 FR FR0300719A patent/FR2850503B1/fr not_active Expired - Fee Related
-
2004
- 2004-01-08 EP EP04700719A patent/EP1590938A2/fr not_active Withdrawn
- 2004-01-08 CA CA002513664A patent/CA2513664A1/fr not_active Abandoned
- 2004-01-08 US US10/541,805 patent/US20060101511A1/en not_active Abandoned
- 2004-01-08 WO PCT/FR2004/050009 patent/WO2004068817A2/fr active Search and Examination
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5151899A (en) * | 1991-02-11 | 1992-09-29 | Digital Equipment Corporation | Tracking sequence numbers in packet data communication system |
US5835726A (en) * | 1993-12-15 | 1998-11-10 | Check Point Software Technologies Ltd. | System for securing the flow of and selectively modifying packets in a computer network |
US6219706B1 (en) * | 1998-10-16 | 2001-04-17 | Cisco Technology, Inc. | Access control for networks |
WO2001022686A1 (fr) * | 1999-09-21 | 2001-03-29 | Infineon Technologies North America Corp. | Traitement des donnees pi base sur des regles |
WO2002078240A2 (fr) * | 2001-03-23 | 2002-10-03 | Securify, Inc. | Systeme et procede de conception d'un atelier de developpeur de politique de securite |
WO2002101968A2 (fr) * | 2001-06-11 | 2002-12-19 | Bluefire Security Technology | Systeme et procedes de filtrage de paquets |
Non-Patent Citations (1)
Title |
---|
HUNT R: "Internet/Intranet firewall security-policy, architecture and transaction services", COMPUTER COMMUNICATIONS, BUTTERWORTHS & CO. PUBLISHERS LTD, GB, vol. 21, no. 13, 1 September 1998 (1998-09-01), pages 1107 - 1123, XP004146571, ISSN: 0140-3664 * |
Also Published As
Publication number | Publication date |
---|---|
WO2004068817A3 (fr) | 2004-09-16 |
FR2850503B1 (fr) | 2005-04-08 |
CA2513664A1 (fr) | 2004-08-12 |
EP1590938A2 (fr) | 2005-11-02 |
US20060101511A1 (en) | 2006-05-11 |
WO2004068817A2 (fr) | 2004-08-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
FR2850503A1 (fr) | Procede et systeme dynamique de securisation d'un reseau de communication au moyen d'agents portables | |
US9838356B2 (en) | Encrypted peer-to-peer detection | |
EP3008872B1 (fr) | Procédé d'authentification d'un terminal par une passerelle d'un réseau interne protégé par une entité de sécurisation des accès | |
US7882555B2 (en) | Application layer security method and system | |
US9167000B2 (en) | Dynamic threat event management system and method | |
AU2002252371B2 (en) | Application layer security method and system | |
US20170126624A1 (en) | Firewall with two-phase filtering | |
EP2692089B1 (fr) | Mécanisme de redirection entrante sur un proxy inverse | |
AU2002252371A1 (en) | Application layer security method and system | |
EP2176767A1 (fr) | Procede et dispositif de protection de donnees et de systeme informatique | |
JP2008011537A (ja) | ネットワークセキュリティデバイスにおけるパケット分類 | |
Repetto et al. | An architecture to manage security operations for digital service chains | |
CA2747375C (fr) | Serveur passerelle a micronoyau | |
Ackerman | Modern Cybersecurity Practices: Exploring and Implementing Agile Cybersecurity Frameworks and Strategies for Your Organization | |
FR3087910A1 (fr) | Dispositif d’enregistrement d’intrusion informatique | |
FR3079642A1 (fr) | Capteur d'intrusion informatique et procede de creation d'un capteur d'intrusion | |
FR2865337A1 (fr) | Systeme et procede de securite pour coupe-feu et produit associe | |
EP1723773A2 (fr) | Procede de traitement d'un flux de donnees traversant un dispositif place en coupure sur un reseau informatique | |
EP3948596A1 (fr) | Procédé d'exécution de code sécurisé, dispositifs, système et programmes correspondants | |
FR2778290A1 (fr) | Procede et dispositif d'interconnexion securisee entre des ordinateurs, organises en reseau, par pilotage d'un module de filtrage residant dans la couche de communication ip | |
FR2971871A1 (fr) | Dispositif electronique anti-intrusion |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |
Effective date: 20081029 |