Vous êtes sur la page 1sur 42

ISET NABEUL – Département informatique Informatique réseaux

Introduction générale

Le présent rapport contient une description détaillée du


processus de réalisation de nôtre projet de fin d’étude qui consiste
à développer une application permettant la détection des
intrusions dans un réseau.

En fait nôtre rapport a été structuré en trois chapitres.

Le premier chapitre intitulé Etat de l’art qui comporte une


description détaillé de la future application réalisée ainsi que son
cadre.

Nous avons réservé le second chapitre pour détailler l’étude


conceptuelle.

Dans le troisième chapitre nous avons donné une


présentation assez détaillée des modules réalisés dans le cadre de
notre projet.

Projet de fin d’études 1


ISET NABEUL – Département informatique Informatique réseaux

Chapitre 1

Etat de l’art

Projet de fin d’études 2


ISET NABEUL – Département informatique Informatique réseaux

I. Problématique

Les systèmes d’information sont aujourd’hui de plus en plus ouverts sur


Internet. Cette ouverture, a priori bénéfique, pose néanmoins un problème
majeur : il en découle un nombre croissant d’attaques. La mise en place d’une
politique de sécurité autour de ces systèmes est donc primordiale.

Outre la mise en place de pare-feux et de systèmes d’authentification de


plus en plus sécurisés, il est nécessaire, pour compléter cette politique de sécurité,
d’avoir des outils de surveillance pour auditer le système d’information et détecter
d’éventuelles intrusions.

En effet de plus en plus d’entreprises subissent des attaques qui peuvent


entraîner des pertes conséquentes. 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 système de détection d’intrusion.

Afin de détecter les attaques que peut subir un système, il est nécessaire
d’avoir un logiciel spécialisé dont le rôle serait de surveiller les données qui
transitent sur ce système, et qui serait capable de réagir si des données semblent
suspectent. Plus communément appelé IDS (Intrusion Detection Systems), les
systèmes de détection d’intrusions conviennent parfaitement pour réaliser cette
tâche.

Projet de fin d’études 3


ISET NABEUL – Département informatique Informatique réseaux

II. Présentation du projet


Notre projet intitulé « Développement d’une solution de détection
d’intrusion » consiste à détecter toute tentative d’attaque réseau grâce à un
système de détection d’intrusion.

Notre future application permettra de :

 Analyser les paquets qui transitent dans le réseau


 Envoyer un SMS à l’administrateur pour notifier une intrusion
 Journaliser les attaques
 Notifier les alertes dans une console de management

En fait notre application peut tourner sous trois modes :

1) Renifleur réseau (Sniffer)

Dans ce mode, notre application lit les paquets circulant sur le réseau et les
affiches d’une façon continue sur l’écran.

2) Packet Logger

Dans ce mode, notre application enregistre les paquets capturés sur le


réseau dans des fichiers organisés par type de protocole.

3) Détecteur d’intrusion

Dans ce mode, l’IDS analyse le trafic réseau, compare ce trafic avec des
signatures d’attaques défini dans une base de données.

Lors de détection d’une intrusion, l’administrateur sera notifié par SMS et


par la console de management au même temps.

Projet de fin d’études 4


ISET NABEUL – Département informatique Informatique réseaux

III. Cadre du projet

Le sujet qui nous a été proposé consiste à développer un système de


détection d’intrusion réseau, au profil de l’agence nationale de sécurité
informatique (ANSI), qui est lancé en 1990 comme "Unité de gestion par Objectifs
pour la réalisation du développement de la sécurité informatique" au sein du
secrétariat d'état en informatique, dont le rôle était de suivre de prés les derniers
développements en matière de sécurité Informatique et de veiller à l'amélioration
de la sécurité des applications et infrastructures nationales critiques et qui a été
crée ensuite comme une entreprise publique à caractère non administratif dotée
de la personnalité morale et de l’autonomie financière qui a pour objectif
d’effectuer un contrôle générale des systèmes informatiques et des réseaux
relevant des divers organismes publics et privés.

L'agence effectue un contrôle général des systèmes informatiques et des


réseaux relevant des divers organismes publics et privés, elle est chargée des
missions suivantes:

 Veiller à l'exécution des orientations nationales et de la stratégie générale


en matière de sécurité des systèmes informatiques et des réseaux

 Suivre l'exécution des plans et des programmes relatifs à la sécurité


informatique dans le secteur public à l'exception des applications
particulières à la défense et à la sécurité nationale et assurer la coordination
entre les intervenants dans ce domaine

 Assurer la veille technologique dans le domaine de la sécurité informatique

 Etablir des normes spécifiques à la sécurité informatique et élaborer des


guides techniques en l'objet et procéder à leur publication

 Veiller à l'exécution des réglementations relatives à l'obligation de l'audit


périodique de la sécurité des systèmes informatiques et des réseaux

Projet de fin d’études 5


ISET NABEUL – Département informatique Informatique réseaux

IV. Etude théorique


a) Les différents types d’attaques

L’informatique étant un domaine très vaste, le nombre de vulnérabilités


présentes sur un système peut donc être important. Ainsi, les attaques visant ces
failles peuvent être à la fois très variées et très dangereuses.

1) Les attaques réseaux

Ce type d’attaque se base principalement sur des failles liées aux protocoles
ou à leur implémentation.

i. Les techniques de scan

Les scans de ports ne sont pas des attaques à proprement parler. Le but des
scans est de déterminer quels sont les ports ouverts, et donc en déduire les
services qui sont exécutés sur la machine cible.

ii. IP Spoofing

Le but est de se faire passer pour une autre machine en truquant les
paquets IP. Cette technique peut être utile dans le cas d’authentifications basées
sur adresse IP.

iii. ARP Spoofing

Cette technique permet de rediriger le trafic d’une machine vers une autre.
Grâce à cette redirection, une personne mal intentionnée peut se faire passer pour
une autre. De plus, le pirate peut rerouter les paquets qu’il reçoit vers le véritable
destinataire, ainsi l’utilisateur usurpé ne rendra compte de rien.

iv. DNS Spoofing

Le but de cette attaque est de fournir de fausses réponses aux requêtes


DNS, c'est-à-dire indiquer une fausse adresse IP pour un nom de domaine.

v. Fragments attacks

Cette technique permet de passer outre les protections des équipements de


filtrage IP.

Projet de fin d’études 6


ISET NABEUL – Département informatique Informatique réseaux

vi. TCP Session Hijacking

Le but de cette attaque est de rediriger un flux TCP afin de pouvoir outre
passer une protection par mot de passe.

2) Les attaques applicatives

Les attaques applicatives se basent sur des failles dans les programmes
utilisés, ou encore des erreurs de configuration.

i. Les problèmes de configuration

Il est rare que les administrateurs réseaux configurent correctement un


programme, ils se contentent d’utiliser les configurations par défaut. Celles-ci sont
souvent non sécurisées afin de faciliter l’exploitation du logiciel.

ii. Les bugs

Liés à un problème dans le code source, ils peuvent amener à l’exploitation


de failles. On ne peut rien faire contre ce type de problèmes, si ce n’est attendre
un correctif de la part du développeur.

iii. Les buffer overflows

Issus d’une erreur de programmation, ils permettent l’exploitation d’un


shellcode à distance. Ce dernier permettra à une personne mal intentionnée
d’exécuter des commandes sur le système distant, pouvant aller jusqu’à sa
destruction.

iv. Les scripts

Ils s’exécutent sur un serveur et renvoie un résultat au client.

v. Les injections SQL

Le but des injections SQL est d’injecter du code SQL dans une requête de
base de données. Ainsi, il est possible de récupérer des informations se trouvant
dans la base ou encore détruire des données.

vi. Man in the middle

Cette attaque permet de détourner le trafic entre deux stations. Totalement


transparente pour le client, le pirate joue le rôle de proxy. Il accédera ainsi à toutes
les communications et pourra en obtenir les informations sans que l’utilisateur
s’en rende compte.

Projet de fin d’études 7


ISET NABEUL – Département informatique Informatique réseaux

b) Les différents types de systèmes de détection d’intrusion

Un système de détection d’intrusion est un ensemble de composants


logiciels et matériels dont la fonction principale est de détecter et analyser toute
tentative d’effraction.

Il existe trois grandes familles distinctes d’IDS :

 Les systèmes de détection d’intrusions réseau « NIDS » (Network Based


Intrusion Detection System), qui surveillent l'état de la sécurité au niveau du
réseau.
 Les systèmes de détection d’intrusions de type hôte « HIDS » (Host Based
Intrusion Detection System), qui surveillent l'état de la sécurité au niveau
des hôtes.
 Les systèmes de détection d’intrusions hybrides, qui utilisent les NIDS et
HIDS pour avoir des alertes plus pertinentes.

1) Les méthodes de détection d’intrusions

Les méthodes de détection d'intrusions utilisées à l'heure actuelle reposent


essentiellement sur l'observation d'événements et leur analyse. La collecte
d'informations constitue donc la première étape dans tout système de détection
d'intrusions.

Il s'agit d'une part des informations fournies par le journal système, les
journaux propres à certaines applications comme les serveurs de courrier
électronique, mais aussi de données provenant de sondes installées par les outils
de détection eux-mêmes.

Le rôle des outils de détection d'intrusions consiste alors à exploiter cette


masse d'informations, appelée audit, de manière à y détecter des événements
signalant potentiellement une intrusion.

Deux approches ont été proposées à ce jour, l'approche comportementale


et l'approche par scénario. La première se base sur l'hypothèse que l’on peut
définir un comportement normal de l'utilisateur et que toute déviation par rapport
à celui-ci est potentiellement suspecte. La seconde s'appuie sur la connaissance
des techniques employées par les attaquants : on en tire des scénarios d'attaque
et on recherche dans les traces d'audit leur éventuelle survenue.

Projet de fin d’études 8


ISET NABEUL – Département informatique Informatique réseaux

i) L’approche comportementale

La détection d'anomalies consiste à définir, dans une première phase, un


certain comportement du système, des utilisateurs et des applications. Considéré
comme normal. Dans une seconde phase, on observe l'entité ainsi modélisée et
tout écart par rapport au comportement de référence est signalé comme étant
suspect.

Cette approche recouvre en fait deux problèmes distincts : la définition du


profil d'une part, la spécification des critères permettant d'évaluer le
comportement observé par rapport à ce profil d'autre part.

Le principal investissement lors de la mise en œuvre d'un détecteur


d'anomalies est la construction du profil. Cette étape est délicate, car le profil doit
refléter à la fois une certaine politique de sécurité (par exemple, il ne doit pas être
possible de déclencher un «reboot» du système via une simple requête HTTP), le
fonctionnement naturel des applicatifs exploités (par exemple, un serveur HTTP
émet à destination d'un client distant si et seulement s'il reçoit une requête de sa
part) et les habitudes éventuellement très disparates des utilisateurs (par
exemple, dans une entreprise, un ingénieur commercial accédera très
régulièrement aux pages HTML contenant les descriptions techniques des
produits, mais probablement jamais au contrat passé avec la société de
restauration.). Le profil peut donc contenir des règles impératives imposées par
l'administrateur et/ou des règles empiriques, «apprises» en cours de
fonctionnement.

La mise en service d'un détecteur d'anomalies est donc précédée d'une


phase d'apprentissage au cours de laquelle le profil, initialement construit
uniquement à partir d'une politique de sécurité, évolue, afin que toute utilisation
jugée normale soit reconnue comme telle. Dans certains cas, cet apprentissage
continue également après la mise en service : le profil évolue constamment afin de
suivre au mieux l'utilisation réelle du système.

Projet de fin d’études 9


ISET NABEUL – Département informatique Informatique réseaux

ii) L’approche par scénario

Le principe commun à toutes les techniques de cette classe consiste à


utiliser une base de données, contenant des spécifications de scénario d'attaques
(on parle de signatures d'attaque et de base de signatures).

Le détecteur d'intrusions confronte le comportement observé du système à


cette base et lève une alerte si ce comportement correspond à l'une des
signatures.

V. Solution adoptée

Nous avons opté à une approche par scénario. L'approche


comportementale souffre de quelques défauts intrinsèques :

 Les données utilisées en apprentissage doivent être exemptes d'attaques

 En cas de modifications subites de l'environnement de l'entité modélisée,


cette entité changera sans doute brutalement de comportement. Des
alarmes seront donc levées. Pour autant, ce n'est peut-être qu'une réaction
normale à la modification de l'environnement,

 Enfin, un utilisateur malicieux peut habituer le système (soit pendant la


phase d'apprentissage, soit en exploitation si l'apprentissage est continu) à
des actions malveillantes, qui ne donneront donc plus lieu à des alertes.

Projet de fin d’études 10


ISET NABEUL – Département informatique Informatique réseaux

Chapitre 2
Spécification des besoins et étude conceptuelle

Projet de fin d’études 11


ISET NABEUL – Département informatique Informatique réseaux

I. Introduction :
Nous avons opté pour la spécification des besoins et l’élaboration du dossier
conceptuel à l’utilisation du langage UML.

Notre étude se limitera à l’utilisation des cas d’utilisation pour la


spécification des besoins et les diagrammes de séquence et de classe pour la
conception.

II. Spécification des besoins selon le cas d’utilisation:


a) Description des acteurs

1) Système de détection d’intrusion

C’est un acteur système, c’est l’acteur principal et il a pour rôle de


détecter et de notifier les intrusions.

2) Administrateur réseau

L’administrateur a pour rôle de configurer le système (Voir Annexe A et B)


de détection d’intrusion et de gérer les alertes en cas de détection d’intrusion.

3) Base de données

La base de données est un acteur système, elle enregistre les


signatures des attaques utilisées pour l’identification des intrusions.

b) Description des cas d’utilisation

1) Configurer le système de détection d’intrusion

i) Acteur :

Administrateur réseau

ii) Actions :

La configuration consiste a :

 Choisir l’interface réseau utilisée pour la capture de paquet

Projet de fin d’études 12


ISET NABEUL – Département informatique Informatique réseaux

 Choisir l’expression filtre (voir Annexe E) a utiliser lors de la


capture
 Activer le mode espion (voir Annexe F)
 Activer l’enregistrement automatique des paquets capturés
 Activer l’option de notification par SMS
 Saisir le numéro du téléphone a notifié par SMS
 Activer l’option de notification par console
 Saisir l’adresse IP de la machine oŭ se trouve la console de
management
 Activer l’option de journalisation des attaques

2) Gérer les alertes

i) Acteur :

Administrateur réseau

ii) Actions :

Lors de détection d’intrusion, l’administrateur consulte le


journal système pour voir le type d’attaque et selon le cas, il peut reconfigurer le
pare-feu pour bloquer l’intrus.

3) Détecter les intrusions

i) Acteur :

Système de détection d’intrusions

ii) Actions :

 Capturer les paquets transitant sur le réseau


 Transformer les paquets en une structure de données
 Analyser les paquets

Projet de fin d’études 13


ISET NABEUL – Département informatique Informatique réseaux

4) Notifier les intrusions

i) Acteur :

Système de détection d’intrusions

ii) Actions :

Lors de détection d’une intrusion, les actions effectuées sont :

 Envoyer un SMS à l’administrateur


 Envoyer une alerte vers la console de management
 Journaliser l’attaque

c) Diagramme de cas d’utilisation

Figure 1 - Diagramme de cas d’utilisation

Projet de fin d’études 14


ISET NABEUL – Département informatique Informatique réseaux

III. Diagrammes de séquence


a) Cas d’utilisation: configurer le système

1) Modifier les options de capture

Pour modifier les options de capture, l’administrateur consulte le menu


Capture > Options > Options de capture (voir Annexe A).

Figure 2 – Modifier les options de capture

Projet de fin d’études 15


ISET NABEUL – Département informatique Informatique réseaux

2) Modifier les options de notification

Pour modifier les options de notification, l’administrateur consulte le menu


Notification > Options > Options de notification (voir Annexe B).

Figure 3 – Modifier les options de notification

Projet de fin d’études 16


ISET NABEUL – Département informatique Informatique réseaux

3) Ajout d’une signature

L'administrateur consulte le menu Signatures > Ajouter. Une fois la boite de


dialogue affichée, il saisie la nouvelle signature, une petite description et choisi la
catégorie de la signature via la liste déroulante (voit Annexe C)

Figure 4 – Ajouter une signature

4) Supprimer une signature

Pour supprimer une signature, l’administrateur consulte le menu


Signature > Supprimer. Une fois la boite de dialogue affichée, l’administrateur
saisie la signature a supprimé et valide en cliquant sur le bouton « Supprimer » (voir
Annexe D).

Projet de fin d’études 17


ISET NABEUL – Département informatique Informatique réseaux

Figure 5 – Supprimer une signature

b) Cas d’utilisation: Détecter les intrusions

La classe sniffer lance la capture via la fonction pcap_loop (voir Annexe


G), transforme les paquets en une structure de données via la fonction decode,
enregistre les paquets dans les fichiers de dump via la fonction pcap_dump (voir Annexe
H).

La classe detect, vérifie la conformité de paquets avec une analyse


protocolaire via la fonction verif_packet () et vérifie aussi si le paquet correspond à
une signature dans la base des signatures.

Figure 6 - Détecter les intrusions

Projet de fin d’études 18


ISET NABEUL – Département informatique Informatique réseaux

c) Cas d’utilisation: Notifier les intrusions

Lors de détection d’une intrusion la classe « notificateur » journalise les


attaques dans le système via la fonction syslog, notifie l’administrateur par SMS via
la fonction sendsms et envoie une alerte vers la console de management via la
fonction sendconsole.

Figure 7 - Notifier les intrusions

Projet de fin d’études 19


ISET NABEUL – Département informatique Informatique réseaux

d) Cas d’utilisation: Gérer les alertes

Dès qu’il sera notifié, l’administrateur doit consulter les journaux système et
selon le type d’attaque, il peut reconfigurer le pare-feu pour bloquer l’intrus.

Figure 8 - Gérer les alertes

IV. Diagramme de classes


Classe main : C’est l’interface graphique de l’application.

Classe createdb : Permet la création et l’initialisation de la base de données.

Classe configure : Permet de mettre à jour les options de capture ainsi que les options de
notification.

Classe capture : Permet de traiter les paquets capturés.

Classe analyse : Permet d’analyser les paquets.

Classe notificateur : Cette classe permet de notifier les attaques.

Projet de fin d’études 20


ISET NABEUL – Département informatique Informatique réseaux

a) Description des classes

1) Classe main

Attribut Description Fonction Role


CreateMenu() Créer le menu principal
CreateCapture() Créer le menu Capture
CreateSign() Créer le menu Signatures
CreateNotif() Créer le menu Notification

2) Classe createdb

Attribut Description Fonction Role


sid Id senseur Create_tab() Créer une table
inetraface Nom de l’interface Insert_to() Inserer dans une table
filtre L’expression filtre
motif La signature
desc Description du motif
dump Si = 1 Enregistrer les paquets
promisc Si = 1 Activer le mode espion
sendsms Si = 1 Activer la notification par SMS
tel Numero de telephone
sendconsole Si = 1 Activer la notification par conosole
dest IP destinataire

3) Classe configure

Attribut Description Fonction Role


CaptureOptions() Mettre à jour les options de capture
NotifOptions() Mettre à jour les options de notification

4) Classe capture

Attribut Description Fonction Role


Handle Descripteur de paquet Pcap_loop() Capturer les paquets
Device Interface de capture Pcap_dump() Enregistrer les
paquets
Promisc Mode espion Print_payload() Afficher les paquets
Filtre Expression filtre

Projet de fin d’études 21


ISET NABEUL – Département informatique Informatique réseaux

5) Classe analyse

Attribut Description Fonction Role


Payload Le paquet Verif_packet() Verifier la conformité du paquet
Header L’en-tête du paquet Check_packet() Recherche du motif

6) Classe notificateur

Attribut Description Fonction Role


Tel Numero de Telephone Sendsms() Envoyer un SMS à
l’administrateur
Ipdest IP destinataire sendConsole() Envoyer une alerte vers la
console
Sendsms Activer la notification par Syslog() Journaliser l’attaque
SMS
Sendconsole Activer la notification par
console
Log Activer la journalisation

Projet de fin d’études 22


ISET NABEUL – Département informatique Informat
Informatique réseaux

b) Diagramme de classes

Figure 9 – Diagramme de classe

Projet de fin d’études 23


ISET NABEUL – Département informatique Informatique réseaux

Chapitre 3
Réalisation

Projet de fin d’études 24


ISET NABEUL – Département informatique Informatique réseaux

I. Introduction
Après avoir achevé la phase conceptuelle, nous allons présenter dans cette
partie l’étape de la réalisation de notre application en évoquant les choix
techniques et l’environnement de travail.

a) Environnement matériel

 Processeur Intel Core Duo 1.60 GHz


 Mémoire 2 Go
 Os : Windows XP Pro sp3 et Redhat Fedora 10

HP Compaq 6820s

 Processeur Intel Core Duo 1.60 GHz


 Mémoire 1 Go
 Os : Windows XP Pro sp3 et Redhat Fedora 10

HP Compaq 6720s

 8 ports
 10/100Mbps
 Auto-MDI

D-Link DES-1008D

Projet de fin d’études 25


ISET NABEUL – Département informatique Informatique réseaux

b) Environnement logiciel

1) Code blocks

i. Description

Code::Blocks est un environnement de développement gratuit et multi-


plateforme (Linux et Windows), développé pour coller au mieux aux demandes des
utilisateurs. Conçu autour d'une architecture de plugins, il est ainsi extensible et
configurable très facilement ce qui lui permet d'évoluer très vite. L'un de ses
principaux atouts est de pouvoir s'interfacer avec la plupart des compilateurs gratuits
du marché : VC++ toolkit, MinGW, ... Une version contenant MinGW est d'ailleurs
disponible si vous ne possédez pas encore de compilateur.

ii. Caractéristiques

Code::Blocks offre a priori toutes les fonctionnalités sympathiques qu'on est


en droit d'attendre d'un EDI, tant au niveau de l'interface que de l'éditeur de texte ou
de la compilation.

 Open source (sous license GPL2)


 Multi-plateforme (utilise WxWidgets)
 Extensible via un système de plugins
 Support de plusieurs compilateurs (Visual C++ 2003, MinGW, Borland C++ 5.5,
Digital Mars, Open Watcom)
 Peut compiler directement ou via un makefile
 Support de templates de projets (possibilité d'écrire des templates
personnalisés)
 Gestion des espaces de travail (workspaces)
 Importation des projets VC++ et Dev-C++
 Interfaçage avec GDB pour le debugging
 Coloration syntaxique
 Repliage de code
 Code-completion
 Explorateur de classes
 Indentation automatique
 Outils externes configurables
 Gestion des listes de "TODO"

Projet de fin d’études 26


ISET NABEUL – Département informatique Informatique réseaux

iii. Installation

Via la ligne de commande:

# yum install codeblocks xterm

iv. Configuration

Via la ligne de commande installer le paquet devel correspondant:

# yum install freeglut-devel

 « Setting > compiler and debuger > Linker settings »


 Cliquer sur le bouton « ajouter » et entrer: glut
 « valider »
 « Setting > Global variables »
il faut mettre pour les architectures 32 bits:

base : /usr/
include : /usr/include/
lib : /usr/lib

il faut mettre pour les architectures 64 bits:

base : /usr/
include : /usr/include/
lib : /usr/lib64

2) Libpcap

i. Description

La libpcap est une bibliothéque de fonctions sert d'interface à la capture de


paquets et est indépendante du système.

En clair la libpcap permet d'écouter le réseau aves ses propres filtres puisqu'elle
inclus un mécanisme de filtrage basé sur le Berkeley packet filter.

Projet de fin d’études 27


ISET NABEUL – Département informatique Informatique réseaux

ii. Installation

Libpcap est disponible dans le site de l’outils TCPDump

http://www.tcpdump.org/release/libpcap-1.0.0.tar.gz

Après la récupération de l’archive

Fenêtre du Terminal :

# tar zxvf libpcap-*.tgz


./configure
# make
#make install
#make install-incl
#make install-man

iii. Compilation

Pour compiler le code source, il fault ajouter l’expression –lpcap

3) MySQL

i. Description

C’est le moteur de base de données (libre) le plus connu et le plus répandu.

ii. Installation

L’installation de MySQL est très simple grâce à YUM

# yum install mysql-server

Plusieurs paquets sont disponibles :

 mysql : les outils (clients) en ligne de commande


 mysql-embedded : la bibliothèque pour les applications intégrant le serveur
 mysql-devel : les entêtes et bibliothèques pour les développeurs

Projet de fin d’études 28


ISET NABEUL – Département informatique Informat
Informatique réseaux

 mysql-libs : les bibliothèques dynamiques nécessaires aux programmes utilisant MySQL


 mysql-bench : les tests de performance
 mysqlclient10 : bibliothèques de compatibilité pour MySQL 3.23.x
 mysqlclient14 : bibliothèques de compatibilité pour MySQL 4.1.x

iii. Activation

Pour activer le service :

# service mysqld start

Pour lancer MySQL automatiquement au demarrage de la machine :

# chkconfig mysqld on

4) GTK2+

i. Description

GTK+ est un ensemble de bibliothèques logicielles, permettant de réaliser des


interfaces graphiques.

ii. Installation

La version la plus récente est disponible sur : ftp://ftp.gtk.org/pub/gtk/

Il faut créer le répertoire /opt/gtk,


/opt/gtk commencons par le créer :
# mkdir -p /opt/gtk

Ensuite il faut extraire les archives :


$ cd ~/gtk+-2.10
$ tar -zxf atk-1.10.3.tar.gz
.tar.gz
$ tar -zxf cairo-1.2.0.tar.gz
.tar.gz

Projet de fin d’études 29


ISET NABEUL – Département informatique Informatique réseaux

$ tar -zxf glib-2.12.0.tar.gz


$ tar -zxf gtk+-2.10.0.tar.gz
$ tar -zxf pango-1.13.2.tar.gz

Définir deux variables d'environnement :


$ export KG_CONFIG_PATH=/opt/gtk/lib/pkgconfig/:$PKG_CONFIG_PATH

Cette variable permet à l'utilitaire pkg-config de trouver les fichiers .pc qui lui permet
de récupérer les informations sur les bibliothèques telles que les options de compilation
pour gcc.

$ export LD_LIBRARY_PATH=/opt/gtk/lib:$LD_LIBRARY_PATH

Cette variable permet à l'éditeur de lien ld de trouver nos bibliothèques nouvellement


installées.
iii. Compilation

Pour compiler :
$ gcc `pkg-config --cflags --libs gtk+-2.0` main.c

5) Gammu

i. Description:

Gammu est un logiciel de gestion de téléphones portables, open-source,


fonctionnant sous Linux et Windows. Il est hérité de Gnokii, spécialisé pour les
téléphones Nokia.

Gammu permet :

 L'envoi de SMS (avec ou sans accusés de réception)


 La gestion du répertoire
 La gestion des appels
 La création de sauvegardes (messages, répertoire…)

ii. Installation

Gammu est disponible dans le dépôt de Fedora :

# yum install gammu

Projet de fin d’études 30


ISET NABEUL – Département informatique Informatique réseaux

6) L’API MySQL

i. Description

Pour Accéder à la base de données avec le langage C, nous avons utilisé l’API
MySQL.

ii. Installation

Sous Fedora, avec la commande YUM

# yum install libmysqlclient15-dev

iii. Utilisation

Pour se connecter à la base de données utilisant l’API MySQL, il faut mettre


#include <winsock.h> avant #include <MYSQL/mysql.h>

iv. Compilation

Lors de compilation du code source, il faut ajouter l’expression –lmysqlclient


ainsi que –L/usr/lib/mysql

Projet de fin d’études 31


ISET NABEUL – Département informatique Informatique réseaux

Conclusion générale

En raison d'évolution des techniques d’attaque, nous recommandons


fortement de mettre en œuvre un système de détection d’intrusion. En effet,
notre application permet de détecter les intrusions réseau en se basant sur la
recherche de motif.

L’application développée a été en totalité conçue et réalisée, elle a été par la


suite testée et validée.

En guise de perspectives, nous pouvons étendre ce projet en ajoutant des


modules qui permettent de :
 Interagir avec d’autres systèmes de détection d’intrusion
 Décrypter les flux crypté pour pouvoir analyser le trafic réseau

Toutefois, et nous terminerons par ceci, même si une certaine maturité dans
ce domaine commence à se sentir, le plus important reste de savoir de quoi il faut
se protéger. Les failles les plus répandues proviennent généralement de l’intérieur
de l’entreprise, et non de l’extérieur. Des mots de passe simples, des droits d’accès
trop élevés, des services mal configurés, ou encore des failles dans les logiciels
restent la bête noire en matière de sécurité.

Projet de fin d’études 32


ISET NABEUL – Département informatique Informatique réseaux

Annexes

Projet de fin d’études 33


ISET NABEUL – Département informatique Informat
Informatique réseaux

Annexe (A)

Capture > Options > Options de capture

L’administrateur peut saisir le nom de l’interface réseau utilisée pour la capture de


paquet, l’expression filtre (dans cet exemple, seul les paquets à destination du port 80
seront capturés).

Pour capturer tout le trafic réseau, il est nécessaire d’activer le mode espion pour
pouvoir capter les paquets à destination des autres machines.

L’administrateur peut enregistrer les paquets capturés en sélectionnant la case à


cocher « Enregistrer les paquets »

Projet de fin d’études 34


ISET NABEUL – Département informatique Informat
Informatique réseaux

Annexe (B)

Notification > Options > Options de notification

Via cette fenêtre, l’administrateur peut choisir le mode de notification.

Pour activer la notification par SMS, l’administrateur doit cocher « Envoyer un SMS »
et saisir son numéro de téléphone.

Pour qu’il soit notifié via sa console de management, il doit cocher « Notification par
console » et saisir l’adresse IP de la machine oŭ
o la console est installée.

Pour activer la journalisation des attaques, il faut cocher « Journaliser les intrusions »

Projet de fin d’études 35


ISET NABEUL – Département informatique Informat
Informatique réseaux

Annexe (C)

Pour ajouter une signature dans la base de données, l’administrateur consulte le


menu Signatures > Ajouter.

Une boite de dialogue s’affiche, l’administrateur saisi le nouveau motif, une


description sur l’attaque concernée par le motif, sélectionne la catégorie du motif
et clique sur le bouton Ajouter pour enregistrer le nouveau motif dans la base de
signatures.

Projet de fin d’études 36


ISET NABEUL – Département informatique Informat
Informatique réseaux

Annexe (D)

Pour supprimer une signature de la base de données, l’administrateur consulte le


menu Signatures > Supprimer.
imer.

Il saisi le motif à supprimer puis clique sur le bouton Supprimer pour valider.

Projet de fin d’études 37


ISET NABEUL – Département informatique Informatique réseaux

Annexe (E)
Le filtre BPF est un langage permettant de filtrer les paquets échangés sur un
réseau. Ce langage sert à sélectionner des données transitant sur un réseau selon des
critères précis.

Ce langage permet par exemple de savoir :

 Qui envoie les données ?


 Qui reçoit les données ?
 Quel est le protocole utilisé ?
 Vers et depuis quel port sont envoyé les données ?

Il existe trois sortes de critères différents :

type
Ce critère indique à quoi correspond le nom ou nombre. Les types possibles
sont host (pour hôte), net (pour réseau) et port.
Exemples : host ultra, net 192.168, port 20.
Si aucun critère type n'est spécifié, host sera utilisé.

dir
Ce critère permet de spécifier une direction : depuis (src) ou vers(dst) un id.
Les directions sont src, dst, src or dst et src and dst.

Exemples : src ultra, dst net 192.168, src or dst port ftp-data.
S'il n'y a pas de critère de direction de spécifié, src or dst sera utilisé.

proto
Ce critère permet de spécifier un protocole particulier. les protocoles
possibles sont ether, fddi , ip, arp, rarp, decnet, lat, moprc, mopdl, tcp et udp.
Exemples : ether src ultra, arp net 192.168, tcp port 21.
Si aucun proto n'est spécifié, tous les protocoles cohérents avec le type seront pris en
compte.
Exemples : net 192.168 <=> (ip or arp or rarp) net ,
port 53 <=> (tcp or udp) port 53.

Projet de fin d’études 38


ISET NABEUL – Département informatique Informatique réseaux

Annexe (F)

Mode espion aussi appelé Promiscuous mode, en informatique, se réfère à


une configuration de la carte réseau, qui permet à celle-ci d'accepter tous les
paquets qu'elle reçoit, même si ceux-ci ne lui sont pas adressés.
Ce mode est une fonctionnalité généralement utilisée pour écouter le trafic
réseau.

Chaque paquet réseau envoyé inclut l'adresse MAC de la carte réseau


destinataire. Quand une carte réseau voit passer un paquet, elle vérifie si elle est la
destinataire du paquet ; si elle ne l'est pas, elle ne tient pas compte du paquet ;
mais en mode promiscuous, elle traite le paquet dans tous les cas, permettant ainsi
à l'ordinateur de pouvoir lire tous les paquets.

Projet de fin d’études 39


ISET NABEUL – Département informatique Informatique réseaux

Annexe (G)

Les rappels sont utilisés dans pcap également, mais au lieu d'être appelés
quand un utilisateur appuis sur une touche, ils sont invoqués lorsque pcap renifle
un paquet. Les deux fonctions qu'on peut employer pour définir des rappels sont
pcap_loop() et pcap_dispatch().

L'une et l'autre invoquent une fonction de rappel chaque fois qu'un paquet
reniflé répond à nos exigences de filtrage (si un filtre quelconque existe, bien sûr ;
dans la négative, alors n'importe quel paquet reniflé invoque le rappel).

Le prototype pour pcap_loop() est reproduit ci-dessous :

int pcap_loop(pcap_t *p, int cnt, pcap_handler callback, u_char *user)(void);

Le premier argument est notre gestionnaire de session. Ce qui suit est un


entier indiquant à pcap_loop() combien de paquets il devrait renifler avant de
revenir à l'état antérieur (une valeur négative signifie qu'il devrait renifler jusqu'à
ce qu'une erreur se produise).

Le troisième argument est le nom de la fonction de rappel. Le dernier


argument est utile dans quelques applications, mais le plus souvent il est
simplement défini à NULL.

Projet de fin d’études 40


ISET NABEUL – Département informatique Informatique réseaux

Annexe (H)

void pcap_dump(u_char *user, struct pcap_pkthdr *h, u_char *sp)

pcap_dump() écrit un paquet dans le fichier ouvert par pcap_dump_open().


Il faut noter que ses arguments sont identiques que ceux utilisés par la
fonction de callback utilisé avec pcap_dispatch() ou pcap_loop().

Projet de fin d’études 41


ISET NABEUL – Département informatique Informatique réseaux

Netographie
[1] http://cian.developpez.com/uml2/tutoriel/sequence/

[2] http://doc.fedora-fr.org/wiki/Installation_et_configuration_de_MySQL

[3] http://gtk.developpez.com/faq/

[4] http://astuces-securite-pc-mac.blogspot.com/2008/03/detection-des-attaques.html

[5] http://www.madpowah.org/textes/srs/index.html

[6] http://fr.wikibooks.org/wiki/Utilisateur:Rortalo/Sécurité_informatique/Détection_d'intrusion

[7] http://fr.wikipedia.org/wiki/NIDS

[8] http://fr.wikipedia.org/wiki/Algorithme_de_recherche_de_sous-chaîne

[9] http://www.linux-france.org/prj/inetdoc/securite/tutoriel/tutoriel.securite.advanced.outils.html

[10] http://fr.wikipedia.org/wiki/Filtre_BPF

[11] http://fr.wikipedia.org/wiki/Berkeley_sockets

[12] http://www.cgsecurity.org/Articles/sniffer/index.html

[13] http://okki666.free.fr/docmaster/articles/linux068.htm

[14] http://mirror.sweon.net/madchat/coding/c/c.rezo/rawsckt/pcap.manual.txt

[15] http://gammu-sms.blogspot.com/

[16] http://inti.sourceforge.net/tutorial/libinti/threads.html

[17]http://blogs.operationaldynamics.com/andrew/software/gnome-desktop/gtk-thread-
awareness.html

[18] http://www.gtk-fr.org/

Projet de fin d’études 42

Vous aimerez peut-être aussi