Professional Documents
Culture Documents
Introduction générale
Chapitre 1
Etat de l’art
I. Problématique
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.
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
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.
Ce type d’attaque se base principalement sur des failles liées aux protocoles
ou à leur implémentation.
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.
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.
v. Fragments attacks
Le but de cette attaque est de rediriger un flux TCP afin de pouvoir outre
passer une protection par mot de passe.
Les attaques applicatives se basent sur des failles dans les programmes
utilisés, ou encore des erreurs de configuration.
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.
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.
i) L’approche comportementale
V. Solution adoptée
Chapitre 2
Spécification des besoins et étude conceptuelle
I. Introduction :
Nous avons opté pour la spécification des besoins et l’élaboration du dossier
conceptuel à l’utilisation du langage UML.
2) Administrateur réseau
3) Base de données
i) Acteur :
Administrateur réseau
ii) Actions :
La configuration consiste a :
i) Acteur :
Administrateur réseau
ii) Actions :
i) Acteur :
ii) Actions :
i) Acteur :
ii) Actions :
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.
Classe configure : Permet de mettre à jour les options de capture ainsi que les options de
notification.
1) Classe main
2) Classe createdb
3) Classe configure
4) Classe capture
5) Classe analyse
6) Classe notificateur
b) Diagramme de classes
Chapitre 3
Réalisation
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
HP Compaq 6820s
HP Compaq 6720s
8 ports
10/100Mbps
Auto-MDI
D-Link DES-1008D
b) Environnement logiciel
1) Code blocks
i. Description
ii. Caractéristiques
iii. Installation
iv. Configuration
base : /usr/
include : /usr/include/
lib : /usr/lib
base : /usr/
include : /usr/include/
lib : /usr/lib64
2) Libpcap
i. Description
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.
ii. Installation
http://www.tcpdump.org/release/libpcap-1.0.0.tar.gz
Fenêtre du Terminal :
iii. Compilation
3) MySQL
i. Description
ii. Installation
iii. Activation
# chkconfig mysqld on
4) GTK2+
i. Description
ii. Installation
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
Pour compiler :
$ gcc `pkg-config --cflags --libs gtk+-2.0` main.c
5) Gammu
i. Description:
Gammu permet :
ii. Installation
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
iii. Utilisation
iv. Compilation
Conclusion générale
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é.
Annexes
Annexe (A)
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.
Annexe (B)
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 »
Annexe (C)
Annexe (D)
Il saisi le motif à supprimer puis clique sur le bouton Supprimer pour valider.
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.
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.
Annexe (F)
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).
Annexe (H)
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/