Académique Documents
Professionnel Documents
Culture Documents
CODE: P-TRT-2
Intitulé:
Au sein de:
Hexabyte
Encadré par:
M. Nizar Ben Neji Faculté des Sciences de Bizerte
M. Rached Ben Hassine Hexabyte
Année Universitaire
2015 / 2016
Remerciements
Merci Dieu de nous avoir donner la force et le courage d’aller jusqu’au bout sans dou-
ter de nos compétences.
D’abord, nos remerciements les plus sincères à l’encadrant pédagogique M.Nizar Ben
Neji pour ses efforts et ses interventions inestimables qui nous ont bien aidé à avancer et
aller de l’avant.
Un Merci à tous nos amis et surtout l’équipe Cod4Squad qui nous ont bien fait perdre
du temps à jouer au lieu de s’occuper de notre travail.
Et bien évidemment, merci aux juris qui ont accépté d’évaluer notre travail.
A.U 2015-2016 1
Table des matières
Introduction 9
2 Supervision réseau 27
2.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2 Introduction à la supervision réseau . . . . . . . . . . . . . . . . . . . . . . 27
2.2.1 Principe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27
2.2.2 Superviser quoi ? . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.3 Objectifs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28
2.2.4 Méthodes de supervisions . . . . . . . . . . . . . . . . . . . . . . . 28
2.3 Installation et configuration de Zabbix . . . . . . . . . . . . . . . . . . . . 28
2.3.1 Installation du serveur Zabbix . . . . . . . . . . . . . . . . . . . . . 28
2.3.2 Configuration du serveur Zabbix . . . . . . . . . . . . . . . . . . . 29
2.3.3 Configuration de la base de données de Zabbix . . . . . . . . . . . . 29
2.3.4 Configuration du serveur apache2 . . . . . . . . . . . . . . . . . . . 30
2.4 Ajout d’une station . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
2.4.1 Installation d’un agent Zabbix . . . . . . . . . . . . . . . . . . . . . 32
2
TABLE DES MATIÈRES
3 Détection d’intrusion 46
3.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 46
3.2 Systèmes de détection d’intrusion . . . . . . . . . . . . . . . . . . . . . . . 46
3.2.1 Mode de fonctionnement . . . . . . . . . . . . . . . . . . . . . . . 46
3.2.2 Types des IDS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 47
3.2.2.1 Les HIDS (Host-based IDS) . . . . . . . . . . . . . . . . . 47
3.2.2.2 Les NIDS (Network-based IDS) . . . . . . . . . . . . . . 47
3.3 Installation et mise en place de Prelude-IDS . . . . . . . . . . . . . . . . . 48
3.3.1 Installation de Prelude . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3.1.1 Libprelude . . . . . . . . . . . . . . . . . . . . . . . . . . 48
3.3.1.2 LibpreludeDb . . . . . . . . . . . . . . . . . . . . . . . . . 49
3.3.1.3 Base de données Prelude-admin . . . . . . . . . . . . . . . 50
3.3.1.4 Prelude-Manager . . . . . . . . . . . . . . . . . . . . . . . 50
3.3.1.5 Prelude-Correlator . . . . . . . . . . . . . . . . . . . . . . 51
3.3.1.6 Prelude-LML . . . . . . . . . . . . . . . . . . . . . . . . . 51
3.3.1.7 Prewikka . . . . . . . . . . . . . . . . . . . . . . . . . . . 53
3.3.2 Installation des agents de surveillance . . . . . . . . . . . . . . . . . 54
3.3.2.1 Profil Prelude-Manager . . . . . . . . . . . . . . . . . . . 54
3.3.2.2 Sonde Prelude-Correlator . . . . . . . . . . . . . . . . . . 55
3.4 Optimisation de la détection d’intrusion . . . . . . . . . . . . . . . . . . . 56
3.4.1 Utilisation de Prewikka en tant que service . . . . . . . . . . . . . . 56
3.4.2 Utilisation de Prelude-manager en tant que service . . . . . . . . . 58
3.4.3 Utilisation de Prelude-lml en tant que service . . . . . . . . . . . . 58
3.4.4 Démarrage de Prelude lors du « boot » . . . . . . . . . . . . . . . . 58
3.4.5 Ajout d’une sonde HIDS : OSSEC . . . . . . . . . . . . . . . . . . . 58
3.4.6 Ajout d’une Sonde NIDS : Suricata . . . . . . . . . . . . . . . . . . 60
3.4.7 Gestion des règles de Suricata avec Oinkmaster . . . . . . . . . . . 61
3.4.8 Mise en place du HoneyPot Kippo . . . . . . . . . . . . . . . . . . . 62
3.5 Conclusion . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 63
A.U 2015-2016 3
TABLE DES MATIÈRES
4 Exploitation et tests 64
4.1 Introduction . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.2 Tests d’intrusion : Pentest . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.2.1 Méthodologies . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 64
4.2.2 Plateforme de test d’intrusion . . . . . . . . . . . . . . . . . . . . . 65
4.2.3 Simulations d’attaques . . . . . . . . . . . . . . . . . . . . . . . . . 66
4.2.4 Alertes . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69
4.3 Interpretation des statistiques . . . . . . . . . . . . . . . . . . . . . . . . . 72
4.4 Hexadef . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75
Conclusion général 77
Annexe A 80
A.U 2015-2016 4
Table des figures
5
TABLE DES FIGURES
A.U 2015-2016 6
Liste des tableaux
7
Abréviations & Acronymes
8
Introduction
A l’heure actuelle, les systèmes d’information ne cesse d’évoluer et leur utilisation de-
vient de plus en plus importante. Cependant, la complexité de la maintenance et de la
gestion de ces systèmes augmente de jour en jour et le garantie de leur sécurité est de
plus en plus difficile. Ces systèmes ont bien mérité leur place au sein des entreprises dans
lesquels ils sont devenus indispensables.
Un bon réseau est un réseau bien sécurisé. Il est donc favorable de suivre certaines
règles afin de garantir l’intégrité des données, la confidentialité, la disponibilité des ser-
vices, la non-répudiation et l’authentification des utilisateurs :
– Intégrité : Vérifier si les données n’ont pas été modifiées durant la communication
de manière intentionnelle ou fortuite.
– Confidentialité : Assurer que seules les personnes autorisées aient accès à une res-
source quelconque.
– Disponibilité : S’assurer qu’un service ou une ressource soit disponible à la demande.
– Non-répudiation : S’assurer qu’aucun des correspondants ne pourra nier les tran-
sactions qui ont eu lieu.
– Authentification : Assurer l’identité d’un utilisateur, c’est à dire garantir à chacun
des correspondants que son partenaire est bien celui qu’il croit être.
Ceci dit, garantir la sécurité d’un système informatique n’est pas évidente. C’est une tâche
compliquée et difficile à gérer. L’administrateur du système doit concevoir le réseau de
manière à prendre en compte tous les scénarios possibles.
Dans ce cadre s’inscrit notre projet de fin d’étude qui consiste à réaliser une étude
sur les solutions libres des supervisions réseaux et des systèmes de détection d’intrusions
et de les installer au sein du réseau d’Hexabyte. Ce travail a été réalisé en vue d’obtenir
le diplôme en technologies de l’informatique et de Télécommunication à la faculté des
sciences de Bizerte. Le présent rapport sera composé de quatre chapitres :
Dans le premier chapitre, l’organisme d’accueil, qui nous a accueilli durant notre pé-
riode de stage, sera présenté en rappelant les produits et les services qu’il offre. Par la
suite, nous rappellerons les problématiques qui se posent dans le réseau de l’entreprise.
Enfin, une étude comparative sera réalisée sur les systèmes de supervision et les systèmes
de détection d’intrusion.
9
LISTE DES TABLEAUX
Le troisième chapitre sera consacré à la détection des intrusions. Il aura pour objectif
de rappeler les méthodes de détection des intrusions et de définir les types des IDS. Nous
allons voir les étapes de l’installation et la configuration du système de détection d’intru-
sion choisi.
Dans le dernier chapitre, nous présenterons notre plate-forme finale. Une démons-
tration de son fonctionnement et des tests relatifs aux divers scénarios possibles seront
effectués.
A.U 2015-2016 10
Chapitre 1
1.1 Introduction
Dans ce chapitre nous présenterons en premier lieu notre organisme d’accueil Hexa-
byte et les différents composants de son réseau. En second lieu, nous présenterons le cadre
générale de notre projet suivi par la problématique rencontrée, les objectifs visés et la
solution proposée. Une étude comparative fera le sujet de la dernière partie de ce chapitre
dans laquelle les caractéristiques des systèmes de supervision et de détection d’intrusion
seront traitées.
Le siège social de la société est situé à Béja, où se trouve aussi l’essentiel de son maté-
riel d’exploitation.La société HEXABYTE a pour objectif principal de fournir des services
à valeur ajoutée de télécommunication de type internet ainsi que la conception, la pro-
duction et la commercialisation de tous logiciels, matériels et équipements informatiques.
11
CHAPITRE 1. PRÉSENTATION GÉNÉRALE DU PROJET
Le renouvèlement de ces autorisations est quasiment systématique tant que la société res-
pecte les dispositions légales et règlementaires régissant son activité.
La société Hexabyte s’est toujours distinguée par ses offres innovantes sur le marché
tunisien à travers le lancement de produits (p.ex. : tablettes PC, caméras de surveillance)
ou de services (p.ex. : streaming vidéo ) répondant aux attentes de sa clientèle.
Puis, jusqu’en août 2001, il a loué ses services à Boeing Satellites Systems où il a par-
ticipé à la conception d’un logiciel de gestion d’embauche pour le compte du département
des ressources humaines de l’entreprise, et au développement de l’interface de commande
et de télémétrie du satellite américain Spaceway.
L’activité d’HexaByte est essentiellement basée sur la vente des produits et services
suivants :
A.U 2015-2016 12
CHAPITRE 1. PRÉSENTATION GÉNÉRALE DU PROJET
A.U 2015-2016 13
CHAPITRE 1. PRÉSENTATION GÉNÉRALE DU PROJET
A.U 2015-2016 14
CHAPITRE 1. PRÉSENTATION GÉNÉRALE DU PROJET
A.U 2015-2016 15
CHAPITRE 1. PRÉSENTATION GÉNÉRALE DU PROJET
Déni de service (DOS) : Le but de cette attaque n’est pas de gagner un accès à des
données hébergées sur une machine distante, mais d’encombrer un service ou même la
totalité du réseau. Donc les ressources ne seront pas disponibles. La commande la plus
utilisée dans cette attaque est : ping .
Le firewall est la solution la plus qualifiée pour se protéger d’une telle attaque.
Écoute de réseau (Sniffing) : Il s’agit d’une attaque passive, qui permet d’intercepter
certaines informations qui circule sur un réseau local, en assemblant les trames dans
un format plus lisible. Cette attaque est difficile à détecter. Il existe des logiciels qui
permettent cela, nous en citons : “ wireshark”, “tcpdump” et “Ettercap”,
Il est recommandé d’utiliser des commutateurs afin de limiter les possibilités d’écoute.
“Social Engeneering” : Cette attaque est utilisée par des pirates qui possèdent des
compétences bien avancées. A l’aide des moyens de télécommunication usuels le “hacker”
cherche à obtenir des données confidentielles auprès du personnel de l’entreprise en visant
une tentative d’intrusion. Afin de faciliter la réalisation de cette attaque les pirates utilise
le “framework” “Social Engeneering Toolkit” (SET).
Se protéger d’une telle attaque ne se limite pas à des solutions “hardware” ou “soft-
ware”, il faut offrir une formation au personnel.
“Backdoor” : Un “ Backdoor ” est une entrée caché à une machine qui peut être utiliser
afin de contourner les politiques de sécurité. C’est une manière d’accéder à une machine
supposé être secrète. L’exemple principal, est le “ shell upload ” qui s’agit d’installer un
script malveillant souvent écrit en langage PHP(c99,r57), PERL ou Ruby afin de pouvoir
exécuter des commandes sur une machine distante et y avoir accès.
Injection SQL : C’est l’une des attaques web les plus utilisées. Il s’agit d’une technique
qui vise à modifier la requête SQL dans une application web afin d’accéder à des données
confidentielles modifier ces données ou créer un utilisateur privilégié. C’est possible d’in-
jecter le code SQL dans l’URL ou dans un formulaire. Un exemple d’un outil qui utilise
cette technique “SQLmap”, “Havij”, “SQLninja”, etc.
Pour proteger une application de ce genre d’attaque il faut bien sécurisé les formulaires
en utilisant des fonctions spécifiques tel que “ mysql_real_escape_string () ;”.
1.3.2 Problématique
La majorité des ressources informatique est installée dans le réseau que nous allons
protéger. Hexabyte utilise l’outil Nagios comme un système de supervision de réseau, sans
l’avoir configuré d’une manière avancée et personnalisée. Du coup, la supervision existante
est très limitée, peu efficace et n’apporte pas assez d’informations à propos du réseau. En
2013, L’entreprise a installé Suricata comme système de détection d’intrusion réseau. Ce
dernier est très bien connu et efficace en tant que IDS réseau mais seul il ne permet pas
A.U 2015-2016 16
CHAPITRE 1. PRÉSENTATION GÉNÉRALE DU PROJET
En décembre 2015, nous avons détecté une faille dans une application web hébergé sur
l’un des serveurs de l’entreprise, c’est dans ce contexte que nous avons proposé à Hexabyte
d’améliorer la sécurité du réseau. En effet, Si un “black hat” avait détecté cette faille il
aurait pu avoir accès à la base de données et réaliser des actions malveillantes. Il est donc
obligatoire d’améliorer la sécurité du réseau de l’entreprise.
La solution qui sera mise en place doit fournir un ensemble de mesures qui vont nous
assister à optimiser l’infrastructure réseau et les systèmes utilisés à savoir :
A.U 2015-2016 17
CHAPITRE 1. PRÉSENTATION GÉNÉRALE DU PROJET
– Langage : C/PHP
– URL : https ://www.nagios.org/downloads
Nagios est un système de supervision réseau, développé par Ethan Galstad dès 1999 et
est actuellement en sa version 4.1.1. Ce logiciel fonctionne sous linux et la plupart des
système UNIX.
– Envoi des avertissements et des alarmes par courrier électroniques ou par sms.
– Récupération des informations du réseau et des équipements.
– Surveillance des services réseaux (HTTP/ ICMP/SMTP...).
– Surveillance des ressources matérielles ( stations / équipements réseaux . . .).
– Génération des rapports de fonctionnement des services, etc.
Zabbix
– Langage : C/C++/PHP
– URL : http ://www.zabbix.com/download.php
A.U 2015-2016 18
CHAPITRE 1. PRÉSENTATION GÉNÉRALE DU PROJET
– Récolte des informations depuis les agents installés sur les machines à superviser.
– Visualisation de l’état du réseau et de ces équipements à l’aide d’une interface
graphique web.
– Création et visualisation de la cartographie du réseau.
– Découverte des serveurs et des équipements réseau d’une manière automatique, etc.
Centreon
– Langage : PHP
– URL : https ://download.centreon.com
Centreon est une application libre ( open source ), Elle est basé sur Nagios. Depuis 2012
Centreon utilise son propre moteur de collecte et gestionnaire d’événement .Il est plus
simple à installer et à configurer que Nagios et il offre une interface graphique avancé et
claire. Ces principaux fonctionnalités :
A.U 2015-2016 19
CHAPITRE 1. PRÉSENTATION GÉNÉRALE DU PROJET
Shinken
– Langage : Python
– URL : http ://www.shinken-monitoring.org/download.php
Shinken se constitue de plusieurs daemons qui ont chacun son rôle. Le maitre de ces
daemons est l’Arbiter, il lit la configuration, la découpe et l’envoie vers les autres dae-
mons. Il est aussi responsable de la disponibilité des autres daemons. Les daemons de type
pollers ont le rôle de l’ordonnanceur ils ordonnassent la supervision. Ils existe d’autres
daemons comme les Reactionners, Broker et Schedulers .
A.U 2015-2016 20
CHAPITRE 1. PRÉSENTATION GÉNÉRALE DU PROJET
Avantages Inconvénients
-Complexité de paramétrage : il
+Très bien documenté.
faut passer par la configuration
+Extensible.
textuelle.
+Fiable et robuste.
Nagios -Interface web non ergonomique
+Une large communauté.
et manque de visualisation
+Un très grand nombre de plugins
graphique.
à disposition .
-Évolution lente du logiciel.
+Une application complète.
+Très bien documenté.
-L’agent zabbix envoie par
+L’interface de supervision et de
défaut en claire les informations.
configuration sont plus claires et
-Pas facile à utiliser pour un
plus intuitive que celui de Nagios.
simple utilisateur.
+L’agent peut lancer des scripts
-Interface web compliqué et plein
afin de collecter de l’information.
Zabbix de fonctionnalités.
+Dessiner les graphe en temps réel
-
(mise à jours toute les 30secondes).
-
+Gestion des droits d’accès des
-
utilisateurs .
-
+Configuration des notifications et
-
des alértes facile à l’aide de shell
scripts.
+Interface Web très ergonomique.
-Possibilité de rencontrer des
+Une Solution complète de
Centreon problèmes de compatibilité.
supervision.
-Moins rapide que Nagios.
+Très performant.
+Compatible avec Nagios.
+Interface web ergonomique et
-Shinken utilise beaucoup de
moderne.
ressources par rapport à Nagios.
+Très performant .
-Il dispose d’une architecture
+Développé en python ce qui
compliquée.
permet la séparation des taches.
Shinken -Une installation et une
+Haute disponibilité des services.
configuration difficile et avancée
+Monitoring via : WMI ,
par rapport aux autres logiciels.
NSClient++ pour les machines
-
windows.
-
+Monitoring via SNMP, SSH,local
agent,ICMP,..
A.U 2015-2016 21
CHAPITRE 1. PRÉSENTATION GÉNÉRALE DU PROJET
Snort est un système de détection et de prévention d’intrusion open source conçu en 1997
par Marty Roesh et racheté par SourceFire. Il a le pouvoir d’interagir avec le pare-feu
pour bloquer les intrusions en jouant le rôle d’un IPS (Intrusion Prevention System) en
ajoutant des plugins dédiés spécifiques tels que Snort natif et Snort-inline. Il utilise des
règles basées sur les signatures, les protocoles et l’inspection d’anomalie. Il offre aussi la
possibilité de créer ses propres règles et plugins. C’est le NIDS le plus déployé, il est même
devenu un standard des NIDS et des IPS.
A.U 2015-2016 22
CHAPITRE 1. PRÉSENTATION GÉNÉRALE DU PROJET
Prelude IDS
Il permet de stocker les logs dans une base de données (mysql/PostgreSQL). Il est com-
patible avec Snort, Nessus et plusieurs analyseurs de logs. Il se compose de plusieurs
sous-ensembles :
– La librairie libprélude,
– La sonde réseau Prelude-nids,
– La sonde locale Prelude-lml,
– Le contrôleur Prelude-manager,
– L’interface web Prelude-php-frontend.
AlienVault OSSIM
A.U 2015-2016 23
CHAPITRE 1. PRÉSENTATION GÉNÉRALE DU PROJET
BRO IDS
Bro ids est un système de détection d’intrusion destiné aux réseaux à fort trafic. Cette
application a été lancée en 1998. Il a été conçu pour :
– Minimiser/éviter toute perte de paquet
– Minimiser/éviter tout faux positif
– Optimiser la défense de la sonde contre les attaques
– Envoyer des alertes en temps réel
– Accepter des nouvelles fonctionnalités
Bro c’est :
– Un capteur de packet
– Analyseur de trafic
– Système de détection d’intrusion réseau
– Enregistreur de logs
AlienVault USM
AlienVault[URL_N3] USM (Unified Security Management) est une solution payante pro-
posée par AlienVault. Cette plate-forme enveloppe 5 grandes tâches de sécurité réseaux :
– Détecter les intrusions
– Analyser les comportements des trafics et des services
– Scanner les vulnérabilités et les tester
– Déclencher des activités après l’incident (Alerte, gestion de logs, prévention d’un
événement.)
– Scanner et découvrir les machines qui sont connectées au réseau
A.U 2015-2016 24
CHAPITRE 1. PRÉSENTATION GÉNÉRALE DU PROJET
A.U 2015-2016 25
CHAPITRE 1. PRÉSENTATION GÉNÉRALE DU PROJET
1.5 Conclusion
Au cours de ce chapitre, nous avons présenté l’organisme d’accueil qui a adopté ce
projet. Puis un rappel du cadre général à été introduit. Pour finir, nous avons effectué
une étude comparative des solutions libres de supervision et de détection d’intrusion.
Dans le chapitre qui suit nous allons entamer la partie supervision. Dans cette dernière
une introduction à la supervision sera incluse suivi par l’installation de Zabbix.
A.U 2015-2016 26
Chapitre 2
Supervision réseau
2.1 Introduction
Dans ce chapitre, nous rappellerons en premier lieu le principe de la supervision réseau.
Par la suite, une description détaillée de l’installation de zabbix sera introduite suivi par
des configurations basiques et avancées.
La supervision réseau ne peut être réalisée qu’en utilisant une variété de logiciels ou
une combinaison de solutions “software” et “hardware”. N’importe quel réseau peut être
supervisé, que ça soit filaire, sans fil, VPN ou même WAN. Il est possible de réaliser la
supervision des machines sous n’importe quel système d’exploitation (Windows, Linux,
Cisco IOS. . .)
27
CHAPITRE 2. SUPERVISION RÉSEAU
2.2.3 Objectifs
L’objectif de la supervision se résume principalement en :
– Être réactif en envoyant une notification à l’administrateur du réseau en cas de
problème technique dans une partie du réseau.
– Être proactif en anticipant les pannes et les scénario possibles
– Viser les évènements dés leurs apparitions afin d’agir avec pertinence.
Puis copier les lignes ci-dessous dans le fichier , et taper CTRL+x pour enregistrer la
modification du fichier .
# Zabbix repos
deb http://ppa.launchpad.net/tbfr/zabbix/ubuntu precise main
deb-src http://ppa.launchpad.net/tbfr/zabbix/ubuntu precise main
A.U 2015-2016 28
CHAPITRE 2. SUPERVISION RÉSEAU
Pour que l’outil apt-get aie confiance en ces nouveaux dépôts, on exécute cette com-
mande.
En cour de l’installation nous allons être demandé de saisir le nouveau mot de passe
de l’utilisateur « root » de MySQL. Il faut bien mémoriser ce mot de passe.
# cd /usr/share/zabbix-server-mysql/
# sudo gunzip *.gz
Puis nous nous connectons à MySQL en tant que " root ".
# mysql -u root -p
A.U 2015-2016 29
CHAPITRE 2. SUPERVISION RÉSEAU
Maintenant nous sommes connectés, il faut ensuite créer un utilisateur de nom de "zab-
bix" qui correspond à la configuration que nous avons mis dans le fichier zabbix_server.conf.
Pour cela il faut exécuter les requêtes SQL ci_dessous :
Puis, nous allons donner à l’utilisateur "zabbix" le contrôle sur la base de donnée "zab-
bix".
Maintenant que nous avons crée l’utilisateur et la base de donnée, il faut importer les
fichier SQL que Zabbix a besoin pour son fonctionnement.
post_max_size = 16M
max_execution_time = 300
max_input_time = 300
date.timezone = Africa/Tunis
Puis enregistrer et fermer le fichier. Ensuite nous allons copier le fichier de la configu-
ration php de Zabbix dans le répertoire de configuration de Zabbix.
# sudo cp /usr/share/doc/zabbix-frontend-php/examples/zabbix.conf.php.
example/etc/zabbix/zabbix.conf.php
A.U 2015-2016 30
CHAPITRE 2. SUPERVISION RÉSEAU
Il faut configurer ce fichier avec les paramètres de connexion mysql qu’on a fait récem-
ment.
$DB[’DATABASE’] = ’zabbix’;
$DB[’USER’] = ’zabbix’;
$DB[’PASSWORD’] = ’MOT_DE_PASSE’;
Enregistrer et fermer le fichier. Pour rendre apache et Zabbix fonctionnent ensembles,
on doit copier l’exemple de configuration d’apache dans " /etc/apache2/conf-available/".
# sudo cp /usr/share/doc/zabbix-frontend-php/examples/apache.conf
/etc/apache2/conf- available/zabbix.conf
Pour activer la nouvelle configuration de Zabbix sous sur apache, on exécute la com-
mande suivante.
Maintenant nous allons modifier la valeur "START" de "no" à "yes" dans le fichier
/etc/default/zabbix-server pour que le service Zabbix se lance en démarrage du système.
...
START=yes
...
On lance le service " Zabbix-server ".
Si nous voulons que l’interface web de Zabbix s’exécute dans la racine au lieu de "/zab-
bix" on doit modifier la valeur "DocumentRoot" à "/usr/share/zabbix".
...
DocumentRoot /usr/share/zabbix
...
A.U 2015-2016 31
CHAPITRE 2. SUPERVISION RÉSEAU
# nano /etc/zabbix/zabbix_agentd.conf
...
Server = 127.0.0.1
...
remotecommand=1
...
Après, on aura besoin d’exécuter des commandes sur les machines agents, c’est pour-
quoi on a activer l’option "remotecommand ". L’agent maintenant est bien installé sur la
machine linux. Il faut redémarrer le service.
C:\Users\tlich1337>c:\Downloads\zabbix_agent\bin\win32\zabbix_agentd.exe
–config
C:\Downloads\zabbix_agents\conf\zabbix_agentd.win.conf --install
Après qu’on a installer le service dans la machine windows, on ouvre le fichier Zab-
bix_agentd.win.conf et on modifie les valeures suivantes :
– Server= l’adresse ip du serveur Zabbix
– ServerActive=l’adresse ip du serveur Zabbix
– Hostname=le « FQDN » de la machine windows
Nous sauvegardons la modification et on démarre le service.
D:\Users\tlich1337>D:\Downloads\zabbix_agentsbin\win32\zabbix_agentd.exe
--start
A.U 2015-2016 32
CHAPITRE 2. SUPERVISION RÉSEAU
Le service est maintenant disponible, il ne reste plus que de donner au service Zabbix-
agent le droit de passer le « firewall » si il y en a un.
Username = admin
Password = Zabbix
On clique sur l’onglet "configuration", "hosts" puis sur "Create host". On remplit le
formulaire d’ajout d’hôte comme suit :
– Hostname : Nom de la machine
– Visible name : Nom Affiché ajouter la machine dans "Linux Servers"
– Ajouter l’adresse ip de la machine
– Cocher l’option « enabled » pour activer la supervision sur cette nouvelle machine
A.U 2015-2016 33
CHAPITRE 2. SUPERVISION RÉSEAU
À ce niveau, nous avons réaliser un ensemble de scripts qui sont indispensables dans
le domaine d’administration réseau. Ci_dessous une liste de quelques scripts que nous
avons ajouté.
« Check Services Status » : un script qui permet d’afficher les états des services de la
machine sélectionné.
A.U 2015-2016 34
CHAPITRE 2. SUPERVISION RÉSEAU
« Disk :Bad Blocks » : ce script vérifie l’état des disques dure de la machine sélectionné.
En utilisant l’outil Crontab de linux, le script BadBlocks va s’exécuter toutes les 24h et
enregistrera le résultat dans un fichier texte. Quand on exécute ce script il affichera la
dernière version du fichier texte donc le dernier résultat .
« TopCpu consumers » : Ce script affiche les processus qui utilisent plus de ressources.
Il se base sur la commande ‘top’ .
A.U 2015-2016 35
CHAPITRE 2. SUPERVISION RÉSEAU
« Check SSL Expiration » : C’est une fonctionnalité très importante et peut utilisé
dans l’administration système. Ce script permet de surveiller l’expiration du certificat
SSL.
Commençons par créer un média de type email. Pour cela, il faut se rendre dans l’in-
terface web de Zabbix en accédant au menu « administration » puis « media type ».
Ensuite on clique sur « create media type » et on remplit le formulaire ce cette façon :
Le media est maintenant prêt. Il est nécessaire de créer une action Afin de déclencher
l’envoi d’email à chaque fois qu’un « trigger » se lance. On clique sur l’onglet « Confi-
guration » puis « Actions » puis sur « create Action » pour la création d’une action.
Maintenant on remplit le formulaire comme suit :
A.U 2015-2016 36
CHAPITRE 2. SUPERVISION RÉSEAU
L’alerte par email est maintenant mise en place et active. Un exemple d’email reçue
dans la figure suivante :
Appels actifs.
A.U 2015-2016 37
CHAPITRE 2. SUPERVISION RÉSEAU
2.5.4 Screen
Un « screen » est une vue composée de plusieurs graphes, champs de textes et d’autres
forme de données qui facilite la supervision d’un système informatique. Ci_dessous un
exemple sur un des screen que nous avons crée.
Pour créer un « screen » personnalisé, il faut passer par les étapes suivantes :
– Se connecter sur l’interface web de Zabbix
– Sélectionner l’onglet « Configuration » puis « Screens ».
– Cliquer sur « Create screen ».
– Donner un nom à la nouvelle vue, préciser le nombre des colonnes et des lignes.
– Puis remplir les champs par les graphes et les données qu’on veut ajouter.
Notre nouvelle vue est maintenant prête à être utilisé. Pour l’exploiter il faut aller à
l’onglet « Monitoring » puis « Screens » et choisir la vue qu’on veut à partir de la liste
affiché.
2.5.5 Maps
Une « Map » est une carte composée de plusieurs machines interconnectées. Ça per-
met de visualiser l’état de la connexion entre les machines qu’y existent et d’exécuter des
scripts sur une machine quelconque. Ci_dessous un exemple de carte que nous avons crée.
A.U 2015-2016 38
CHAPITRE 2. SUPERVISION RÉSEAU
Pour créer une « map » personnalisé il faut suivre les étapes suivantes :
– Se connecter sur l’interface web de Zabbix.
– Sélectionner l’onglet « configuration » puis « Maps ».
– Cliquer sur « create map ».
– Remplir les champs suivants comme nous le souhaitons.
– Ajouter un icône.
– Cliquer sur l’icône.
– Définir le type de l’objet que l’icône représentera(Host,Map,image. . .) dans notre
cas , une machine.
– On remplit le champ « label » par une bref description de la machine, pour ceci nous
allons utiliser des macros qui vont chercher les informations d’une façon dynamique.
Par exemple.
A.U 2015-2016 39
CHAPITRE 2. SUPERVISION RÉSEAU
{HOST.NAME}
{HOST.CONN}
(CPU: {{HOST.HOST}:system.cpu.load[percpu,avg1].last(0)} )
Afin d’améliorer améliorer la « map ». Nous allons ajouter une liaison entre deux ma-
chines. Cette liaison présentera la connexion physique ou logique entre les 2 terminaux.
Nous suivrons donc les étapes ci_dessous :
In : {zabbixServer:net.if.in[eth0].last(0)}
Out : {zabbixServer:net.if.out[eth0].last(0)}
– Choisir le type du lien ( ligne continue, ligne continue gras. . .)
– Choisir le couleur du lien (vert par défaut)
– Pour que la ligne devienne rouge si la machine n’est pas connectée, nous allons
activer un « trigger » qui va surveiller la connectivité entre les 2 machines. Dans
notre cas ce trigger est intitulé « zabbixServer : Zabbix agent on ZabbixServer is
unreachable for 5 minutes » puis nous sélectionnons la couleur rouge si le trigger
s’active.
– Cliquer sur « apply »
Notre « Map » est maintenant bien configurée. Il ne reste qu’à sauvegarder le changement.
Pour exploiter la « map » nous sélectionnons l’onglet « monitoring » puis « maps » .
A.U 2015-2016 40
CHAPITRE 2. SUPERVISION RÉSEAU
A.U 2015-2016 41
CHAPITRE 2. SUPERVISION RÉSEAU
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@hexabyte,tn
DocumentRoot /var/www/html
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/apache.crt
SSLCertificateKeyFile /etc/apache2/ssl/apache.key
<FilesMatch "\.(cgi|shtml|phtml|php)$">
SSLOptions +StdEnvVars
</FilesMatch>
<Directory /usr/lib/cgi-bin>
SSLOptions +StdEnvVars
</Directory>
BrowserMatch "MSIE [2-6]" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0
BrowserMatch "MSIE [17-9]" ssl-unclean-shutdown
</VirtualHost>
</IfModule>
Maintenant il ne reste qu’a activer le « SSL-enabled virtual host » et redémarrer le
service apache.
Le chiffrement du trafique échangé entre l’ensemble des composants est basé sur le
protocole TLS .
Il y a d’autres nouveautés offerte dans cette version, nous en citons :
– les fonctions « prévision » et « temps restant » qui utilise des algorithmes de prédic-
tion qui permettent de savoir dans combien de temps nous allons passer en dessous
du seuil critique ou de savoir où on en sera de notre espace disque dans 1 heure,
– L’utilisation du processeur par processus ou par utilisateurs,
– Amélioration de la visualisation des graphes en offrant la possibilité de zoomer sur
A.U 2015-2016 42
CHAPITRE 2. SUPERVISION RÉSEAU
les graphiques,
– L’ajout d’une fonctionnalité similaire à « Crontab » de linux, qui permet de lancer
un script ou un évènement à une heure précise. etc
Cette mise à jour est disponible à partir de Zabbix 2.2 ou à partir d’une version ultérieur.
Il faut aussi vérifier si la version de php est 5.4.x .
Avant de démarrer la mise à jour[URL_N8] il est préférable de créer un « backup » des
fichiers de configuration et de la base de donnée.
# cp /etc/zabbix/zabbix_server.conf /opt/zabbix-backup
# cp /etc/httpd/conf.d/zabbix.conf /opt/zabbix-backup
# cp /usr/share/doc/zabbix-* /opt/zabbix-backup
# sudo mysqldump -uroot -p Zabbix > Zabbixdb.sql
Afin d’effectuer la mise a jour nous allons suivre les étapes qui suivent.
.
# wget http://repo.zabbix.com/zabbix/3.0/ubuntu/pool/main/z/zabbix-release/
zabbix-release_3.0-1+trusty_all.deb
# dpkg -i Zabbix-release_3.0-1+trusty_all.deb
# sudo apt-get update
Notre serveur Zabbix est maintenant à son version 3 et prés à être utilisé. Il ne reste
que de lancer le service et d’accéder à l’interface via un navigateur.
Collecter les logs c’est très important, mais pouvoir les centraliser, les traiter et les
analyser c’est encore plus ! C’est pour cette raison que nous avons décidé de mettre un
A.U 2015-2016 43
CHAPITRE 2. SUPERVISION RÉSEAU
place un centralisateur de logs qui va s’occuper du traitement des logs de tous le réseau.
Nous avons donc choisis d’installer “GrayLog” [URL_N9].
– Recherche et statistique : Centraliser les logs dans une seul machine va nous per-
mettre d’effectuer des recherches trais précises sur l’activité des systèmes et des
utilisateurs tout en étant connecté à partir d’une seule machine.
– Détection d’intrusion : Les plus part des IDS se servent des fichiers de logs afin de
détecter des comportements suspicieux sur une réseau. Dans ce cas l’IDS aura une
source d’information de plus.
– Garantir la disponibilité des logs : Si par malheur un pirate a attaqué notre réseau et
pour éliminer ses traces, il a supprimé les fichiers logs. Dans ce cas, la centralisation
est la solution idéal pour garantir la survie des logs en envoyant des copies au serveur.
1. Tout d’abord il faut créer les logs, ils sont souvent générés par les services et les
applications.
2. Ensuite, transférer les log dans le serveur de centralisation via des agents.
3. Puis, organiser les logs dans des répertoire ( Exemple : répertoire par machine) et
les filtrer par des critères choisis.
4. Enfin, exploiter les logs : utilisation des Graphes, création des rapports et envoie
des alertes.
A.U 2015-2016 44
CHAPITRE 2. SUPERVISION RÉSEAU
2.6 Conclusion
Au cours de ce chapitre, nous avons vu une introduction au domaine de supervision ré-
seau, suivis par les étapes de l’installation, configuration et optimisation de la supervision.
L’IDS sera le sujet du prochain chapitre. Ce dernier, couvrira le principe et les diffé-
rentes caractéristiques des IDS suivi par l’installation et la configuration de la plateforme
de détection d’intrusion.
A.U 2015-2016 45
Chapitre 3
Détection d’intrusion
3.1 Introduction
Les systèmes de détection d’intrusion, ou souvent appelés IDSs, sont devenus des
composants essentiels dans les offices de sécurité et de l‘administration réseau. Cependant
beaucoup d’experts en sécurité réseaux ignorent les avantages qu’offrent ces systèmes.
Dans ce chapitre nous allons rappeler l’importance des IDSs dans un système d’infor-
mation d’une entreprise et leurs différents types. Une description détaillée des étapes de
l’installation sera par la suite introduite suivi par des configurations et des optimisations.
Un IDS peut être configuré afin de pouvoir travailler en coopération avec un firewall
qui vise à contrôler le trafic. Il ne faut pas confondre ces deux outils de sécurité. Un
firewall essaye de stopper les attaques et les accès interdits, il est souvent placé dans la
première ligne de défense. Alors que l’IDS détecte si oui ou non le réseau est attaqué.
C’est sûr que la mise en place d’un IDS va améliorer la sécurité d’un réseau mais il n’offre
pas une garantie totale de la sécurité.
46
CHAPITRE 3. DÉTECTION D’INTRUSION
Détection par signatures Cette méthode utilise les signatures des comportements
suspects les plus répandus dans le domaine des intrusions afin de prédire et détecter les
tentatives d’attaques. Prenons l’exemple d’un échec de trois tentatives d’authentification
d’un utilisateur sur une machine, il s’agit d’un cas suspect et doit être alerté afin de vérifier
si c’est bien une tentative d’intrusion ou un simple accident. Dans le cas des attaques
réseaux l’IDS vérifie l’intégrité des paquets et calculera leurs « checksums » pour les
comparer aux signatures suspectes, si ils sont compatibles l’IDS va alerter l’administrateur
de cet incident.
Le HIDS peut être sous la forme d’un programme qui est installé sur un système
d’exploitation afin d’analyser les fichiers logs ou les fichiers des résultats d’audit. Ce pro-
gramme est très efficace contre les différentes attaques connues sur les machines, il est
capable de détecter les « backdoors » et les « rootkits ». Aussi, il est capable de détecter
les modifications interdites des fichiers importants.
Exemple :
OSSEC-HIDS : Il s’agit un HIDS open-source, il est capable d’analyser les logs, vérifier
l’intégrité des fichiers, détecter les « rootkits » et envoyer des alertes en temps réels.
C’est le HIDS open-source le plus utilisé.
Au lieu de collecter les données depuis les machines, les NIDS les collectent depuis les
paquets sniffés sur le réseau. Cette surveillance des connexions entre les terminaux rend
le NIDS efficace en détection des tentatives des intrusions et des accès interdits. Il est
A.U 2015-2016 47
CHAPITRE 3. DÉTECTION D’INTRUSION
Comme tout système, le NIDS a ses propres défauts : il ne peut pas sniffer tous les
paquets si le débit du réseau est trop élevé. Aussi, il ne peut pas détecter les intrusions si
les paquets contenant les « payloads » sont très bien chiffrés.
Exemples :
Snort : C’est un NIDS Open-Source, il a été développé par « sourcefire ». C’est le père
des NIDS. Il peut aussi jouer le rôle d’un IPS (Intrusion Prevention system). Il est
le plus utilisé.
Suricata : C’est un NIDS de nouvelle génération, il est moins connu que Snort mais c’est
un jeune rival Il a été développé par « Open Information Security Foundation »
(OISF) .
3.3.1.1 Libprelude
Avant tout nous installons les pré-requises de Libprelude :libgnutls-dev, python2.7-
dev, libpcre3-dev, swig, pkg-config. Ces paquets sont installés par défaut dans le dépôt
de Ubuntu.
# cd /tmp
# wget https://www.prelude-siem.org/attachments/download/351/
libprelude-1.2.5.tar.gz
# tar -xzf libprelude-1.2.5.tar.gz
# cd libprelude-1.2.5
Avant de compiler Libprelude nous devons le configurer.
A.U 2015-2016 48
CHAPITRE 3. DÉTECTION D’INTRUSION
3.3.1.2 LibpreludeDb
Tout d’abord nous installerons le paquet de support MySQL.
# cd /tmp
# wget https://www.prelude-siem.org/attachments/download/352/
libpreludedb-1.2.5.tar.gz
# tar -xzf libpreludedb-1.2.5.tar.gz
# cd libpreludedb-1.2.5
Afin que le « linker » trouve Prelude, nous configurons la variable d’environnement
concerné comme suit.
# ./configure
A.U 2015-2016 49
CHAPITRE 3. DÉTECTION D’INTRUSION
3.3.1.4 Prelude-Manager
Afin d’activer le module IDMEF(Intrusion Detection Message Exchange Format) nous
devons installer les paquets d’XML et de support de la technique d’emballage TCP.
# cd /tmp
# wget https://www.prelude-siem.org/attachments/download/356/
prelude-manager-1.2.5.tar.gz
# tar -xzf Prelude-manager-1.2.5.tar.gz
# cd Prelude-manager-1.2.5
# ./configure
Il faut s’assurer que le support libCU est activé.
A.U 2015-2016 50
CHAPITRE 3. DÉTECTION D’INTRUSION
Il faut saisir les données de connexion dans la base de données : type (MySQL, Post-
greSQL, Oracle), host (l’adresse IP/ nom de domaine du serveur de base de données),
port (3306 par défaut pour MySQL), Name(nom de la base de données), user( nom de
l’utilisateur de la base de données) et le passe(mot de passe de l’utilisateur).
3.3.1.5 Prelude-Correlator
l’installation de Prelude-correlator se fait par l’outil apt-get.
3.3.1.6 Prelude-LML
il faut d’abord installer libicu-dev, c’est une librairie pré-requise.
A.U 2015-2016 51
CHAPITRE 3. DÉTECTION D’INTRUSION
# cd /tmp
# wget https://www.prelude-siem.org/attachments/download/354/
prelude-lml-1.2.5.tar.gz
# tar -xzf Prelude-lml-1.2.5.tar.gz
# cd Prelude-lml-1.2.5
#./configure
Il faut s’assurer que le support liblCU est bien activé :
Prelude-lml est maintenant installé avec succès, nous passons à l’ajout de règles pour
cette sonde.
# cd /tmp
# wget https://www.prelude-siem.org/attachments/download/355/
prelude-lml-rules-1.2.5.tar.gz
# tar -xzf Prelude-lml-rules-1.2.5.tar.gz
# cd Prelude-lml-rules-1.2.5
# cp -r ruleset /usr/local/etc/prelude-lml/
Il ne reste qu’à configurer Prelude-lml via son fichier de configuration.
A.U 2015-2016 52
CHAPITRE 3. DÉTECTION D’INTRUSION
Dans ce fichier, nous indiquons l’adresse IP du serveur et les fichiers log que Prelude-
lml va analyser et superviser.
3.3.1.7 Prewikka
Prewikka est l’interface web de Prelude, il permet de visualiser les évènements et les
alertes. Nous allons maintenant installer et configurer cette interface. Pour garantir le bon
fonctionnement de prewikka nous devons d’abord installer des logiciels prérequis.
# cd /tmp
# wget https://www.prelude-siem.org/attachments/download/357/
prewikka-1.2.5.tar.gz
# tar -xzf prewikka-1.2.5.tar.gz
# cd prewikka-1.2.5
Puis nous l’installons avec python 2.7 .
A.U 2015-2016 53
CHAPITRE 3. DÉTECTION D’INTRUSION
# mysql -u root -p
mysql> CREATE database prewikka;
mysql> CREATE USER ’prewikka’@’localhost’ IDENTIFIED BY
’prewikkaPassword’;
mysql> GRANT USAGE ON *.* TO ’prewikka’@’localhost’;
mysql> GRANT ALL PRIVILEGES ON prewikka.* TO ’prewikka’@’localhost’;
mysql> GRANT ALL PRIVILEGES ON prewikka.* TO ’prelude’@’localhost’;
mysql> exit;
# mysql -u prewikka -pprewikkaPassword prewikka <
/usr/local/share/prewikka/database/ mysql.sql
Nous allons modifier le fichier de configuration de prewikka avec les coordonnées de la
base de données récemment crées.
A.U 2015-2016 54
CHAPITRE 3. DÉTECTION D’INTRUSION
Sondes Prelude-LML
Pour que Prelude enregistre une sonde, il faut exécuter deux commandes en parallèle
comme ci_dessous.
TERMINAL_1
TERMINAL_2
A.U 2015-2016 55
CHAPITRE 3. DÉTECTION D’INTRUSION
# id Prelude-correlator
Dans notre cas : uid=116 & gid=126. C’est avec ces variables que nous allons pouvoir
installer correctement la sonde Prelude-correlator en suivant les étapes suivantes.
TERMINAL_1
TERMINAL_2
Il faut tout d’abord copier le code source du script dans un fichier que nous allons
nommer « prewikka » et l’enregistrer dans le répertoire /etc/init.d/ pour, enfin, lui attri-
buer le droit de l’exécution.
A.U 2015-2016 56
CHAPITRE 3. DÉTECTION D’INTRUSION
#!/bin/bash
### BEGIN INIT INFO
# Provides: prewikka
# Required-Start: $local_fs $remote_fs $network $syslog $named
# Required-Stop: $local_fs $remote_fs $network $syslog $named
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# X-Interactive: true
# Short-Description: Prewikka est l’interface officielle de Prelude-IDS
### END INIT INFO
# Variables couleurs
CSI="\033["
CEND="${CSI}0m"
-CGREEN="${CSI}1;32m"
# PID du processus
PID=$(netstat -tlnp | awk ’/:8000 */ {split($NF,a,"/"); print a[1]}’)
# Variable d’environnement PYTHONPATH
export PYTHONPATH=/usr/local/lib/python2.7/dist-packages:
/usr/local/bin/prewikkahttpd
start() {
echo -n "Démarrage de Prewikka by Hexabyte..."
/usr/local/bin/prewikka-httpd &
echo -e " ${CGREEN}[OK]${CEND}" }
stop() {
echo -n "Arrêt de Prewikka by Hexabyte..."
kill -9 $PID
echo -e " ${CGREEN}[OK]${CEND}"
}
status() {
if [[ $PID -gt 0 ]]; then
echo -e "Prewikka est actuellement en service ${CGREEN}[OK]${CEND}"
else echo "Prewikka n’est pas en service..."
fi }
case "$1" in
start
) start;;
stop)
stop ;;
restart
) stop
start ;;
status
) status ;; *)
echo "Utilisation: $0 {start|stop|restart|status}"
exit 1
;;
esac
exit 0
A.U 2015-2016 57
CHAPITRE 3. DÉTECTION D’INTRUSION
# wget https://gist.githubusercontent.com/hardware/92ffda173ed4db68be6f/
raw/89e146a5869b09f53863a13f90f146b5d76a408f/prelude-manager
# sudo chmod +x Prelude-manager
Pour lancer le service Prelude-manager nous lançons la commande suivante.
# wget https://gist.githubusercontent.com/hardware/e21731a31e03721a4633/
raw/72eb18e8da30c8972def826e35f520f5d8926f46/prelude-lml
# sudo chmod +x Prelude-lml
Pour lancer le service Prelude-lml nous lançons la commande suivante.
# cd /tmp
# wget http://www.ossec.net/files/ossec-hids-2.6.tar.gz
# tar zxvf ossec-hids-2.6.tar.gz
# cd ossec-hids-2.6/src
# make setprelude
# ./install.sh
A.U 2015-2016 58
CHAPITRE 3. DÉTECTION D’INTRUSION
Après la dernière commande nous serons amenés à saisir quelques informations comme
le montre la figure ci_dessous :
L’installation est terminée, nous passons à la configuration de la sonde via son fichier de
configuration.
Il ne reste qu’à enregistrer Ossec en tant que sonde HIDS pour Prelude, pour cela il
faut chercher l’« uid » et le « gid » de l’utilisateur « OSSEC » :
A.U 2015-2016 59
CHAPITRE 3. DÉTECTION D’INTRUSION
Comme tout enregistrement de sonde sous Prelude, nous aurons besoin d’utiliser deux
terminaux :
TERMINAL_1
# sudo Prelude-admin registration-server Prelude-manager
TERMINAL_2
# sudo Prelude-admin register OSSEC "idmef:rw" 127.0.0.1 - -uid 1001 -
-gid 1001
Nous avons terminé l’installation la sonde Ossec.
https://wiki.zentyal.org/wiki/Suricata-debian.yaml
A.U 2015-2016 60
CHAPITRE 3. DÉTECTION D’INTRUSION
Oinkmaster doit savoir la source ou il peut extraire les nouvelles règles. Elles se
trouvent ici.
http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz
Nous commentons l’URL qui existe déjà et on ajoute la nouvelle source de la façons
ci_dessous.
url = http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz
On sauvegarde le fichier.
Ensuite nous allons créer un dossier afin d’y mettre les nouvelle règles.
A.U 2015-2016 61
CHAPITRE 3. DÉTECTION D’INTRUSION
classification-file: /etc/suricata/rules/classifcation.config
reference-config-file: /etc/suricata/rules/reference.config
Pour vérifier que la nouvelle configuration, on lance cette commande.
Il est recommandé d’effectuer la mise à jour des règles fréquemment. C’est pour ça
nous avons utiliser l’outil Crontab pour lancer la mise à jour quotidiennement
Il est possible de choisir n’importe quel port, il faut qu’il soit libre. (par exemple 13125).
A.U 2015-2016 62
CHAPITRE 3. DÉTECTION D’INTRUSION
# cd/opt
# wget http://kippo.googlecode.com/files/kippo-0.8.tar.gz
# tar -zxvf kippo-0.8.tar.gz
# sudo chown kippo:kippo kippo-0.8 -Rf
Par défaut Kippo écoute sur le port 2222. Nous allons effectuer une configuration afin
que iptables redirige les flux arrivant sur le port 22 vers le port 2222.
# cd Kippo-0.8
# su kippo
# ./start.sh
Il est possible de sécuriser le service SSH en utilisant la technique PortKnocking. Pour
en savoir plus, voir l’annexe A.
3.5 Conclusion
Dans ce chapitre nous avons présenté une brève introduction à la détection d’intrusion
en rappelant ses principes et ses méthodes de fonctionnement suivi par les étapes de
l’installation et de la configuration de prelude et ses sondes.
Dans ce qui suit nous allons entamer le dernier chapitre qui sera consacré pour la
présentation de la solution finale suivis par des tests d’intrusion.
A.U 2015-2016 63
Chapitre 4
Exploitation et tests
4.1 Introduction
Dans ce présent chapitre, une brève démonstration de la solution finale sera présentée
afin de montrer comment les logiciels installés ont été exploités et tester les performances
du système de détection d’intrusion (IDS).
64
CHAPITRE 4. EXPLOITATION ET TESTS
l’exploitation des vulnérabilités sans perdre beaucoup de temps dans la phase de collecte
d’informations.
Ce que nous allons faire c’est de tester quelques méthodes d’attaques les plus connus
et voir comment l’IDS va réagir.
Dans un scénario de test que nous allons provoquer ultérieurement, une machine vir-
tuelle sera installée et ajoutée dans le réseau afin de jouer le rôle d’une machine Linux
vulnérables à un ensemble d’attaques. Nous y installerons un OS dédié pour cette tâche
particulière connu sous le nom de “ Exploitable”.
A.U 2015-2016 65
CHAPITRE 4. EXPLOITATION ET TESTS
En premier lieu, nous allons lancer une simple commande “traceroute”. il n’y a pas une
méthode plus simple que celle-ci afin de commencer le collecte des informations à propos
du réseau.
Comme le montre la figure 4.4, nous avons utiliser l’outil “Httrack”. Cet outil permet
de copier tout le contenue d’un site web ciblé dans la machine du “hacker” afin qu’il puisse
analyser, scanner l’application sans qu’il soit détecté.
A.U 2015-2016 66
CHAPITRE 4. EXPLOITATION ET TESTS
Puis nous allons Utiliser l’outil Zenmap afin de scanner le serveur. Zenmap est l’inter-
face graphique du fameux Nmap. La commande Nmap executé dans la figure 4.5 permet
de verifier l’etat de tous les ports TCP( 1-65535 ). Cet étape est trés critique, c’est la oû
le “hacker” aura une vision plus claire sur l’état de la machine ciblée et sur les services
qu’elle offre.
A.U 2015-2016 67
CHAPITRE 4. EXPLOITATION ET TESTS
Dans la figure 4.6, une liste des techniques d’attaque disponibles sur l’outil Ettercap.
À l’aide d’Ettercap nous avons simulé une attaque de type “Man in the middle”. Cette
technique consiste à effectuer un sniff de trafic entre deux terminaux choisis. Cela permet
de capturer les données et même de les modifiées.
Pour terminer, nous avons utiliser Armitage pour Scanner le serveur. Armitage est
l’interface graphique de l’outil “ Metasploit ”.
A.U 2015-2016 68
CHAPITRE 4. EXPLOITATION ET TESTS
4.2.4 Alertes
Nous allons maintenant voir les notifications et les alertes qui ont été causées par les
scénarios d’attaque cités dans la partie précedente.
Comme le montre la figure 4.9, Suricata à bien été en garde afin de détecter les attaques
web que le serveur Ubuntu à subit.
A.U 2015-2016 69
CHAPITRE 4. EXPLOITATION ET TESTS
Les alertes qui sont affichées dans la figure 4.11 ont été enclenché après un scanne fait
A.U 2015-2016 70
CHAPITRE 4. EXPLOITATION ET TESTS
par Nmap.
Dans la figure 4.12, nous pouvons voir les alertes enclenchées après une attaque effectué
à l’aide de metasploit.
Un exemple d’une fausse alerte est affiché dans la figure 4.13. Les resultats de détection
d’intrusion ne sont pas toujours fiables.
A.U 2015-2016 71
CHAPITRE 4. EXPLOITATION ET TESTS
Ci-dessous un exemple de graphe. Ce dernier affiche le taux des alertes classées par
niveau d’urgence sur un échelle temporel.
Dans ce qui suit un graphe qui représente les alertes les plus rencontrées sur un échelle
temporel.
A.U 2015-2016 72
CHAPITRE 4. EXPLOITATION ET TESTS
Les pourcentages des notifications classées par leurs descriptions sont affichées dans le
graphe qui se trouve dans la figure 4.16.
Ensuite, un graphe qui montre le taux des notification classées par leurs groupes de
référence se trouve dans la figure ci-dessous.
A.U 2015-2016 73
CHAPITRE 4. EXPLOITATION ET TESTS
La figure 4.18 présente le taux des notifications groupés par niveau d’importance.
La figure 4.18 présente les utilisateurs qui ont été ciblés en mentionnant le nombres
d’attaques qu’ils ont subis.
A.U 2015-2016 74
CHAPITRE 4. EXPLOITATION ET TESTS
Dans le figure suivante, les taux des adresses IP qui ont été derrière l’enclenchement
de l’alerte.
Nous avons aussi la possibilité de surveiller les performances des sondes connectées à
prelude via le graphe présenté dans la figure suivante.
4.4 Hexadef
Afin d’utiliser les outils que nous avons mise en place dans le réseau, l’administrateur
doit consulter plusieurs interfaces : Prewikka (interface web de prelude), Zabbix frontend
(interface web de zabbix), nessus et Graylog. Dans l’intention de rendre l’accès à ces
interfaces plus facile, nous avons développé une application web qui regroupe ces quatre
interfaces en une seule. Nous l’avons intitulé « HexaDef » ; “Hexa” comme “Hexabyte”
et “Def” comme “Defender”.
A.U 2015-2016 75
CHAPITRE 4. EXPLOITATION ET TESTS
A.U 2015-2016 76
CHAPITRE 4. EXPLOITATION ET TESTS
Conclusion général
Pour atteindre le but fixé, nous avons d’abord commencé par récolter des informations
sur le réseau de l’entreprise et sur les outils Open d’administration réseau et de détection
d’intrusions réseau. Ensuite, une étude comparative entre les nombreux outils open source
a été menée et nous a permis de faire notre choix. Nous avons en effet choisi d’installé
Zabbix en tant que logiciel de supervision principal suivi par des configurations avancées.
Pour ce qui est du choix d’une solution IDS, nous nous sommes tournés vers Prelude-
IDS et ses sondes. Nous sommes, juste après, passés à l’installation et à la configuration
de ces différentes solutions. Pour finir, Un ensemble de tests d’intrusion a été réalisé afin
de déterminer les performances de la plateforme de détection d’intrusion ; nous avons pré-
senté un ensemble des statistiques que Prelude peut générer suivi par l’application web
que nous avons commencé à développer.
En perspective, bien que notre projet ait satisfait les besoins de l’organisme d’accueil,
des améliorations vont être ajoutées pour élargir la supervision et la surveillance du réseau
et des systèmes mises en question.
A.U 2015-2016 77
Bibliographie
78
CHAPITRE 4. EXPLOITATION ET TESTS
A.U 2015-2016 79
Annexe A
Principe
Port-Knocking est une méthode qui permette une communication machine à machine
dans laquelle les informations passent à travers des ports qui apparaissent à la première
vue fermés. Pour avoir accès à un port spécifique, il faut d’abord saisir une séquence de
connexions précise. L’utilisateur doit atteindre différents ports distincts dans un ordre
bien précis afin d’ouvrir le port voulu. Les ports sont fermer par un pare-feu tant que la
séquence Knock-Port n’a pas été effectué.
Dans le cas d’un scanne des ports sur un serveur, touts les ports apparaissent fermés
bien que le service qui fonctionne sur ce port soit en actif. C’est le pare-feu qui effectue
un rejet (DROP).
Prenons l’exemple du service SSH qui écoute sur le port 22 sachant que nous l’avons
attribué la séquence de knock-port suivante : 2212 → 2213 → 2214.
Si une personne se connecte au serveur via ssh sans avoir saisi la séquence effectué, le
port 22 restera fermé et l’événement sera loggé.
80
CHAPITRE 4. EXPLOITATION ET TESTS
Knockd utilise le pare-feu Iptable. Ce dernier est disponible par défaut dans la majorité
des distribution linux.
Afin de lancer le service Knockd automatiquement au démarrage du système il faut
modifier la valeur : START_KNOCKD=1.
# nano /etc/default/knockd
A.U 2015-2016 81
CHAPITRE 4. EXPLOITATION ET TESTS
Le scénario des connexions n’a pas été respecté, ce qui résulte à l’erreur affiché dans
la figure suivante.
Dans l’exemple suivant, nous allons suivre les règles d’accès que Knockd propose.
A.U 2015-2016 82
CHAPITRE 4. EXPLOITATION ET TESTS
Comme c’est affiché dans la figure précédente la connexion s’est établie avec succès .
Remarque
Cela dit cette technique n’est pas pratique avec les services publiques tel que le web.
Par contre elle est utilisable avec les services ftp, ssh et telnet.
A.U 2015-2016 83