En sécurité informatique, un système de détection d'intrusion (ou IDS : intrusion detection system en anglais) est un mécanisme destiné à repérer des activités anormales ou suspectes sur la cible analysée (un réseau ou un hôte). Il permet ainsi d'avoir une connaissance sur les tentatives réussies comme échouées des intrusions.
Il existe deux grandes catégories d'IDS, les plus connues sont les détections par signatures (reconnaissance de programme malveillant) et les détections par anomalies (détecter les écarts par rapport à un modèle représentant les bons comportements, cela est souvent associé a de l'apprentissage automatique). Il est aussi possible de classifier les IDS selon la cible qu'ils vont surveiller, les plus communs sont les systèmes de détection d'intrusion réseau et les systèmes de détection d'intrusion hôte.
Certains IDS ont la possibilité de répondre aux menaces qu'ils ont détectées, ces IDS avec capacité de réponse sont des systèmes de prévention d'intrusion.
Description générale
Les systèmes de détection d’intrusion sont des outils ayant pour objectifs de détecter des activités malicieuses sur la cible qu'ils surveillent. Une alerte sera déclenchée dès lors qu’un comportement malicieux est détecté. Les systèmes de détection d'intrusion sont utilisés en plus des solutions traditionnelles telles que les pare-feux, pour détecter différents types d'utilisation malicieuse de leur cible qui ne peuvent être détectée par ces dernières. Pour cela, de nombreux paramètres doivent être pris en compte selon ce que l’on cherche à surveiller. En effet, le système de détection d'intrusion ne se placera pas au même endroit dans l’architecture réseau. Celui-ci peut être placé en coupure du réseau, ou sur un hôte. De plus, la temporalité de l’analyse est un paramètre important, celui-ci peut produire son analyse en temps réel ou a posteriori.
Les systèmes de détection d'intrusion vont se baser sur l'écriture de règles de filtrage écrites par les utilisateurs pour effectuer leurs analyses. Par exemple, pour le système de détection d'intrusion Snort, les règles de filtrages seront composées des éléments suivants : l'action (alert, log, pass, activate, dynamic) déterminant le comportement à adopter en cas de détection d'intrusion ; le protocole à filtrer ; les adresses IP source et destination ; les numéros de ports ; la direction du trafic (->, <- ou <>), s'il est entrant, sortant ou bidirectionnel ; les options (motifs dans le paquet, en-tête, flag, taille, etc.).
Voici un exemple d'une règle Snort qui déclenche une alerte dès qu'un paquet TCP est reçu par l'adresse 10.1.1.0/24 sur le port 80 s'écrira comme suit :
alert tcp any any -> 10.1.1.0/24 80
Méthodologie de détection
Les systèmes de détection d'intrusion sont généralement classifiés en deux catégories, les systèmes de détection d'intrusion par signatures et les systèmes de détection d'intrusion par anomalies.
Systèmes de détection d'intrusion par signatures Les systèmes de détection d'intrusion par signature (ou SIDS : Signature-based Intrusion Detection System), reposent sur des bibliothèques de description des attaques (appelées signatures). Au cours de l’analyse du flux réseau, le système de détection d'intrusion analysera chaque événement et une alerte sera émise dès lors qu’une signature sera détectée. Cette signature peut référencer un seul paquet, ou un ensemble (dans le cas d'une attaque par déni de service par exemple). Cette méthodologie de détection se révèle être efficace uniquement si la base de signatures est maintenue à jour de manière régulière. Dans ce cas, la détection par signatures produit peu de faux-positifs. Cependant, une bonne connaissance des différentes attaques est nécessaire pour les décrire dans la base de signature. Dans le cas d'attaques inconnues de la base, ce modèle de détection s'avérera inefficace et ne générera donc pas d’alertes. La base de signature est donc très dépendante de l’environnement (système d’exploitation, version, applications déployées, …).
Plusieurs implémentations existent pour effectuer une détection par signature, parmi celles-ci, nous pouvons trouver :
Les arbres de décision, les règles de filtrage sont représentées sous forme d'arbre de décisions où chaque feuille de l'arbre correspondra à une règle. Les système de transition d'états, les intrusions sont décrites comme des scénarios, représentés eux-mêmes comme une séquence de transitions qui caractérisent l'évolution des états du système.
Systèmes de détection d'intrusion par anomalies
Contrairement aux SIDS, les systèmes de détection d'intrusion par anomalies (ou AIDS : Anomaly-based Intrusion Detection System) ne se reposent pas sur des bibliothèques de description des attaques. Ils vont se charger de détecter des comportements anormaux lors de l'analyse du flux réseau. Pour cela, le système va reposer sur deux phases: Une phase d'apprentissage, au cours de laquelle ce dernier va étudier des comportements normaux de flux réseau. Une phase de détection, le système analyse le trafic et va chercher à identifier les événements anormaux en se basant sur ses connaissances.
Cette méthode de détection repose sur de nombreuses techniques d'apprentissage supervisé, telles que :
Les réseaux de neurones artificiels Le modèle de Markov caché Les machines à vecteurs de support
En 2019, la détection d'intrusion par anomalies est reconnue par la communauté comme étant très efficace. En effet, selon les méthodes d'apprentissage implémentées, l'exactitude des résultats peut rapidement atteindre plus de 90% de détection.
Hybride
Cette méthodologie de détection consiste à reposer à la fois sur un système de détection par signatures et sur un système de détection par anomalies. Pour cela, les deux modules de détection, en plus de déclencher des alertes si une intrusion est détectée, peuvent communiquer leurs résultats d'analyse à un système de décision qui pourra lui-même déclencher des alertes grâce à la corrélation des résultats remontés par les deux modules.
L'avantage de cette méthodologie de détection est la combinaison du faible taux de faux-positifs générés par les systèmes de détection d'intrusion par signature, tout en possédant la capacité de détecter des attaques inconnues dans la base de signature grâce à la détection par anomalie.
L'analyse des protocoles
Les systèmes de détection d'intrusion peuvent également reposer sur l'analyse des protocoles. Cette analyse (appelée en anglais SPA : Stateful Protocol Analysis) a pour objectif de s'assurer du fonctionnement normal d'un protocole (par exemple de transport ou d' application). Celle-ci repose sur des modèles définis, par exemple par des normes RFC. Ces normes n'étant pas exhaustives, cela peut entraîner des variations dans les implémentations. De plus, les éditeurs de logiciels peuvent rajouter des fonctionnalités propriétaires, ce qui a pour conséquence que les modèles pour ces analyses doivent être régulièrement mis à jour afin de refléter ces variations d'implémentation.
Cette méthode d'analyse a pour principal inconvénient que les attaques ne violant pas les caractéristiques du protocole, comme une attaque par déni de service, ne seront pas détectées.
Temporalité de détection
Il existe deux types de temporalité dans les systèmes de détection d'intrusion. La détection en temps réel (système temps réel), et la détection post-mortem (analyse forensique). Le plus souvent, l'objectif est de remonter les alertes d'intrusion le plus rapidement possible à l'administrateur système. La détection en temps réel sera donc privilégiée. Cette temporalité de détection présente des défis de conception pour s'assurer que le système puisse analyser le flux de données aussi rapidement qu'il est généré. Cependant, il est aussi envisageable d'utiliser un système de détection d'intrusion dans le cadre d'analyse post-mortem. Dans ce cas, ce dernier permettra de comprendre le mécanisme d'attaque pour aider à réparer les dommages subis et réduire le risque qu'une attaque du même genre se reproduise.
Corrélation des alertes
La corrélation des alertes a pour objectif de produire un rapport de sécurité de la cible surveillée (un réseau par exemple). Ce rapport sera basé sur l’ensemble des alertes produites par les différentes sondes de détection d’intrusion disséminées sur l’infrastructure. Pour cela, il est nécessaire de différencier deux composants :
les sondes : chargées de récupérer les données depuis les sources concernant leurs cibles (fichiers de logs, paquets réseaux …) et de générer, si nécessaire, des alertes ; les composants d’agrégation et de corrélation : chargés de récolter les données des sondes et des autres composants d’agrégation et de corrélation afin de les corréler et produire le rapport de sécurité transmis à l’administrateur.
Les corrélations peuvent être décrites en deux types :
les corrélations explicites : ces corrélations sont utilisées lorsque l'administrateur peut exprimer une connexion entre des événements connus ; les corrélations implicites : celles-ci sont utilisées lorsque les données ont des relations entre elles et que des opérations sont nécessaires pour mettre en valeur certains événements.
Pour rendre la corrélation plus efficace, le format de données IDMEF définit un format et une procédure de partage des données spécifique aux systèmes de détection d'intrusion.
Familles de systèmes de détection d’intrusion En fonction des données qu'ils traiteront, les systèmes de détection d'intrusion peuvent être considérés comme ou étant des systèmes de détection d'intrusion hôtes (analysant les événements au niveau du système d'exploitation), ou réseaux (analysant les événements propres au trafic réseau). centré|Positionnement d'un IDS selon sa famille (NIDS pour Network Intrusion Detection System, ou HIDS pour Host-based Intrusion Detection System).|vignette|350x350px Systèmes de détection d'intrusion réseaux vignette|Fig 1 : Placement d'un NIDS en amont d'un pare-feu. vignette|Fig 2 : Placement d'un NIDS en aval d'un pare-feu.|alt= Les systèmes de détection d'intrusion réseaux (ou NIDS : Network Intrusion Detection System) sont les IDS les plus répandus. Ce sont des outils très utiles pour l'administrateur réseaux qui va pouvoir, en temps réel, comprendre ce qui se passe sur son réseau et prendre des décisions en ayant toutes les informations.
Ils peuvent être placés à divers endroits sur le réseau, en amont ou en aval d'un pare feu ou encore sur chaque hôte, comme un anti virus. Ces IDS vont analyser tout le trafic entrant et sortant du réseau afin d'y déceler des attaques. Cependant, un NIDS placé sur chaque hôte ne saura pas détecter toutes les attaques possibles comme les attaques par déni de service (DDoS) car il ne verra pas tout le trafic réseau, mais que celui qui arrive à l'hôte final.
Quand un NIDS est positionné en amont d'un pare feu (Fig 1), il pourra alors générer des alertes pour le pare feu qui va pouvoir filtrer le réseau. Placé en aval du pare feu (Fig 2), le NIDS produira moins de faux positifs, car le trafic réseau qu'il analysera aura déjà été filtré par le pare feu.
Avec l'arrivée du Cloud computing, le positionnement des sondes dans le réseau devient stratégique. En effet, n'importe qui peut louer une machine chez un hébergeur web et attaquer une autre machine louée par quelqu'un d'autre chez le même hébergeur. On parlera alors d'attaque interne. Dans ce type d'attaque, les solutions disposées en bordure du réseau ne détecteront pas ces attaques, il est donc nécessaire de disséminer plusieurs NIDS au sein de l'infrastructure Cloud afin de les détecter.
Dès qu'une attaque est détectée, que ce soit par signature (SIDS) ou anomalies (AIDS), une alerte est remontée afin de pouvoir prendre une décision sur l'action à effectuer, soit par un IPS (Système de prévention d'intrusion), soit par l'administrateur.