Principes et architecture des systèmes de détection d'intrusion

Un article de Wikipédia, l'encyclopédie libre.

Les principes et architecture des systèmes de détection d'intrusion (IDS) définissent les solutions adoptées pour l'IDS.

On peut distinguer trois couches nécessaires pour un IDS :

  • la surveillance du système d'information
  • le scannage des sources d'informations (que l'on nomme probing)
  • les décisions prises lors de l'évaluation positive d'une intrusion.

Selon les choix effectués lors de la conception d'un IDS, certaines parties de l'architecture peuvent changer. les systèmes de détection d'intrusion distribués (DIDS) combine les contraintes des systèmes distribués et des IDS.

La technique d'analyse des données peut éventuellement modifier l'architecture en ajoutant la couche de traitement des données propre à la technologie utilisée. Par exemple, lors de l'utilisation de réseaux neuronaux, les données doivent être traduites en données compréhensible pour le réseau et le résultat doit être traduit.

On peut ensuite considérer que le cloud computing pose de nouvelles contraintes sur l'architecture d'un IDS, notamment pour la détection d'intrusion dans les machines virtuelles. On utilise alors des Hypervisor-Based IDS afin de pouvoir détecter les intrusions sur ces machines virtuelles.

Composants d'un IDS[modifier | modifier le code]

Les IDS ont trois composants nécessaires, qui sont :

  • le composant de surveillance du système d'information (Probing), qui surveille le (ou les) système d'information (SI)
  • le composant de monitoring, qui fait la synthèse des données récoltés par le composant de surveillance du système d'information
  • le composant de décision[1].

On ne considère pas l'interface utilisateur, qui ne constitue pas une fonctionnalité nécessaire au bon fonctionnement d'un IDS.

Surveillance du système d'Information[modifier | modifier le code]

La couche de surveillance du système d'information est chargée d'enregistrer toutes les actions[1]. Les actions viennent soit :

  • du trafic réseau (NIDS) ;
  • du Système d'exploitation (HIDS).

Ces actions peuvent être de différentes sortes (lectures, écriture de fichiers, authentification...) et sont ensuite enregistrées en logs, qui sont envoyés à la couche surveillance afin d'être analysés[2].

Monitoring[modifier | modifier le code]

La couche de monitoring va analyser les logs. Son but est d'évaluer les menaces pesant sur le système d'information en recherchant des événements notables. Les logs sont regroupés afin de distinguer des motifs permettant de distinguer une action connue, qui est alors évaluée. Ces événements sont alors classés en événements notables ou non.

Dans le cas où les événements sont notables, l'IDS va évaluer la menace du système d'information.

Pour les HIDS, les événements notables peuvent être :

  • authentification ratée
  • accès à /etc/passwd [2]

Pour les NIDS, les événements notables peuvent être :

  • rlogin
  • connexions telnet [1]

Après avoir identifié la menace de notre Système d'Information , il va alors indiquer son jugement sur la sécurité du réseau ou des systèmes et transmettre sa décision à la couche décision[3].

Décisions[modifier | modifier le code]

Si la couche surveillance juge que le système a été compromis, l'IDS peut prendre plusieurs décisions :

  • La première est de prévenir l'administrateur du système d'information afin qu'il puisse prendre les décisions qui s'imposent ;
  • la deuxième est d'effectuer une action définie à l'avance par l'administrateur système afin d’empêcher l'intrusion (ou la ralentir).

Variations des architectures[modifier | modifier le code]

NIDS et IDS Hybride[modifier | modifier le code]

Dans le cas des deux IDS suivants, un composant de prévention peut être ajouté. Il est situé avant la couche de surveillance du SI et permet d’empêcher certaines menaces. Par exemple, afin de limiter l'intrusion sur un réseau, l'IDS peut refuser de prendre certains paquets qu'il considère comme néfastes.

Pour cela, il utilise des techniques de détection à base de signature (voir ci-dessous).

IDS distribués[modifier | modifier le code]

Les IDS distribués couvrent un système entier comportant plusieurs ordinateurs.

Le système doit être capable de traiter plus d'informations, celles-ci venant de plusieurs ordinateurs. De plus chaque couche peut être distribuable. Par conséquent, une couche de communication doit être intégrée dans chaque composant pour que le système puisse fonctionner correctement[4].

De plus, le flot de données étant généralement trop important pour la couche de monitoring, il est nécessaire de la diviser en 2 parties[1].

La première partie est située sur la même machine que la couche probing, qui va d'abord traiter les logs pour ne garder que les événements notables. Ces événements sont alors envoyés à la seconde partie, qui reçoit tous ces événements notables pour tirer des conclusions sur :

  • l'état du système local,
  • l'état du système global.

Les IDS non-distribués n'ont eux aucune latence puisque toutes les données se trouvent sur le même ordinateur.

Architecture à base d'agents[modifier | modifier le code]

Dans un système de détection d'intrusion distribué, en cas de défaillance d'un composant, tout le système ne fonctionne plus. Dans un système a base d'agents, chaque agent est indépendant [5]. Si on perd un agent, l'IDS se base sur les agents restants afin de continuer la surveillance du système d'information[6].

Dans ces IDS, chaque types d'agent se charge soit :

  • de la surveillance du système d'information
  • de la surveillance
  • des décisions.

Plusieurs agents peuvent donc se charger de la même tache.

Pour que le système ne puisse plus fonctionner, il faut que tous les agents d'un type doivent tomber en panne.

Moyens de détection d'intrusion[modifier | modifier le code]

En général, il y a deux techniques d'analyses des données reçues par le module de détection des événements :

  • Détection à base de signature [7]
  • Détection comportementale [8].

Les deux techniques de détection peuvent être utilisées simultanément dans un IDS[9].

Détection à base de signature[modifier | modifier le code]

La technique de détection basée sur les signatures essaye d'associer l'activité de l'ordinateur avec des signatures d'attaques connus[10]. Cette techniques utilise donc une connaissance des différentes attaques existantes.

Ces signatures sont des règles définies statiquement qui caractérisent le comportement d'un utilisateur[11]. Ces règles qui peuvent être statiques (basées sur un choix de sécurité) ou dynamique (basées sur des techniques d'apprentissage temporelle)[11].

Afin de réaliser ces règles, on peut utiliser des techniques probabilistes, des techniques a base d'état, de règles[12], ...

Détection comportementale[modifier | modifier le code]

La technique de détection des anomalies considère qu'un événement qui est différent du fonctionnement normal du système qu'on a enregistré précédemment signifie que le système a été compromis. Afin de pouvoir dire qu'un système est normal ou pas, il faut donc l'avoir entraîné précédemment en lui faisant comprendre ce qu'est un système normal.

Après cette phase d’entraînement, le système informera n'importe quelle activité suspicieuse [10].

Afin de réaliser cela, plusieurs techniques sont possibles :

Pour réaliser ces techniques, il faut donc ajouter un module de communication et de traitement des informations compatible avec la technique. Par exemple, pour un réseau de neurones, il faut traduire les audits records en données compatible avec un réseau de neurones a l'entrée et la sortie du réseau [13].

Avantages et Inconvénients des techniques[modifier | modifier le code]

Les techniques à base de signature ont pour avantage de pouvoir fonctionner assez rapidement, leur initialisation étant très courte[10]. Par contre, il est nécessaire, pour chaque nouvelle attaque, de pouvoir développer des règles qui permettent de stopper l'attaque. De plus, il est possible que les attaques évoluent, ce qui doit faire qu'on doit modifier des règles, ce qui est pénible à mettre à jour.

Dans les cas de la détection comportementale, cela est très chronophage en temps afin de détecter les attaques mais après initialisation le système peut potentiellement détecter des attaques inconnues ce qui peut permettre d'avancer la connaissance en matière d'attaques[7].

Cloud computing et nouveau type d'IDS[modifier | modifier le code]

L'apparition du cloud a développé de nouvelles problématiques. En effet, le cloud utilise de nombreuses machines virtuelles qui sont changées constamment d'endroit ou de propriétaire.

De plus, deux personnes veulent pouvoir détecter si le système est compromis :

  • L'utilisateur de la machine virtuelle ou du service.
  • Le fournisseur de la machine virtuelle ou du client.

Afin de surveiller ces machines virtuelles, un nouveau type d'IDS est apparu, les IDS basés sur les hyperviseurs. Ces IDS se basent eux sur les différentes métriques récupérées sur les différentes machines virtuelles comme le nombre de paquets transmis/reçus, les appels de lecture ou d'écriture des blocs ou l'utilisation du CPU, permettent de détecter les intrusions [14].

Historique[modifier | modifier le code]

L'apparition des premiers IDS remonte à 1987 avec l'IDS nommé IDES développé par Dorothy Denning[15]. Cet IDS apparaissant avant l'usage d'internet ou de réseaux développés, il s'agissait d'un HIDS.

À la suite apparaissent les NIDS, qui remontent au début des années 1990.

Jusqu'aux années 1990, les systèmes n'utilisaient que des détections a base de signature. Avec le progrès des techniques de détection (découverte de patterns dans les communications réseaux), les IDS à base d'Anomaly detection commencent à apparaître. On note aussi l'apparition des DIDS en 1994 qui permet alors de gérer un parc de machines.

Les IDS explosent à l'arrivée du cloud computing, on note alors l'apparition de nouvelles contraintes (apparition des IDS pour hyperviseurs, multiplication du parc de machines à surveiller...). Cela entraîne donc l'apparition des Hypervisor-based IDS.

Notes et références[modifier | modifier le code]

Bibliographie[modifier | modifier le code]

  • (en) Denning, « An Intrusion-Detection Model », IEEE Transactions on Software Engineering, vol. SE-13, no 2,‎ (ISSN 0098-5589, DOI 10.1109/TSE.1987.232894)
  • (en) Giovanni Vigna et Richard Kemmerer, « NetSTAT: A Network-based Intrusion Detection System », Journal of computer security, vol. 7, no 1,‎ , p. 3-7
  • R.A. Kemmerer et G. Vigna, « Intrusion detection: a brief history and overview », Computer, vol. 35, no 4,‎ , p. 27–30 (ISSN 0018-9162, DOI 10.1109/MC.2002.1012428)
  • (en) Sundaram et Aurobindo, « An Introduction to Intrusion Detection », Crossroads, vol. 2, no 4,‎ , p. 3-7 (ISSN 1528-4972, DOI 10.1145/332159.332161)
  • (en) B. Mukherjee, L.T. Aurobindo et K.N. Levitt, « Network intrusion detection », IEEE Network, vol. 8, no 3,‎ , p. 26-41 (ISSN 0890-8044, DOI 10.1109/65.283931)
  • (en) C. Warrender, S. Forrest et B. Pearlmutter, « Detecting intrusions using system calls: alternative data models », IEEE Xplore,‎ , p. 133-145 (DOI 10.1109/SECPRI.1999.766910)
  • (en) Yichi Zhang, Lingfeng Wang, Weiqing Sun, R.C. Green et M. Alam, « Distributed Intrusion Detection System in a Multi-Layer Network Architecture of Smart Grids », IEEE Transactions on Smart Grid, vol. 2, no 4,‎ , p. 796-808 (ISSN 1949-3053, DOI 10.1109/TSG.2011.2159818)
  • (en) S. Roschke, Feng Cheng et C. Meinel, « Intrusion Detection in the Cloud », IEEE Xplore,‎ , p. 729-734 (DOI 10.1109/DASC.2009.94)
  • (en) Ozgur Depren, Murat Topallar, Emin Anarim et M. Kemal Ciliz, « An intelligent intrusion detection system (IDS) for anomaly and misuse detection in computer networks », Expert Systems with Applications, vol. 29, no 4,‎ , p. 713-722 (ISSN 0957-4174, DOI 10.1016/j.eswa.2005.05.002)
  • (en) Rashida et Yasaman Seyedeh, « Hybrid architecture for distributed intrusion detection system in wireless network », International Journal of Network Security & Its Applications, vol. 5, no 3,‎ , p. 45 (DOI 10.5121/ijnsa.2013.5305)
  • (en) Steven R. Snapp, James Brentano, Gihan V. Dias, Terrance L. Goan, L. Todd Heberlein, Che-Lin Ho, Karl N. Levitt, Biswanath Mukherjee, Stephen E. Smaha, Tim Grance, Daniel M. Teal et Doug Mansur, Internet Besieged, New York, NY, USA, ACM Press/Addison-Wesley Publishing Co., (ISBN 978-0-201-30820-4, lire en ligne), « DIDS (distributed intrusion detection system)—motivation, architecture, and an early prototype », p. 211-227
  • (en) J. Gómez, C. Gil, N. Padilla, R. Baños et C. Jiménez, Distributed Computing, Artificial Intelligence, Bioinformatics, Soft Computing, and Ambient Assisted Living, Springer Berlin Heidelberg, , 515–522 p. (ISBN 978-3-642-02481-8, DOI 10.1007/978-3-642-02481-8_75, lire en ligne), « Design of a Snort-Based Hybrid Intrusion Detection System »
  • (en) M. Ali Aydın, A. Halim Zaim et K. Gökhan Ceylan, « A hybrid intrusion detection system design for computer network security », Computers & Electrical Engineering, vol. 35, no 3,‎ , p. 517–526 (ISSN 0045-7906, DOI 10.1016/j.compeleceng.2008.12.005, lire en ligne, consulté le )
  • (en) J.S. Balasubramaniyan, J.O. Garcia-Fernandez, D. Isacoff, E. Spafford et D. Zamboni, « An architecture for intrusion detection using autonomous agents », Proceedings of 14th Annual Computer Security Applications Conference.,‎ , p. 13–24 (DOI 10.1109/CSAC.1998.738563)
  • (en) H. Debar, M. Becker et D. Siboni, « A neural network component for an intrusion detection system », Proceedings of the 1992 IEEE Computer Society Symposium on Research in Security and Privacy,‎ , p. 240–250 (DOI 10.1109/RISP.1992.213257)
  • (en) Chirag Modi, Dhiren Patel, Bhavesh Borisaniya, Hiren Patel, Avi Patel et Muttukrishnan Rajarajan, « A survey of intrusion detection techniques in Cloud », Journal of Network and Computer Applications, vol. 36, no 1,‎ , p. 42–57 (ISSN 1084-8045, DOI 10.1016/j.jnca.2012.05.003, lire en ligne, consulté le )
  • (en) R.A. Kemmerer et G. Vigna, « Intrusion detection: a brief history and overview », Computer, vol. 35, no 4,‎ , p. 27–30 (ISSN 0018-9162, DOI 10.1109/MC.2002.1012428)
  • (en) Hung-Jen Liao, Chun-Hung Richard Lin, Ying-Chih Lin et Kuang-Yuan Tung, « Intrusion detection system: A comprehensive review », Journal of Network and Computer Applications, vol. 36, no 1,‎ , p. 16–24 (ISSN 1084-8045, DOI 10.1016/j.jnca.2012.09.004, lire en ligne, consulté le )
  • (en) J. Nikolai et Yong Wang, « Hypervisor-based cloud intrusion detection system », IEEE Explore,‎ , p. 989–993 (DOI 10.1109/ICCNC.2014.6785472)
  • (en) Chi-Ho Tsang et Sam Kwong, « Multi-agent intrusion detection system in industrial network using ant colony clustering approach and unsupervised feature extraction », IEEE International Conference on Industrial Technology, 2005. ICIT 2005,‎ , p. 51–56 (DOI 10.1109/ICIT.2005.1600609)