Les IDS (Intrusion Detection System, ou, en bon français, Systèmes de détection d'intrusion) ont fait leur apparition vers la fin des années 90 dans le paysage Sécurité, loin, cependant, derrière les pare-feux ou les solutions antivirus. Ils sont depuis devenus un complément utile (mais non indispensable) à ces outils de sécurité actifs.
Avant de les présenter sous un angle pratique à travers le logiciel Snort, nous allons en présenter rapidement les fondements et concepts théoriques.
Pourquoi utiliser un IDS ?
Les IDS trainent une réputation sulfureuse et leur utilité a fait l'objet de longues et âpres discussions. “Perte de temps”, “coûts d'acquisition et de fonctionnement élevés”, voici quelques-uns des reproches les plus fréquemment faits aux IDS. Cela est principalement dû au fait qu'ils ont été trop tôt vendus, à une époque où ils quittaient à peine le monde de la recherche et manquaient donc de maturité. Aujourd'hui encore, leur complémentarité par rapport aux outils actifs n'est pas toujours ni suffisamment mise en avant. Or il est évident que le déploiement d'un IDS est totalement superflu si une solution de sécurité active n'est pas déjà en place.
Au-delà même de cet aspect “shakespearien” du débat (to have or not to have an IDS) il va de soi qu'il n'existe pas de solution toute faite qui répondrait à tous les besoins. Ceux-ci ne sont pas les mêmes pour une petite ou moyenne entreprise qui utilise Internet pour des besoins génériques (messagerie électronique, site Internet “vitrine”) que pour un ISP ou un opérateur Télécoms. Les volumes de données échangées, l'architecture des réseaux utilisés n'offrent aucun point de comparaison. Or un IDS se doit d'être adapté à chaque cas particulier. C'est un outil qui dépend très fortement du contexte et de son environnement techniques, beaucoup plus qu'une solution antivirus par exemple, pour laquelle le critère “volumétrie” est le principal discriminant.
Un IDS complète utilement la panoplie des moyens de sécurité actifs du Système d'Information (SI) : pare-feux, routeurs, etc.
Son principal objectif est d'augmenter la visibilité sur le niveau réel de sécurité de celui-ci. En effet, les attaques sont de plus en plus complexes et les données de journalisation des éléments de filtrage actifs ne suffisent plus à rendre compte de leurs impacts sur le SI. Cette tendance suit les évolutions technologiques de ces dernières années : les premières mesures de sécurité visaient à interdire ou limiter l'accès physique au réseau. Lorsqu'il devint plus facilement accessible, virent les solutions de filtrage basées sur les adresses IP, les protocoles ou les ports utilisés. Aujourd'hui, les attaques visent de plus en plus souvent les applications bien au-dessus des couches Réseau. Les outils de protection et de détection se devaient donc de prendre en considération ces évolutions : les pare-feux sont ainsi devenus “à état” (stateful) et les serveurs mandataires leurs alliés indispensables et les mesures de protection qui ne s'appliquaient hier encore qu'aux frontières du SI gagnent en profondeur.
Idéalement, un IDS doit ainsi permettre :
Les avantages apportés sont alors :
On peut reprocher non sans fondement aux IDS leur consommation intensive de ressources qualifiées pour adapter leur configuration aux spécificités du SI mis sous surveillance ainsi que les coûts de maintenance. En cas d'incident, il faut bien souvent faire une fois de plus appel à des ressources qualifées et donc coûteuses.
Essayons tout d'abord de définir ou tout au moins de nous entendre sur ce que l'on appelle “détection d'intrusion”. Il faudrait plutôt parler de “détection des tentatives d'intrusion ou des signes de compromission d'hôtes”. On peut également parler de la “détection d'évènements participant à la compromission de tout ou partie du SI ou portant atteinte à sa disponibilité”.
Ces évènements peuvent être de natures différentes :
D'une manière générale, la définition de ce qu'est ou doit être un IDS fait en elle-même débat et a fait couler beaucoup d'encre.
Nous partirons donc du principe que le terme même “IDS” est désormais consacré et n'est pas à remettre en cause. Nous avons donc affaire à un Système de Détection d'Intrusion.
Par “Système” il faut comprendre “une association de composants logiciels et matériels servis par des équipes d'analystes”.
Nous définirons la détection comme une action passive de mise en surveillance des actifs du SI, proche de la supervision.
Enfin, nous qualifierons l'intrusion comme une action hostile dont le but est de porter volontairement atteinte à la confidentialité, l'intégrité ou la disponibilité du SI ou une action illicite qui enfreint volontairement la politique de sécurité ou les règles d'utilisation du SI. Ainsi, une connexion SSH à un serveur initiée par un utilisateur autorisé du SI mais non motivée par des impératifs de service peut être considérée comme une intrusion ou une attaque.
Ce dernier point met en lumière deux aspects importants :
Il convient enfin de retenir que la notion d'intrusion est indépendante du type d'attaquant : celui-ci peut être une personne (pirate, utilisateur malicieux) ou bien un outil (ver, virus, scanner, etc.).