Cadre réglementaire et développement de l'agrivoltaïsme en France
Mise en place d’un système de détection
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. 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. 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. 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. 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. 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. 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. Avant le Firewall ou le routeur filtrant :
Firewall
SERVEUR DNS
SERVEUR FTP
Attaquant
Sonde Snort
Internet
Email: kparmel123@gmail.com
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. 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. 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. On choisit boot pour passer à l’étape suivante:
Email: kparmel123@gmail.com
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. On choisit boot pour poursuivre l’installation:
Email: kparmel123@gmail.com
22. Ici on entre l’adresse ip de notre serveur:
Email: kparmel123@gmail.com
23. On choisit no puis suivant:
Email: kparmel123@gmail.com
24. On choisit no pour passer au renseignement de la base de donnée:
Email: kparmel123@gmail.com
25. On choisit yes pour renseigner la base de donnée:
Email: kparmel123@gmail.com
26. En suite on met localhost comme le nom d’hôte du serveur de base de donnée:
Email: kparmel123@gmail.com
27. Le nom de notre base de donnée, ici snort:
Email: kparmel123@gmail.com
28. On met le nom d’utilisateur; moi je l’ai nommé snort:
Email: kparmel123@gmail.com
30. Enfin on valide les informations pour quitter:
Email: kparmel123@gmail.com
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. 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. 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. 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. 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. 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. On clique sur Create BASE AG pour voir les paramètres configurés avec succès:
Partie en rouge:
Email: kparmel123@gmail.com
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. 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. On lance notre serveur par cette commande: snort -v
Email: kparmel123@gmail.com
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
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. Lançons une requête ICMP depuis la machine cliente:
Email: kparmel123@gmail.com
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. 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. 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