samedi 12 mars 2011

Les systèmes de détection d'intrusions La Sécurisation d'un réseau informatique(Classification, Utilisation

Objectifs : - Définition de la notion du sécurité.
                  - Classification des systèmes de détection d'intrusions.
                  - Les systèmes de détection d'intrusions.
                  - Utilisation des agents mobiles dans les systèmes de détection d'intrusions.


Les systèmes de détection d'intrusions

1. Introduction


1.1  Pourquoi les systèmes sont-ils vulnérables?

La sécurité est devenue un point crucial des systèmes d'informations. Cependant, les organisations sont peu ou pas protégées contre les attaques sur leur réseau ou les hôtes du réseau. Dorothy  DENNING, après avoir donné des chiffres montrant l'importance du nombre d'attaques dans le monde, nous donne des raisons visant à démontrer la vulnérabilité des systèmes d'informations.

La première raison qui fait que les systèmes sont mal protégés est que la sécurité coûte chère. Les organismes
n'ont pas de budget alloué à ce domaine. Elle souligne également que la sécurité ne peut être sûr à 100%, voire qu'elle est même souvent inefficace. Aurobindo SUNDARAM nous en donne les raisons : les bugs dans les programmes sont courants et seront toujours exploitables par les attaquants. De plus, même la cryptographie a ses faiblesses et les mots de passe, par exemple, peuvent être cassés. Il n'existe pas d'organisation centralisée gérant l'ensemble des clefs et autres éléments de cryptographie. Enfin, même un système fiable peut être attaqué par des personnes abusant de leurs droits légitimes.

Dorothy DENNING ajoute d'autres raisons démontrant les vulnérabilités des systèmes : la politique de sécurité est complexe et est basée sur des jugements humains. On trouve notamment des faiblesses dues à la gestion et à la configuration des systèmes. Il y a aussi en permanence de nouvelles technologies qui émergent, et par là-même, de nouveaux points d'attaques. En dernier point, les organisations acceptent de courir ce risque, la sécurité n'étant pas leur principale priorité.

Pour exploiter ces faiblesses, les attaquants profitent de la négligence des utilisateurs vis-à-vis de leurs droits et autorisations d'accès, en se faisant passer pour un employé du service informatique dans le but d'obtenir des informations. Ils peuvent aussi casser les clefs d'une longueur insuffisante ou les mots de passe par une attaque systématique. Ils peuvent se mettre à l'écoute sur le réseau pour obtenir des informations. Ils peuvent changer leur adresse réseau pour se faire passer pour quelqu'un de confiance. Ils ont la possibilité d'injecter du code comme un virus ou un cheval de Troie sur la cible. Enfin, ils peuvent exploiter les faiblesses des applications, des protocoles ou des systèmes d'exploitation.

1.2  Introduction à la sécurité des systèmes d'informations

Etant donné le nombre de systèmes attaqués ces dernières années et les enjeux financiers qu'ils abritent, les
systèmes d'informations se doivent aujourd'hui d'être protégés contre les anomalies de fonctionnement provenant soit d'une attitude intentionnellement malveillante d'un utilisateur, soit d'une faille rendant le système vulnérable.

Du fait du nombre toujours croissant de personnes ayant accès à ces systèmes par le biais d'Internet, la politique de sécurité se concentre généralement sur ce point d'entrée du réseau interne. La mise en place d'un pare-feu est devenu indispensable afin d'interdire l'accès aux paquets indésirables. On peut, de cette façon, proposer une vision restreinte du réseau interne vu de l'extérieur et filtrer les paquets en fonction de certaines caractéristiques telles qu'une adresse ou un port de communication.

Cependant, ce système de forteresse est insuffisant s'il n'est pas accompagné d'autres protections. Citons la protection physique des informations par des accès contrôlés aux locaux, la protection contre les failles de configuration par des outils d'analyse automatique des vulnérabilités du système, ou encore la protection par des systèmes d'authentification fiables pour que les droits accordés à chacun soient clairement définis et respectés, ceci afin de garantir la confidentialité et l'intégrité des données.

Faire de la sécurité sur des systèmes d'informations consiste à s'assurer que celui qui modifie ou consulte des données du système en a l'autorisation et qu'il peut le faire correctement car le service est disponible.

Même en mettant en place tous ces mécanismes, il reste encore beaucoup de moyens pour contourner ces protections. Pour les compléter, une surveillance permanente ou régulière des systèmes peut être mise en place :

ce sont les systèmes de détection d'intrusions. Ils ont pour but d'analyser tout ou partie des actions effectuées sur le système afin de détecter d'éventuelles anomalies de fonctionnement.

1.3  L'audit de sécurité

L'audit de sécurité permet d'enregistrer tout ou partie des actions effectuées sur le système. L'analyse de ses informations permet de détecter d'éventuelles intrusions. Les systèmes d'exploitation disposent généralement de systèmes d'audit intégrés, certaines applications aussi. Les différents évènements des systèmes sont enregistrés dans un journal d'audit qui devra être analysé fréquemment, voire en permanence. Sur les réseaux, il est indispensable de disposer d'une base de temps commune pour estampiller les évènements.

Voici les types d'informations à collecter sur les systèmes pour permettre la détection d'intrusions. On y trouve les informations sur les accès au système (qui y a accédé, quand et comment), les informations sur l'usage fait du système (utilisation du processeur, de la mémoire ou des entrées/sorties) et les informations sur l'usage fait des fichiers. 

L'audit doit également permettre d'obtenir des informations relatives à chaque application (le lancement ou l'arrêt des différents modules, les variables d'entrée et de sortie et les différentes commandes exécutées). Les informations sur les violations éventuelles de la sécurité (tentatives de commandes non autorisées) ainsi que les informations statistiques sur le système seront elles aussi nécessaires.

Notons que ces nombreuses informations occupent beaucoup de place et sont très longues à analyser. Ces informations devront être, au moins pour un temps, stockées quelque part avant d'être analysées par le système de détection d'intrusions.
 
 2  Classification des systèmes de détection d'intrusions

Pour classer les systèmes de détection d'intrusions, on peut se baser sur plusieurs variables. La principale différence retenue est l'approche utilisée, qui peut être soit comportementale, soit par scénarios. Nous verrons
ensuite d'autres paramètres permettant de classer les différents systèmes de détection d'intrusions.

2.1  Approche comportementale et approche par scénarios

Dans les traces d'audit, on peut chercher deux choses différentes. La première correspond à l'approche comportementale, c'est-à-dire qu'on va chercher à savoir si un utilisateur a eu un comportement déviant par rapport à ses habitudes. Ceci signifierait qu'il essaye d'effectuer des opérations qu'il n'a pas l'habitude de faire. On peut en déduire, soit que c'est quelqu'un d'autre qui a pris sa place, soit que lui même essaye d'attaquer le système en abusant de ses droits. Dans les deux cas, il y a intrusion.

La deuxième chose que l'on peut chercher dans les traces d'audit est une signature d'attaque. Cela correspond à l'approche par scénarios. Les attaques connues sont répertoriées et les actions indispensables de cette attaque forment sa signature. On compare ensuite les actions effectuées sur le système avec ces signatures d'attaques.

Si on retrouve une signature d'attaque dans les actions d'un utilisateur, on peut en déduire qu'il tente d'attaquer le système par cette méthode.

Plusieurs méthodes différentes peuvent être mises en œuvre pour détecter le comportement déviant d'un individu par rapport à un comportement antérieur considéré comme normal par le système. La méthode statistique se base sur un profil du comportement normal de l'utilisateur au vu de plusieurs variables aléatoires. Lors de l'analyse, on calcule un taux de déviation entre le comportement courant et le comportement passé. Si ce taux dépasse un certain seuil, le système déclare qu'il est attaqué. Les systèmes experts, eux, visent à représenter le profil d'un individu par une base de règles créée en fonction de ses précédentes activités et recherchent un comportement déviant par rapport à ces règles. 

Une autre méthode consiste à prédire la prochaine commande de l'utilisateur avec une certaine probabilité. Notons également l'utilisation des réseaux de neurones pour apprendre les comportements normaux des utilisateurs ou encore l'utilisation de la méthode dite "d'immunologie" se basant sur le comportement normal du système et non des utilisateurs.

De même que pour l'approche comportementale, plusieurs méthodes peuvent être utilisées pour gérer les signatures d'attaques. Les systèmes experts les représentent sous forme de règles. La méthode dite du "Pattern Matching" (reconnaissance de forme) représente les signatures d'attaques comme des suites de lettres d'un alphabet, chaque lettre correspondant à un évènement. Les algorithmes génétiques sont également utilisés pour analyser efficacement les traces d'audit. Les signatures d'attaques peuvent être également vues comme une séquence de changements d'états du système. La simple analyse de séquences de commandes a été rapidement abandonnée car elle ne permettait pas la détection d'attaques complexes. Pour l'approche par scénarios, le poids donné à chaque entité (audit, base de signatures d'attaques et mécanisme d'analyse) et la façon dont elles sont mises en relation est décisif pour obtenir un système de détection efficace.

Chacune des deux approches a ses avantages et ses inconvénients, et les systèmes de détection d'intrusions implémentent généralement ces deux aspects. Avec l'approche comportementale, on a la possibilité de détecter une intrusion par une attaque inconnue jusqu'alors. Par contre, le choix des paramètres est délicat, ce système de mesures n'est pas prouvé exact, et on obtient beaucoup de faux positifs, c'est-à-dire que le système croit être attaqué alors qu'il ne l'est pas. Qui plus est, un utilisateur peut apprendre à la machine le comportement qu'il souhaite, notamment un comportement totalement anarchique ou encore changer lentement de comportement.

Avec l'approche par scénarios, on peut prendre en compte les comportements exacts des attaquants potentiels.

Les inconvénients sont dans la base de règles qui doit être bien construite et les performances qui sont limitées
par l'esprit humain qui les a conçues. Notons également que l'approche par scénarios ne permet évidemment pas de détecter une attaque inconnue jusque là.

2.2  Autres méthodes de classification des systèmes de détection d'intrusions

Si la classification la plus utilisée est celle de l'approche comportementale et de l'approche par scénarios, il est possible de classer les systèmes de détection d'intrusions en fonction d'autres paramètres :

On peut classer les systèmes en fonction de la réponse qu'il apporte à l'intrusion qu'ils ont détectée. Certains systèmes se contentent d'émettre une alarme à l'administrateur (réponse passive) tandis que d'autres essayent de contrer l'attaque en cours (réponse active). Il y a pour l'instant deux principaux mécanismes de réponse implémentés : les alarmes qui permettent de prévenir rapidement l'administrateur et le filtrage des paquets venant de l'attaquant.

Les systèmes peuvent être classés en fonction de la provenance de leurs données d'audit, selon qu'elles viennent du système, des applications ou des paquets du réseau.

Certains systèmes surveillent en permanence le système d'informations tandis que d'autres se contentent d'une analyse périodique.

On peut très bien envisager de se baser sur d'autres paramètres comme le délai de détection, c'est-à-dire si le système détecte les intrusions en temps réel ou non, sa capacité de traiter les données de façon distribuée, sa capacité à répondre aux attaques sur lui-même ou encore son degré d'interopérabilité avec d'autres systèmes de détection d'intrusions.
 
 3  Les systèmes de détection d'intrusions actuels

3.1  Modèle de base d'un système de détection d'intrusions

Le premier système de détection d'intrusions a été proposé en 1980 par James  ANDERSON. Il en existe maintenant beaucoup d'autres, commerciaux ou non. La majorité de ses systèmes se basent sur les deux approches, comportementale et par scénarios.

Stefan  AXELSSON donne un modèle d'architecture de base pour un système de détection d'intrusions. Du système surveillé, un module s'occupe de la collecte d'informations d'audit, ces données étant stockées quelque part. Le module de traitement des données interagit avec ces données de l'audit et les données en cours de traitement, ainsi qu'avec les données de référence (signatures, profils) et de configuration entrées par l'administrateur du système de sécurité. En cas de détection, le module de traitement remonte une alarme vers
l'administrateur du système de sécurité ou vers un module. Une réponse sera ensuite apportée sur le système surveillé par l'entité alertée.

Les imperfections de ce type de systèmes monolithiques et même des systèmes de détection d'intrusions en général sont à prendre en compte. Stefano Martino souligne que si un certain nombre de techniques ont été développées jusque là pour les systèmes de détection d'intrusions, la plupart analysent des évènements au niveau local et se contentent de remonter une alarme sans agir. Ils détectent de plus les activités dangereuses d'un utilisateur sans se préoccuper du code dangereux.

3.2  Imperfections dans les implémentations actuelles

Dans la plupart des cas, les systèmes de détection d'intrusions sont faits d'un seul bloc ou module qui se charge de toute l'analyse. Ce système monolithique demande qu'on lui fournisse beaucoup de données d'audit, ce qui utilise beaucoup de ressources de la machine surveillée. L'aspect monolithique pose également des problèmes de mises à jour et constitue un point d'attaque unique pour ceux qui veulent s'introduire dans le système d'informations.

D'autres imperfections plus générales sont relevables dans les systèmes de détection d'intrusions actuels :

- Même en implémentant les deux types d'approches, certaines attaques sont indécelables et les systèmes de détection sont eux-mêmes attaquables. Les approches comportementale et par scénarios ont elles-mêmes leurs limites.

- Les groupes de travail sur ce sujet sont relativement fermés et il n'y a pas de méthodologie générique de construction. Aucun standard n'a pour l'instant vu le jour dans ce domaine. Des groupes y travaillent, notamment au sein de la DARPA et de l'IETF.

- Les mises à jour de profils, de signatures d'attaques ou de façon de spécifier des règles sont généralement difficiles. De plus, les systèmes de détection d'intrusions demande de plus en plus de compétence à celui qui administre le système de sécurité.

- Les systèmes de détection sont généralement écrits pour un seul environnement et ne s'adapte pas au système surveillé alors que les systèmes d'informations sont, la plupart du temps, hétérogènes et utilisés de plusieurs façons différentes.

- Aucune donnée n'a été pour l'instant publiée pour quantifier la performance d'un système de détection d'intrusions. De plus, pour tester ces systèmes, les attaques sont de plus en plus difficiles à simuler.

De ces imperfections, on a tenté de répondre à la question "Quelles sont les obligations d'un système de détection d'intrusions?" et on en a déduit des conditions indispensables pour un bon fonctionnement de ces systèmes.

3.3  Conditions de fonctionnement des systèmes de détection d'intrusions

Stefano  MARTINO souligne qu'un système de détection d'intrusions vise à augmenter la fiabilité d'un réseau et en devient donc un composant critique. Un système de détection d'intrusions, quelque soit son architecture, doit :

  • tourner en permanence sans superviseur humain.
  • être tolérant aux fautes et résister aux attaques.
  • utiliser un minimum de ressources du système surveillé.
  • détecter les déviations par rapport à un comportement normal.
  • être facilement adaptable à un réseau spécifique.
  • s'adapter aux changements avec le temps.
  • être difficile à tromper.

Les conditions à appliquer aux systèmes de détection d'intrusions peuvent être classées en deux parties : les conditions fonctionnelles, c'est-à-dire ce que le système de détection se doit de faire, et les conditions de performances, c'est-à-dire comment il se doit de le faire.

Un système de détection d'intrusions se doit évidemment de faire une surveillance permanente et d'émettre une alarme en cas de détection. Il doit de fournir suffisamment d'informations pour réparer le système et de déterminer l'étendu des dommages et la responsabilité de l'intrus. Il doit être modulable et configurable pour s'adapter aux plates-formes et aux architectures réseaux. Il doit pouvoir assurer sa propre défense, comme supporter que tout ou partie du système soit hors-service. La détection d'anomalies doit avoir un faible taux de faux positifs. Le système de détection doit tirer les leçons de son expérience et être fréquemment mis à jour avec de nouvelles signatures d'attaques. 
De plus, il doit pouvoir gérer les informations apportées par chacune des différentes machines et discuter avec chacune d'entre elles. En cas d'attaques, il doit être capable d'apporter une réponse automatique, même aux attaques coordonnées ou distribuées. Ensuite, le système de détection devra également pouvoir travailler avec d'autres outils, et notamment ceux de diagnostic de sécurité du système. Il faudra, lors d'une attaque, retrouver les premiers évènements de corruption pour réparer correctement le système d'informations. Enfin, il va de soi qu'il ne doit pas créer de vulnérabilités supplémentaires et qu'il doit aussi surveiller l'administrateur système.

Les évènements anormaux ou les brèches dans la sécurité doivent être rapportés en temps réel pour minimiser les dégâts. Le système de détection d'intrusions ne devra pas donner un lourd fardeau au matériel surveillé, ni interférer avec les opérations qu'il traite. Il doit pouvoir s'adapter à la taille du réseau qu'il surveille.

Pour pallier à un certain nombre de ses problèmes et remplir ses conditions, la technologie des agents mobiles a été appliquée aux systèmes de détection d'intrusions. Le paragraphe suivant explique le principe, les avantages et les inconvénients des agents mobiles.
 
 4  Utilisation des agents mobiles dans les systèmes de détection d'intrusions

Une alternative à l'utilisation d'un module monolithique pour la détection d'intrusions est la mise en œuvre de processus indépendants.

4.1  Qu'est-ce qu'un agent mobile ?

Un agent mobile est un programme autonome qui peut se déplacer de son propre chef, de machine en machine sur un réseau hétérogène dans le but de détecter et combattre les intrusions. Cet agent mobile doit être capable de s'adapter à son environnement, de communiquer avec d'autres agents, de se déplacer et de se protéger. Pour ce dernier point, une des fonctions de l'agent doit être l'identification et l'authentification pour donner l'emplacement et l'identité de celui qui l'a lancé.

Ainsi, Chaque agent est un programme léger, insuffisant pour faire un système de détection d'intrusions entier car il n'a qu'une vision restreinte du système. Si plusieurs agents coopèrent, un système de détection plus complet peut être construit, permettant l'ajout et le retrait d'agents sans reconstruire l'ensemble du système.

La première caractéristique dont ont peut tirer des avantages est la mobilité des agents. Le fait qu'il n'y ait pas de programme principal qui se sert des autres modules comme esclaves mais plutôt la présence de plusieurs entités intelligentes qui collaborent, fait que si une des entités s'arrête, le système continue de fonctionner.

4.2  Avantages et inconvénients des agents mobiles

Si les agents n'apportent pas fondamentalement de nouvelles capacités, ils apportent néanmoins des réponses
aux imperfections soulignées précédemment. Stefano  MARTINO fait d'ailleurs une analogie entre le système
immunitaire humain et cette approche : chaque cellule ou agent doit combattre les intrus avant que ça ne deviennent une menace pour le système.

Quatre classes peuvent être faites pour caractériser ces avantages :



La flexibilité : on a la possibilité d'adapter le nombre d'agents à la taille du système d'informations ainsi que d'avoir des agents entraînés en fonction du système surveillé.

L'efficacité : les agents affectent moins les performances de chaque machine puisqu'ils peuvent travailler sur les ressources ayant uniquement rapport avec leur champ de vision. Le gain au niveau de l'échange d'informations, sur le réseau notamment, est loin d'être négligeable.

La fiabilité : c'est la tolérance aux fautes. Si un agent est hors-service, il reste d'autres agents qui peuvent se reproduire. Le système de défense n'est pas annihilé par la compromission d'un seul agent, un agent corrompu ne donnant pas une image fausse de l'ensemble du système aux autres agents.

La portabilité : les agents supportent plus facilement les systèmes distribués, et donc à la fois l'aspect hôte et l'aspect réseau. Notons par exemple que ce système permet de détecter les attaques distribuées, c'est-à-dire dues aux attaques simultanées de plusieurs personnes réparties sur un réseau.

En plus de ses avantages, il y en a encore un certain nombre. L'architecture par agents mobiles est naturelle et
présente une plus grande résistance aux attaques puisqu'elle se base sur un système autre que hiérarchique. Qui plus est, elle est basée sur une exécution asynchrone et une certaine autonomie, ce qui fait que les agents mobiles sont désolidarisés du reste pour une plus grande tolérance aux fautes. Enfin, les agents mobiles présentent la capacité de s'adapter dynamiquement aux changements et peuvent donc réagir plus rapidement.

Si les systèmes par agents mobiles ont des avantages indéniables, ils ont également des inconvénients notables. Il est clair que le codage et le déploiement sera difficile pour assurer un code sûr avec beaucoup de fonctionnalités.

Il y a d'autres inconvénients : quand les agents se déplacent, un nœud dépourvu d'agent est vulnérable pendant un moment. De plus, si les agents ont besoin d'un apprentissage, ce temps peut être long. Il souligne ensuite quelques unes des imperfections des systèmes de détection d'intrusions qui ne sont pas corrigées par le système des agents mobiles. Ils peuvent être corrompus et ils imposent une utilisation des ressources et que quelque soit le système. Enfin, certains attaquants réussiront toujours à obtenir des droits pendant quelques temps avant d'être détectés.

Enfin, quelques points resteront à étudier, comme la performance, car il faut voir la rapidité avec laquelle l'agent détecte et remonte l'information d'intrusion, la taille du code, car les systèmes de détection sont complexes et les agents risquent de demander d'assez gros programmes et le temps d'adaptation des agents à un système, car il y aura un manque de connaissance de base étant donné que beaucoup de plates-formes et de configurations sont différentes.

4.3  Conclusion et perspectives pour les agents mobiles


Si les agents mobiles apportent des avantages importants, les inconvénients qu'ils engendrent du même coup ne sont pas négligeable. Cependant, l'approche par agents mobiles semble pouvoir donner des résultats meilleurs que les autres technologies et la recherche va développer une nouvelle architecture pour cette technologie.

Les avantages des agents mobiles pourront être exploités de plusieurs façons : en prévoyant de la surveillance en plus de la détection, en fournissant une réponse aux attaques et en augmentant la fiabilité du système. On peut aussi tirer profit de la diversité en représentant les signatures d'attaques par une méthode différente pour chaque agent.

0 commentaires:

Enregistrer un commentaire

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites

 

IP