28 0 1MB
REMERCIEMENTS
Je tiens à remercier particulièrement Docteur N’Goran Kouassi pour m’avoir fait confiance, m’avoir permis de travailler avec autonomie, m’avoir proposé ce sujet de mise en place d’un système de détection d’intrusion, de m’avoir conseillé et aidé lorsque des problèmes se posaient. Je voudrais aussi remercier Monsieur Agbissi Jean Paul qui a toujours été disponible pour me renseigner ou répondre à mes interrogations. Enfin, des remerciements aux enseignants de HETEC Abidjan de la Licence Professionnelle en Systèmes Réseaux et Télécommunications, pour m’avoir offert une formation enrichissante dans le domaine de la sécurité des réseaux en parallèle avec la réalité du monde professionnel.
I
AVANT-PROPOS
Le problème de sécurité est le plus important dans tous les domaines en général et dans l’informatique en particulier. C’est la condition indispensable de tous systèmes informatiques, notamment des banques, car les pirates cherchent toujours des vulnérabilités dans leurs systèmes pour attaquer et voler des informations ou faire des catastrophes aux données. Nous devons donc avoir de bonnes politiques de sécurité pour nous protéger contre des attaques. Ce sujet est relevé dans le cadre du terme de notre formation en LPSRT. Notre travail a pour but d’obtenir des connaissances sur les systèmes de détection d’intrusion. Nous devons également implémenter une solution efficace pour pallier les intrusions aux problèmes d’intrusion dans les systèmes informatiques.
II
LEXIQUE
IDS
: Intrusion Detection System
HIDS
: Host based IDS
NIDS
: Network based IDS
SNORT
: The Open Source Network Intrusion Detection System.
NAT
: Network Address Translation
DMZ
: Demilitarized Zone
DNS
: Domain Name System
IPS
: Intrusion Prevention System
SANS
: Computer & Information Security Training (http://www.sans.org/ )
ISS
: Internet Security System
RSDP
: Real Secure Desktop Protector
NAC
: Network Admission Control
VPN
: Virtual Private Network
IDMEF
: Intrusion Detection Message Exchange Format
FTP
: File Transfert Protocol
SMS
: Short Message Service
Log
: Fichier journal dans lequel un logiciel enregistre des évènements
Faux-positif
: détection en absence d'attaque - alarme générée par un IDS pour un événement légal
Faux-négatif : absence de détection en présence d'attaque, non génération d'alarme par un IDS pour un événement illégal
III
SOMMAIRE REMERCIEMENTS ................................................................................................................................................ I AVANT-PROPOS .................................................................................................................................................. II LEXIQUE ..............................................................................................................................................................III SOMMAIRE ......................................................................................................................................................... IV INTRODUCTION GÉNÉRALE ............................................................................................................................ 1
I.
Contexte et problématique.......................................................................................................... 1
II.
Justification du choix du thème .................................................................................................. 2
III.
Objectifs ................................................................................................................................. 2
IV.
Approche méthodologique de la recherche ............................................................................ 2
V.
Annonce du plan......................................................................................................................... 2
1ère PARTIE : ÉTUDE PRÉLIMINAIRE ET APPROCHE DES DIFFÉRENTES SOLUTIONS
CHAPITRE I :
ÉTUDE PRÉLIMINAIRE .................................................................................... 4
I.
ÉNONCÉ ET APPROCHE DÉFINITIONNELLE DU THÈME .......................................... 4
II.
MOTIVATION ET OBJECTIF À ATTEINDRE ................................................................ 22
CHAPITRE II :
APPROCHE DES DIFFÉRENTES SOLUTIONS D’IDENTIFICATION
D’INTRUISION……….................................................................................................................... 25 I.
SOLUTION 1 : SNORT ...................................................................................................... 25
II.
SOLUTIONS 2 : BRO ......................................................................................................... 34
III.
SOLUTION 3 : PRELUDE-IDS ..................................................................................... 36
2e PARTIE : ÉTUDE ET DÉPLOIEMENT DE LA SOLUTION CHOISIE CHAPITRE I :
JUSTIFICATION
DU
CHOIX
DE
LA
SOLUTION
ET
SON
IMPLÉMENTATION ………………………………………………………………………………40 I.
PROPOSITION DE LA SOLUTION POUR LA DÉTECTION D’INTRUSION .............. 40
II.
MISE EN ŒUVRE .............................................................................................................. 40
III.
Tests................................................................................................................................. 54
CHAPITRE II :
VALORISATION DU PROJET ....................................................................... 56
I.
COÛT DU PROJET ............................................................................................................. 56
II.
IMPACT DU PROJET SUR LE RÉSEAU ......................................................................... 57
IV
CONCLUSION GÉNÉRALE ................................................................................................................................58 WEBOGRAPHIE.................................................................................................................................................. VI BIBLIOGRAPHIE ............................................................................................................................................... VII TABLES DES MATIÈRES ................................................................................................................................ VIII
V
INTRODUCTION GÉNÉRALE
I.
Contexte et problématique L’évolution de la technologie a beaucoup amélioré la plupart des plateformes de sécurité
existantes dans les réseaux informatiques. En effet depuis l’avènement des premiers réseaux IP, les problèmes de sécurité se sont diversifiés et ont conduit au développement de nouvelles techniques de sécurité. Du cryptage à l’implémentation d’une architecture de sécurité et la mise en place de pare-feu (logiciels ou matériels) les réseaux IP ont connu une amélioration au niveau de l’aspect sécurité. Mais la Sécurité à 100% n‘a jamais existé et ne sera sans doute jamais atteinte, car dans toute plateforme de sécurité existante, on peut y déceler une faille moins facile à exploiter. La faille peut se situer au niveau physique (matériels, bâtiments, installations électriques, etc.) ou logique (logiciels, données, mots de passe, etc.). L’exploitation d’une faille de sécurité en vue de pénétration frauduleuse dans un réseau informatique constitue une intrusion. Suite à une intrusion, l’intrus (pirate) peut mener plusieurs actions : introduire des virus, accéder, voler ou détruire des données, espionnage etc. Ce qui constitue un danger pour tout réseau informatique. Ces menaces justifient le recours à des mécanismes de détection, Intrusion Detection Systems (IDS). Dans le cadre de notre étude, nous nous intéresserons aux outils de détection d’intrusions réseau qui seront chargés de contrôler en permanence l’identité des requêtes en circulation sur le réseau. Ces systèmes sont indispensables pour parvenir à un niveau de sécurité vraiment optimal car ils sont les seuls à vérifier l’identité de chaque requête en détail, en analysant le contenu de chaque trame. Ils peuvent ainsi détecter les intrus dans le flot du trafic courant qui transite sur les ports laissés ouverts du pare-feu et entreprendre diverses actions.
1
II.
Justification du choix du thème
Dans le cadre de la formation de Systèmes Réseaux et Télécommunications, il est demandé de réaliser un projet de fin de cycle. Après réflexion, notre choix s’est orienté vers les systèmes de détection d’intrusions IDS. Pour deux raisons, à savoir répondre à un besoin et combler une lacune dans le domaine de la sécurité réseau, mais surtout avec la conviction que cette technologie est en pleine expansion et qu’elle nécessite du personnel qualifié.
III.
Objectifs Les objectifs de ce mémoire sont de proposer une solution qui vise à trouver un
compromis entre la sécurité et les performances du réseau. Cette solution doit assurer que chaque paquet envoyé par une source vers une destination soit au moins analysé par un mobile avant qu’il atteigne la destination. Par ailleurs, ce mémoire nous permet sur le plan pédagogique de soutenir notre diplôme de licence professionnelle en systèmes réseaux et télécommunications.
IV.
Approche méthodologique de la recherche
Pour arriver à réaliser ce mémoire, nous allons utiliser les méthodes suivantes : -
V.
La méthode de l'Internet, qui nous permettra de consulter certains sites pour avoir les informations relatives au sujet ; La méthode documentaire, qui nous permettra de consulter les différents ouvrages, mémoires de fin d'études et cours relatifs au sujet ; La méthode de l'interview auprès des spécialistes en la matière pour avoir certaines informations.
Annonce du plan
Dans le but d’atteindre nos objectifs, nous allons organiser notre travail en 2 parties chapitres. Dans la première partie, nous ferons une étude préalable où nous présenterons la notion de sécurité informatique et une description des systèmes de détection d’intrusions. La Deuxième partie sera consacrée à l’étude technique où nous allons faire le déploiement de la solution retenue face aux intrusions réseaux.
2
PREMIÈRE PARTIE
ÉTUDE PRÉLIMINAIRE ET APPROCHE DES DIFFÉRENTES SOLUTIONS
3
CHAPITRE I : ÉTUDE PRÉLIMINAIRE I.
ÉNONCÉ ET APPROCHE DÉFINITIONNELLE DU THÈME
1. Notions de sécurité 1.1. Introduction sur la sécurité Avant d’aborder le domaine de la détection d’intrusion, il est préférable de prendre un peu de recul et de considérer la sécurité dans son ensemble et non pas comme une suite de technologie et de procédures remplissant des besoins spécifiques, mais plutôt comme une activité à part entière pour laquelle s’appliquent quelques règles simples. Actuellement, cet enjeu est devenu primordial. En effet, de plus en plus de pirates scrutent le réseau afin de déceler d’éventuelles failles dans les systèmes qui leur permettraient entre autres de s’introduire dans ceux, afin de détourner des informations confidentielles ou même de l’argent. En sécurité informatique, on ne parle pas d’éliminer complètement les risques, mais de les réduire au minimum par rapport aux besoins du système d’information. L’enjeu principal des réseaux, et en particulier des réseaux connectés à internet, du point de vue de la sécurité, est de se préserver des attaques externes et internes. Ces attaques peuvent nuire au maintien de la confidentialité, de l’intégrité et de la disponibilité du réseau et des données qui y cheminent. Nous allons tout d’abord rappeler quelques notions sur la mise en œuvre d’une politique de sécurité et sur les attaques existantes.
1.2. Mise en place d’une politique de sécurité La mise en œuvre d’une politique de sécurité globale est assez difficile, essentiellement par la diversité des aspects à considérer. Une politique de sécurité peut se définir par un certain nombre de caractéristiques : les niveaux où elle intervient, les objectifs de cette politique et enfin les outils utilisés pour assurer cette sécurité. Chaque aspect différent doit être pris en compte, de façon à atteindre les objectifs de sécurité désirés, en utilisant de façon coordonnée les différents outils à disposition.
4
Nous allons tout d’abord parler des différents aspects d’une politique de sécurité, avant de définir les objectifs visés, puis de voir les outils disponibles pour appliquer cette politique.
1.2.1. Différents aspects de la sécurité Une politique de sécurité s’élabore à plusieurs niveaux. On va tout d’abord sécuriser l’accès aux données de façon logicielle (authentification, Contrôle d’intégrité). On va également sécuriser l’accès physique aux données : serveurs placés dans des salles blindées (qui empêchent les ondes électromagnétiques d’être captées) avec badge d’accès… Un aspect très important pour assurer la sécurité des données d’une entreprise est de sensibiliser les utilisateurs aux notions de sécurité, de façon à limiter les comportements à risque : si tout le monde peut accéder aux salles de serveurs, peu importe qu’elles soient sécurisées. De même, si les utilisateurs laissent leur mot de passe écrit à côté de leur PC, son utilité est limitée. Enfin, il est essentiel pour un responsable de sécurité de s’informer continuellement, des nouvelles attaques existantes, des outils disponibles de façon à pouvoir maintenir à jour son système de sécurité et à combler les brèches de sécurité qui pourraient exister.
1.2.2. Objectifs Les objectifs d’une politique de sécurité sont de garantir la sécurité des informations et du réseau et de l’entreprise. Ces impératifs peuvent être définis à plusieurs niveaux :
Disponibilité : les données doivent rester accessibles aux utilisateurs. C’est la capacité à délivrer un service permanent à l’entreprise.
Confidentialité : les données ne doivent être visibles que des personnes autorisées. C’est le fait de ne pas divulguer des informations sensibles propres à l’entreprise.
Intégrité : il faut pouvoir garantir que les données protégées n’ont pas été modifiées par une personne non autorisée. Le but étant de ne pas altérer les informations sensibles de l’entreprise.
5
Non-répudiation : On doit pouvoir certifier avec certitude quand un fichier a subi des modifications par la personne qui l’a modifié. Ces règles déterminent les enjeux de la sécurité informatique.
Du point de vue organisationnel, nous pouvons découper le domaine de la sécurité informatique de la façon suivante :
La sécurité logicielle ; gère la sécurité au point de vue du logiciel du système d’informations (par exemple, l’intégration des protections logicielles comme l’antivirus).
La sécurité du personnel ; comprends la formation et la sensibilisation des personnes utilisant ou travaillant avec le système d’informations.
La sécurité physique ; regroupe la politique d’accès aux bâtiments, la politique d’accès aux matériels informatiques et les règles de sécurité pour la protection des équipements réseau.
La sécurité procédurale ; définis les procédures et les règles d’utilisation du système d’informations.
La sécurité réseau ; s’occupe de l’architecture physique et logique du réseau, la politique d’accès aux différents services, la gestion des flux d’informations sur les réseaux et surtout les points de contrôle et de surveillance du réseau.
La veille technologique ; souvent oubliée permet d’évaluer la sécurité au cours du temps afin de maintenir un niveau suffisant de protection du système d’informations.
1.2.3. Outils Pour assurer une bonne protection des données d’une entreprise, différents outils sont disponibles. Ils ont en général utilisé ensemble, de façon à sécuriser les différentes failles existantes dans un système. On va tout d’abord utiliser un firewall, qui permet de filtrer le trafic réseau entrant sur le réseau de l’entreprise. Les antivirus seront plutôt utilisés sur les différentes machines branchées sur le réseau afin de vérifier si des virus ont pu se propager.
6
On dispose également d’agents d’authentification afin de contrôler l’accès aux données et aux ressources. Enfin, ces dernières années, de plus en plus d’entreprises ont mis en place des systèmes de détection d’intrusion afin de limiter les attaques sur leurs réseaux. De plus pour transporter les données entre différentes agences d’une même entreprise, les VPN sont de plus en plus utilisés, car ils permettent un cryptage des données qui transitent sur un réseau public. Tous ces outils sont complémentaires et surveillent un aspect précis du réseau qui peut être sensible aux attaques. Nous allons maintenant présenter rapidement les types d’attaques existants.
1.3. Les attaques 1.3.1. Les différentes étapes d’une attaque La plupart des attaques de la plus simple à la plus complexe fonctionnent suivant le même schéma : Identification de la cible : cette étape est indispensable à toutes attaques organisées, elle permet de récolter un maximum de renseignements sur la cible en utilisant des informations publiques et sans engager d’actions hostiles. On peut citer par exemple l’utilisation des bases Whois1, l’interrogation des serveurs DNS, etc. Le scanning : l’objectif est de compléter les informations réunies sur une cible visée. Il est ainsi possible d’obtenir les adresses IP utilisées, les services accessibles de même qu’un grand nombre d’informations de topologie détaillée (OS, versions des services, subnet, règles de firewal,etc). Il faut noter que certaines techniques de scans particulièrement agressives sont susceptibles de mettre à mal un réseau et entraîner la défaillance de certains systèmes. L’exploitation : Cette étape permet à partir des informations recueillies d’exploiter les failles identifiées sur les éléments de la cible, que ce soit au niveau protocolaire, des services et applications ou des systèmes d’exploitation présents sur le réseau. La progression : Il est temps pour l’attaquant de réaliser ce pour quoi il a franchi les
1
Service de recherche fourni par les registres Internet permettant d'obtenir des informations sur une adresse IP ou un nom de domaine.
7
précédentes étapes. Le but ultime étant d’élever ses droits vers root (ou system) sur un système afin de pouvoir y faire tout ce qu’il souhaite (inspection de la machine, récupération d’informations, installation de backdoors, nettoyage des traces, etc).
1.3.2. Les différents types d’attaque Il existe un grand nombre d’attaques permettant à une personne mal intentionnée de s’approprier des ressources, de les bloquer ou de les modifier. Certaines requièrent plus de compétences que d’autres, en voici quelques-unes :
Le sniffing Grâce à un logiciel appelé "sniffer", il est possible d’intercepter toutes les trames que notre carte reçoit et qui ne nous sont pas destinées. Si quelqu’un se connecte par Telnet par exemple à ce moment-là, son mot de passe transitant en clair sur le net, il sera aisé de le lire. De même, il est facile de savoir à tout moment quelles pages web regardent les personnes connectées au réseau, les sessions FTP en cours, les mails en envoi ou réception. Une restriction de cette technique est de se situer sur le même réseau que la machine ciblée.
L’IP spoofing Cette attaque est difficile à mettre en œuvre et nécessite une bonne connaissance du protocole TCP. Elle consiste, le plus souvent, à se faire passer pour une autre machine en falsifiant son adresse IP de manière à accéder à un serveur ayant une "relation de confiance" avec la machine "spoofée". Cette attaque n’est intéressante que dans la mesure où la machine de confiance dont l’attaquant a pris l’identité peut accéder au serveur cible en tant que root. Le DoS (Denial of Service) Le DoS est une attaque visant à générer des arrêts de service et donc à empêcher le bon fonctionnement d’un système. Cette attaque ne permet pas en elle-même d’avoir accès à des données. En général, le déni de service va exploiter les faiblesses de l’architecture d’un réseau ou d’un protocole. Il en existe de plusieurs types comme le flooding, le TCP-SYN flooding, le smurf ou le débordement de tampon (buffer-overflow).
8
Les programmes cachés ou virus Il existe une grande variété de virus. On ne classe cependant pas les virus d’après leurs dégâts, mais selon leur mode de propagation et de multiplication. On recense donc les vers (capables de se propager dans le réseau), les troyens (créant des failles dans un système), les bombes logiques (se lançant suite à un événement du système (appel d’une primitive, date spéciale). L’ingénierie sociale (social engineering) Ce n’est pas vraiment une attaque informatique en soi, mais plutôt une méthode consistant à se faire passer pour quelqu’un que l’on n’est pas afin de recueillir des informations confidentielles. Le craquage de mots de passe Cette technique consiste à essayer plusieurs mots de passe afin de trouver le bon. Elle peut s’effectuer à l’aide d’un dictionnaire des mots de passe les plus courants (et de leurs variantes), ou par la méthode de brute force (toutes les combinaisons sont essayées jusqu’à trouver la bonne). Cette technique longue et fastidieuse, souvent peu utilisée à moins de bénéficier de l’appui d’un très grand nombre de machines.
2. La détection d’intrusion en générale 2.1. Présentation de la détection d’intrusion En effet de plus en plus d’entreprises subissent des attaques qui peuvent entrainer des pertes importantes. Le besoin des entreprises en sécurité informatique est de plus en plus important, et un élément essentiel d’une bonne politique de sécurité est l’utilisation d’un IDS. Un IDS a principalement pour fonction d’analyser en temps réel ou différé les évènements en provenance des différents systèmes, de détecter et de prévenir en cas de signes d’attaques visibles contre le système d’information. Il s’agit d’un équipement permettant de surveiller l’activité d’un réseau ou d’hôte donné, afin de détecter toute tentative d’intrusion et éventuellement de réagir à cette tentative.
9
Cela a pour but de repérer les activités et évènements anormaux suspects. Cela permet ainsi d’avoir une action de prévention sur les différents risques d’intrusion.
2.2. Définitions Intrusion : Une intrusion est toute utilisation d’un système informatique à des fins autres que celles prévues,
généralement
dues
à
l’acquisition
de
privilèges
de
façon
illégitime.
L’intrus est généralement vu comme une personne étrangère au système informatique qui a réussi à en prendre le contrôle, mais les statistiques montrent que les utilisations abusives (du détournement de ressources à l’espionnage industriel) proviennent le plus fréquemment de personnes internes ayant déjà un accès au système. Une intrusion dans un système informatique est aussi définie par Heady et al. comme : « N’importe quel ensemble d’actions essayant de compromettre l’intégrité, la confidentialité ou l’accessibilité d’une ressource ». En dépit de différentes formes d’intrusions, elles peuvent être regroupées dans deux classes : Les intrusions connues ; ces intrusions sont des attaques bien définies qui généralement exploitent des failles connues du système cible. Les intrusions inconnues ou anomalies ; ces intrusions sont considérées comme des déviations du profil normal d’un système. Elles sont détectées dès qu’il est observé un comportement anormal du système.
Détection d’intrusions En sécurité informatique, la détection d'intrusion est l'acte de détecter les actions qui essaient de compromettre la confidentialité, l'intégrité ou la disponibilité d'une ressource. La détection d'intrusion peut être effectuée manuellement ou automatiquement. Dans le processus de détection d'intrusion manuelle, un analyste humain procède à l’examen de fichiers de logs à la recherche de tout signe suspect pouvant indiquer une intrusion. Un système qui effectue une détection d'intrusion automatisée est appelé système de détection d’intrusion. Lorsqu’une intrusion est découverte par un IDS, les actions typiques qu’il peut entreprendre
10
sont par exemple d’enregistrer l’information pertinente dans un fichier ou une base de données, de générer une alerte par e-mail ou un message sur un pager ou un téléphone mobile. Déterminer quelle est réellement l'intrusion détectée et entreprendre certaines actions pour y mettre fin ou l'empêcher de se reproduire, ne font généralement pas partie du domaine de la détection d'intrusion. Cependant, quelques formes de réaction automatique peuvent être implémentées par l'interaction de l'IDS et de systèmes de contrôle d'accès tels que les pare-feu.
Système de détection d’intrusion Un système de détection d'intrusion (ou IDS : Intrusion Detection System) 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. Deux points importants sont à signaler lorsque l’on parle d’IDS à savoir les alertes. L’on parle de « Faux positif » lorsqu’une alerte provient d’un IDS mais qui ne correspond pas à une attaque réelle et de « Faux négatif » quand une intrusion est réelle et qui n’a pas été détectée par l’IDS.
2.3. Fonctionnalités d’un système IDS Un IDS permet de repérer des anomalies dans le trafic réseau. Les anomalies du trafic réseau sont les suivantes : -
Une attaque ciblée. Dans ce cas un IDS peut :
Détecter les tentatives de découvertes du réseau, qui sont la phase préparatoire à une attaque proprement dite. En effet, l’attaquant va d’abord tenter de découvrir l’architecture technique du système d’information (SI). Il voudra connaitre les versions des logiciels et systèmes d’exploitation utilisés, afin de rechercher sur internet si des faiblesses existent sur ces versions ;
-
Détecter l’attaque ou l’exploit utilisé lors de l’attaque ;
-
Détecter dans certains cas, si l’attaque a réussi ou non (par exemple réponse login acceptée) ;
-
Détecter les Dénis de services (DoS) qui consistent à envoyer à un serveur des requêtes inutiles pour la surcharger et diminuer ses performances (temps de réponse).
Une attaque d’ampleur de type « ver ».
Un ver est un virus qui se reproduit tout seul par le réseau. Il génère donc un trafic réseau qui peut être reconnu par un IDS. Dans ce cas on peut :
11
-
Détecter le niveau d’infection du SI et les zones touchées ;
-
Repérer rapidement les machines infectées.
Un réseau mal configuré. Dans ce cas :
L’IDS analyse l’ensemble des messages de type maintenance du réseau (protocole ICMP) et détecte les problèmes de configuration, qui autrement finiraient par rendre le réseau peu performant, voire instable.
Des systèmes utilisant de vieux protocoles peu sécurisés et non autorisés comme Telnet, Rrogin, FTP. Dans ce cas, les buts sont nombreux :
-
Collecter les traces d’intrusion pour servir de preuves s’il y a un processus légal de lancer ;
-
alerter de façon centrale pour toutes les attaques ;
-
réagir aux attaques et corriger les problèmes éventuels
Il faut noter qu’un IDS peut analyser les couches suivantes :
Couche Réseau (IP, ICMP)
Couche Transport (TCP, UDP)
Couche Application (HTTP, Telnet)
Selon le type de trafic, l’IDS accomplit certaines actions définies dans les règles. Certains termes sont souvent employés quand on parle d’IDS :
Faux positif : une alerte provenant d’un IDS, mais qui ne correspond pas à une attaque réelle (Fausse Alerte).
Faux négatif : une intrusion réelle qui n’a pas été détectée par l’IDS
3. Architecture classique d’un IDS Nous décrivons dans cette section les trois composants qui constituent classiquement un système de détection d’intrusions. La figure 2 illustre les interactions entre ces trois composants. Un capteur est chargé de collecter des informations sur l’évolution de l’état du système et de fournir une séquence d’événements qui renseignent de l’évolution de l’état du système.
12
Un analyseur détermine si un sous-ensemble des événements produits par le capteur est caractéristique d’une activité malveillante. Un manager collecte les alertes produites par le capteur, les met en forme et les présente à l’opérateur. Éventuellement, le manager est chargé de la réaction à adopter. Nous détaillons ici chacun de ces trois composants.
Figure 1: Architecture classique d’un IDS Source : Sécurité dans les réseaux Ad-Hoc avec Snort ; Rapport de BOUASLA nabil de l’université d’Avignon
3.1. Le capteur Le capteur observe l’activité du système par le biais d’une source de données et fournit à l’analyseur une séquence d’événements qui renseignent de l’évolution de l’état du système. Le capteur peut se contenter de transmettre directement ces données brutes, mais en général un prétraitement est effectué. Ce traitement permet, par exemple, de filtrer un certain nombre de données considérées comme non pertinentes, afin de limiter la quantité d’information à analyser par la suite. De plus, le capteur réalise généralement une mise en forme des données brutes acquises afin de présenter à l’analyseur des données utilisant un certain format d’événements. Ces fonctions sont par exemple réalisé par les modules Preprocessors et Decoder de l’IDS open source SNORT.
13
On distingue classiquement trois types de capteurs en fonction des sources de données utilisées pour observer l’activité du système : • Les capteurs système collectent des données produites par les systèmes d’exploitation des machines, notamment par le biais des journaux d’audit système ou par celui des appels systèmes invoqués par les applications. On désigne les IDS utilisant des capteurs système par l’acronyme HIDS (Host-based IDS). • Les capteurs réseau collectent les données en écoutant le trafic réseau entre les machines, par le biais d’une interface spécifique. On parle alors de NIDS (Network-based IDS). • Les capteurs applicatifs collectent les données produites par une application particulière, avec laquelle des utilisateurs sont susceptibles d’interagir, comme un serveur Web ou un serveur de base de données. L’application doit bien sûr être instrumentée à cet effet. L’avantage principal des capteurs réseau réside dans leur capacité à surveiller un grand ensemble de machines. Cette caractéristique simplifie le déploiement et la maintenance d’une solution de détection visant à garantir une couverture optimale du réseau surveillé. L’approche système est plus complexe à déployer, car elle nécessite une multiplication du nombre de capteurs dans le réseau. De plus, le coût engendré par la collecte des données par ces capteurs peut dégrader sensiblement les performances des systèmes sur lesquels ils sont installés. Cependant, on peut s’interroger sur la pérennité des capteurs réseau pour trois raisons principales. Premièrement, la montée en débit des réseaux contraint fortement les capacités de collecte de l’intégralité du trafic. Les constructeurs de NIDS ont recours à des capteurs matériels spécifiques pour accélérer la collecte, mais la détection d’intrusions dans le cœur de réseau peut poser problème. Deuxièmement, les capteurs réseau ne peuvent analyser le trafic chiffré. Or, la prise en compte progressive des problèmes de sécurité tend à généraliser l’utilisation du chiffrement dans les protocoles réseau, rendant à terme les capteurs réseau inopérants. Enfin, l’analyse seule du trafic réseau s’avère souvent insuffisante pour assurer une détection fiable et pertinente des violations de politique de sécurité, l’IDS ne disposant que de trop peu d’information sur les systèmes attaqués.
3.2. L’analyseur L’objectif de l’analyseur est de déterminer si le flux d’événements fourni par le capteur contient des éléments caractéristiques d’une activité malveillante. Deux grandes approches ont été
14
proposées : l’approche comportementale (anomaly detection) et l’approche par scénarios (misuse detection) : -
Dans l’approche comportementale, une attaque est qualifiée par la mesure d’une déviation sensible du système surveillé par rapport à un comportement de référence, réputé sain et défini auparavant ;
-
Dans l’approche par scénarios, le système de détection possède une base de signatures qui modélisent les différents scénarios, c’est-à-dire les différentes attaques connues.
L’analyse consiste à rechercher l’occurrence d’un motif caractéristique d’une attaque dans le flux d’événements. L’approche par scénarios est actuellement la plus commune. Elle s’appuie sur une base de signatures d’attaque. Le système de détection consiste alors à reconnaître la présence de signatures parmi les traces d’audit fournies par les observateurs. Plusieurs techniques ont été proposées qui reposent en général sur des mécanismes de reconnaissance de motif (pattern matching). Le pattern matching possède l’avantage d’être une méthode fiable, car déterministe. Cependant, la difficulté vient de la définition des motifs. En effet, ceux-ci doivent être suffisamment précis pour pouvoir discriminer les différents types d’attaques, mais suffisamment génériques pour pouvoir détecter les différentes variantes d’un même type d’attaque. Une signature trop générique conduira à l’augmentation du nombre de faux positifs, diminuant par là même la fiabilité. La technique de détection par scénarios nécessite en outre une maintenance active du système pour mettre à jour régulièrement la base de signatures. En effet, le système ne peut détecter que des attaques connues a priori : il faut donc pouvoir réactualiser cette connaissance. Ceci implique notamment un coût de maintenance important. De plus se pose le problème du choix du langage de signatures pour lequel il n’existe pour l’instant pas de standard, même si l’on peut considérer, dans la pratique, que les signatures « à la SNORT » constituent un standard de facto. En théorie, cette approche devrait produire peu de faux positifs, car le système utilise une connaissance a priori sur les attaques. Cependant, la mise en place de signatures trop génériques conduit souvent à une présence de faux positifs. Les IDS utilisant ce type de technique restent toutefois faciles et rapides à mettre en œuvre.
15
Nous nous intéresserons dans la suite de cet article à l’approche comportementale. Notre objectif est de contourner les difficultés de l’approche par scénarios. On peut noter que les deux approches de détection ne sont pas exclusives, car un même manager peut être alimenté par des analyseurs implantant les deux approches, puis combiner les résultats à l’aide d’un mécanisme de corrélation d’alertes. Cependant, cette possibilité n’est guère utilisée dans la pratique.
3.3. Le manager Le manager est responsable de la présentation des alertes à l’opérateur (fonction de console de management). Comme expliqué précédemment, il est aussi le composant qui réalisera les fonctions de corrélation d’alertes, dans la mesure de leur disponibilité. Enfin, il pourra assurer le traitement de l’incident, par exemple au travers des fonctions suivantes : -
confinement de l’attaque, qui a pour but de limiter les effets de l’attaque ;
-
éradication de l’attaque, qui tente d’arrêter l’attaque ;
-
recouvrement, qui est l’étape de restauration du système dans un état sain ;
-
diagnostic, qui est la phase d’identification du problème, de ces causes et qui peut éventuellement être suivie d’actions contre l’attaquant (fonction de réaction).
Du fait du manque de fiabilité des systèmes de détection d’intrusions actuels, les réactions sont rarement automatisées, car elles peuvent se traduire par un déni de service en cas de faux positif.
4. Différents types d’IDS Il existe plusieurs types d’IDS, mais on peut les classer en deux familles :
Les NIDS : Network IDS, système de détection d’intrusion réseau
Les HIDS : Host IDS, système de détection d’intrusion de type hôte
Les autres IDS sont en réalité des dérivées de ces familles : les IDS hybrides, les IPS (systèmes de prévention d’intrusions).
16
4.1. Les NIDS Les NIDS sont des IDS dédiés aux réseaux. Ils comportent généralement une sonde (machine par exemple) qui « écoute » sur le segment de réseau à surveiller , un capteur et un moteur qui réalise l’analyse du trafic afin de détecter les intrusions en temps réel. Un NIDS écoute donc tout le trafic réseau, puis l’analyse et génère des alertes si des paquets semblent dangereux.
Les avantages des NIDS sont que les capteurs peuvent être bien sécurisés puisqu'ils se contentent d'observer le trafic et permettent donc une surveillance discrète du réseau, les attaques de type scans sont facilement détectées, et il est possible de filtrer le trafic.
Les NIDS sont très utilisés et remplissent un rôle indispensable, mais ils présentent néanmoins de nombreuses faiblesses. En effet, la probabilité de faux négatifs (attaques non détectées comme telles) est élevée et il est difficile de contrôler le réseau entier. De plus, ils doivent principalement fonctionner de manière crypter d'où une complication de l'analyse des paquets. Pour finir, à l'opposé des IDS basés sur l'hôte, ils ne voient pas les impacts d'une attaque. Voici quelques exemples de NIDS : NetRanger, Dragon, NFR, Snort, ISSRealSecure.
4.2. Les HIDS Un HIDS se base sur une unique machine, n’analysant cette fois plus le trafic réseau, mais l’activité se passant sur cette machine. Il analyse en temps réel les flux relatifs à une machine ainsi que les journaux (logs systèmes). Les IDS Systèmes analysent le fonctionnement ou l’état des machines sur lesquelles ils sont installés afin de détecter des anomalies ou actions suspectes, des attaques… Pour cela ils analysent les journaux systèmes, contrôlent l’accès aux appels systèmes, vérifient l’intégrité des systèmes de fichiers. Ils sont très dépendants du système sur lequel ils sont installés. Il faut donc des outils spécifiques en fonction des systèmes déployés. Ces IDS peuvent s’appuyer sur des fonctionnalités d’audit propres ou non au système d’exploitation, pour en vérifier l’intégrité, et générer des alertes.
17
Même si nous distinguons HIDS et NIDS, la différence devient de plus en plus réduite puisque les HIDS possèdent maintenant les fonctionnalités de base des NIDS. Des IDS bien connus comme ISS RealSecure se nomment aujourd'hui "IDS hôte et réseau". Dans un futur proche, la différence entre les deux systèmes deviendra de plus en plus faible (ces systèmes vont évoluer ensemble).
4.3. Les IPS Les IPS ont pour fonction principale d’empêcher toute activité suspecte détectée au sein d’un système : ils sont capables de prévenir une attaque avant qu’elle atteigne sa destination. Contrairement aux IDS, les IPS sont des outils aux fonctions « actives », qui en plus de détecter une intrusion, tentent de la bloquer. Le principe de fonctionnement d’un IPS est analogue à celui d’un IDS, ajoutant à cela l’analyse des contextes de connexion, l’automatisation d’analyse des logs et la coupure des connexions suspectes. Contrairement aux IDS classiques, aucune signature n’est utilisée pour détecter les attaques. Avant toute action, une décision en temps réel est exécutée. Si l’action est conforme à l’ensemble de règles, la permission de l’exécuter sera accordée et l’action sera exécutée. Si l’action est illégale (c’est-à-dire si le programme demande des données ou veut les changer alors que cette action ne lui est pas permise), une alarme est générée. Dans la plupart des cas, les autres détecteurs du réseau (ou une console centrale connectée à l’IPS) en seront aussi informés dans le but d’empêcher les autres ordinateurs d’ouvrir ou d’exécuter des fichiers spécifiques (si on est en réseau).
4.4. Les IDS hybrides (NIDS+HIDS) Ils sont dérivés des NIDS et HIDS. Les IDS hybrides rassemblent les caractéristiques de plusieurs IDS différents. En pratique, on ne retrouve que la combinaison de NIDS et HIDS. Ils constituent donc un outil complet et permettent de surveiller le réseau et les terminaux. Les sondes sont placées en des points stratégiques, et agissent comme NIDS/HIDS suivant leurs emplacements. Toutes ces sondes remontent alors les alertes à une machine qui va centraliser le tout, et lier les informations d’origines multiples. On en déduit alors une architecture étoilée des IDS hybrides.
18
Quand le réseau à superviser a une taille assez grande ou une structure assez complexe, il est plus convenable de déployer un IDS hybride. L’exemple le plus connu dans le monde OpenSource est Prelude.
5. Mode de fonctionnement d’un IDS Il faut distinguer deux aspects dans le fonctionnement d’un IDS : le mode de détection utilisé et la réponse apportée par l’IDS lors de la détection d’une intrusion. Il existe deux modes de détection, la détection d’anomalies et la reconnaissance de signatures. De même, deux types de réponses existent, la réponse passive et la réponse active. Il faut noter que les différents IDS présents sur le marché ne disposent pas toujours de l’ensemble des fonctionnalités présentées ici. Nous allons tout d’abord étudier les modes de détection d’un IDS, avant de présenter les réponses possibles à une attaque.
5.1.
Mode de détection
Dans un IDS, il existe deux méthodes de détection qui sont d’un côté la détection par la reconnaissance de signature et de l’autre la détection d’anomalies. Nous allons vous décrire ces deux procédures de détection.
5.1.1. La détection par reconnaissance de signature Elle se fait à travers une base de données de signatures d’attaques devant être continuellement mise à jour. Cette approche consiste à rechercher dans l’activité de l’élément surveillé les empreintes d’attaques connues. Ce type IDS ne peut détecter que les attaques dont il possède la signature. De ce fait, il nécessite des mises à jour fréquentes. Cette méthode ne permet pas de détecter les nouvelles attaques ou les variantes d’anciennes attaques dont les caractéristiques ont été modifiées.
19
5.1.2. La détection d’anomalies Elle se fait par une comparaison entre un comportement normal qui va servir de base et le comportement du système à analyser. Tout trafic déviant des caractéristiques normales est supposé malveillant. Cette méthode peut détecter de nouvelles attaques dont les caractéristiques ne correspondent pas aux caractéristiques ne correspondent pas aux caractéristiques normales. La mise en œuvre comprend toujours une phase d’apprentissage au cours de laquelle les IDS vont découvrir le fonctionnement normal des éléments surveillés. Ils sont ainsi en mesure de signaler les divergences par rapport au fonctionnement.
5.2.
Réponse active et passive
Il existe deux types de réponses, suivant les IDS utilisés. La réponse passive est disponible pour tous les IDS, la réponse active est plus ou moins implémentée.
5.2.1. Réponse passive La réponse passive d’un IDS consiste à enregistrer les intrusions détectées dans un fichier de log qui sera analysé par le responsable sécurité. Certains IDS permettent de logger l’ensemble d’une connexion identifiée comme malveillante. Ceci permet de remédier aux failles de sécurité pour empêcher les attaques enregistrées de se reproduire, mais elle n’empêche pas directement une attaque de se produire.
5.2.2. Réponse active La réponse active au contraire a pour but de stopper une attaque au moment de sa détection. Pour cela on dispose de deux techniques : la reconfiguration du firewall et l’interruption d’une connexion TCP. La reconfiguration du firewall permet de bloquer le trafic malveillant au niveau du firewall, en fermant le port utilisé ou en interdisant l’adresse de l’attaquant. Cette fonctionnalité dépend du modèle de firewall utilisé, tous les modèles ne permettant pas la reconfiguration par un IDS. De plus, cette reconfiguration ne peut se faire qu’en fonction des capacités du firewall.
20
L’IDS peut également interrompre une session établie entre un attaquant et sa machine cible, de façon à empêcher le transfert de données ou la modification du système attaqué. Pour cela l’IDS envoie un paquet TCP reset aux deux extrémités de la connexion (cible et attaquant). Un paquet TCP reset a le flag RST de positionné, ce qui indique une déconnexion de la part de l’autre extrémité de la connexion. Chaque extrémité en étant destinataire, la cible et l’attaquant pensent que l’autre extrémité s’est déconnectée et l’attaque est interrompue. Dans le cas d’une réponse active, il faut être sûr que le trafic détecté comme malveillant l’est réellement, sous peine de déconnecter des utilisateurs normaux. En général, les IDS ne réagissent pas activement à toutes les alertes. Ils ne répondent à des alertes que quand celles-ci sont positivement certifiées comme étant des attaques. L’analyse des fichiers d’alertes générés est donc une obligation pour analyser l’ensemble des attaques détectées.
6. Limite des IDS Comme tout système informatique, les IDS ont des limites. On peut en citer : -
Pollution/surcharge : Les IDS peuvent être pollués ou surchargés, par exemple par la génération d’un trafic important (le plus difficile et lourd possible à analyser). Une quantité importante d’attaques peut également être envoyée afin de surcharger les alertes de l’IDS. Des conséquences possibles de cette surcharge peuvent être la saturation de ressources (disque, CPU, mémoire), la perte de paquets, le déni de service partiel ou total, etc.
-
Consommation de ressources : outre la taille des fichiers de logs (de l’ordre du Go), la détection d’intrusion est excessivement gourmande en ressources. En effet un système NIDS doit générer des journaux de comptes rendus d’activité anormale ou douteuse sur le réseau.
-
Perte de paquets (limitation des performances) : les vitesses de transmission sont parfois telles qu’elles dépassent largement la vitesse d’écriture des disques durs, ou même la vitesse de traitement des processeurs. Il n’est donc pas rare que des paquets ne soient pas traités par l’IDS, et que certains d’entre eux soient néanmoins reçus par la machine destinataire.
-
Vulnérabilité aux dénis de service : un attaquant peut essayer de provoquer un déni de service au niveau du système de détection d’intrusion, ou pire au niveau du système d’exploitation de la machine supportant l’IDS. Une fois l’IDS désactivé (« hors service »), l’attaquant peut tenter tout ce qui lui convient.
21
Ainsi une attaque réelle furtive glissée dans ce trafic aura du mal à être identifiée si le flot d’informations
généré
est
suffisant,
et
risque
donc
de
ne
pas
être
traitée.
Tout outil permettant de générer du trafic peut être utilisé à cette fin (Exemple : SynFlooder, Smurf, Targa, Tcpreplay, Nmap, frameip).
II.
MOTIVATION ET OBJECTIF À ATTEINDRE 1. L’objectif principal
Le but système de détection d’intrusion (IDS) sont quelquefois perçus comme inutiles, comme une technologie immature ou juste un produit commercial. Essayons d’y voir un peu clair.
1.1.
Pourquoi un NIDS ?
Le but du système de détection d’intrusion est de détecter les cas où il y a des contournements de dispositif de sécurité tel que le pare-feu de l’entreprise, mais également de détecter des comportements
anormaux
à
l’intérieur
des
règles
d’accès.
Aujourd’hui, nombreux sont les administrateurs systèmes ou réseau qui n’ont pas de système de détection d’intrusion. Les tâches orientées en sécurité sont nombreuses et fastidieuses comme: -
Suivi des incidents de sécurité, de vulnérabilités et les exploits.
-
Mises à jour, les patchs OS et les applications.
-
Vérification des logs.
-
Installations des applications de monitoring spécifiques.
Par la suite, le but est de signaler ces évènements et les transformer en information utile à l’entreprise pour pouvoir corriger le problème afin qu’il ne se reproduise pas des dénis de services et des vols d’information pour collecter les traces des intrusions.
1.2.
Les critères de choix pour un IDS
Différents critères sont à prendre en compte lors du choix d’un IDS : -
La fiabilité : Les alertes générées doivent être justifiées et aucune intrusion ne doit pouvoir lui échapper.
22
-
La réactivité : Un IDS doit être capable de détecter les nouveaux types d’attaque le plus rapidement possible ; pour cela il doit rester constamment à jour. Des capacités de mises à jour automatiques sont pour ainsi dire indispensables.
-
Facilité de la mise en œuvre et adaptabilité : Un IDS doit être facile à mettre en œuvre et surtout s’adapter au contexte dans lequel il doit opérer ; il est superflu d’avoir un IDS émettant des alertes en moins de 10 secondes si les ressources nécessaires à une réaction ne sont pas disponibles pour agir dans les mêmes contraintes de temps.
-
Performance : La mise en place d’un IDS ne doit en aucun cas affecter les performances des systèmes surveillés. De plus il faut toujours avoir la certitude que l’IDS a la capacité de traiter toute l’information à sa disposition par exemple un IDS réseau doit être capable de traiter l’ensemble du flux pouvant se présenter à un instant donné sans jamais supprimer des paquets, car dans le cas contraire il devient trivial de masquer les attaques en augmentant la quantité d’information.
2. Topologie d’un IDS : Où placer un IDS ?
Figure 2: Topologie d’un IDS Source : m.univ-mlv.fr/~dr/XPOSE2004/IDS/IDSSnort.html ; www-igm.univ-mlv.fr
23
Position (1) : Sur cette position, l’IDS va pouvoir détecter l’ensemble des attaques frontales, provenant de l’extérieur, en amont du firewall. Ainsi, beaucoup d’alertes auront remonté ce qui rendra les logs difficilement consultables. Aussi Il est bon pour un Honeypot2 (pot de miel).
Position (2): Si l’IDS est placé sur la DMZ, il détectera les attaques qui n’ont pas été filtrées par le firewall et qui relèvent d’un certain niveau de compétence. Les logs ici plus clairs à consulter puisque les attaques anodines ne seront pas recensées. Position (3) : L’IDS peut ici rendre compte des attaques internes, provenant du réseau local de l’entreprise. Il peut être judicieux d’en placer à cet endroit étant donné le fait que 80 % des attaques proviennent de l’intérieur. De plus, si des trojans ont contaminé le parc informatique, ils pourront être ici facilement identifiés pour être ensuite éradiqués. Ce dernier positionnement est celui que nous avons testé pendant notre implémentation. Pourquoi avons-nous choisi de nous intéresser à la détection des intrusions qui ont réussi à entrer dans l’enceinte du réseau. Le web regorge d’activités malveillantes qui ne nous concernent pas forcément. Donc la position (3) nous parait de loin la plus adaptée. De plus les failles les plus répandues proviennent généralement de l’intérieur de l’entreprise, et non de l’extérieur.
2
Ordinateur ou un programme volontairement laissé dans un état de vulnérabilité de façon à attirer et à piéger les crackers
24
CHAPITRE II :
APPROCHE DES DIFFÉRENTES
SOLUTIONS D’IDENTIFICATION D’INTRUISION Actuellement, il existe plusieurs systèmes de détections, certains sont commercialisés, d’autres sont encore dans les laboratoires de recherche. Dans ce qui suit, nous allons décrire trois systèmes de détection d’intrusion : SNORT, BRO et PRELUDE. Il est à noter que ces outils sont distribués comme logiciels libres.
I.
SOLUTION 1 : SNORT 1. Architecture et fonctionnement
SNORT est comme nous l’avons déjà dit un Système de Détection d’Intrusion réseau en sources ouvertes, capable d’effectuer l’analyse du trafic sur un réseau en temps réel et de la journalisation de paquets sur des réseaux IP. Il peut effectuer de l’analyse de protocoles, de la recherche / correspondance de contenu et peut être utilisé pour détecter une variété d’attaques et de scannages listés dans sa base de données, telle que des débordements de tampons, des scannages de ports furtifs, des attaques CGI, des scannages SMB, des tentatives d’identification d’OS, et bien plus. SNORT utilise un ensemble de règles flexibles pour décrire le trafic qu’il doit collecter ou laisser passer, ainsi qu’une architecture modulaire de plug-ins. Il possède aussi des capacités modulaires d’alertes temps réel, incorporant des plug-ins d’alerte et de journalisation pour Sys log, de fichiers textes en ASCII, de sockets UNIX, de messages WinPopup à des clients Windows en utilisant smbclient de Samba, de base de données (MySQL / PostgreSQL / Oracle / ODBC) ou XML. SNORT a fondamentalement 3 utilités : • Sniffer le réseau comme un simple renifleur de paquets comme tcpdump. • Générer des logs comme un enregistreur de paquets (utile pour déboguer le trafic réseau, etc.).
25
• Détecter des intrusions comme un système complet de détection d’intrusion réseau. C’est un très puissant outil, il est connu comme un des meilleurs IDS sur le marché, même quand il est comparé à des IDS commerciaux. De nombreuses personnes dans une communauté active partagent leurs règles de sécurité, ce qui est très utile si l’on n’est pas un expert de la sécurité et si l’on veut des règles à jour. La compagnie SourceFire délivre très régulièrement de nouvelles règles de sécurité. Elles peuvent être téléchargées, soit gratuitement, mais malheureusement que quelques jours après leurs sorties, soit immédiatement en payant.
1.1.
Architecture
L’architecture de SNORT est modulaire et est composée de : - un noyau de base : au démarrage, ce noyau charge un ensemble de règles, compile, optimise et classe celles-ci. Durant l’exécution, le rôle principal du noyau est la capture de paquets. - Une série de pré – processeurs, ceux-ci améliorent les possibilités de SNORT en matière d’analyse et de recomposition du trafic capturé. Ils reçoivent les paquets directement capturés, éventuellement les retravaillent puis les fournissent au moteur de recherche de signatures. - Une série d’analyses est ensuite appliquée aux paquets. Ces analyses se composent principalement de comparaisons de différents champs des headers des protocoles (IP, ICMP, TCP et UDP) par rapport à des valeurs précises. - Après la détection d’intrusion, une série de « output plug-ins » permet de traiter cette intrusion de plusieurs manières : envoie vers un fichier log, envoie d’un message d’alerte vers un serveur syslog, stocker cette intrusion dans une base de données SQL. L’articulation de ces différents composants autour du moteur de détection est illustrée cidessous :
26
Figure 3: Architecture de Snort Source : Sécurité dans les réseaux Ad-Hoc avec Snort ; Rapport de BOUASLA nabil de l’université d’Avignon
1.1.1. Vie d’un paquet réseau traité par SNORT Voici les différentes étapes du traitement d’un paquet réseau depuis sa capture par le libpcap jusqu’à son envoi dans la chaîne des outputs plug-ins : La capture : Le paquet est d’abord récupéré par la libpcap. Le fonctionnement de la bibliothèque s’articule autour d’une boucle principale de capture (pcap loop) chargée d’appeler un handler spécifique pour chaque paquet reçu. Le handler mis en place par Snort est la fonction ProcessPacket (snort.c).
Le décodage : ProcessPacket incrémente le compteur général de paquets (pour les statistiques), met à jour quelques marqueurs de temps et appelle une fonction spécifique permettant de décoder les données reçues. Snort supporte les trames de type Ethernet, 802.11, Token Ring, FDDI, Cisco HDLC, SLIP, PPP, PFLog. Si on suppose que le paquet est reçu via une interface Ethernet, la fonction appelée sera DecodeEthPkt (decode.c). Le premier paramètre passé à cette fonction est un pointeur vers une structure de type Packet. Le contenu de cette structure est initialisé au début de la fonction et par la suite, toutes les sous-fonctions de décodage appelées par
27
DecodeEthPkt auront la tâche d’extraire les informations ”brutes” du paquet transmis par la libpcap et de remplir avec ces informations les champs de la structure Packet.
La détection : La fonction Preprocess appelle les différents points d’entrée de chaque préprocesseur sur le paquet courant. À l’initialisation du système, chaque préprocesseur fournit deux fonctions. La première est une fonction d’initialisation appelée au démarrage de Snort. La seconde est la fonction servant de point d’entrée au préprocesseur. Elle sera enregistrée dans une liste chaînée appelée PrepocessList au moyen d’un appel à la fonction AddFunc-ToPreprocList (plugbase.c). Le traitement commence dans la fonction fpEvalPacket (fpdetect.c). Un premier aiguillage va d’abord être fait en fonction du protocole. Le paquet est alors pris en compte par la fonction fpEvaHeaderTCP. Cette fonction joue en fait le rôle de point d’entrée de Rule Optimiser. Le but est de déterminer rapidement un ensemble de règles à tester avec le paquet. En fonction du port réservé utilisé comme port source ou destination, la fonction prmFindRuleGroupTCP détermine le groupe de règles que l’on doit utiliser, les règles de sources ou les règles génériques. On appelle ensuite la fonction fpevalHeaderSW qui constitue le cœur du système de détection. Une recherche multiple sur les critères content et unicontent est effectuée en premier. Les autres options des règles restant en course sont ensuite évaluées séquentiellement. Enfin, si une correspondance a été trouvée, le paquet est alors confié aux fonctions mises en place par les outputs plug-ins.
1.1.2. Les préprocesseurs de SNORT Les préprocesseurs permettent d’étendre les fonctionnalités de SNORT. Ils sont exécutés avant le lancement du moteur de détection et après le décodage du paquet IP. Le paquet IP peut être modifié ou analysé de plusieurs manières en utilisant le mécanisme de préprocesseur. Les préprocesseurs sont chargés et configurés avec le mot-clé preprocessor. Le format de la directive preprocessor dans les règles de SNORT est : preprocessor : . En voici quelques un :
28
- AuthFlood : Le préprocesseur AuthFlood détecte et alerte contre l'authentification des attaques de type flood, qu’un client peut impliquer en essayant de s'associer plusieurs fois avec un réseau sans fil. Il permet aussi de détecter les inondations contre les points d’accès d’un réseau Ad-hoc.
- Détecteur Portscan : Ce préprocesseur permet de : - Enregistrer le début et la fin d’un scan de ports à partir d’une seule adresse IP. - Lorsqu'un fichier de log est spécifié, ce préprocesseur journalise les IP et les ports scannés ainsi que le type du scan. - ArpSpoof : ARPspoof est un préprocesseur conçu pour détecter les attaques contre le Protocole de Résolution d'Adresses. ARP est utilisé sur des réseaux pour attribuer une adresse IP à une adresse Mac. Pour réduire le nombre d'émissions de paquets ARP sur un réseau, les O.S disposent d’un cache où stocker la configuration ARP. Quand un dispositif reçoit une réponse d'ARP, il met à jour son cache avec la nouvelle configuration d'adresse IP-À-MAC si vraiment le dispositif a envoyé la demande d'ARP, sinon le pré processeur détecte une anomalie et informe le décodeur qui remontera par la suite une alarme (niveau output plugin).
2. Les règles de SNORT Les règles de SNORT sont composées de deux parties distinctes : le header et les options. Le header permet de spécifier le type d’alerte à générer (alert, log et pass) et d’indiquer les champs de base nécessaires au filtrage : le protocole ainsi que les adresses IP et les ports sources et de destination. Les options, spécifiées entre parenthèses, permettent d’affiner l’analyse, en décomposant la signature en différentes valeurs à observer parmi certains champs du header ou parmi les données.
29
Figure 4: Composition des règles de snort Source : http://www.forum-intrusion.com/snort/snort.html
Action de la règle : alert, log, pass Protocole : tcp, udp, icmp Adresses source et destination : src, dest, any Port src / dest : any, nb port, plage de ports avec p1:pn
Opérateur de direction : -> unidirectionnel, ou bidirectionnel Syntaxe des options : -combinaison de règles avec le séparateur « ; » - séparation des mots clefs et des arguments avec « : » - mots clefs : msg, logto, minfrag, ttl, id, dsize, content, offset, depth, flags, seq, ack, itype, idecode, nocase, session.
2.1.
Fonctionnement d’une règle
Bien que le site officiel de Snort propose des règles prêtes à l'emploi et régulièrement mises à jour, il peut être intéressant de créer ses propres règles afin d'adapter au mieux Snort au réseau qu'il doit surveiller et protéger. Par convention, les nouvelles règles personnelles sont à placer dans le fichier local.rules. Une règle Snort est composée de deux parties et possède le format suivant : Header et Options. Le header permet de spécifier le type d’alerte à générer (alert, log et pass) et d’indiquer les champs de base nécessaires au filtrage : le protocole ainsi que les adresses IP et ports sources et destinations. Les options, spécifiées entre parenthèses, permettent d’affiner l’analyse, en
30
décomposant la signature en différentes valeurs à observer parmi certains champs du header ou parmi les données. Le format de la partie Header est défini de la manière suivante : action protocole adresse1 port1 direction_adresse2 port2 Le champ action peut prendre les valeurs suivantes :
alert : générer une alerte + logger le paquet
log : logger le paquet
pass : ignorer le paquet
activate : activer une règle dynamique
dynamic : définir une règle dynamique, qui est passive tant qu'elle n'est pas activée par une autre règle
drop : demander à iptables10 de bloquer le paquet, puis le logger
reject : demander à iptables de bloquer le paquet, puis le logger, et envoyer une commande TCP RST (reset) ou une réponse ICMP Host unreachable
sdrop : demander à iptables de bloquer le paquet. Ce dernier n'est pas loggé.
Le champ protocole spécifie le protocole pour lequel la règle s'applique. Les valeurs possibles sont : tcp, udp, icmp ou ip. Les champs adresse1 et adresse2 indiquent l'adresse IP source et destination du paquet. Le mot clé any permet de spécifier une adresse quelconque. Les adresses doivent être numériques, les adresses symboliques ne sont pas acceptées. Les champs port1 / port2 spécifient les numéros de port utilisés par la source et la destination. Le mot clé any permet de spécifier un port quelconque. Des noms de services peuvent être utilisés : tcp, telnet, ... De même des plages de ports peuvent être spécifiées avec le caractère. Le champ direction spécifie l'orientation du paquet. Cet opérateur peut prendre deux valeurs : -> : adresse1 vers adresse2 < > : De adresse1 vers adresse2, ou de adresse2 à adresse1 Notons qu'il n'y a pas d'opérateur IDS très difficile à détecter par un pirate
-
Langage de script puissant
-
Configuration très simple grâce à un Script interactif
-
Compatible avec les règles Snort (grâce à snort2bro)
3.2.
Inconvénients
-fichiers d'alertes pas très compréhensibles -peu d'informations dans les rapports d'alertes -documentation incomplète -aucune interface graphique
35
III.
SOLUTION 3 : PRELUDE-IDS 1. Architecture et fonctionnement
Prelude, ou Prelude-IDS, est un système de détection d’intrusion hybride composé de plusieurs plug-ins, sondes. Prelude a été conçu dans le but d’être modulaire, souple, et résistant aux attaques. Sa modularité permet notamment de lui rajouter facilement de nouveaux types de détecteurs d’intrusion, d’analyseurs de logs et d’une solution de corrélation, le tout au format et à la norme IDMEF (Intrusion Detection Message Exchange Format), bien que de nombreux autres formats de logs sont compatibles. Le format IDMEF décrit une alerte de façon objet et exhaustive. Une alerte est le message qui est émis depuis un analyseur, qui est une sonde en langage IDMEF, vers un collecteur. Le but d’IDMEF est de proposer un standard permettant d’avoir une communication hétérogène quel que soit l’environnement ou les capacités d’un analyseur donné. Ces alertes sont définies au format XML, offrant une possibilité de validation de chaque message. En général, les implémentations restent binaires, afin d’éviter les problèmes connus d’ajout d’information inutile en dehors de XML lorsque l’on envoie un message sur le réseau. IDMEF offre aussi un vocabulaire précis, qu’il est courant d’utiliser dans le domaine de la détection d’intrusions. Par exemple, une classification correspond au nom d’une alerte, un impact celui d’un niveau d’attaque. L’intérêt de Prelude est de pouvoir centraliser les alertes dans sa base de données et de les normaliser au format IDMEF, puis visualisable dans une interface web. Prelude peut intégrer : Un NIDS (Network Intrusion Detection System, par exemple Snort) Un HIDS (Host Intrusion Detection System, par exemple Ossec) Un LML (Log Monitoring Lackey, module Prelude : Prelude-LML) Un corrélateur (module Prelude : Prelude-Correlator) Une interface web (module Prelude : Prelude-Prewikka) L’application Prelude est disponible uniquement sous Linux, bien qu’il ait une offre payante (support, fonctionnalités supplémentaires…), le logiciel est gratuit.
36
1.1.
Architecture
Les capteurs sont des entités de détection capables de remonter des alertes à un manager Prelude. – Le manager (il peut y en avoir plusieurs) accepte les connexions en provenance des différents capteurs et collecte leurs alertes. Il assure les fonctions suivantes : Le logging qui permet de transformer une alerte au format Prelude en un format lisible par l’analyste. La contre-mesure qui permet à l’utilisateur de définir une réaction à une attaque. – Les agents de contre-mesure sont placés sur les machines devant opérer la réaction à une attaque (fonction en cours de développement). – Le frontend est une interface d’administration web permettant d’aider les administrateurs sécurité à analyser plus facilement les alertes et les statistiques, sachant que cette tâche ne peut être complètement automatisée à l’heure actuelle. – La communication entre les différents programmes se fait au format IDMEF. Ce format fondé sur XML est suffisamment générique pour permettre aux composants hybrides de Prelude d’émettre des alertes décrivant des événements de tous types : attaques réseau, buffer-overflow local...
2. Composants Prelude Libprelude Libprelude est une bibliothèque permettant une communication sécurisée entre différentes sondes et un serveur Prelude (Prelude-Manager). De plus, il fournit une API (Application Programming Interface) afin de permettre la génération d’alertes au format standard IDMEF (par exemple, libprelude “traduit” une alerte Ossec en IDMEF). La bibliothèque permet également d’automatiser l’enregistrement et la retransmission des alertes en cas de perte d’un des composants. LibpreludeDB La librairie LibpreludeDB permet la gestion du type et du format de la base de données utilisée pour stocker les alertes au format IDMEF. Elle offre aussi la possibilité de gérer la base de données sans utiliser du SQL, grâce à l’usage de commandes, spécialement développées pour interagir depuis un terminal Linux.
37
Prelude-Manager Prelude-Manager est le composant principal de Prelude, il joue le rôle de serveur. En effet, il réceptionne les alertes IDMEF provenant de ses sondes ou de ses composants (PreludeCorrelator). Prelude-Correlator C’est un outil de corrélation multiflux, utilisant des règles écrites en Python pour corréler les alertes IDMEF reçues par Prelude-Manager. Prelude-LML Prelude-LML est un analyseur de fichiers de logs. En agissant comme sonde auprès de PreludeManager, il collecte et analyse les informations issues de tous types d’applications émettant des évènements sous forme de journaux systèmes, de massages syslog etc. Il détecte des activités suspectes lors de ses analyses, puis génère des alertes au format IDMEF et les transmet au serveur Prelude.
3. Avantages et inconvénients 3.1.
Avantages
Bénéficiant du support des HIDS, ils sont insensibles aux problèmes rencontrés par les NIDS. Multipliant les rapports d’évènements, leurs capacités de corrélation, d’établissement d’attaques sont bien plus importantes que les systèmes n’analysant qu’un seul type d’information. D’autre part ; s’il est facile pour un individu malveillant de contourner des attaques par une sonde unique, il devient exponentiellement plus de contourner les protections quand de multiples mécanismes de protection s’additionnent.
3.2.
Inconvénients
- Base de données trop grande - Assez de faux positif - méthode complexe Plusieurs autres IDS existent comme Haystack, MIDAS et IDES. Ces IDS utilisent des techniques
différentes
dans
le
but
d’améliorer
la
capacité
de
détection.
Parmi les techniques utilisées, nous pouvons citer le data mining et l’agent mobile.
38
DEUXIÈME PARTIE
ÉTUDE ET DÉPLOIEMENT DE LA SOLUTION CHOISIE
39
CHAPITRE I : JUSTIFICATION DU CHOIX DE LA SOLUTION ET SON IMPLÉMENTATION I.
PROPOSITION DE LA SOLUTION POUR LA DÉTECTION D’INTRUSION
La solution finale que nous allons choisir est SNORT qui est l’un des plus populaires dans le monde de la détection d’intrusion. Snort a été écrit à la fin de l’année 1998 par Marty Roesch. À l’origine, le but n’était pas de faire de Snort un système de détection d’intrusions réseaux, mais simplement un sniffer de paquets dans le type de tcpdump. Snort est l’un des IDS open source les plus utilisés. Un des dispositifs qui fait que Snort est si puissant est son moteur de règles « signature- base » (basé sur la signature) et son extensibilité facile par des plug-ins et des préprocesseurs. Ces dispositifs permettent de prolonger Snort dans toutes les directions dont nous avons besoin. En conséquence, on n’est plus dépendant de n’importe qui pour nous fournir des règles quand un nouvel exploit vient à notre attention : avec une connaissance de base en TCP/IP, nous pouvons écrire nos propres règles rapidement et facilement. C’est probablement le dispositif le plus important de Snort, puisque de nouvelles attaques sont inventées tout le temps. En plus, Snort a un mécanisme de rapport très flexible qui permet d’envoyer des alertes à un administrateur ou à une base de données.
II.
MISE EN ŒUVRE
1. INSTALLATION ET CONFIGURATION DES OUTILS NÉCESSAIRES
Dans un premier temps, nous avons procédé à l’installation d’Ubuntu. Il sera nécessaire d’adjoindre quelques services à la configuration de base pour permettre le bon fonctionnement de Snort.
40
1.1.
Prérequis
Les programmes suivants sont nécessaires pour lancer SNORT :
-
Apache2 pour le serveur web
Commande : Apt-get install apache2
-
Mysql-server pour la base de données
Commande: Apt-get install mysql-server
-
PhpMyAdmin
Commande : Apt-get install phpmyadmin
-
Php5 pour le script orienté serveur
Commande: Apt-get install php5
-
Php5-mysql
Commande: Apt-get install php5-mysql
-
Php5-gd pour la librairie graphique
Commande: Apt-get install php5-gd
-
Pear pour Php extension and application repository
Commande: Apt-get install pear
41
1.2.
Dépendances nécessaires
Pour débuter, nous avons installé les outils de compilation et les dépendances de SNORT. -
Libcap0.8-dev
-flex
-build-essential
-
Libmysqlclient15-dev
-php-pear
- libapache2-mod-php5
-
mysql-client
- libnet1-dev
-libcre3-dev
-
mysql-server
-libphp-adobdb
-checkinstall
-
bison
-g++ et gcc
-snort-mysql
Commande : apt-get install de toutes les dépendances du haut.
1.3.
Téléchargement des logiciels
Nous avons créé un fichier temporaire pour les fichiers à télécharger et décompresser. Commande : cd / root mkdir snorttmp
1.3.1.
Téléchargement de SNORT
On télécharge tous les packages dont nous avons besoin pour installer SNORT. Site de SNORT : http://www.snort.org/snort-download? On télécharge la dernière version de snort : snort-2.9.5.5.tar.gz Commande: #tar –zxvf /root/snorttmp/snort-2.9.5.5.tar.gz #rm snort-2.9.5.5.tar.gz #mv snort-2.9.5.5/ snort
Maintenant, il faut télécharger les règles de SNORT. En effet SNORT utilise des règles pour détecter les intrusions. Il existe environ 1200 règles différentes. On télécharge aussi les règles de SNORT qui correspondent à la version de notre SNORT : http://www.snort.org/snort-rules/?
Commande: # cd /root/snorttmp/snort/ # tar –zxvf snortrules-snapshot-2955.tar.gz
42
# rm snortrules-snapshot-2955
1.3.2.
Téléchargement et installation de Data acquisition API
Indispensable pour les versions de SNORT après la version 2.9.0. Ce composant permet d’acquérir des paquets sur le réseau. On télécharge daq-2.0.1.tar.gz http://www.snort.org/snort-download?
Commande: #tar –zxvf /root/snorttmp/daq-2.0.1.tar.gz #rm daq-2.0.1.tar.gz #mv daq-2.0.1/ daq #cd daq #./configure #make #make install
1.3.3.
Téléchargement et installation de PCRE- Perl Compatible Regular
Expressions On télécharge PCRE : http:/ /www.pcre.org / Commande : # cd / root/snorttmp/ # tar –zxvf pcre-8.33.tar.gz # rm pcre-8.33.tar.gz # mv pcre-8.33/ pcre
# cd /root/snorttmp/pcre # ./configure # make # make install
43
1.3.4.
Téléchargement et installation de libcap
libpcap fournit l’outil de filtrage et de capture de paquets qu'utilise SNORT On télécharge libpcap et tcpdump : http://tcpdump.org/ Commande: # cd /root/snorttmp # tar –zxvf libcap-1.0.0.tar.gz # rm libcap-1.0.0.tar.gz #mv libcap-1.0.0/ libcap
# cd /root/snorttmp/libpcap # ./configure #make #make install
1.3.5.
Téléchargement et installation de Libnet
Libnet, est une bibliothèque open source. Elle permet de fabriquer et d'injecter facilement des paquets sur un réseau. http://www.libnet.google.com/files/libnet-1.12.tgz Commande: #tar zxvf /root/snorttmp/libnet-1.12.tgz #cd libnet-1.12/ # make # make install
2. Installation du logiciel SNORT On installe le logiciel SNORT : Commande: # cd /root/snorttmp/snort # ./configure –enable-dynamicplugin –with-mysql #make #make install
44
Par la suite on créer des dossiers dans /etc pour que SNORT fonctionne correctement.
Commande : # mkdir /etc/snort/,etc/snort/rules/var/log/snort # cd /root/snorttmp/snort/rules # cp* /etc/snort/rules # cd /root/snorttmp/snort/etc # cp* /etc/snort/ # cp /usr/local/lib/libpre.so.0 /usr/lib
2.1.
Configuration du fichier snort.conf.
Maintenant, nous avons édité le fichier de configuration SNORT /etc/snort/snort.conf et spécifier le réseau sur lequel l’IDS travaille.
La variable HOME_NET doit correspondre à la définition du réseau local constitué du réseau IP + masque (exemple : 192.168.1.0/24). Il faut pour cela modifier la variable HOME_NET any par HOME_NET 192.168.1.0/24 Modifier la variable EXTERNAL_NET any par EXTERNAL_NET !$HOME_NET Modifier la variable var RULE_PATE. /rules par var RULE_PATH /,etc/snort/rules.
3. Création de la base de données L’installation de SNORT nécessite la mise en place d’un serveur Mysql afin de permettre au NIDS de stocker les alertes qu’il génère, mais aussi à la console BASE ou Snort Report de se connecter et récupérer ces alertes. Ajoutons un mot de passe pour l’utilisateur root Mysql : Commande : #mysqladmin –u root password mon_mot_de_passe_root Créons la base de données Mysql et les tables pour recevoir les logs de SNORT. Commande: #mysql –u root - p>create database snort;
45
Comme il est dangereux d’accéder à la base de données, l’utilisateur root, il est nécessaire de créer un utilisateur avec des permissions sur la base de données snort uniquement : Commande: #grant all on snort.* to snort@localhost identified by ‘snort’;
Recherger les privileges MySQL : Commande : >flux privileges ; >exit ;
Nous allons utiliser le schéma de snort pour la base de données de Snort. Commande: Mysql –D snort –u root –p < /usr/share/doc/snort-mysql/create_mysql
Nous avons besoin de commenter quelques lignes pour tester les règles de Snort. Commande: # gedit /etc/snort/rules/web-misc.rules On commente les lignes 97, 98, 452 avec #. Nous devons dévier les logs de Snort dans la base de données : Output database: log , mysql, user=snort password=snort dbname=snort host= localhost port=3306 sensor_name=snort2
Toujours dans le même fichier, décommenter les lignes suivantes : Ruletype redalert { Type alert Output alert_syslog : LOG_AUTH LOG ALERT Output database: log, mysql, user=snort password dbname=snort host=localhost port=3306 sensor_name=snort2 }
46
Il est possible d’exécuter Snort sous divers modes, depuis le simple affichage à l’écran d’un trafic, au mode IDS dans lequel Snort est capable de comparer le trafic réseau à un ensemble de signatures préconfigurées appelées règles, hébergées dans un ou plusieurs fichiers. Le dernier cas est le plus couramment utilisé.
On peut à présent lancer Snort en NIDS :
Commande : # snort –u snort –c /etc/snort/snort.conf
Figure 4: Lancement de Snort
Source : Capture d’écran Snort est démarré avec l’utilisateur snort et est charger la configuration stockée dans le fichier /etc/snort/snort.conf. Pour des raisons de sécurité, il est toujours mieux de démarrer des programmes sans l’utilisateur root. Pour cela, il faut créer un nouvel utilisateur pour pouvoir lancer snort. Commande : #groupadd snort
47
#useradd –g snort snort Il faut donner les droits à cet utilisateur Commande : # chown –R snort :snort /var/log/snort # chgrp –R snort /var/log/snort # chmod –R 770 /var/log/snort
On peut lancer aussi avec la commande suivante : Commande: # snort –u snort – A full –l /var/log/snort –c /etc/snort/snort.conf
Pour information: -
A fast : mode d’alerte rapide, affiche l’alerte dans un format simple avec l’horaire, le message d’alerte, les adresses IP, les ports sources et destinations
-
A full, c’est aussi le monde d’alerte par défaut, donc si vous ne spécifiez rien ceci sera automatiquement utilisé
-
A unsock : envoie les alertes à un socket UNIX qu’un autre programme peut écouter
-
None : Arrête les alertes
Mais ceci est un peu austère. Nous pouvons donc observer les rapports de Snort sur des interfaces graphiques telles que BASE ou Snort report.
4. Installation des interfaces WEB (Monitoring) 4.1.
Interface BASE (Basic Analysis and Security Enigme)
Présentation de l’interface BASE
Basic Analysis and Security Enigme est une interface web écrite en Php, permettant la gestion des alertes générées par l’IDS Snort et les envoyées dans la base donnée. Elle permet le classement des alertes en groupe, l’affichage de diagrammes et la recherche des alertes selon des critères. Vous pouvez trouver le site web de BASE ici : http://base.secureideas.net/
48
Installation de l’ interface BASE
On crée un dossier dans /var/www/ pour pouvoir lire l’interface web par internet. Commande : #mkdir /var/www/web/ On télécharge l’interface graphique de base : http://base.secureideas.net/ Commande : # cd /var/www/web/ # tar –xzvf base-1.4.5.tar.gz # rm base-1.4.5.tar.gz #mv base-1.4.5/ /base Il faut changer les droits du dossier Base. Commande : # chmod 757 base Nous
avons
besoin
d’adodb
(Active
Data
Objects
Data
Base)
pour
BASE.
adodb est en fait une librairie d’abstraction de base de données pour PHP. On télécharge adodb : http://adodb.sourceforge.net/ Commande : # cd /var/www/web/ # tar –xvf adodb518a.tgz # rm adodb518a.tgz
Nous devons aussi decommenter des options du php.ini : Commande : # cd /etc/php5/apache2/ #gedit php.ini
Il faut modifier deux lignes du php.ini Extension=mysql.so Extension=gd.so
Configuration de l’interface BASE
49
Ouvrer votre navigateur web et sélectionner le dossier BASE :
Commande : http : //localhost/web/base Étape 1 : Vérifiez si tout est ok pour commencer l’assistant
Étape 2 : Langue et chemin pour accéder à adodb : Étape 3 : Paramètres MySQL. Étape 4 : Paramètres d’authentification de BASE. Étape 5 : Création de la base de données MySQL et des tables
Pour avoir accès aux graphiques, il faut télécharger des librairies graphiques. Commande : #apt-get install php-pear
Nous pouvons maintenant installer les trois packages requis : Image_Graph ; Image_Color et Image_Canvas. Commande : #pear install –force Image_Color # pear install –force Image_Canvas # pear install –force Image_Graph # pear install Mail # pear install Mail_Mine
50
Paramètres facultatifs de Base
Pour paramétrer l’outil BASE, éditer le fichier /var/www/web/base/base_config.php
Il y a deux paramètres utiles à activer :
1) Activation de la résolution du DNS Commande : $resolve_IP=1 ;
2) Activation des alertes colorées Si vous avez utilisé la procédure d’installation manuelle, activer la variable $colored_alerts ou si vous avez fait l’assistant, copier les lignes ci-dessous dans votre fichier base_config.php
Commande : * Cette option est utilisée pour paramétrer si BASE utilise ou non des résultats colorés * basés sur la priorité des alertes * 0 : non * 1 : oui * $colored_alerts= 1 ; // Red ; Yellow, orange, gray, white, blue
51
Figure 5: Aperçu de l’interface de BASE
Source : Capture d’écran
4.2.
Interface SnortSnarf
Présentation de l’interface Snortsnarf : SnortSnarf produit
des
statistiques
basées
sur les fichiers de log
de Snort.
Sa présentation est plus claire que celle de BASE.
Installation de l’interface Snortsnarf :
1. Installation préalable des modules Perl Times
# cd /home/ #
wget
http://cpan.mirrors.easynet.fr/authors/id/M/MU/MUIR/modules/Time-modules-
2006.0814.tar.gz # tar xzvf Time-modules-2006.0814.tar.gz # cd Time-modules-2006.0814
52
# perl Makefile.PL # make # make test # make install 2. Création d'un repertoire # mkdir -p /var/www/snortsnarf 3. Installation de SnortSnarf # cd /usr/local/src # wget http://www.snort.org/dl/contrib/data_analysis/snortsnarf/SnortSnarf-050314.1.tar.gz # tar xzvf SnortSnarf-050314.1.tar.gz # mv SnortSnarf-050314.1 /usr/local/bin/ 4. Création d'un exécuteur # cd /usr/local/bin # vim snortwebgen.sh puis y reporter les lignes suivantes : #!/bin/bash cd /usr/local/bin/SnortSnarf-050314.1/ ./snortsnarf.pl /var/log/snort/alert -d /var/www/snortsnarf Ajoutez les droits d'exécution # chmod a+x snortwebgen.sh 5. Exécution # ./snortwebgen.sh 6. Automatisation #crontab -e Ajouter la ligne 50***
/usr/local/bin/snortwebgen.sh > /dev/null 2>&1
53
Figure 6: Aperçu de l'interface de SnortSnarf
Source : Capture d’écran
III.
Tests 1. Scan de port
Un scan de port permet de récupérer des informations sur un système donné et en particulier l’état des ports. Cela peut bien évidemment nous informer sur les services tournant sur le système (serveur http, SSH...). La détection de scan de ports avec SNORT est rendue possible grâce aux préprocesseurs. Le lancement d’un scan de port sur le réseau permet de valider que le préprocesseur à bien été chargé et qu’il fonctionne.
Qu’est-ce que Nmap? Nmap est un puissant utilitaire permettant d’effectuer des scans de ports. Nmap est considéré comme une référence en la matière ceci étant bien évidemment dû à la grande variété des options de scan disponible. Cependant, il peut être utilisé pour effectuer des attaques de scan de ports. Lorsque nmap balaie un hôte, il ne se contente pas de vous signaler les ports ouverts ou fermés. Il vous indique également les ports qui sont bloqués.
54
La quantité de renseignements offerte par un balayage de ports peut en dire très long sur la configuration d'un firewall (par feu). Un port filtré dans nmap permet de déduire l'une des conclusions suivantes : Aucun paquet SYN/ACK n'a été reçu - aucun paquet RST/ACK n'a été reçu Un message ICMP de type 3 (destination inaccessible) avec un code 13 (Communication interdite par l'administrateur) a été reçu. Nmap va rassembler ces conditions par la suite et signaler ce port comme étant "filtré" ou non. Test réalisé : Notre
machine
sur
laquelle
est
installé
Snort
à
l’adresse
IP
192.168.1.1.
À partir de la machine d’adresse 192.168.1.2, on essaye de scanner notre machine en utilisant la commande nmap avec l'option -sS qui permet de faire un scan de type SCAN FIN ; nmap -sF 192.168.0.2
2. Résultat Résultat obtenu : On remarque que Snort détecte cette intrusion et enregistre dans un dossier portant l'adresse de la machine source de l'intrusion (192.168.1.1) les logs suivants : [**] ICMP PING NMAP [**] 0/23-23:27:37.895549 192.168.1.2 -> 192.168.1.1 ICMP TTL:46 TOS:0x0 ID:9937 IpLen:20 DgmLen:28 Type:8 Code:0 ID:32676 Seq:23169 ECHO =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= [**] SCAN FIN [**] 04/23-23:27:49.202929 192.168.1.2:59321 -> 192.168.1.1:1 TCP TTL:52 TOS:0x0 ID:38933 IpLen:20 DgmLen:40 *******F Seq: 0x26F2832B Ack: 0x0 Win: 0x400 TcpLen: 20 =+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+= [**] SCAN FIN [**] 04/23-23:27:41.248172 192.168.1.2:59321 -> 192.168.1.1:10 TCP TTL:42 TOS:0x0 ID:4473 IpLen:20 DgmLen:40 *******F Seq: 0x26F2832B Ack: 0x0 Win: 0xC00 TcpLen: 20
=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=+=
55
CHAPITRE II : VALORISATION DU PROJET I.
COÛT DU PROJET
La mise en place d’un système de détection d’intrusion nécessite au préalable un ordinateur avec néanmoins les caractéristiques suivantes : -1 Gb de RAM ; -40 Gb de disque dur ; -2 interfaces réseau ;
DÉSIGNATION
QUANTITÉ
PRIX
PRIX TOTAL
UNITAIRE
(FCFA)
(FCFA) -Ordinateur bureau complet
1
100 000
100 000
Carte réseau
2
5000
10 000
Câble à paire
5 mètres
200
1000
2
150
300
-Pentium 4 -1 Gb de RAM -40 Gb de Disque Dur
torsadée STP Connecteurs RJ 45 Main d’œuvre TOTAL TTC (FCFA)
150 000 261 300
TABLEAU N°1 : RECAPITULATIF DES BESOINS MATERIELS
56
Délai de réalisation : 10 jours
-
Installation et connexion du nouvel l’ordinateur au réseau local (1jr) ;
-
Installation de Snort et ses dépendances nécessaires (3jrs) ;
-
Mise en place des règles de Snort (2jrs) ;
-
Observations de Snort sur le réseau (4 jrs).
II.
IMPACT DU PROJET SUR LE RÉSEAU
La mise en place d’un IDS tel que SNORT au sein d’un réseau local offre plutôt de nombreux avantages à l’administrateur du réseau local à savoir : -
Surveillance constante du réseau ;
-
Contrôle du comportement des utilisateurs internes ;
-
Traçage des attaques subies ;
-
Une meilleure garantie de la conservation et de l’intégralité des données.
57
CONCLUSION GÉNÉRALE Au terme de notre étude nous pouvons conclure qu’en plus de la mise en place des parefeu et des systèmes d’authentification, il est de nos jours nécessaire de mettre en place un système de détection d’intrusion. Ainsi nous avons étudié les systèmes de détection d’intrusion, leurs critères de classification et les différents types que l’on peut trouver. Cette étude nous été nécessaire pour élaborer une solution adéquate que nous avons développée dans la deuxième partie de notre étude. De plus un IDS n’apporte pas une sécurité maximale. Il n’est qu’un outil pour contrôler l’activité d’un réseau et ne peut être en aucun cas le seul instrument de sécurisation d’un réseau. Il est efficace que s’il n’est bien configuré. Pour finir, nous dirons que tout ce travail a été très enrichissant techniquement et dans la méthodologie de travail, car il nous a ouvert un peu plus les portes de la sécurité informatique, et plus particulièrement sur les IDS, en particulier nous avons pris le cas de l’outil Open Source Snort qui est le plus réputé en terme d’efficacité et présente une souplesse en terme de personnalisation. En perspective, nous proposons d’améliorer les performances de notre IDS à travers l’exploitation des fichiers logs générés par Snort en alertant l’administrateur réseau à chaque tentative d’intrusion de haut niveau par un mail ou un sms.
58
WEBOGRAPHIE
[W1] -IDS wikipédia.com : “ Système de détection d'intrusion ” http://fr.wikipedia.org/wiki/Systeme_de_detection_d%27intrusion Page consultée le 11 Septembre 2013 à 08h20min. [W2] -Snort wikipédia.com: “Snort” http://fr.wikipedia.org/wiki/Snort Page consultée le 11 Septembre 2013 à 08h46min.
[W3] -Tutorial d'installation openmaniak.com : “ tutorial --> snort & Base” http://openmaniak.com/fr/snort.php http://www.forum-intrusion.com/snort/snort.html Page consultée le 13 septembre 2013 à 16h20min. [W4] -Téléchargement des paquets nécessaires http://sourceforge.net/ http://www.snort.org, Page consultée le 15 septembre 2013 à 7h33min. [W5] -Tutorial des mises à jour des règles openmaniak.com http://openmaniak.com/fr/snort_tutorial_update.php Page consultée le 15 septembre 2013 à 11h24min. [W6] -Téléchargement des mises à jour http://www.bleedingsnort.com http://www.snort.org http://www.aldeid.com/wiki/Snort:Detection_analyse:Barnyard Page consultée le 15 septembre 2013 à 22h07min.
VI
BIBLIOGRAPHIE [B1] Bruce Perens, Intrusion Detection with SNORT Advanced IDS Techniques Using SNORT Apache MySQL PHP and ACID, Open source series. Pp 33-52 [B2] Aubeuf-Hacquin.Yoann, Mise en place d’un système de détection d’intrusion sur le réseau de l’entreprise, Université François-Rabelais Tours, pp 92-122 [B3] Sourcefire, Inc., SNORT User’s Manual 2.9.3 (May 23, 2012), pp 10-12
VII
TABLES DES MATIÈRES
REMERCIEMENTS ................................................................................................................................ I AVANT-PROPOS .................................................................................................................................. II LEXIQUE.............................................................................................................................................. III SOMMAIRE ......................................................................................................................................... IV INTRODUCTION GÉNÉRALE ............................................................................................................. 1
I.
Contexte et problématique ............................................................................................. 1
II.
Justification du choix du thème ...................................................................................... 2
III.
Objectifs ..................................................................................................................... 2
IV.
Approche méthodologique de la recherche ................................................................ 2
V.
Annonce du plan............................................................................................................. 2
1ère PARTIE : ÉTUDE PRÉLIMINAIRE ET APPROCHE DES DIFFÉRENTES SOLUTIONS
CHAPITRE I : ÉTUDE PRÉLIMINAIRE .......................................................................... 4 I.
ÉNONCÉ ET APPROCHE DÉFINITIONNELLE DU THÈME .............................. 4 1.
Notions de sécurité ................................................................................................. 4 1.1.
Introduction sur la sécurité............................................................................ 4
1.2.
Mise en place d’une politique de sécurité ..................................................... 4
1.2.1. Différents aspects de la sécurité ................................................................ 5 1.2.2. Objectifs..................................................................................................... 5 1.2.3. Outils ......................................................................................................... 6 1.3.
Les attaques ................................................................................................... 7
1.3.1. Les différentes étapes d’une attaque .......................................................... 7 1.3.2. Les différents types d’attaque .................................................................... 8 2.
La détection d’intrusion en générale ...................................................................... 9 2.1.
Présentation de la détection d’intrusion ........................................................ 9
2.2.
Définitions................................................................................................... 10
VIII
2.3. 3.
4.
5.
Fonctionnalités d’un système IDS .............................................................. 11
Architecture classique d’un IDS .......................................................................... 12 3.1.
Le capteur.................................................................................................... 13
3.2.
L’analyseur ................................................................................................. 14
3.3.
Le manager.................................................................................................. 16
Différents types d’IDS ......................................................................................... 16 4.1.
Les NIDS .................................................................................................... 17
4.2.
Les HIDS .................................................................................................... 17
4.3.
Les IPS ........................................................................................................ 18
4.4.
Les IDS hybrides (NIDS+HIDS) ................................................................ 18
Mode de fonctionnement d’un IDS ...................................................................... 19 5.1.
Mode de détection ....................................................................................... 19
5.1.1. La détection par reconnaissance de signature.......................................... 19 5.1.2. La détection d’anomalies ......................................................................... 20 5.2.
Réponse active et passive............................................................................ 20
5.2.1. Réponse passive ....................................................................................... 20 5.2.2. Réponse active ......................................................................................... 20 6. II.
Limite des IDS ..................................................................................................... 21 MOTIVATION ET OBJECTIF À ATTEINDRE .................................................... 22
1.
2.
L’objectif principal ............................................................................................... 22 1.1.
Pourquoi un NIDS ? .................................................................................... 22
1.2.
Les critères de choix pour un IDS............................................................... 22
Topologie d’un IDS : Où placer un IDS ? ............................................................ 23
CHAPITRE II :
APPROCHE DES DIFFÉRENTES SOLUTIONS D’IDENTIFICATION
D’INTRUISION….. ............................................................................................................. 25 I.
SOLUTION 1 : SNORT ........................................................................................... 25 1.
Architecture et fonctionnement ............................................................................ 25
IX
1.1.
Architecture................................................................................................. 26
1.1.1. Vie d’un paquet réseau traité par SNORT ............................................... 27 1.1.2. Les préprocesseurs de SNORT ................................................................ 28 2.
Les règles de SNORT ........................................................................................... 29 2.1.
3.
II.
Fonctionnement d’une règle ....................................................................... 30
Avantages et inconvénients .................................................................................. 33 3.1.
Avantages .................................................................................................... 33
3.2.
Inconvénients .............................................................................................. 33
SOLUTIONS 2 : BRO ............................................................................................. 34 1.
Architecture et fonctionnement ............................................................................ 34 1.1.
Architecture................................................................................................. 34
2.
Le fonctionnement de Bro .................................................................................... 35
3.
Avantages et inconvénients .................................................................................. 35
III. 1.
3.1.
Avantages .................................................................................................... 35
3.2.
Inconvénients .............................................................................................. 35
SOLUTION 3 : PRELUDE-IDS .......................................................................... 36 Architecture et fonctionnement ............................................................................ 36 1.1.
Architecture................................................................................................. 37
2.
Composants Prelude ............................................................................................. 37
3.
Avantages et inconvénients .................................................................................. 38 3.1.
Avantages .................................................................................................... 38
3.2.
Inconvénients .............................................................................................. 38
2e PARTIE : ÉTUDE ET DÉPLOIEMENT DE LA SOLUTION CHOISIE CHAPITRE I :
JUSTIFICATION DU CHOIX DE LA SOLUTION ET SON
IMPLÉMENTATION .......................................................................................................... 40 I.
PROPOSITION DE LA SOLUTION POUR LA DÉTECTION D’INTRUSION.. 40
II.
MISE EN ŒUVRE................................................................................................... 40
X
1.
INSTALLATION ET CONFIGURATION DES OUTILS NÉCESSAIRES ...... 40 1.1.
Prérequis ..................................................................................................... 41
1.2.
Dépendances nécessaires ............................................................................ 42
1.3.
Téléchargement des logiciels ...................................................................... 42
1.3.1. Téléchargement de SNORT..................................................................... 42 1.3.2. Téléchargement et installation de Data acquisition API ......................... 43 1.3.3. Téléchargement et installation de PCRE- Perl Compatible Regular Expressions........................................................................................................... 43 1.3.4. Téléchargement et installation de libcap ................................................. 44 1.3.5. Téléchargement et installation de Libnet................................................. 44 2.
Installation du logiciel SNORT .................................................................. 44
2.1. Configuration du fichier snort.conf. ........................................................... 45 3.
Création de la base de données ............................................................................ 45
4.
Installation des interfaces WEB (Monitoring) ..................................................... 48
III.
4.1.
Interface BASE (Basic Analysis and Security Enigme) ............................. 48
4.2.
Interface SnortSnarf .................................................................................... 52
Tests ..................................................................................................................... 54
1.
Scan de port .......................................................................................................... 54
2.
Résultat ................................................................................................................. 55
CHAPITRE II : VALORISATION DU PROJET ............................................................. 56 I.
COÛT DU PROJET ................................................................................................. 56
II.
IMPACT DU PROJET SUR LE RÉSEAU.............................................................. 57
CONCLUSION GÉNÉRALE ............................................................................................................... 58 WEBOGRAPHIE .................................................................................................................................. VI BIBLIOGRAPHIE ............................................................................................................................... VII TABLES DES MATIÈRES ................................................................................................................VIII
XI