Académique Documents
Professionnel Documents
Culture Documents
Introduction générale
Le présent rapport entre dans le cadre de la réalisation d’un mémoire de projet de fin
d’études à la faculté des sciences de Bizerte, pour l’obtention d’une licence
appliquée en technologies des Réseaux et Télécommunications.
La sécurité des systèmes d’informations est indispensable quel que soit le domaine
d’utilisation et l’importance de l’information à manipuler, puisqu’une simple attaque de
débutants, peut s’avérer parfois destructrice ainsi la méconnaissance des vulnérabilités de tels
systèmes met en péril leur intégrité. C’est pour cela qu’on cherche de nouvelles solutions de
sécurité, le plus souvent les moins coûteuses mais qui permettent d’améliorer les solutions
déjà existantes et renforcent toute entité du réseau en matière de protection.
En complément pour les politiques de sécurité déjà existantes qui consistent à mettre
en place des pare-feux et des systèmes d’authentification. Il existe d’autres outils de
surveillance de trafic qui offrent des fonctionnalités pour auditer le réseau et détecter
d’éventuelles intrusions tentant à compromettre la confidentialité, l’intégrité ou bien la
disponibilité d’une ressource, ces dispositifs sont appelés systèmes de détection d’intrusions
(en anglais Intrusion Detection Systems IDS).
Opter pour une solution de sécurité fiable est important pour réduire les risques, qui
peuvent avoir un impact sur un réseau informatique lors d’intrusions (prémédités ou non).
Comme il a été indiqué ci-dessus, le présent projet traite seulement l’IDS SNORT
Open Source vu sa gratuité, l’évolution qu’il a subi depuis sa création ainsi que sa portabilité,
tous ces facteurs l’ont rendu un pionnier parmi les autres outils standards de détection
d’intrusions. Il est disponible à l’adresse www.snort.org.
SNORT est un logiciel libre, capable d’effectuer une analyse du trafic et une
journalisation des paquets en temps réel sur les réseaux IP. Il supporte l’analyse de protocoles
et la recherche/mise en correspondance de contenus et peut être employé pour détecter une
variété d’attaques et d’explorations : débordement de tampon, scan furtif de ports, attaque
CGI, probe SMB identification du système d’exploitation, ect.
Malgré ce qu’offre SNORT comme fonctionnalités, cet IDS reconnu parmi les
meilleurs pose deux problèmes, coïncidant avec la gestion du programme lui-même. En
premier lieu, c’est l’administration de ses modules, pauvre en elle-même (les responsables
de réseaux qui ont des connaissances limitées en programmation ne parviendront pas a la
configuration exacte de l’outil). En second lieu, SNORT, comme tous les IDS, génère une
base de Logs qui ne cesse de grandir d’une manière exponentielle rendant l’interprétation
manuelle des alertes difficile, voir des fois impossible.
Les deux problèmes déjà évoqués ont induit l’idée, qui est de concevoir un mini
programme qui assure automatiquement une bonne gestion de l’outil SNORT entre autres son
administration et l’interprétation des Logs qu’il génère. C’est dans ce sens, que ce travail a
pris chemin pour donner naissance à un outil complémentaire à SNORT, baptisé « ALS », qui
interprétera les Logs et facilitera l’administration de cet IDS à travers une interface homme-
machine conviviale et simple à utiliser.
Au cours du stage d’intégration que j’ai effectué, certaines tâches m’ont été confiées et
m’ont permis d’apprendre bien plus que la réalisation d’un programme de gestion pour l’IDS
SNORT. Ainsi il a été décidé que le rapport soit structuré en quatre chapitres incluant trois
parties ; la première étant théorique et la seconde s’intéresse à l’application créée.
Le deuxième chapitre traite, en général les IDS ainsi que les techniques et méthodes de
détection d’intrusions, et SNORT en particulier. Une comparaison entre quelques IDS
présents sur le marché pour clore ce chapitre.
Le troisième chapitre est réservé à la spécification fonctionnelle des besoins ainsi que
l’analyse et la conception de l’outil. Ce qui permettra de préciser la méthodologie qui va
conduire au développement de l’application.
Le quatrième chapitre aura pour but de détailler les fonctionnalités de notre système
baptisé « ALS ». Et pour couronner le tout, une mise en marche démonstrative complétée par
des figures.
Ci-joint, le complément DVD de données qui contient les différents composants logiciels
utilisés, une copie numérique de ce rapport, et la version d’« ALS
1. Introduction :
Et pourtant, tous les services informatiques dont nous dépendons sont des denrées
fragiles, constituées d’innombrables composants matériels, logiciels et humains, devant
fonctionner en parfaite symbiose jour après jour, heure après heure, microseconde par
microseconde. Ces services doivent assurer des niveaux de disponibilité, de fiabilité, de
performance et de garanties d’intégrité comparables aux exigences rencontrées dans les
domaines tels que ceux de l’énergie nucléaire et de l’exploration spatiale, mais doivent les
réaliser à une échelle infiniment plus grande.
Ces divers composants sont sujets à des défaillances matérielles et humaines, mais
aussi à des attaques d’intention criminelle, malveillante ou de simple divertissement
technique. La fraude financière, l’espionnage industriel, le terrorisme et la bêtise humaine
sont tous des domaines où l’informatique est devenue à la fois une cible et une arme via
l’Internet » [2].
Ce chapitre est divisé en deux grandes parties, la première définira les réseaux
informatiques et invoquera les architectures et les protocoles les plus utilisés. La deuxième
partie aura pour objectifs les vulnérabilités des systèmes, les types d’attaques ainsi que les
politiques de sécurité adoptées.
2.1. Historique :
« Internet est issu du réseau ARPANET (de l'Advanced Research Projects Agency), créé en
1968 par le département américain de la Défense, dans un but stratégique, pour relier ses
centres de recherche.
Le réseau initial ne permettait que l'envoi de courrier électronique. C'est en 1972 que
commencèrent les spécifications des protocoles TCP/IP avec l'expérience de l'usage de X25
sur ARPANET. Le but était de concevoir un réseau qui résiste à des attaques militaires telles
que des bombardements. Ainsi, il ne devait pas y avoir de point névralgique dans le réseau,
dont l'arrêt aurait provoqué le blocage complet de celui-ci, et les données devaient pouvoir
automatiquement prendre un chemin différent en cas de coupure de liaison. D'où l'absence de
contrôle centralisé dans l'internet et un cheminement dynamique des données.
Mis dans le domaine public (libre d'utilisation), il fut repris par les universitaires en
1979 (La Duke University à Durham Caroline du Nord), qui y virent le moyen d'échanger des
informations.
Après les militaires et les universitaires (La National Science Foundation finance leurs
mises en réseau), Internet devient aux États-Unis l'affaire des grandes entreprises privées, des
P.M.E. et des particuliers.
En 1983, c'est au tour de l'Europe (par le biais en France du C.N.A.M. Conservatoire
national des arts et métiers) et du reste du monde de se connecter à ce réseau de réseaux.
Selon le principe d'internet, le réseau IP français pour la recherche s'est construit par le
bas, en partant des laboratoires puis des campus et en passant ensuite par la région, avant de
passer au projet national. Actuellement, le développement de l'infrastructure internet en
France se fait surtout du côté des opérateurs privés qui offrent les services de l'internet aux
entreprises et aux particuliers.
L'outil qui rendit populaire l'internet à partir de 1993 est le WWW, le World Wide
Web en un mot le Web. Le mot Web désigne la toile d'araignée et World Wide Web désigne
donc la toile d'araignée couvrant le monde entier.
Le premier navigateur WEB graphique a été mis aux points au CERN (centre
européen de recherche nucléaire) en 1993.
Un navigateur Web permet de se connecter à une multitude de sites diffusant des
informations sans connaissances des règles de communication propre au réseau.
L’utilisation d’un réseau est primordiale pour l’entreprise afin de satisfaire ses besoins dont le
partage des ressources (aide diminuer les coûts), la communication entre personnes et la
facilité d’administration.
2.2.2. Architecture des réseaux [5] :
Il existe généralement deux types d'architecture réseau: l'architecture « égal à égal », et
l'architecture « Client –Serveur ». Le choix de l'architecture à utiliser dépend de plusieurs
critères:
Type d'activité ;
Volume du trafic ;
Le budget, etc.
Dans ce type d'architecture, il n'y a pas de serveur dédié. De ce fait, chaque ordinateur
connecté sur le réseau possède tous les droits d'accès. Ainsi, il est libre de partager ses
ressources.
Ce type d'architecture peut être utilisé dans les petites entreprises, vu la simplicité de
son installation. En effet, on peut utiliser le Peer to Peer pour un nombre maximum de dix
ordinateurs situés dans la même zone géographique et relié par un simple système de câblage.
Elle consiste à relier des ordinateurs (clients) à un ordinateur central généralement plus
puissant (serveur). Ce serveur offre aux clients plusieurs services selon leurs droits d'accès,
tels que les accès aux bases de données, la connexion à Internet, etc.
Cependant, dans le modèle mainframe, la performance du système tout entier repose sur
les capacités de traitement de l’ordinateur central, c’est la raison pour laquelle ce modèle est
parfois qualifié d’informatique lourde. Par ailleurs, dans un environnement mainframe, les
terminaux du réseau ne peuvent voir que le serveur central.
Topologie en bus: C'est l'organisation la plus simple. Elle consiste à relier tous les
ordinateurs du réseau à un même câble (notamment coaxial). Ce genre de connexion est
fragile puisqu’une faille dans la connexion affecte tout le réseau.
[Voir Annexe A]
Le protocole TCP
Le protocole IP
Le protocole UDP
Le protocole UDP (User Datagram Protocol) est un protocole non orienté connexion
de la couche transport du modèle TCP/IP. Vu que le protocole UDP ne fait de contrôle
d’erreur, l’entête du segment est donc très simple.
Le protocole ICMP
Le protocole ICMP (Internet Control Message Protocol) est un protocole qui permet de
gérer les informations relatives aux erreurs aux machines connectées. Etant donné le peu de
contrôles que le protocole IP réalise, il permet non pas de corriger ces erreurs mais de faire
part de ces erreurs aux protocoles des couches voisines.
Le protocole ARP
Le protocole ARP (Address Resolution Protocol) a un rôle phare parmi les protocoles
de la couche Internet de la suite TCP/IP, car il permet de connaître l'adresse physique d'une
carte réseau correspondant à une adresse IP.
Alors que les systèmes d’informations grandissent et sont de plus en plus ouverts sur
Internet, cette ouverture constitue une source imprévisible d’attaques, la mise en place de
politiques de sécurité est non seulement importante dans ce cas mais primordiale afin de bien
garder la confidentialité1, l’authenticité2, l’intégrité3, le contrôle d’accès4 et la non-répudiation
de l’information5.
2
3
4
5
3.1.1. Définitions :
Vulnérabilité: « Assimilée à une faille de sécurité. Caractéristique permettant de l’utiliser
pour mettre en péril la sécurité d’un programme ou d’un système » [8]
Risques informatiques: « On qualifie généralement les risques informatiques, toutes les
causes externes qui peuvent compromettre l’efficacité d’un système, à l’exclusion de toute
anomalie fonctionnelle (panne machine, bug, erreur de programmation...). » [9]
Les administrateurs rencontrent couramment des problèmes de mises à jour des systèmes
surtout que celles-ci nécessitent un suivi journalier puisque mensuellement un grand nombre
de vulnérabilités est détecté dans le monde. Ainsi tout pronostic négligé par un responsable du
réseau peut s’avérer compromettant pour la sécurité.
Les risques humains sont les plus importants, même s'ils sont le plus souvent ignorés ou
minimisés. Ils concernent les utilisateurs mais également les informaticiens eux-mêmes.
Parmi les risques les plus répandus on cite: la maladresse, l'inconscience et l'ignorance, la
malveillance, l'espionnage, etc.
Risques techniques
Les risques techniques sont tout simplement ceux liés aux défauts et pannes inévitables
que connaissent tous les systèmes matériels et logiciels. Ces incidents sont évidemment plus
ou moins fréquents selon le soin apporté lors de la fabrication et des tests effectués avant que
les ordinateurs et les programmes ne soient mis en service. Cependant les pannes ont parfois
des causes indirectes, voire très indirectes, donc difficiles à prévoir. Citons à titre d’exemples
les incidents liés au matériel ou au logiciel, voire même à l'environnement. » [8]
Tout système informatique peut présenter une menace pour différentes types
d’attaques [Voir Annexe B] qu’on peut classer en quatre grandes catégories comme suit :
Smurf
Cette attaque consiste à usurper une adresse IP source et à envoyer un ICMP Echo
Request sur une adresse de diffusion d'un réseau. Toutes les machines de ce réseau, se pensant
concernées, répondront à cet appel. Ceci a deux effets. Le premier est de saturer la machine
dont on aura usurpé l'adresse IP, le deuxième est de ralentir, voire saturer le trafic sur le
réseau.
Land
Cette attaque s'appuie sur une mauvaise gestion des droits d'accès au réseau. La
machine attaquée s'autorise à recevoir des paquets externes avec son adresse IP. C'est ce qu'on
appelle du Spoofing (technique d'usurpation d'identité ou d'adresse). Le système ciblé, s'il est
faillible, risque dans ce cas de se voir bloqué (utilisation 100% CPU, crash mémoire, etc.) ou
perdre sa couche réseau. Pour se faire, on commence par scanner tous les ports de la machine
que l'on souhaite attaquer. Par la suite, On envoie une requête avec l'adresse IP source
identique à l'adresse IP destination, sur chaque port ouvert, avec le drapeau SYN activé.
Le Rootkit
C’est un programme ou ensemble de programmes qui, après avoir obtenu les droits
d'administrateur (root) sur une machine, met en place une ou plusieurs portes dérobées. Celles
-ci permettent au pirate de s’introduire à nouveau au cœur de la machine en tant que root et
d'effacer les traces laissées par l'opération dans les journaux système.
niveau de sécurité et d'en déterminer les vulnérabilités. Cependant, cette technique est utilisée
par les pirates informatiques pour repérer les failles de sécurité d'un système ou d'un réseau,
pouvant mener une attaque de plus grande envergure plus tard.
Le Portscan TCP
Le balayage de port en informatique, appelé Portscan en anglais, est une technique qui
permet de chercher les ports ouverts chez un hôte du réseau. Elle est souvent utilisée par les
pirates informatiques pour tenter de compromettre la sécurité d’un hôte. Le balayage de ports
est l’une des activités considérées comme suspectes par un Système de détection d'intrusion.
Pour tromper la vigilance de ces systèmes, les balayages peuvent se faire dans un ordre
aléatoire, avec une vitesse excessivement lente, ou à partir de plusieurs adresses IP.
Un balayage de ports le plus réputé vise typiquement le protocole TCP car c'est celui
qui est utilisé par la majorité des applications. L'objectif est de savoir si un logiciel est en
écoute sur un numéro de port donné ou non. Si un logiciel écoute, on dit que le port est
ouvert, sinon on dit qu'il est fermé. Le balayage d'un port se passe en deux étapes :
- Analyse de la réponse.
Pour le protocole UDP, on envoie un paquet UDP vide (de longueur nulle). Si le port est
fermé, un message ICMP de type 3 (destinataire inaccessible) et code 3 est envoyé. Il est
également possible de lister les protocoles IP supportés par un hôte. On appelle cette
technique IP protocol scan.
SQL Injection
Il s’agit d’une faille de sécurité d’une application Web (généralement au niveau des
formulaires), qui consiste à modifier et insérer des données (code malveillant) dans les
chaînes transmises ultérieurement à une instance de SQL Server en vue de les exécuter. Ainsi,
l’attaquant peut accéder à un compte local sans pour autant avoir le droit.
Cette attaque prouve qu’aucun mot de passe n’est inviolable. En effet, il existe trois
méthodes pour cracker un mot de passe, soit avec le dictionnaire (un simple fichier texte
contenant un mot par ligne, les uns à la suite des autres), soit par brut force (à essayer toutes
les combinaisons possibles suivant un certain nombre de caractères), soit combiner les deux
précédentes méthodes.
Parmi les nombreuses méthodes permettant de mettre au point une politique de sécurité,
nous pouvons citer à titre d’exemple la méthode MEHARI [10], MARION [10], EBIOS [10],
COBIT [11], etc. [Voir Annexe C]
4. Conclusion :
Une unique méthode pour sécuriser un réseau n’existe pas. Ainsi le déploiement de
plusieurs entités (pare-feux, mise-à-jours quotidiennes, systèmes de détection d’intrusion…),
visant à renforcer la sécurité, est primordial.
1. Introduction :
Comme l’a invoqué le premier chapitre, tout système d’information doit être sécurisé.
C'est-à-dire, tout trafic sur le système, doit être contrôlé. Cette fonctionnalité est offerte par
les systèmes de détection d’intrusions (IDS).
Dans ce qui suit, les systèmes de détection d’intrusions vont être définis sur le plan
général, ainsi que l’IDS SNORT en particulier. Une comparaison entre IDS fera en sorte de
choisir le bon de point de vue qualité et besoins.
Les IDS sont répartis en deux catégories de base : les systèmes de détection d’intrusions
basés sur les signatures et les systèmes de détection d’anomalies.
Chaque intrus a une signature, tout comme les virus. Lors de l’analyse d’un paquet de
données, le système de détection d’intrusions se réfère à une base de signatures et de règles
afin de détecter, enregistrer dans un fichier log6 et générer des alertes.
Les systèmes basés sur la détection d’anomalies, dépendent généralement des anomalies
de paquet présentes dans les entêtes des protocoles. Dans certains cas, cette méthode est plus
efficace que les systèmes de détection d’intrusions basés sur les signatures.
2.1.2. Définitions :
Des notions qui seront utilisées dans le reste du rapport devront être saisies, voilà leurs
définitions :
« Signatures
Il s’agit du modèle qu’on cherche à l’intérieur d’un paquet de données. Une signature
est utilisée pour détecter un ou plusieurs types d’attaques. Par exemple, la présence de
« cmd32.exe » dans un paquet envoyé vers un serveur web, peut indiquer l’existence d’une
intrusion de type « web application attack ».
Alertes
6
Log : ce terme sera défini dans le paragraphe qui suit.
En prenant comme exemple l’IDS SNORT, nous constatons qu’il génère les alertes sous
plusieurs formes contrôlées par l’instruction « output ». Voici un exemple :
Parfois, les systèmes de détection d’intrusions commettent des erreurs que nous pouvons
répartir en deux catégories :
Les faux positifs : cette erreur signifie que l’IDS détecte une intrusion qui n’a pas été
perpétrée réellement.
Logs
Les logs sont des lignes d’un fichier dans lesquelles un IDS enregistre les données
transitant sur un système pour les analyser et faire des statistiques. Le fichier dans lequel ces
informations sont sauvegardées est appelé fichier log qui peut être en format texte ou binaire.
Sondes
La machine sur laquelle le système de détection d’intrusions est lancé, est appelée
« sonde » puisqu’elle est utilisée pour écouter le trafic du réseau.
Les pots de miels sont des systèmes utilisés pour leurrer les pirates en exposant
volontairement des vulnérabilités. Lorsqu’un attaquant trouve un pot de miel, il va passer un
certain temps à « pirater », ce qui permettra d’enregistrer ses activités, de les étudier et les
anticiper afin de connaître ses actions et techniques. Les informations recueillies sont utiles
pour renforcer la sécurité de notre système. La tâche principale d'un pot de miel consiste à
analyser le trafic, c'est-à-dire à informer du démarrage de certains processus, de la
modification de fichiers, etc. permettant ainsi de créer un profil élaboré des attaquants
potentiels sans qu’ils ne s'en doutent. »
2.2.1. NIDS :
Un NIDS ou Network IDS, est un système de détection d’intrusions qui capture les
données circulant dans un réseau, les compare avec sa base de signatures. Si un paquet
correspond à la signature d’un intrus, une alerte est générée et le paquet est enregistré dans un
fichier log ou dans une base de données. A titre d’exemple nous citons : « SNORT » [13],
« BRO » [14], etc.
2.2.2. HIDS :
Un HIDS ou Host IDS, est un système de détection d’intrusions qui travaille sur une
seule machine (hôte). Il récupère les informations du système d’exploitation et des journaux
afin de détecter d’éventuelles intrusions. Prenons comme exemple de HIDS : « AIDE » [15],
etc.
Chaque ordinateur connecté à Internet (ou à n'importe quel réseau informatique) est
susceptible d'être victime d'une attaque d'un pirate informatique.
Ainsi, il est indispensable, autant pour les réseaux d'entreprises que pour les internautes,
de se protéger des intrusions réseaux en installant un dispositif de protection, à savoir un pare-
feu (Firewall), et/ou un système de détection d’intrusions (IDS).
Il est donc intéressant de connaître la différence entre ces deux dispositifs et de savoir si
l’utilisation de l’un des deux suffit pour assurer la sécurité du système.
Ainsi, suivant le degré de risque du système d'information, il est très utile de détecter
en temps réel les attaques et de remonter une alerte à l’administrateur. D’où l’importance
d’implémenter un IDS qui fonctionnera au niveau du réseau interne.
Malheureusement, certains cas parlent d’eux même, on ne peut pas s’assurer d’une
parfaite fiabilité lors de l’identification des attaques, puisque des faux positifs, lorsqu’on les
bloque, peuvent paraitre dangereux pour un IPS, générant ainsi un dysfonctionnement du
système. C’est entre autres, pour cela qu’on a opté pour un IDS
Dans le cas où nous voulons détecter les intrusions externes seulement, nous devons
placer le NIDS avant (en amont) le pare-feu ou le routeur filtrant comme le monter la (Figure
II.1). Dans cette position, la sonde occupe une place de premier choix dans la détection des
attaques de sources extérieures visant l’entreprise. Cependant, il faut savoir qu’un trafic très
important peut engendrer des pertes de fiabilité et que dans cette position, le NIDS est exposé
à des éventuelles attaques puisqu’il n’est plus protégé par le pare-feu.
Internet
Pare-feu
IDS SNORT
Switch
Internet
IDS SNORT
Pare-feu
Switch
On peut aussi placer l’IDS dans une zone connue comme étant la plus sensible du réseau,
cette zone peut contenir : des serveurs (web, fichiers, ase de données), des mainframes, …).
On appelle cette zone DMZ, ou bien Zone démilitarisée.
Internet
IDS SNORT
Mainframe
Pare-feu
Servers
DMZ Switch
Comme on peut aussi admettre le cas d’une mise en place de plusieurs sondes SNORT,
chacune sur un segment sachant que, plus le nombre de NIDS est grand, leur gestion devient
difficile et coûteuse.
Mainframe Internet
Pare-feu
Servers
IDS SNORT
DMZ Switch
Les graphes : c’est une approche à base de graphes qui permettent de mettre en
évidence des propriétés et des relations entre ces propriétés. Son intérêt, c’est qu’elle
permet de traiter plus facilement des événements rares.
5. SNORT :
Alors que les attaques des réseaux prennent de l’ampleur, et que les failles de sécurités
de cessent d’augmenter, seul une multitude de mécanismes de sécurité permettra de tirer du
néant l’insécurité des systèmes d’informations. En complément pour les pare-feux, les
systèmes d’authentifications et autres dispositifs de sureté, le choix de l’IDS Open source
« SNORT » est fait car il est considéré parmi les meilleurs dans le domaine de la détection
d’intrusions [Voir Annexe D].
5.1. Présentation :
SNORT est un NIDS écrit par Martin Roesch, disponible sous licence GNU, son code
source est accessible et modifiable à partir de l’URL : « http://www.snort.org »
ETHERNET
Output
Packet plugins
Is dropped Output Alert
or log to a file
3 : Enregistrement dans la
5
D’exploitation 3
5 : Analyse des logs
Base de données enregistrés dans la base
de données
Afin de confirmer le choix fait pour l’IDS SNORT, une recherche a été effectuée sur
d’autres IDS Open Source célèbre, ainsi des comparaisons avec SNORT ont eu lieu selon
certains critères. Les IDS choisis pour cette partie sont Prelude et Bro. Ceci a permis de
distinguer SNORT parmi ces siens.
7
SSL (Secure Sockets Layers) est un procédé de sécurisation des transactions effectuées via Internet.
Moteur d’analyse Confrontation avec une Confrontation avec une Confrontation avec une
base des signatures base des signatures base des signatures
Informations dans les Alertes bien détaillées Alertes bien détaillées Alertes mal détaillées
alertes
Les résultats relevés de cette comparaison coïncident avec les besoins demandés et ont
permis, entre autres, de choisir SNORT qui s’avère le plus efficace parmi les autres IDS Open
Source.
7. Conclusion :
1. Introduction :
Il est piloté par les risques. Dans ce cadre, les causes majeures d’échec d’un
projet logiciel doivent être écartées en priorité. Nous identifions une première cause
provenant de l’incapacité de l’architecture technique à répondre aux contraintes
opérationnelles, et une seconde cause liée à l’inadéquation du développement aux
besoins des utilisateurs.
L’une des variantes du processus unifié, est le processus 2TUP « 2 Track Unified
Process », c’est un processus qui vise à fusionner les résultats évolutifs du modèle fonctionnel
et de l’architecture technique, pour y parvenir, après fusion, à l’obtention d’un processus en
forme de Y (Figure III.1).
Tableau III.1 : Utilisation des diagrammes UML en fonction du point de vue du modèle. [25]
Capture des besoins techniques : les diagrammes de classes (en option), de cas
d’utilisation, de séquence (en option), de collaboration (en option) et d’activités.
Java est un langage de programmation objet, reconnu pour ces qualités en termes de
portabilité ; l’une des raisons pour lesquelles il a été choisi comme langage, c’est son
adaptation facile aux différents systèmes d’exploitation, pourvu qu’on doive se munir de la
machine virtuelle Java (JVM : Java Virtual Machine) correspondante aux critères que le
logiciel possède.
Le code source de l’application ALS à été implémenté avec l’outil de programmation
NetBeans IDE en sa version 6.5.1, incluant la JVM de version 1.5.0_09-b03. Disponible en
téléchargement à l’adresse « http://www.netbeans.org »
Network_manager : Cet acteur peut gérer SNORT, dont ses signatures et les logs
qu’il stocke, peut aussi accéder à la base de données en mode interpréteur SQL.
Après identifications des acteurs ainsi que des cas d’utilisation de notre application,
l’illustration qui suit (Figure III.3 : Diagramme des cas d’utilisations) fait son apparition
pour schématiser les interactions entre les différentes entités et les cas d‘utilisations
correspondants. Cette figure indique les privilèges que chaque acteur possède, autrement dit,
les cas d’utilisations qui lui sont propre.
8
Intervenant direct sur un système
Remarque : pour le reste des diagrammes concernant cette section, tous les acteurs
seront représentés par un seul, ayant pour nom ACTEUR (Figure III.4 : Acteurs du
système).
Figure
III.4 : Acteur
Acteurs du
système
Diagramme
de
séquences
A ce stade,
les Super-user Network_manager User_without_privilege
fonctionnalités du système sont celle principalement effectuées par l’application ainsi que la
base de données qu’elle gère, ceci dit, il est nécessaire de préciser que le modèle de cette
application suit celui du Client-serveur. En effet, ALS gère l’outil, qui est caché derrière,
SNORT ; En acceptant les demandes qu’elle reçoit, effectue les traitements nécessaires, et
renvoie les résultats associés.
ALS Base de
données
Acteur
Requêtes SQL
4.1.2. Analyse :
L’analyse est la deuxième phase de la branche fonctionnelle du processus 2TUP. Visant à
étudier la spécification fonctionnelle et induisant une idée sur les accomplissements du
système.
Diagramme de séquences
Afin de comprendre l’accessibilité aux différents cas d’utilisations du système, le schéma qui
suit (Figure III.5 : Diagramme d’ activités géneralisé) exprime le comportement de « ALS »
vis-à-vis de l’utilisateur final tout en généralisant les cas d’utilisations en un seul.
S'authentifier
Deconnexion
La classe « Start » : Sert d’interface de dialogue entre SNORT et l’utilisateur en offrant les
menus permettant d’assurer le démarrage/arrêt des services de SNORT, ainsi que les services
proposés par l’application elle-même.
La classe « Sqlbd » : permet de gérer la base de données imposée par SNORT et résultante
d’ALS ; tout en stockant, modifiant ou affichant le contenu.
La classe « Auth » : Assure l’accès aux différents utilisateurs selon les privilèges que chacun
d’eux possèdent.
Auth
Start
Sqlbd Paramsnort
[Notifier
le refus]
[Accéder à l'application]
[Etablir un nouveau
[Déconnexion] profil pour consulter
les alertes]
Démarrer SNORT
Cette phase du processus implique les contraintes, orientant la conception du système, qui
répondent aux exigences techniques recensées précédemment. Pour cela, les contraintes
matérielles ainsi que logicielles vont être mises en considération afin de s’approvisionner pour
poursuivre la méthodologie 2TUP adoptée.
Contraintes matérielles :
L’étude de cette section va débuter à partir d’une analyse de la figure (Figure II.4 Chapitre2)
schématisant les différents emplacements de SNORT, pourvu que l’application en cours de
conception « ALS » est accessible à n’importe quel endroit du réseau (Serveurs ou hôtes).
Les stations contenant SNORT devront se munir de cartes réseaux Ethernet GigaByte,
afin de pouvoir contrôler la quantité de données variables et majoritairement grande.
Les stations devront contenir assez de mémoire vive (RAM) pour supporter les
traitements que fait SNORT.
Les stations doivent avoir des supports de stockage d’assez grandes tailles afin de
pouvoir y stocker les logs que génère SNORT.
Contraintes logicielles :
Afin de comprendre le fonctionnement de l’application dans son contexte global, il faudrait se
référer au schéma (Figure II.5 Chapitre2) qui indique toutes les interactions possibles entre les
composantes logicielles présentes.
L’application « ALS » sera la tierce partie d’un ensemble (SNORT + Base de Données) déjà
existant, d’où la première intension d’implémenter les tables crées par « ALS » dans la base
de données même de SNORT, et ce pour assurer l’accès aux données aux deux entités
principalement intervenantes.
Dans un premier temps, SNORT analyse le trafic en recherchant des flux comportant
des paquets semblables aux signatures d’attaques et rempli sa base de logs.
Ensuite, « ALS » analyse les logs enregistrés pour en tirer des statistiques.
« ALS », peut aussi intervenir sur SNORT même en démarrant/arrêtant ou en
changeant ses critères de configuration selon la façon voulue d’analyse de trafic.
Saisir login
Consulter les
statistiques
«include»
«include»
«extends» «extends» Saisir mot de passe
«include»
Acteur
S'authentifier
Choisir le type de Choisir les
statistiques critères d'affichage
«include»
«include»
Editer un rapport
d'Audit
Network_manager User_without_privilege
Super-user
Gérer les
signatures «include»
«include»
Supprimer les
Supprimer la
fichiers des signatures
Modifier les Modifier les signature
fichiers des signatures signatures
Confiurer
l'application
«extends»
«extends»
Gérer la base de
Super_user données
Configurer le
tableau de bord
Configurer le
lancement de SNORT
ALS SNORT
API API
IHM Interface_Réseau
Ethernet
Acteur
Base_de_données Base_de_données
BD
4.3. Conception :
Afin d’entamer la phase de conception qui consiste à fusionner notre étude
fonctionnelle avec l’étude technique. Il va falloir passer de l’analyse objet à la conception.
Les interactions entre classes de conception permettent de consolider et de vérifier à terme
la conception des cas d’utilisation fonctionnels tenant compte des contraintes
opérationnelles.
Diagramme de classes
Vue que le nombre de classes est grand, il serait préférable de donner un vue d’ensemble à
l’application, en schématisant le fonctionnement de cette dernière par un diagramme de classe
(Figure III.16) tout en sachant que les vrais noms des classes ne sont pas les mêmes indiqués
sur cette figure.
Analyse temporelle
l’utilisateur qui veut se connecter et les donner ce trouvant dans la table `user` de la
base de données intitulé `snort`. La classe qui conduit cette phase de connexion à la
BD est « User ».
L’accueil de l’application est assuré par deux classes « Lance » et « Start ».
La classe « Start » permet l’accès à toutes les fonctionnalités du système dont :
la configuration de SNORT assurée par « Paramsnort » ;
le traitement des règles (ajout, modification, création, suppression) guidé par les
classes « Ajoutr », « Editr », « Assiseditr », « Modiffr », « Modifr », « Suppfr »,
« Suppr ».
La consultation des statistiques, en d’autres termes les logs de SNORT, implique
plusieurs classes faite selon les différents choix qui existent (sonde, protocoles, ports
[source ; destination ; TCP ; UDP], @IP, analyse temporelle) ; Les classes
participantes sont donc : « Aalerte », « Calerte », « Atemp », « Aport », « Aprsrc »,
« Aprsrc », « Aprotocol », « Asonde », « Aptcp », « Apudp ».
L’aide de l’application est assuré par la classe « Ageneral »
L’accès à la base de données implique les classes : « Sqlbd », « Abds », « Videbd » ;
Selon les choix faits, ces classes sont utilisées pour apporter des modifications,
suppression ou un simple affichage à l’utilisateur de l’application
La classe « Rapport » permet l’impression d’un rapport de situation détaillé
concernant l’analyse faite.
Les classes « Main » et « Panel » épaulent l’application pour le démarrage et
l’affichage des fenêtres.
Dans cette partie, les concepts provenant de l’analyse vont être transformés en techniques
disponibles selon les outils et langages de développement conventionnés.
La conception des associations, trainera les classes participantes vues à l’analyse, les
accompagne aux opérations de gestion et autres classes dont on a discuté l’existence à la
conception préliminaire.
La conception des attributs se voit principalement définir le type et la visibilité des attributs.
Diagrammes des classes
Les deux étapes successives et précédentes permettront d’aboutir à des diagrammes de classes
remarquables sur le plan des associations et des attributs.
Remarque :
Pour des soucis d’impression concernant les diagrammes de classes, on va à chaque fois
focaliser sur une classe, la détailler et présenter les éventuels liens qu’elle possède avec les
autres classes.
5. Conclusion :
1. Introduction :
Toute application qui voit le jour, conduit son utilisateur à rechercher et essayer les
fonctionnalités qu’elle cache. Ce chapitre, permet de dénombrer les fonctionnalités de
« ALS », tout en gardant l’œil sur les techniques utilisées lors du codage de l’application.
2. SNORT :
4. Test de l’application :
4.3. Authentification :
La première interface qui apparait, permet à un utilisateur ayant un accès de s’authentifier à
l’aide d’un identifiant ‘Login’ et ‘Mot de passe‘ (Figure IV.1). Si l’identifiant est incorrecte
un message d’erreur apparait, après trois tentatives échouées, l’application se referme
automatiquement (Figure IV.2).
4.4. Accueil :
En saisissant un identifiant et un mot de passe valides, l’utilisateur peut accéder à la page
d’accueil de ALS, lui permettant d’approcher toutes les autres fonctionnalités. (Figure IV.3)
Figure IV.9 : Classification des alertes selon les ports source et destination
Analyse temporelle :
Cette analyse permet de donner un aspect réparti des alertes suivant un intervalle de temps
que l’utilisateur choisit. Ça peut être vu par heure, par jour, ou par mois.
4.9. Aide :
L’application comporte un menu d’aide, pauvre en lui-même, mais qui offre une vision
génerale de « ALS ».
5. Conclusion :
Comme il a été défini à la conception, le logiciel « ALS » est maintenant conforme aux études
fonctionnelle et technique ; Ce dernier laisse, aux responsables réseaux ayant la crainte devant
la configuration manuelle de SNORT, une opportunité qui est celle de gérer toutes les
composantes liées à SNORT à travers une interface Homme-machine remarquable.
CONCLUSION
Le succès de la sécurité des réseaux diffère d’une technologie à une autre ; il a vu naitre de
nouvelles solutions sécurisantes, comme il a apprécié la croissance distinguée dans la
robustesse d’autres.
Ce mémoire de fin d’études ayant pour objectif, le développement d’une application
complémentaire à l’IDS SNORT et qui permet la gestion et l’analyse des logs de ce dernier.
Cette application a été baptisée « ALS » relativement à Analyseur de Logs pour SNORT.
Offrant une multitude de fonctionnalités qui permettent une gestion complète de l’outil
SNORT, dont ses règles, sa base de logs, et son mode de fonctionnement.
La définition d’une première version de « ALS » exprime la possibilité de son développement
ultérieur en termes de qualité ou de fonctionnalités.
Ce projet m’a permis une exploration concrète des différentes facettes de la sécurité
informatique dont le piratage ainsi que les outils de détection et de prévention. L’assiduité et
la disponibilité de mon parrain m’ont fait gagner une forte confiance en soi et des ambitions
inégalés.
Arrivant à ces fins, qui s’avèrent débutantes pour les perspectives d’avenir, le projet « ALS »
a su défier les autres outils s’orientant dans le même sens que lui, tel qu’ACID.
PERSPECTIVES
Annexes
Afin de mieux comprendre la détection d’intrusion, ces procédés et technique, il faut bien
connaitre et savoir manipuler les protocoles réseau.
Dans cette annexe il y aura définition des protocoles les plus utilisés.
TCP est un protocole orienté connexion, c'est-à-dire qu’il permet à deux machines qui
communiquent de contrôler l’état de la transmission et ce à travers :
Port Source (16 bits): Port relatif à l'application en cours sur la machine source
Port Destination (16 bits): Port relatif à l'application en cours sur la machine
de destination
Numéro d'ordre (ou séquence) (32 bits): Lorsque le drapeau SYN est à 0, le
numéro d'ordre est celui du premier mot du segment en cours.Lorsque SYN est à 1, le
numéro d'ordre est égal au numéro d'ordre initial utilisé pour synchroniser les numéros
de séquence (ISN)
Décalage des données (4 bits): il permet de repérer le début des données dans le
paquet.
Le décalage est ici essentiel car le champ d'options est de taille variable
Remplissage: On remplit l'espace restant après les options avec des zéros pour avoir
une longueur multiple de 32 bits
A.2 Le protocole IP
Longueur d'en-tête, ou IHL pour Internet Header Length (4 bits) : il s'agit du nombre
de mots de 32 bits constituant l'en-tête (nota : la valeur minimale est 5). Ce champ est
codé sur 4 bits.
Type de service (8 bits) : il indique la façon selon laquelle le datagramme doit être
traité.
Durée de vie appelée aussi TTL, pour Time To Live (8 bits) : ce champ indique le
nombre
maximal de routeurs à travers lesquels le datagramme peut passer. Ainsi ce champ est
décrémenté à chaque passage dans un routeur, lorsque celui-ci atteint la valeur critique de 0,
le routeur détruit le datagramme. Cela évite l'encombrement du réseau par les
datagrammes perdus.
En ayant des connaissances basiques en programmation, toute personne peut créer des
virus à l’aide d’outils mis à la porté, en téléchargement (gratuit la plupart du temps). Le code
source, ainsi que les missions cibles diffèrent d’un logiciel malveillant à un autre.
Il existe une diversité de virus circulant sur nos réseaux et systèmes d’informations.
On note, dans cette annexe, les plus populaires d’entre eux.
Dans un premier temps, le programme serveur est envoyé à la victime dans un courrier
électronique sous la forme d’une pièce jointe. Lorsque ce fichier est exécuté, le programme
ouvre un port sur la machine attaquée et s’installe de façon résidente et invisible dans le
système victime.
Ensuite programme client initialise une connexion avec la machine attaquée et permet ainsi le
contrôle de l’ordinateur de la victime. Au préalable, et afin de s’infiltrer dans une machine, le
pirate doit en connaitre l’adresse IP.
Les bombes logiques sont des programmes ou commandes programmés d’une façon
insidieuse et contenant généralement un mode de déclenchement différé en fonction
d’événements ou de dates déterminées. Ces bombes exploitent donc des informations comme
la date système, le lancement d’une procédure, une commande du shell, un call système
(appel système). Les mécanismes utilisés sont, dans certains cas, conçus de manière à
répondre à une commande télé programmée (RTC, accès à un PAVI, à un PAD…)
La bombe logique la plus connue, qui a, manifestement, fait des ravages qu’encourent encor
les utilisateurs les moins protégés est :
Tchernobyle (CIH) : il a fait son apparition en 1998 à Taïwan, c’est un virus qu’on
appelle « Résident », il se cache au sein de la machine infectée, en attendant la date
de son déclenchement connue pour 26 Avril (relative à la catastrophe nucléaire
Tchernobyle 26 Avril 1986). Ainsi il infecte les exécutables, détruit les données et il va
même jusqu’à effacer le BIOS.
Les vers de station s’attaquent à un seul système et utilisent les connexions réseau
pour se copier sur toutes les machines du réseau. On parle à leur propos de « lapins »
par analogie avec l’animal prolifique.
Les vers de réseau sont constitués de plusieurs segments, tournant chacun sur une
machine différente. Le réseau constitue alors un support de communication et de
propagation. Certains vers possèdent un segment principal qui coordonne les actions
des autres segments ou sous-segments. Ce type de vers est appelé « pieuvre » par
analogie avec cet animal tentaculaire.
Toutes les applications Microsoft sont liées les uns aux autres par leur langage de
programmation Visual Basic et son dérivé VB script. Ce fait a poussé certains à écrire des
virus macros en utilisant les mêmes logiciels.
Ce sont des programmes conçus pour épuiser les ressources d’un système (Horloge CPU,
RAM, Espace disque,…). Contrairement aux virus et aux vers, ils n’infectent pas les fichiers
et ne se propagent pas à travers le réseau. Ils tournent en boucle infinie en créant de nouvelles
tâches (par exemple variables) qui saturent la mémoire et provoquent l’erreur.
• Planification et organisation :
- Couvre la stratégie et les tactiques ;
- Concerne l’identification des moyens permettant à l’informatique de contribuer à la
réalisation des objectifs commerciaux de l’entreprise.
1. étude du contexte : Vision globale et explicite du système étudié, des enjeux, des
contraintes et référentiels applicables.
3. étude des menaces : Recensement des scénarios pouvant porter atteinte aux
composants (techniques ou non) du SI.
1. Préparation : définir les objectifs de sécurité à atteindre ainsi que le champs d'action de
l'audit et le découpage fonctionnel du SI à adopter pour simplifier la réalisation de
l'étude.
3. Analyse des risques : permet de classer les risques selon leur criticité (en classes :
Risques Majeurs et Risques Simples). Elle procède au découpage fonctionnel du SI pour
une analyse détaillée des menaces, de leur impact respectif et de leur probabilité.
4. Plan d'action : propose les solutions à mettre en œuvre pour élever la valeur des 27
indicateurs à la valeur 3 (niveau de sécurité satisfaisant) de l'audit des vulnérabilités et
atteindre les objectifs fixés en préparation.
Remarque :
Bien que ces méthodologies ont un grand succès dans le domaine de la sécurité, elles
ne se réfèrent pas, néanmoins, à un standard commun. Contrairement, par exemple, à la norme
ISO/CEI 27002 qui est une norme internationale concernant la sécurité de l'information,
publiée en juillet 2007 par l'ISO et qui définit douze domaines (Articles) de sécurité de
l'information constituant au total 41 catégories (objectifs de sécurité).
D.1 Installation
On peut aussi bien installer SNORT sous Windows que sous Linux. La procédure
d’installation et les techniques de configuration changent bien sûr mais le fonctionnement de
SNORT reste lui-même.
o SNORT 2.8.4.1
o WinPcap 3.1
o EasyPHP 2.0b1 Contient : Apache ; MySQL ; PHP ; PHPmyAdmin.
o ntwdblib.dll à télécharger puis à copier dans c:\snort\bin
NB : ntwdblib.dll est la bibliothèque SQL Server spécifique au client (SQL Server
Client library), elle est en téléchargement libre sur Internet.
D.1.2 Configuration
Afin de détecter les intrusions, SNORT utilise des règles qui sont téléchargeables à partir
du site « http://www.snort.org ». Il faut placer ces règles d’extension «.rules » dans le dossier
de Snort selon le chemin suivant : « C:\Snort\rules ».
Les règles de Snort sont décrites dans un langage simple et sont composées de deux
parties comme suit :
Modifier les paramètres de sortie (output) pour que Snort journalise dans la base MySQL :
output database: log, mysql, user=root dbname=snort host=localhost
Activer ou désactiver les règles voulues afin de spécifier le niveau de sécurité souhaité
Avant de lancer Snort, il est utile de spécifier l’interface qu’il va utiliser pour l’analyse.
Pour ce faire, il faut ouvrir une fenêtre de commande DOS et se déplacer dans le
répertoire
« bin » du dossier d'installation de Snort. L’option « -W » (en majuscule) permet,
sous Windows seulement, de lister ces interfaces comme le montre la figure suivante:
Mode Sniffer
snort –v : Cette commande permet d’exécuter et d’afficher les entêtes des paquets
TCP/IP.
snort –vd : Cette commande permet d’exécuter Snort et d’afficher tout le paquet
TCP/IP (entête et données).
snort –vde : Cette commande permet d’exécuter Snort et d’afficher tout le paquet
TCP/IP (entête et données) ainsi que de l’entête de la couche liaison de données.
La recherche de motif (Pattern Matching en anglais) permet de localiser une occurrence d’un
mot (motif) dans un texte. Parmi les algorithmes utilisés nous citons :
/* Searching */
for (j = 0; j <= n - m; ++j) {
for (i = 0; i < m && x[i] == y[i + j]; ++i);
if (i >= m)
OUTPUT(j);
}
}
This algorithm can be rewriting to give a more efficient algorithm in practice as follows:
#define EOS '\0'
i = 0;
j = kmpNext[0] = -1;
while (i < m) {
while (j > -1 && x[i] != x[j])
j = kmpNext[j];
i++;
j++;
if (x[i] == x[j])
kmpNext[i] = kmpNext[j];
else
kmpNext[i] = j;
}
}
void KMP(char *x, int m, char *y, int n) {
int i, j, kmpNext[XSIZE];
/* Preprocessing */
preKmp(x, m, kmpNext);
/* Searching */
i = j = 0;
while (j < n) {
while (i > -1 && x[i] != y[j])
i = kmpNext[i];
i++;
j++;
if (i >= m) {
OUTPUT(j - i);
i = kmpNext[i];
}
}
}
suff[m - 1] = m;
g = m - 1;
for (i = m - 2; i >= 0; --i) {
if (i > g && suff[i + m - 1 - f] < i - g)
suff[i] = suff[i + m - 1 - f];
else {
if (i < g)
g = i;
f = i;
while (g >= 0 && x[g] == x[g + m - 1 - f])
--g;
suff[i] = f - g;
}
}
}
void preBmGs(char *x, int m, int bmGs[]) {
int i, j, suff[XSIZE];
suffixes(x, m, suff);
/* Preprocessing */
preBmGs(x, m, bmGs);
preBmBc(x, m, bmBc);
/* Searching */
j = 0;
while (j <= n - m) {
for (i = m - 1; i >= 0 && x[i] == y[i + j]; --i);
if (i < 0) {
OUTPUT(j);
j += bmGs[0];
}
else
j += MAX(bmGs[i], bmBc[y[i + j]] - m + 1 + i);
}
}
FILE *file;
char **mots; // Ensemble de mots a chercher
int alpha;
char buffer[256];
int i;
if(argc<4) {
printf("Generateur de motif dans le fichier fic.txt\n");
printf("Usage : %s fic.txt taille(Mo) motif1 [motif2] [motif3] ...\n",argv[0]);
exit(1);
}
int nbMot = argc - 3;
char *dest = argv[1];
int size = atoi(argv[2]);
srand(time(NULL));
char car[] = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm',
'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z'};
mots = (char**) malloc(sizeof(char*)*nbMot);
printf("Ajout de %d mot(s) dans le fichier\n",nbMot);
for(alpha=3;alpha<argc;alpha++){
strcpy(buffer,argv[alpha]);
mots[alpha-3] = (char*) malloc(sizeof(char)*(1+strlen(buffer)));
strcpy(mots[alpha-3], buffer);
}
int pos[nbMot];
for (i = 0; i < nbMot; i++) {
pos[i] = (int) (rand() / (double) RAND_MAX * ((size*1000000)-10));
}
triSelection(pos, nbMot);
file = fopen(dest, "w");
int nbAlea, nbChar;
for (nbChar = 0, i = 0; nbChar * sizeof(char) < (size*1000000); ) {
if (pos[i] == nbChar) {
printf("Ajout du mot %s en position %d dans le texte\n",mots[i],pos[i]);
fprintf(file, "%s", mots[i]);
nbChar += strlen(mots[i]);
if (i < nbMot) {
i++;
}
} else {
nbAlea = (int)(rand() / (double)RAND_MAX * (sizeof(car) - 1));
fprintf(file, "%c", car[nbAlea]);
nbChar++;
}
}
fclose(file);
printf("Le fichier %s a ete correctement genere\n",dest);
return 0;
}
[1] : Livre « La sécurité des réseaux First-Step » (cisco press et Campus press) -2004-
Auteur : Tom Thomas
[2] : Livre « La sécurité sur Internet » (LAVOISIER) -2005- Auteurs : Henri Ly et Zouheir
Trabelsi
[3] : Site web http://www.grappa.univ-lille3.fr/polys/systreseaux/ch01s02.html
[4] : Dictionnaire Le Petit Larousse (Grand format) -1995-
[5] : Site web
www.metz.supelec.fr/~vialle/course/SI/ntiers/remi.leblond.free.fr_probatoire_probatoire.pdf
[6] : Site web http://www.kh.refer.org/cours_en_lignes/cours_reseau/Page/chap1_lecon5.htm
[7] : Site web http://www.ssi.gouv.fr/fr/documentation/650/650.pdf
[8] : Site web www.guideinformatique.com
[9] : Site web www.alaide.com
[10] : Site web http://cyberzoide.developpez.com/securite/methodes-analyse-risques/
[11] : Site web http://www.adele.gouv.fr/it06/leblog/wp-content/cobit.pdf
[12] : Livre « Réseaux bayésiens naïfs et arbres de décision dans les systèmes de détection
d’intrusions » Volume 25 – n°2/2006, pages 167 à 196 Auteurs: Nahla Ben Amor, Salem
Benferhat, Zied Elouedi, RSTI-TSI,
[13] : Site web www.snort.org
[14] : Site web www.bro-ids.org
[15] : Site web www.ossir.org/resist/supports/cr/200205/ids-logs.pdf
[16] : Site web http://www.prelude-ids.org/
[17] :Site web http://actes.sstic.org/SSTIC03/Profils_propres/SSTIC03-article-Bouzida-
Profils_propres.pdf
[18] : Site web http://dbprog.developpez.com/securite/ids/IDS.pdf
[19] : Site web http://www.supelec-rennes.fr/rennes/si/equipe/lme/
[20] : Site web http://papini.univ-tln.fr/sources/MASTER2-PRO/cours-log-sec-4.pdf
[21] : Site web http://www-igm.univ-mlv.fr
[22] : Livre « Hacker’s Guide » CampusPress -2004- Auteur : Eric Charton
[23] : Site web www.commentcamarche.net
[24] : Site web http://www.agrojob.com/dictionnaire/definition-uml-3870.html
[25] : Livre « UML en action » Groupe Eyrolles -2003- Chapitre 2 Auteurs: Pascal Roques et
Franck Vallée
[26] : Rapport de Projet de Fin d’Etudes Aos Aouini ISSAT-Sousse 2007