Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Mise en place d’un système de détection

3 720 vues

Publié le

SECURITY ROOT#

Publié dans : Ingénierie

Mise en place d’un système de détection

  1. 1. Mise en place d’un système de détection/prévention d’intrusion (IDS/IPS) Réalisé par: Prof: Manassé Achim KPAYA M. YOUSSEF M1RSI 2014-2015 Email: kparmel123@gmail.com I INSTITUT SUPERIEUR I INFORMATIQUE
  2. 2. PLAN DU TRAVAIL INTRODUCTION OBJECTIF NOTION DE IDS/IPS LES TYPES D’IDS: CAS DE SNORT EMPLACEMENT DANS LE RESEAU PRINCIPE DE FONCTIONNEMENT INSTALLATION ET CONFIGURATION INSTALLATION DES PRÉREQUIS TEST CONCLUSION Email: kparmel123@gmail.com
  3. 3. I-INTRODUCTION Devant la complexité croissante des réseaux qui est devenu de plus en plus gigantesque et étendue, on se trouvera devant le défi de se contribuer à la recherche des solutions répondant à la question suivante : Comment protéger mon réseau contre les pirates et les malware ? Dans le cadre de ce projet, nous nous intéressons à concevoir et implémenter un système de détection d'Intrusion : Un système de détection d’intrusion (IDS) est un mécanisme écoutant le trafic réseau de manière furtive afin de repérer des activités anormales ou suspectes et permettant aussi d’avoir une action de prévention sur les risques d’intrusion. Dans le cadre de ce projet nous nous intéresserons aux outils de détection d'intrusions réseaux (IDS) plus particulièrement à snort , permettant de détecter des intrusions réseau à temps réel . Email: kparmel123@gmail.com
  4. 4. II-OBJECTIF L’objectif de notre travail est:  Etudier et analyser tous les aspects traités par un système de détection / prévention d’intrusion réseau.  Etude de cas : snort  Installation et configuration de snort  Tests de détection d’intrusion en utilisant : x  des règles prédéfinies de snort.  Tests et évaluations de performance de IDS Snort. Email: kparmel123@gmail.com
  5. 5. III-NOTION DE IDS/IPSUn système de détection d’intrusion (ou IDS : Intrusion Detection System) et prevention (IDP: Intrusion Prevention System) sont des mécanismes destinés à 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 action de prévention et d'intervention sur les risques d’intrusion. Afin de détecter les attaques que peut subir un système (réseau informatique), il est nécessaire d’avoir un logiciel spécialisé dont le rôle est de surveiller les données qui transitent sur ce système, et qui est capable de réagir si des données semblent suspectes. Pour bien gérer un système de détection d’intrusions, il est important de comprendre comment celui-ci fonctionne : Comment reconnaître/définir une intrusion? Comment une intrusion est-elle détectée par un tel système ? Quels critères différencient un flux contenant une attaque d’un flux normal ? Ces questions nous ont amené à étudier le fonctionnement interne des IDS . Email: kparmel123@gmail.com
  6. 6. IV-LES 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). Email: kparmel123@gmail.com
  7. 7. V-POSITIONNEMENT DE SNORT DANS UN RÉSEAU L’emplacement physique de la sonde SNORT sur le réseau a un impact considérable sur son efficacité. Dans le cas d’une architecture classique, composée d’un Firewall et d’une DMZ, deux positions sont généralement envisageables: Email: kparmel123@gmail.com
  8. 8. Avant le Firewall ou le routeur filtrant : Firewall SERVEUR DNS SERVEUR FTP Attaquant Sonde Snort Internet Email: kparmel123@gmail.com
  9. 9. Sur la DMZ Firewall SERVEUR DNS SERVEUR FTP Attaquant Sonde Snort Internet Email: kparmel123@gmail.com
  10. 10. VI-INSTALLATION ET CONFIGURATION VI-1-INSTALLATION DES PRÉ-REQUIS L’installation des prés-requis est souvent délicate. Car les prés-requis dépendent souvent aussi d’autres paquets à installer. Raison pour laquelle avant d’installer ces prés-requis nous allons faire une mise à jour système pour s’assurer qu’on a au moins des outils de base pour démarrer. Pour cela on ouvre un terminal et on se connecte en tant que root et on exécute les commandes suivantes : #apt-get update #apt-get upgrade Pour l’installation de certains prés-requis il est plus prudent de faire : #apt-get install nom_paquet Ainsi le paquet et ses dépendances seront installés. Il se trouve que la plus part des prés-requis à installer sont contenus dans d'autres paquets. Email: kparmel123@gmail.com
  11. 11. Installation des dépendances : #apt-get update #apt-get upgrade Pour Snort #apt-get install libpcap* #apt-get install libprelude* Pour Mysql #apt-get install mysql-server #apt-get install phpmyadmin #apt-get install libmysqlclient15-dev #apt-get install libpcre3* #apt-get install libnet1* #apt-get install libssl-dev Le serveur mysql va servir de la base de donnée pour nos différentes alertes et règles. Email: kparmel123@gmail.com
  12. 12. Pour BASE : #apt-get install adodb* #apt-get install php5* #apt-get install apache2* #apt-get install libapache2-mod-php5 #apt-get install php-pear #apt-get install php5-cli #apt-get install libphp-adodb #apt-get install php5-gd La BASE est une application développée en PHP, Qui permet de gérer l’interface graphique de snort. C'est une version améliorée de ACID nous aurons besoin donc d’installer PHP. Maintenant que toutes les dépendances sont installées, nous allons passer à l ’installation de snort et les autres serveurs. Installation de snort Pour installer snort, il suffit d’éxécuter la commande suivante: #apt-get install snort Une fois l’installer, on revient sur notre terminale pour paramétrer snort: #dpkg-reconfigure snort nous dévons voir apparaitre l’interface suivante: Email: kparmel123@gmail.com
  13. 13. On choisit boot pour passer à l’étape suivante: Email: kparmel123@gmail.com
  14. 14. On laisse l’interface par défaut et on fait suivant: Email: kparmel123@gmail.com
  15. 15. Ici avant de mettre cette adresse, on doit faire ifconfig dans notre terminal pour récupérer l’adresse ip: Email: kparmel123@gmail.com
  16. 16. On choisit no pour ne pas paramétrer le mode: Email: kparmel123@gmail.com
  17. 17. On laisse cette partie par défaut et on fait suivant: Email: kparmel123@gmail.com
  18. 18. On choisit yes si on souhaite recevoir les alertes par mail sinon on choisit no: Email: kparmel123@gmail.com
  19. 19. On entre notre e-mail: Email: kparmel123@gmail.com
  20. 20. Installation de snort-mysql Après la compilation il nous faut installer le daemon : snort-mysql . Nous allons installer snort-mysql en ligne de commande : #apt-get install snort-mysql Lors de l’installation, une interface graphique s’ouvre on fait entrer pour laisser continuer l’installation. Une fois l’installation terminée, on revient sur notre terminal pour taper: #dpkg-reconfigure snort-mysql On sera redirigé vers la fenêtre suivante: Email: kparmel123@gmail.com
  21. 21. On choisit boot pour poursuivre l’installation: Email: kparmel123@gmail.com
  22. 22. Ici on entre l’adresse ip de notre serveur: Email: kparmel123@gmail.com
  23. 23. On choisit no puis suivant: Email: kparmel123@gmail.com
  24. 24. On choisit no pour passer au renseignement de la base de donnée: Email: kparmel123@gmail.com
  25. 25. On choisit yes pour renseigner la base de donnée: Email: kparmel123@gmail.com
  26. 26. En suite on met localhost comme le nom d’hôte du serveur de base de donnée: Email: kparmel123@gmail.com
  27. 27. Le nom de notre base de donnée, ici snort: Email: kparmel123@gmail.com
  28. 28. On met le nom d’utilisateur; moi je l’ai nommé snort: Email: kparmel123@gmail.com
  29. 29. On renseigne ensuite le mot de passe: Email: kparmel123@gmail.com
  30. 30. Enfin on valide les informations pour quitter: Email: kparmel123@gmail.com
  31. 31. Configuration de snort: Nous allons découvrir snort ainsi que ses fichiers de configuration. Snort comporte plusieurs fichiers de configuration. Les plus importants sont : /etc/snort/snort.conf (fichier de configuration principal) et les fichiers .rules se trouvant dans le répertoire /etc/snort/rules/ . Editons le fichier /etc/snort/snort.conf Nous devons chercher et modifier les lignes qui suivent: var HOME_NET any: indique l'adresse de l’interface réseau qui écoute le trafic . La valeur par défaut est any . On peut personnaliser en mettant l'adresse ip de l'interface ou du réseau à protéger. var RULE_PATH /etc/snort/rules /: ici on précise le répertoire où se trouvent les fichiers .rules On doit decommenter cette ligne et le modifier: output database :alert,mysql,user=snort password=passerdbname=snort host=localhost: ici on indique à snort qu 'il faut enregistrer les événements dans une base de donnée mysql avec les paramètres ci-dessus. Le nom de la base de donnée snort, le nom d’utilisateur snort et le mot de snort. Vous pouvez choisir les noms qui vous conviennent Email: kparmel123@gmail.com
  32. 32. Création des règles Avant de configurer mysql, nous allons créer des règles qui vont permettre à notre serveur de détecter les requêtes qui viennent de l’exterieur. Pour ce faire, éditons le fichier /etc/snort/local.rules remplissons le comme suit: Cela veut dire tout trafic ICMP ou TCP venant de n’importe où vers n’importe quelle destinations entraine une alerte de type HTTP, FTP, SSH, ARP…Email: kparmel123@gmail.com
  33. 33. Configuration de MySQL Nous allons configurer MySQL pour stocker les alertes et autres événements générés par snort. Pour cela on se connecte à la base de données MySQL en tant que root : Mysql –uroot –h localhost –ppasser Et on crée la base de donné comme suit: Email: kparmel123@gmail.com
  34. 34. Une fois la base de donnée créée, nous devons l’activer en insérant les commandes de base. on se rend dans: /usr/share/doc/snort-mysql puis entre la commande suivante: Puis on doit modifier le fichier de notre acide base pour voir si la base de donnée a été prise en compte. On édite le fichier: /etc/acidbase/database.php et on apporte les modifications suivantes: Email: kparmel123@gmail.com
  35. 35. Installation et Configuration de BASE BASE est un utilitaire graphique, écrit en php , qui va nous permettre de visualiser à temps réel les alertes et autres informations que snort va «enregistrer » dans la base de donnée MySQL . Son installation est simple, il suffit de taper dans un terminal cette commande: #apt-get install acidbase. Une fois l’installation faite, on édite le fichier /etc/acidbase/database.php dont nous avons fait un peu plus haut pour vérifier s’il a pris en compte notre base de donnée. Email: kparmel123@gmail.com
  36. 36. Une fois l’installation terminée, on ouvre un navigateur puis entrer ce lien pour accéder à l’interface graphique de notre acidbase: http://localhost/acidbase Attention: Si la base de donnée n’est pas bien configurée, ça ne marchera pas. Email: kparmel123@gmail.com
  37. 37. On clique sur Create BASE AG pour voir les paramètres configurés avec succès: Partie en rouge: Email: kparmel123@gmail.com
  38. 38. À ce niveau l'application base est bien installée. Nous allons nous connecter sur base en tant que root , on peut créer aussi un autre utilisateur différent de root . Àprés connexion, voici les premières infos qui s’affichent : Email: kparmel123@gmail.com
  39. 39. VII-TEST DE FONCTIONNEMENT Après avoir installé et configuré tous les paquets nécessaires, nous allons voir maintenant comment notre système fonctionne. Pour passer au test, nous devons nous rassurer que la machine serveur est connectée à l’internet. Nous devons installer également une machine cliente qui va jouer le rôle d’attaquant. Dans mon cas, j’ai installé BacTrack. On doit lancer une requête soit ICMP soit ARP et autres depuis cette machine à l’adresse de notre serveur snort pour voir s’il va détecter les requêtes qui viendront de l’exterieur ensuite d’alerter l’administrateur. Nous allons commencer par démarrer tous nos services: Email: kparmel123@gmail.com
  40. 40. On lance notre serveur par cette commande: snort -v Email: kparmel123@gmail.com
  41. 41. Ensuite coté attaquant: on ouvrir le terminal pour entrer ces scripts: L’adresse: 192.168.134.133 c’est l’adresse ip de notre serveur snort et 192.168.134.2 c’est celle de passerelle par défaut Alors obtenu ces adresse? Nous devons repartir sur notre serveur et cliquer sur l’icone de notre connexion internet et récupérer les adresses soulignées en bleu dans la figure suivante: Email: kparmel123@gmail.com
  42. 42. Email: kparmel123@gmail.com
  43. 43. Après avoir entré les comandes ci-haut, on lance une requette ARP à notre serveur par cette commande: arpspoof –i eth0 –t 192.168.134.133 192.168.134.2. Noubliez pas, les adresses qu’on vient de rentrer sont les adresses qu’on avait récupérées sur la machine serveur. Email: kparmel123@gmail.com
  44. 44. Lançons une requête ICMP depuis la machine cliente: Email: kparmel123@gmail.com
  45. 45. Résultats analysés pas BASE pendant et après le test: Nous voyons que la base a analysé deux requettes: TCP et ICMP lors du test: Email: kparmel123@gmail.com
  46. 46. Donc snort a détecté des actions qui étaient définies comme une intrusion. Et on remarquera aussi que trop d'alertes ont été générées par snort. Dans les conditions réelles il serait difficile de gérer toutes ces alertes. Pour pallier à cela il faut choisir des règles « non sensibles » dans les fichiers .rules. Email: kparmel123@gmail.com
  47. 47. VIII-CONCLUSION Nous avons présenté dans ce chapitre un outil important pour la détection d’intrusion concernant l’outil Snort. Nous avons donnés touts les étapes d’installation et configuration de cet outil. Les systèmes de détection d’intrusion, en particuliers snort, peuvent être assimilés à de simples alarmes qui se déclenchent une fois qu’ 'ils découvrent une intrusion. Ce qui constitue une limite notoire pour l’IDSsnort. Mais cela ouvre des pistes de réflexion pour mettre en place des outils ou mécanismes “post-détection”,c’est à dire des outils à vocation « actives » (permettant par exemple de bloquer la connexion de la machine source » en cas d’intrusion. Email: kparmel123@gmail.com

×