REPUBLIQUE DU SENEGAL
Année académique : 2018-2019
Un peuple - un but - une foi
Ministère de l'enseignement supérieur, de
la recherche et de l'innovation
Direction générale de l'enseignement
supérieur
Direction de l'enseignement supérieur
privé
Ecole supérieure de technologie et de
management
Mémoire de fin de cycle pour l'obtention de la
licence en Téléinformatique
Option : Génie logiciel et
Administration réseaux
Intitulé
Inspection du trafic pour la détection et la
prévention d'intrusions
Présenté et soutenu par : Sous la direction
de :
M. Frèse YABOUI M. Youssef KHLIL
Spécialité : Cryptographie
I
Dédicace
Dédicace à mes chers parents M. Emmanuel
YABOUI et Mme Julienne OKOUYA en guise de
reconnaissance et de gratitude pour leur amour, leur patience, leur soutien,
leur encouragement et leur sacrifice. Aucun mot, aucune dédicace ne
pourrait exprimer mon respect, ma considération, ainsi que l'expression
de mon profond amour. Puisse Dieu vous accordé santé, bonheur et
longue vie afin que je puisse un jour combler de joie vos vieux jours.
Je dédie également ce travail à mon
père spirituel Dr. Cyrille KINHOEGBE qui m'a soutenu
moralement dans l'élaboration de ce travail. Son encouragement m'a
permis de garder le cap afin d'atteindre mon objectif.
II
Remerciements
Tout d'abord, je tiens à remercier Dieu le
Père de notre Seigneur Jésus-Christ de
m'avoir donné la force, la volonté et le courage pour arriver
à l'achèvement de ce travail.
De plus, j'ai la fierté et le plaisir de
présenter mes sincères remerciements à mon encadreur
M. Youssef KHILL, pour m'avoir guidé tout au long de
mon travail, m'aider à trouver des solutions pour avancer et le temps
qu'il m'a accordé pour mon encadrement.
Je tiens à remercier tous les enseignants qui ont
contribué à la formation pendant tout mon cycle. En effet, leur
aide m'a été précieuse pour arriver au terme de ce
travail.
Je tiens aussi à remercier le Directeur des Etudes de
ESTM, M. Félix KAMPAL pour m'avoir accepté au
sein de cet établissement. Permettez-moi de vous exprimer mon admiration
pour vos qualités humaines et professionnelles.
J'exprime également mes remerciements à mes
frères Régis NDOSSANI, Hanniel
COULIDIATI SOUANDAMBA, Grâce GOTRON,
Fortunet GUINDOGBA WEMON, Juste Emmanuel YABOUI
et à mes soeurs Christen GUIMBETY,
Jeannice ROBOTY, Fulberte KPODE, NZASSI
Sheirole, Juliema YABOUI, Frèsia YABOUI et Karina
YABOUI Zinnia qui m'ont soutenu moralement dans l'élaboration
de ce travail. Leur encouragement m'ont permis de garder le cap afin
d'atteindre mon objectif.
J'associe nos remerciements aux membres du Jury pour avoir
accepté de siéger pour la perfection de ce mémoire.
Enfin, je tiens à remercier tous ceux qui ont
participé de près ou de loin à l'élaboration de ce
mémoire.
III
Avant-propos
L'Ecole Supérieure de Technologie et de Management a
été créée en 2002. Spécialisée entre
autres dans les domaines de l'informatique, de la
télécommunication et du management des entreprises, elle a pour
missions de former les étudiants qui ont toujours su se faire distinguer
sur le marché du travail, de par leurs connaissances et
compétences acquises à l'issue de leur formation. Forte de son
expérience, elle a toujours su se hisser parmi les meilleures
écoles de la place évoluant dans le même secteur
d'activité. Les diplômes délivrés sont la licence et
le master homologués par les institutions académiques (CAMES)
africaines.
Pour l'obtention de la licence en
téléinformatique, l'ESTM exige à ses étudiants
l'élaboration d'un mémoire de fin de cycle. C'est dans cette
perspective que nous avons rédigé ce document qui s'intitule
Inspection du trafic pour la détection et la prévention
d'intrusions.
Dans ce sujet il s'agira de mettre en place un système
de détection et de prévention d'intrusions en utilisant des
outils libres. Ce système de sécurité permettra de
détecter et d'y remédier aux intrusions sur le réseau
aussi bien que sur les équipements du système d'information.
Ce document représente notre premier travail de
recherche. A cet effet, nous sollicitons de la part du jury beaucoup
d'indulgence quant à l'évaluation.
IV
Sommaire
Introduction générale 1
I. Cadre théorique et méthodologique
3
1.1. Cadre méthodologique 3
1.1.1. Présentation de l'ESTM 3
1.1.2. Problématique 4
1.1.3. Objectifs 4
1.1.4. Délimitation du sujet 4
1.2. La sécurité informatique
5
1.2.1. Qu'est-ce que la sécurité ? 5
1.2.2. Objectifs de la sécurité 5
1.2.3. Les enjeux de la sécurité 6
1.2.4. Les vulnérabilités 6
1.2.5. Les menaces 7
1.2.6. Les logiciels malveillants 7
1.2.7. Les intrusions 7
1.2.8. Les attaques 8
1.2.9. Les moyens de sécuriser un réseau 15
1.2.10. Mise en oeuvre d'une politique de sécurité
21
II. Cadre conceptuel 22
2.3. Système de détection et de
prévention d'intrusions 23
2.3.1. Système de détection d'intrusions (IDS)
23
2.3.2. Systèmes de prévention d'intrusions (IPS)
38
2.4. Etude des solutions 44
2.4.1. Systèmes de détection d'intrusions
basée sur l'hôte (RIDS) 44
2.4.2. Systèmes de détection d'intrusions
réseau (NIDS) 47
2.4.3. Choix des solutions 50
2.4.4. Présentation générale de SNORT 50
2.4.5. Présentation générale d'OSSEC 57
III. Mise en oeuvre 63
3.5. Architecture et prérequis 63
3.5.1. Architecture 63
V
3.5.2. Prérequis 64
3.6. Configuration et tests 65
3.6.1. SNORT 65
3.6.2. Installation de Barnyard2 69
3.6.3. Installation de PulledPork 72
3.6.4. Création de Scripts SystemD 74
3.6.5. Installation de B.A.S.E 75
3.6.6. OSSEC 76
3.6.7. Tests d'intrusions 79
Conclusion générale 82
VI
Glossaire
ACID: Analyse Consol for Intrusions Database
ADODB: Active DATA Objects DATA Base
ARP: Address Resolution Protocol
ASA: Adaptive Security Appliance
CD ROM: Compact Disc Read OnlyMemory
CERT: Computer Emergency Response Team
CIDR: Classless Inter-Domain Routing
CGI: Information Systems and Management Consultants
CIS: Center for Internet Security
CPU: Central Processing Unit
DAQ: Data Acquisition
DDoS: Distributed Denial of Service
DHCP: Dynamic Host Configuration Protocol
DMZ: DeMilitarized Zone
DNS: Domain Name Service
DVD: Digital Versatile Disc
ESTM: Ecole Supérieure de Technologie et de
Management
FTP: File Transfer Protocol
H-IDS: Host Based Intrusions Detection System
HIPS: Host Kernel Intrusion Prevention System
HTTP: HyperText Transfer Protocol
HTTPS: HyperText Transfer Protocol Secure
ICMP: Internet Control Message Protocol
IDS: Intrusions Detection System
IDWG: Intrusions Detection exchange formatWorking Group
IETF: Internet Engineering Task Force
IGRP: Interior Gateway Routing Protocol
IOS: Internetwork Operating System
IPS: Intrusions Prevention System
IPSec: Internet Protocol Security
IPX: Internetwork Packet Exchange
ISS: Internet Secure System
VII
KIPS: Kernel Intrusion Prevention System
LAN: Local Area Network
NFS: Network File System
NNIDS: Node Network Intrusion Detection System
NIPS: Network Intrusion Prevention System
NMAP: Network Mapper
NTP: Network Time Protocol
OSPF: Open Shortest Path First
OSI: Open Systems Interconnection
PCI: Peripheral Component Interconnect
PHP: Hypertext Preprocessor
POP3: Post Office Protocol Version 3
PSSI: Politique de Sécurité des Systèmes
d'Information
RIP: Routing Information Protocol
RPC: Remote Procedure Call
SI: Système d'Information
SIEM: Security Information and Event Management
SGBD: Système de Gestion de Base de
Données
SIM: Security Information Management
SMB: Server message block
SMTP: Simple Mail Transfer Protocol
SNMP: Simple Network Management Protocol
SSH: Secure Shell
SSI: Sécurité des Systèmes
d'Information
SSL: Secure Socket Layer
SUID: Set User IDentifier
TCP/IP: Transmission Control Protocol /Internet Protocol
TLS: Transport Layer Security
TTL: Time-To-Live
UDP: User Datagram Protocol
URI: Uniform Resource Identifier
URL: Uniform Resource Locator
USB: Universal Serial Bus
VPN: Virtual Private Network
VIII
Liste des figures
Figure 1.1 : Architecture du réseau de l'ESTM 3
Figure 2.1 : Attaque directe 9
Figure 2.2 : Attaque indirecte par rebond 9
Figure 2.3: Attaque indirecte par réponse 10
Figure 2.4: Attaque par interruption 10
Figure 2.5: Attaque par interception 11
Figure 2.6: Attaque par modification 11
Figure 2.7: Attaque par fabrication 12
Figure 2.8: L'attaque SYN Flood 12
Figure 2.9: DDos attaque 13
Figure 2.10: Firewall 16
Figure 2.11: Architecture DMZ 17
Figure 2.12: Principe d'un VPN 18
Figure 2.13: Système de détection d'intrusions
18
Figure 2.14: Système de prévention d'intrusions
19
Figure 2.15: Un tunnel IPSec entre deux sites d'entreprise
21
Figure 4.1: Différentes positions possible de SNORT
dans un réseau informatiques 51
Figure 4.2: Architecture de SNORT 52
Figure 4.3: Les différents champs d'une règle
SNORT 54
Figure 4.4: architecture d'OSSEC 59
Figure 5.1 : Architecture du projet 64
Figure 6.1: Test du binaire SNORT 66
Figure 6.2: Validation du fichier de configuration 69
Figure 6.3: Validation de la nouvelle règle 69
Figure 6.4: Test d'installation de Barnyard2 70
Figure 6.5: Vérification d'enregistrement des
événements par Barnyard2 72
Figure 6.6: Oinkcode 72
Figure 6.7: Test de fonctionnement de PulledPork 73
Figure 6.8: Exécution manuelle de PulledPork 74
Figure 6.9: Installation de l'agent OSSEC sur la machine
Ubuntu 77
Figure 6.10: Ajout de la machine Ubuntu comme agent du serveur
OSSEC 77
Figure 6.11: Extraction de la clé pour la machine
Ubuntu 78
Figure 6.12: Ajout de la clé sur la machine Ubuntu
78
Figure 6.13: Agent connecté 79
Figure 6.14 : Ping de la machine Windows XP vers la machine
Ubuntu 79
Figure 6.15 : Détection du ping par la machine Ubuntu
80
Figure 6.16 : Connection SSH à la machine Ubuntu 80
Figure 6.17 : Accès au compte root de la machine Ubuntu
81
Figure 6.18 : Connection SSH détectée par le
serveur OSSEC via le Dashboard Kibana 81
Figure 6.19 : Connection SSH détectée par le
serveur OSSEC via le fichier alerts.log 82
IX
Liste des tableaux
Tableau 3.1: Avantages et inconvénient de l'approche
comportementale 33
Tableau 3.2: Avantages et inconvénient de l'approche
par scénario 34
Tableau 3.3 : Avantages et limites d'un IDS 38
Tableau 4.1: Comparaison des HIDS 46
Tableau 4.2 : Comparaison des NIDS 49
Tableau 4.3 : Systèmes et périphériques
pris en charge par OSSEC 62
Inspection du trafic pour la détection et la
prévention d'intrusions
Introduction générale
Les réseaux informatiques sont devenus beaucoup plus
important qu'ils en aient il y a quelques années. De nos jours les
entreprises dès leur création n'hésitent pas à
mettre en place un réseau informatique pour faciliter la gestion de leur
infrastructure, c'est pour cela que la sécurité de ces
réseaux constitue un enjeu crucial. Vu le nombre sans cesse croissant
d'attaques et d'incidents, et à titre d'exemple de WannaCry en 2017 dont
200 000 ordinateurs auraient été infectés sur tous les
continents. Etre réactif et proactif dans la détection et la
gestion des incidents cybers est une préoccupation de toutes les
structures.
Un système de détection d'intrusion (IDS) est un
mécanisme écoutant le trafic réseau de manière
furtive afin de repérer des activités anormales ou suspectes et
permettant aussi d'avoir une action de prévention sur les risques
d'intrusion. Il existe deux grandes familles distinctes d'IDS à savoir
les NIDS (Network Based Intrusion Detection System) et les
HIDS (Host Based Intrusion Detection System). Le but des NIDS
est de regarder les paquets transitant dans le réseau pour
déterminer si une attaque a lieu. Ainsi, un NIDS ne pourra
protéger que les ordinateurs se trouvant sur le même réseau
que lui, sauf dans le cas où il existe des machines routant les
informations d'un système différent vers l'IDS. Un
désavantage des NIDS est que tout paquet chiffré ne pourra pas
être compris par les NIDS, qui doivent lire le contenu des paquets. Ce
désavantage peut disparaître en utilisant des HIDS qui vont
obtenir les informations après leur déchiffrement sur la machine.
C'est dans cette logique qu'on se pose la question de savoir quel
système de sécurité mettre en place afin de
détecter et d'y remédier aux intrusions sur le réseau
aussi bien que sur les équipements du système d'information ?
L'objectif général de notre travail est de
mettre en place une solution de détection et de prévention
d'intrusions en utilisant des outils libres. Aussi pour remédier
à certaines limites que présentent ces logiciels libres que nous
utiliserons dans notre projet, nous écrirons des scripts qui
exécuteront certaines tâches bien définies. Et comme
objectifs spécifiques, nous aurons à faire une étude sur
les différentes solutions présentes sur le marché,
identifier la meilleure solution pour la mise en place de notre système
de détection d'intrusion réseau (NIDS) et l'implémenter,
identifier la meilleure solution pour la mise en place de notre système
de détection d'intrusion hôte (NIDS) et l'implémenter et
faire des tests d'intrusions.
Vu la panoplie des systèmes de détection et de
prévention d'intrusions efficaces sur le marché, raison pour
laquelle notre choix s'est porté sur ce sujet. Il sera question de
mettre à la
1
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
disposition des entreprises et des particuliers une solution
de sécurité pour prévenir contre toute tentation
d'intrusion au sein de leurs systèmes d'informations.
Pour matérialiser notre projet nous pouvons
considérer les hypothèses suivantes :
D'une part qu'on mette en place un système de
détection d'intrusion réseau (NIDS) pour sécuriser le
trafic sur le réseau. Et d'autre part qu'on mette en place un
système de détection d'intrusion hôte (HIDS) pour
sécuriser les équipements physiques du système
d'information.
Afin de prendre en compte la réalité des besoins
de la sécurité des systèmes d'information au sein des
entreprises qu'aussi au niveau des particuliers, nous nous sommes
appuyés sur une base assez conséquente de documents fiables
provenant des autorités d'organisation de ce domaine et le web. Aussi
nous nous sommes basés sur des idées novatrices tirées
d'échanges entre plusieurs acteurs du domaine de la
sécurité des systèmes d'information.
Ainsi notre travail s'articulera sur trois parties. Nous
commencerons par faire la présentation générale en
définissant les cadres théorique et méthodologique.
Ensuite nous passerons au cadre conceptuel de notre système. Enfin nous
terminerons par sa mise en oeuvre en abordant sa réalisation et son
test.
2
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
I. Cadre théorique et
méthodologique
Les cadres théoriques et méthodologiques feront
l'objet de notre première partie qui sera consacré à la
présentation générale de la structure d'accueil et des
concepts de la sécurité informatique.
1.1. Cadre méthodologique
1.1.1. Présentation de l'ESTM
ESTM (Ecole Supérieure de Technologie et de Management)
est une école d'ingénieurs et de spécialistes du
management à la pointe des dernières technologies qui a
été créée en 2002. Elle s'appuie sur un corps
professoral très expérimenté émanant de structures
universitaires et professionnelles de haut niveau. Elle possède un
environnement matériel interconnecté, qui vous permet
d'accéder à l'ensemble des ressources informatiques de
l'école.
Figure 1.1 : Architecture du réseau de
l'ESTM
Vu le nombre sans cesse croissant d'attaques et d'incidents,
l'ESTM se doit d'investir dans la sécurisation de son système
d'information et dans la qualité de service fournit aux clients.
Cependant il revient à souligner l'absence d'un système de
sécurité au sein de l'ESTM permettant d'identifier ces attaques
bien avant afin de les éradiquer pour ainsi assurer la protection de son
système d'information.
3
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
1.1.2. Problématique
Le système d'information (SI) est un
élément central d'une entreprise ou d'une organisation.
Il permet aux différents acteurs de véhiculer des informations et
de communiquer grâce à un ensemble de ressources
matérielles, humaines et logicielles. Un SI permet de créer,
collecter, stocker, traiter, modifier des informations sous divers formats. Le
système d'information est l'objet de nombreuses attaques et d'incidents.
C'est pourquoi, il sera nécessaire d'avoir un bon système de
sécurité pouvant défendre le système d'information
contre ces attaques et ces incidents. Ainsi, mettre en place un système
de sécurité afin de détecter et d'y remédier aux
intrusions sur le réseau aussi bien que sur les équipements du
système d'information.
1.1.3. Objectifs
Dans ce travail, l'objectif général sera de mettre
en place un système de détection et de prévention
d'intrusions en utilisant des outils libres. Ainsi, comme objectifs
secondaires, on peut citer :
? étudier et analyser tous les aspects traités par
un système de détection d'intrusions ; ? étudier et
analyser tous les aspects traités par un système de
prévention d'intrusions ;
? faire une étude sur les systèmes de
détection et de prévention d'intrusions disponibles sur le
marché ;
? identifier le système de détection et de
prévention d'intrusions le plus efficace, l'étudier et
l'implémenter ;
? faire des tests d'intrusions.
1.1.4. Délimitation du sujet
Ce travail n'a pas été effectué avec les
outils physiques de l'ESTM, mais l'architecture de l'ESTM ainsi que les
configurations ont été réalisé dans un
environnement virtuel.
On a consacré ce chapitre à la
présentation l'organisme d'accueil qui nous a permis de
comprendre la place qu'occupe cette structure dans le domaine.
L'étude du réseau ESTM nous a permis de mieux comprendre son
architecture et les stratégies utilisées pour sa
sécurisation.
4
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Dans le chapitre suivant nous allons présenter les
concepts liés à la sécurité informatique dans un
réseau et l'importance de la mise en place d'une politique de
sécurité.
1.2. La sécurité informatique
L'informatique et en particulier l'Internet jouent un
rôle grandissant dans le domaine des réseaux. Un grand nombre
d'applications critiques d'un point de vue de leur sécurité sont
déployées dans tous les secteurs professionnels. La
sécurité de ces réseaux constitue un enjeu crucial, le
contrôle des informations traitées et partagées au sein de
ces réseaux devient alors un problème majeur d'autant plus que
les réseaux sont interconnectés entre eux, ce qui complexifie
donc la tâche des responsables de la sécurité.
Tout au long de ce chapitre, notre intérêt se
portera sur les principales menaces pesant sur la sécurité des
réseaux ainsi que les mécanismes de défense.
1.2.1. Qu'est-ce que la sécurité ?
La sécurité informatique, d'une manière
générale, consiste à assurer que les ressources
matérielles ou logicielles d'une organisation sont uniquement
utilisées dans le cadre prévu.
1.2.2. Objectifs de la sécurité
La sécurité informatique vise
généralement cinq principaux objectifs :
? L'intégrité,
c'est-à-dire garantir que les données sont bien celles que l'on
croit être ;
? La confidentialité,
consistant à assurer que seules les personnes autorisées aient
accès aux ressources échangées ;
? La disponibilité,
permettant de maintenir le bon fonctionnement du système d'information
;
? La non-répudiation,
permettant de garantir qu'une transaction ne peut être niée ;
? L'authentification,
consistant à assurer que seules les personnes autorisées aient
accès aux ressources.
5
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
1.2.3. Les enjeux de la sécurité
? Enjeux économique : Les organismes
ou entreprises à but lucratif ont presque toujours la même
finalité : c'est de réaliser des bénéfices sur
l'ensemble de leurs activités. Cette réalisation est rendue
possible grâce à son système d'information
considéré comme moteur de développement de l'entreprise.
D'où la nécessité de garantir la sécurité de
ce dernier. La concurrence fait que des entreprises s'investissent de plus en
plus dans la sécurisation de leurs systèmes d'information et dans
la qualité de service fournit aux clients.
? Enjeux politiques : La plupart des
entreprises ou organisations se réfèrent aux documents officiels
de sécurité élaborés et recommandés par
l'État. Ces documents contiennent généralement des
directives qui doivent être appliquées par toute structure
engagée dans un processus de sécurisation du réseau. Dans
le cadre du chiffrement des données par exemple, chaque État
définit des cadres et mesures d'utilisation des algorithmes de
chiffrement et les recommande aux entreprises exerçant sur son
territoire. Le non-respect de ces mesures et recommandations peut avoir des
conséquences graves sur l'entreprise. A ce niveau, l'enjeu est plus
politique parce que chaque État souhaite être capable de
décrypter toutes les informations circulant dans son espace.
? Enjeux juridiques : Dans un réseau,
on retrouve de l'information multiforme (numérique, papier, etc.). Le
traitement de celle-ci doit se faire dans un cadre bien définit et dans
le strict respect des lois en vigueur. En matière de juridiction, le
non-respect des lois et exigences relatives à la manipulation des
informations dans un système d'information peut avoir des
conséquences graves sur l'entreprise.
1.2.4. Les vulnérabilités
En sécurité informatique, une
vulnérabilité est une faiblesse dans un système
informatique permettant à un attaquant de porter atteinte à
l'intégrité du système d'informations.
Ces vulnérabilités sont la conséquence de
faiblesses dans la conception d'un logiciel ou d'un site web liées
à des erreurs de programmation ou à de mauvaises pratiques.
Ces dysfonctionnements sont en général
corrigés à mesure de leurs découvertes, mais l'entreprise
reste exposée à une éventuelle exploitation tant que le
correctif n'est pas publié et
6
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
installé. C'est pourquoi il est important de maintenir les
logiciels à jour avec les correctifs fournis par les éditeurs de
logiciels et d'avoir un site web proprement maintenu.
1.2.5. Les menaces
Une menace est un événement, d'origine
accidentelle ou délibérée, capable s'il se
réalise de causer un dommage au sujet
étudié. Le réseau informatique comme tout autre
réseau informatique est en proie à des menaces de toutes sortes
qu'il convient de recenser.
On peut également classer les menaces en deux
catégories :
? Les menaces passives : consistent
essentiellement à copier ou à écouter l'information sur le
réseau, elles nuisent à la confidentialité des
données. Dans ce cas, celui qui prélève une copie
n'altère pas l'information elle-même ;
? Les menaces actives : consistent à
altérer des informations ou le bon fonctionnement d'un service.
1.2.6. Les logiciels malveillants
Ce sont des logiciels développés par des hackers
dans le but de nuire à un système d'informations.
Les chevaux de Troie : Un cheval de Troie est
une forme de logiciel malveillant déguisé en logiciel utile. Son
but : se faire exécuter par l'utilisateur, ce qui lui permet de
contrôler l'ordinateur et de s'en servir pour ses propres fins.
Généralement d'autres logiciels malveillants seront
installés sur votre ordinateur, tels que permettre la collecte
frauduleuse, la falsification ou la destruction de données.
Les logiciels espion : (Espiogiciel ou
logiciel espion) est un programme ou un sous-programme, conçu dans le
but de collecter des données personnelles sur ses utilisateurs et de les
envoyer à son concepteur, ou à un tiers via Internet ou tout
autre réseau informatique, sans avoir obtenu au préalable une
autorisation explicite et éclairée desdits utilisateurs.
Le spam : correspond à l'envoi
intempestif de courriers électroniques, publicitaires ou non, vers une
adresse mail. Le spam est une pollution du courrier légitime par une
énorme masse de courrier indésirable non sollicité.
1.2.7. Les intrusions
7
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Une intrusion est définie comme une faute malveillante
d'origine interne ou externe résultant d'une attaque qui a réussi
à exploiter une vulnérabilité. Elle est susceptible de
produire des erreurs pouvant provoquer une défaillance vis-à-vis
la sécurité, c'est-à-dire une violation de la politique de
sécurité du système. Le terme d'intrusions sera
employé dans le cas où l'attaque est menée avec
succès et où l'attaquant a réussi à s'introduire
et/ou compromettre le système.
1.2.8. Les attaques 1.2.8.1 Définition
Une attaque est définie comme faute d'interaction
malveillante visant à violer une ou plusieurs propriétés
de sécurité. C'est une faute externe créée avec
l'intention de nuire, y compris les attaques lancées par des outils
automatiques : vers, virus, etc. La notion d'attaque ne doit pas être
confondue avec la notion d'intrusions.
1.2.8.2. Anatomie d'une attaque
Fréquemment appelés « les 5 P » dans la
littérature, ces cinq verbes anglophones
constituent le squelette de toute attaque informatique :
Probe, Penetrate, Persist, Propagate, Paralyze.
? Probe (Analyser) : dans un premier temps,
une personne mal intentionnée va chercher les failles pour
pénétrer le réseau.
? Penetrate (Pénétrer) : une
fois une ou plusieurs failles identifiées, le pirate va chercher
à les exploiter afin de pénétrer au sien du SI.
? Persist (Persister) : une fois le
réseau infiltré, le pirate cherchera à y revenir
facilement. Pour cela, il installera par exemple des back doors. Cependant, en
général, il corrigera la faille par laquelle il s'est introduit
afin de s'assurer qu'aucun autre pirate n'exploitera sa cible.
? Propagate (Propager) : le réseau est
infiltré, l'accès est facile. Le pirate pourra alors explorer le
réseau et trouver de nouvelles cibles qui l'intéresseraient.
? Paralyze (Paralyser) : les cibles
identifiées, le pirate va agir et nuire au sein du SI.
8
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
1.2.8.3. Types d'attaques
Les hackers utilisent plusieurs techniques d'attaques. Ces
attaques peuvent être regroupées en trois familles
différentes :
v Les attaques directes : c'est la plus
simple des attaques. Le hacker attaque directement sa victime à partir
de son ordinateur. La plus part des hackers utilisent cette technique. En
effet, les programmes de hack qu'ils utilisent ne sont que faiblement
paramétrable, et un grand nombre de ces logiciels envoient directement
les paquets à la victime.
Figure 2.1 : Attaque directe
v Les attaques indirectes par rebond : cette
attaque est très prisée des hackers. En effet, le rebond a deux
avantages :
· masquer l'identité du hacker ;
· utiliser les ressources de l'ordinateur
intermédiaire car il est plus puissant pour attaquer. Le principe en
lui-même, est simple : Les paquets d'attaque sont envoyés à
l'ordinateur intermédiaire, qui répercute l'attaque vers la
victime. D'où le terme par rebond.
Figure 3.2 : Attaque indirecte par
rebond
9
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
? Les attaques indirectes par réponse :
cette attaque est une dérivée de l'attaque par rebond.
Elle offre les mêmes avantages, du point de vue du hacker. Mais au lieu
d'envoyer une attaque à l'ordinateur intermédiaire pour qu'il la
répercute, l'attaquant va lui envoyer une requête. Et c'est cette
réponse à la requête qui va être envoyée
à l'ordinateur victime.
Figure 4.3: Attaque indirecte par réponse
1.2.8.4. Catégorie des attaques
Il existe quatre catégories d'attaques :
· Attaques par interruption : c'est une
attaque protée à la disponibilité. La destruction d'une
pièce matérielle (tel un disque dure), la coupure d'une ligne de
communication, ou la mise hors service d'un système de gestion de
fichiers en sont des exemples.
Figure 5.4: Attaque par interruption
· Attaque par interception : c'est une
attaque portée à la confidentialité. Il peut s'agir d'une
personne, d'un programme ou d'un ordinateur. Une écoute
téléphonique dans le
10
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
but de capturer des données sur un réseau, ou la
copie non autorisée de fichiers ou de programme en sont des exemples.
Figure 6.5: Attaque par interception
· Attaque par modification : il s'agit
d'une attaque portée à l'intégrité. Changer des
valeurs dans un fichier de données, altérer un programme de
façon à bouleverser son comportement ou modifier le contenu de
messages transmis sur un réseau sont des exemples de telles attaques.
Figure 7.6: Attaque par modification
· Attaque par fabrication : c'est une
attaque portée à l'authenticité. Il peut s'agir de
l'insertion de faux messages dans un réseau ou l'ajout d'enregistrements
à un fichier.
11
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Figure 8.7: Attaque par fabrication
1.2.8.5. Quelques attaques courantes
Le Déni de Service : ce genre
d'attaques (denial of service en anglais ou DoS) sont des attaques qui visent
à rendre une machine ou un réseau indisponible durant une
certaine période. Cette attaque est dangereuse quand elle vise les
entreprises dépendantes de leur infrastructure réseau.
Le SYN flood : cette attaque utilise des
paquets TCP contenant le flag SYN. Ce flag signifie initier une connexion avec
la cible. En envoyant un nombre très important de ces paquets, on oblige
le serveur à démarrer un socket de connexion pour chaque
requête, il enverra donc des paquets contenant les flags SYN, ACK pour
établir la connexion mais ne recevra jamais de réponses. Le
serveur ayant arrivé à saturation à cause de la grande
fille d'attente de connexion ne pourra plus pouvoir répondre aux
connexions légitimes des utilisateurs.
Figure 9.8: L'attaque SYN Flood
12
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Le PING flood : elle consiste à
simplement envoyer un nombre maximal de PING simultané jusqu'à
saturer la victime. On utilise généralement la commande Ping sous
Linux mais une des conditions pour que l'attaque soit efficace est de
posséder plus de bande passante que la victime.
Le Smurf : les attaques Smurf profite d'une
faiblesse d'IPv4 et d'une mauvaise configuration pour profiter des
réseaux permettant l'envoi de paquets au broadcast. Le broadcast est une
adresse IP qui permet de joindre toutes les machines d'un réseau.
L'attaquant envoie au broadcast des paquets contenant l'IP source de la victime
ainsi chaque machine sur le réseau va répondre à la cible
à chaque requête de l'attaquant. On se sert du réseau comme
un amplificateur pour perpétrer l'attaque, cette méthode porte
aussi le nom d'attaque réfléchie permettant à l'attaquant
de couvrir ces traces et de rendre l'attaque plus puissante.
Teardrop Attack : elle consiste à
envoyer des paquets IP invalides à la cible, ces paquets peuvent
être fragmentes, ou contenir des données corrompues ou qui
dépassent la taille réglementaire. Sur certains systèmes
comme les Windows avant 98 ou les Linux avant 2.0.32, ces paquets ne peuvent
être interprétés et rendrons la machine
inopérante.
Les attaques distribuées : la plupart
des attaques, citées plus haut, peuvent être
exécutés de manière distribuée, on parle de DDoS
pour Distributed Denial of Service. Les attaques distribuées se basent
sur ce fait : attaquer une cible toute seule se traduit souvent par un
échec, alors que si un grand nombre de machines s'attaquent à la
même cible alors l'attaque a plus de chance de réussir.
Figure 10.9: DDos attaque
ARP spoof : l'ARP spoof est une attaque
très puissante qui permet, en général, de
sniffer le trafic sur le réseau en s'interposant entre
une ou des victimes et la passerelle. Elle
13
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
permet même de sniffer et récupérer des
mots de passes sur des connexions sécurisés SSL. L'attaque inonde
le réseau avec des trames ARP liant l'adresse physique de l'attaquant
avec la passerelle. De cette manière, le cache ARP des victimes est
corrompu et tout le trafic est redirige vers le poste de l'attaquant.
DNS spoof : de la même manière,
on peut corrompre le DNS d'une victime. Normalement, ceci permet de rediriger
la victime vers des sites pirates que l'on contrôle mais dans le cadre
d'un déni service, on corrompt le cache DNS de fausses informations qui
rendront impossible l'accès aux sites web.
IV Spoofing : il existe plusieurs types d'IP
Spoofing. La première est dite Blind Spoofing, c'est une attaque "en
aveugle". Les paquets étant forgés avec une adresse IP
usurpée, les paquets réponses iront vers cette adresse. Il sera
donc impossible à l'attaquant de récupérer ces paquets. Il
sera obligé de les "deviner". Cependant, il existe une autre technique
que le Blind Spoofing. Il s'agit d'utiliser l'option IP Source Routing qui
permet d'imposer une liste d'adresses IP des routeurs que doit emprunter le
paquet IP. Il suffit que l'attaquant route le paquet réponse vers un
routeur qu'il contrôle pour le récupérer. Néanmoins,
la grande majorité des routeurs d'aujourd'hui ne prennent pas en compte
cette option IP et jettent tous paquets IP l'utilisant.
Les chevaux de Troie : leur objectif est le
plus souvent d'ouvrir une porte dérobée ("backdoor") sur le
système cible, permettant par la suite à l'attaquant de revenir
à loisir épier, collecter des données, les corrompre,
contrôler voire même détruire le système. Certains
chevaux de Troie sont d'ailleurs tellement évolués qu'ils sont
devenus de véritables outils de prise en main et d'administration
à distance.
Les virus informatiques : un virus
informatique peut est « caché » dans un logiciel
légitime ou sur un site web et infecte l'ordinateur. Comme tout bon
virus, le virus informatique est contagieux. Tous les éléments
qui ont été en contact avec celui-ci sont porteurs et contaminent
les autres réseaux. Les virus peuvent être classés suivant
leur mode de propagation et leurs cibles:
? Le virus de boot : il est chargé en
mémoire au démarrage et prend le contrôle de l'ordinateur
;
? Le virus d'application : ils infectent les
programmes exécutables, c'est-à-dire les programmes (.exe, .com
ou .sys) en remplaçant l'amorce du fichier, de manière à
ce que le virus soit exécuté avant le programme infecté.
Puis ces virus rendent la main au programme initial, camouflant ainsi leur
exécution aux yeux de l'utilisateur ;
14
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
? La macro virus : il infecte des logiciels
de la suite Microsoft Office les documents bureautiques en utilisant leur
langage de programmation, qui contaminera tous les documents basés sur
lui, lors de leur ouverture.
Les buffers overflow : un buffer overflow est
une attaque très efficace et assez
compliquée à réaliser. Elle vise
à exploiter une faille, une faiblesse dans une application pour
exécuter un code arbitraire qui compromettra la cible.
Le Mail Bombing : elle consiste à
envoyer un nombre faramineux d'emails (plusieurs milliers par exemple) à
un ou des destinataires. L'objectif étant de :
? saturer le serveur de mails ;
? saturer la bande passante du serveur et du ou des
destinataires ;
? rendre impossible aux destinataires de continuer à
utiliser l'adresse électronique.
Social Engineering : c'est une
technique qui a pour but d'extirper des informations à
des personnes. Contrairement aux autres attaques, elle ne
nécessite pas de logiciel. La seule force de persuasion est la
clé de voûte de cette attaque. Il y a quatre grandes
méthodes de social engineering : par téléphone, par
lettre, par internet et par contact direct.
1.2.9. Les moyens de sécuriser un réseau
La sécurité d'un réseau c'est la
sécurité des éléments qui le compose, il
existe plusieurs mécanismes et dispositifs de sécurité,
parmi eux :
Les Antivirus
Les antivirus sont des logiciels conçus pour
identifier, neutraliser et éliminer des logiciels malveillants. Ceux-ci
peuvent se baser sur l'exploitation de failles de sécurité, mais
il peut également s'agir de programmes modifiant ou supprimant des
fichiers, que ce soit des documents de l'utilisateur de l'ordinateur
infecté, ou des fichiers nécessaires au bon fonctionnement de
l'ordinateur. Un antivirus vérifie les fichiers et courriers
électroniques, les secteurs de boot (pour détecter les virus de
boot), mais aussi la mémoire vive de l'ordinateur, les médias
amovibles (clefs USB, CD, DVD, etc.), les données qui transitent sur les
éventuels réseaux (dont internet), etc.
Les mises à jour système
Pour éviter les dénis de services applicatifs, on
doit maintenir tous les logiciels de son
système à jour puisque les mises à jour
permettent souvent de corriger des failles logicielles,
15
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
qui peuvent être utilisées par un attaquant,
pour mettre l'application hors service, ou pire, le serveur. Il est donc
impératif de mettre son système à jour très
régulièrement C'est un moyen très simple à mettre
en place pour se protéger des attaques applicatives. Editer des options
dans les fichiers de configuration qui stockent des données concernant
chaque connexion reçue par la machine telle l'adresse IP source, le
numéro de port, l'âge de la connexion. En analysant ces
données, on peut facilement détecter les comportements suspects
et éviter certains types d'attaque.
Les firewalls
En français on dit pare-feu ou garde-barrière,
c'est un système permettant de protéger un ordinateur ou un
réseau d'ordinateurs des intrusions provenant d'un réseau tiers
(notamment internet). Le pare-feu est un système permettant de filtrer
les paquets de données échangés avec le réseau, il
s'agit ainsi d'une passerelle filtrante comportant au minimum les interfaces
réseaux suivantes :
· une interface pour le réseau à
protéger (réseau interne) ;
· une interface pour le réseau externe.
Figure 11.10: Firewall
Le système firewall est un système logiciel,
reposant parfois sur un matériel réseau dédié,
constituant un intermédiaire entre le réseau local (ou la machine
locale) et un ou plusieurs réseaux externes. Il est possible de mettre
un système pare-feu sur n'importe quelle machine et avec n'importe quel
système pourvu que :
· La machine soit suffisamment puissante pour traiter le
trafic ;
· Le système soit sécurisé ;
· Aucun autre service que le service de filtrage de
paquets ne fonctionne sur le serveur.
16
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Fonctionnement d'un système pare-feu
C'est un ensemble de différents composants
matériels (physique) et logiciels (logique) qui contrôlent le
trafic intérieur/extérieur selon une politique de
sécurité. Un système pare-feu fonctionne la plupart du
temps grâce à des règles de filtrage indiquant les adresses
IP autorisées à communiquer avec les machines aux réseaux,
il s'agit ainsi d'une passerelle filtrante. Il permet d'une part de bloquer des
attaques ou connexions suspectes d'accéder au réseau interne.
D'un autre côté, un firewall sert dans de
nombreux cas également à éviter la fuite non
contrôlée d'informations vers l'extérieur. Il propose un
véritable contrôle sur le trafic réseau de l'entreprise, Il
permet donc d'analyser, de sécuriser et de gérer le trafic
réseau.
Architecture DMZ
Une DMZ (Demilitarized zone) est une zone d'un réseau
d'entreprise, située entre le réseau local et Internet,
derrière le pare-feu. Il s'agit d'un réseau intermédiaire
regroupant des serveurs ou services (HTTP, DHCP, mails, DNS, etc.). Ces
serveurs devront être accessibles depuis le réseau interne de
l'entreprise et, pour certains, depuis les réseaux externes. Le but est
ainsi d'éviter toute connexion directe au réseau interne.
Figure 12.11: Architecture DMZ
Les VPN
Dans les réseaux informatiques, le réseau
privé virtuel (Virtual Private Network en anglais, abrégé
en VPN) est une technique permettant aux postes distants de communiquer de
manière sûre, tout en empruntant des infrastructures publiques
(internet). Un VPN repose sur un protocole, appelé protocole de
tunnelisation, c'est-à-dire un protocole permettant aux données
passant d'une extrémité à l'autre du VPN d'être
sécurisées par des algorithmes de cryptographie.
17
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Figure 13.12: Principe d'un VPN
Les IDS
La détection d'intrusion est définie comme
étant un mécanisme écoutant le trafic réseau de
manière furtive, afin de repérer des activités anormales
ou suspectes et permettant ainsi d'avoir une stratégie de
prévention sur les risques d'attaques. Il existe différents types
d'IDS, que l'on classe comme suit :
· Système de détection d'intrusion
réseau (NIDS) : un NIDS analyse de manière passive les
flux transitant sur le réseau et détecte les intrusions en temps
réel, en d'autres termes, un NIDS écoute tout le trafic
réseau, puis analyse et génère des alertes si des paquets
semblent dangereux ;
· Système de détection d'intrusion
de type hôte (HIDS) : un HIDS est généralement
placé sur des machines sensibles, susceptibles de subir des attaques et
possédant des données sensibles pour l'entreprise ;
· Système de détection d'intrusion
de type hybride : il s'agit d'un système capable de
réunir des informations provenant d'un système RIDS ainsi que
d'un NIDS. Généralement utilisé dans un environnement
décentralisé, il permet de réunir les informations de
diverses sondes placées sur le réseau.
Figure 14.13: Système de détection
d'intrusions
18
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Les IPS
L'IPS est un Système de Prévention/Protection
contre les intrusions et non plus seulement de reconnaissance et de
signalisation des intrusions comme la plupart des IDS. La principale
différence entre un IDS (réseau) et un IPS (réseau) tient
principalement en deux caractéristiques :
· le positionnement en coupure sur le réseau de
l'IPS et non plus seulement en écoute sur le réseau pour l'IDS
(traditionnellement positionné comme un sniffer sur le réseau)
;
· la possibilité de bloquer immédiatement
les intrusions et quel que soit le type de protocole de transport
utilisé et sans reconfiguration d'un équipement tierce, ce qui
induit que l'IPS est constitué en natif d'une technique de filtrage de
paquets et de moyens de blocages.
Figure 15.14: Système de prévention
d'intrusions
La Sensibilisation du personnel
Les politiques de sécurité informatique des
entreprises s'appuient généralement sur des techniques de
protection et des plans d'urgence mais négligent souvent un aspect : le
personnel. La stratégie idéale dans le domaine de la
sécurité informatique ne se limite pas à des techniques de
protection et à des consignes complexes. Elle nécessite
également une formation appropriée du personnel. Faute d'une
sensibilisation de ce dernier, les mesures de sécurité
informatique ne sont qu'à moitiés efficaces.
Audits de sécurité
19
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Un audit de sécurité consiste à
s'appuyer sur un tiers de confiance (généralement une
société spécialisée en sécurité
informatique) afin de valider les moyens de protection mis en oeuvre, au regard
de la politique de sécurité. L'objectif de l'audit est ainsi de
vérifier que chaque règle de la politique de
sécurité est correctement appliquée et que l'ensemble des
dispositions prises forme un tout cohérent. Un audit de
sécurité permet de s'assurer que l'ensemble des dispositions
prises par l'entreprise sont réputées sûres.
Contrôle d'accès
L'accès au système d'information exige une
identification et une authentification préalable. L'utilisation de
comptes partagés ou anonymes est interdite. Des mécanismes
permettant de limiter les services, les données, les privilèges
auxquels à accès l'utilisateur en fonction de son rôle dans
l'organisation doit être mis en oeuvre.
Les accès aux serveurs et aux réseaux doivent
être journalisés L'attribution et la modification des accès
et privilèges d'un service doivent être validées par le
propriétaire du service.
Pour les services sensibles, un inventaire
régulièrement mis à jour en sera dressé. Il importe
de bien différencier les différents rôles et de n'attribuer
que les privilèges nécessaires.
Les protocoles de sécurité
Un protocole est un ensemble de règles et de
procédures à respecter pour émettre et recevoir des
données sur un réseau. Sur Internet, les protocoles
utilisés font partie d'une suite de protocoles TCP/IP, tel que la plus
part de ces protocoles ne sont pas sécurisés lors de la
transmission des données sur le réseau. Les protocoles
sécurisés ont été mis au point, afin d'encapsuler
les messages dans des paquets de données chiffrées. On cite parmi
ces protocoles les suivants :
? Protocole SSH (Secure Shell) : c'est un
protocole qui permet à des services TCP/IP
d'accéder à une machine à travers une
communication chiffrée appelée « tunnel » ; ?
Protocole SSL (Secure Socket Layer) : c'est un procédé
de sécurisation des échanges,
il a été conçu pour assurer la
sécurité des transactions effectuées via Internet ;
? Protocole HTTPS : HTTPS n'est rien d'autre
que HTTP encapsulé dans la couche de chiffrement TLS (Transport Layer
Security). En général le serveur est authentifié par un
certificat X509, l'internaute peut s'authentifier par l'intermédiaire
d'un serveur RADIUS, ou par un des autres procédés
proposés par les logiciels serveur ;
20
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
· IPSec (IP Security) : IPSec
(Internet Protocol Security) est conçu pour sécuriser le
protocole IPv6. La lenteur de déploiement de ce dernier a imposé
une adaptation d'IPSec à l'actuel protocole IPv4. On établit un
tunnel entre deux sites, et IPSec gère l'ensemble des paramètres
de sécurité associés à la communication. Deux
machines passerelles, situées à chaque extrémité du
tunnel, négocient les conditions de l'échange des informations :
quels algorithmes de chiffrement, quelles méthodes de signature
numérique ainsi que les clés utilisées pour ces
mécanismes. La protection est apportée à tous les trafics
et elle est transparente aux différentes applications.
Figure 16.15: Un tunnel IPSec entre deux sites
d'entreprise
Les Algorithme de chiffrements
Il existe deux grandes familles d'algorithmes de
chiffrements, ceux à clés symétriques et ceux à
clés asymétriques.
· Algorithme de chiffrement symétrique :
il consiste à utiliser la même clé pour le
chiffrement ainsi que pour le déchiffrement. Il est donc
nécessaire que les deux interlocuteurs se soient mis d'accord sur une
clé privée, ou ils doivent utiliser un canal
sécurisé pour l'échanger.
· Algorithme de chiffrement asymétrique :
c'est une méthode cryptographique faisant intervenir une paire
de clés asymétrique (une clé publique et une clé
privée). Elle utilise cette paire de clés pour le chiffrement et
le déchiffrement. La clé publique est rendue publique et elle est
distribuée librement, la clé privée quant à elle
n'est jamais distribuée et doit être gardé
secrète.
1.2.10. Mise en oeuvre d'une politique de
sécurité
21
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
La politique de sécurité des systèmes
d'information est un plan d'actions définies pour
maintenir un certain niveau de sécurité. Elle
reflète la vision stratégique de la direction de l'entreprise en
matière de sécurité des systèmes d'informations
(SSI).
Une politique de sécurité s'élabore
à plusieurs niveaux :
? sécuriser l'accès aux données de
façon logicielle (authentification, contrôle
d'intégrité) ; ? sécuriser l'accès physique aux
données : serveurs placés dans des salles blindées avec
badge d'accès,...
? un aspect très important pour assurer la
sécurité des données d'une entreprise est de sensibiliser
les utilisateurs aux notions de sécurité, de façon
à limiter les comportements à risque ;
? enfin, il est essentiel pour un responsable de
sécurité de s'informer continuellement, des nouvelles attaques
existantes, des outils disponibles de façon à pouvoir maintenir
à jour son système de sécurité et à combler
les brèches de sécurité qui pourraient exister.
Dans ce chapitre, nous avons présenté un
aperçu sur la sécurité informatique dans un réseau
et l'importance de la mise en place d'une politique de sécurité
en traçant les besoins et les objectifs voulus afin de remédier
aux menaces constantes que subi un réseau informatique.
Ces menaces se manifestent généralement sous
forme d'attaques informatiques que nous avons illustrées dans le but de
montrer l'intensité de danger. Enfin nous avons proposé quelques
solutions existantes afin de se protéger et réduire les
risques.
Cette partie était consacrée à tout ce
qui est présentation de l'organisme d'accueil, la problématique,
les objectifs, la délimitation du sujet, et les concepts liés
à la sécurité informatique. Elle nous a permis de
détailler le cadre général de notre travail. Nous allons
sans plus tarder nous lancer la présentation de la notion de
système de détection d'intrusions puis de système de
prévention d'intrusions, ensuite nous allons faire une étude sur
quelques solutions disponibles sur le marché et enfin une
présentation de la solution choisie.
II. Cadre conceptuel
22
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
De nos jours, les systèmes d'informations des
entreprises subissent des différents attaques qui peuvent entrainer des
pertes conséquentes, vue leurs évolution sur les plans
d'échange d'informations d'une part et l'ouverture sur le monde
extérieur d'autre part. Alors les systèmes de détection et
prévention d'intrusion sont largement répandus pour la
sécurité de ces systèmes informatiques puisqu' ils
permettent à la fois de détecter et de répondre à
une attaque en temps réel ou en hors-ligne.
En effet, dans cette partie nous allons d'abord
présenter la notion de système de détection d'intrusions
puis de système de prévention d'intrusions, ensuite nous allons
faire une étude sur quelques solutions disponibles sur le marché
et enfin une présentation de la solution choisie.
2.3. Système de détection et de
prévention d'intrusions
La meilleure façon de protéger un réseau
ou un système informatique est de détecter les attaques et de se
défendre avant même qu'elles ne puissent causer des dommages.
Ainsi beaucoup font appel à cet effet aux systèmes de
détection d'intrusion (IDS : intrusion detection system) ou aux
systèmes de prévention d'intrusion (IPS : intrusion prevention
system) les plus polyvalents.
Dans ce chapitre nous présentons tout d'abord la
notion de système de détection
d'intrusions ainsi que son architecture et ses limites. Nous
présentons également la notion de système de
prévention d'intrusions ainsi que ses types de réponses aux
attaques et ses limites.
2.3.1. Système de détection d'intrusions
(LDS)
En 1980, James Anderson introduit un nouveau concept de
système de détection d'intrusion qui ne connaîtrait un
réel départ du domaine qu'en 1987 avec la publication d'un
modèle de détection d'intrusion. Par la suite, la recherche s'est
développée et la détection d'intrusion est devenue une
industrie mature et une technologie éprouvée, pratiquement tous
les problèmes simples ont été résolus et aucune
grande avancée n'a été effectuée dans ce domaine
ces dernières années et les éditeurs de logiciels se
concentrent plus sur la perfection des techniques de détection
existantes.
2.3.1.1. Définition
23
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
La détection des intrusions est le processus de
surveillance des événements qui se trouvent dans un
système des ordinateurs ou du réseau et les analysant pour
détecter les signes des intrusions, défini comme des tentatives
pour compromettre la confidentialité, l'intégrité, la
disponibilité ou éviter des mécanismes de
sécurité de l'ordinateur ou du réseau. L'intrusion est
causée par les attaques accédant au système via Internet,
autorisée l'utilisateur du système qui essaye de gagner les
privilèges supplémentaires pour lesquels ils n'ont pas
été autorisés, et autorisé les utilisateurs qui
abusent les privilèges donnés. Le système de
détection des intrusions est un logiciel ou un matériel qui
automatise des surveillances et les processus analysés.
Les IDS protègent un système contre les
attaques, les mauvaises utilisations et les compromis. Ils peuvent
également surveiller l'activité du réseau, analyser les
configurations du système et du réseau contre toute
vulnérabilité, analyser l'intégrité de
données et bien plus.
Selon les méthodes de détection que vous
choisissez de déployer, il existe plusieurs avantages directs et
secondaires au fait d'utiliser un IDS.
Un IDS a quatre fonctions principales : l'analyse, la
journalisation, la gestion et
l'action.
? Analyse: analyse des journaux du
système pour identifier des intentions dans la masse de données
recueillie par l'IDS. Il y a deux méthodes d'analyses : L'une
basée sur les signatures d'attaques, et l'autre sur la détection
d'anomalies.
? Journalisation: enregistrement des
évènements dans un fichier de log.
? Exemples d'évènements : arriver d'un paquet,
tentative de connexion.
? Gestion: les IDS doivent être
administrés de manière permanente. On peut assimiler un IDS
à une caméra de sécurité.
? Action: alerter l'administrateur quand une
attaque dangereuse est détectée.
2.3.1.2. Présentation d'un système de
détection d'intrusions
Dans cette section nous allons décrire les
systèmes de détection d'intrusions.
2.3.1.2.1. Architecture d'un IDS
Plusieurs schémas ont été proposés
pour décrire les composants d'un système de
détection d'intrusions. Parmi eux, nous avons retenu
celui issu des travaux d'Intrusions Detection exchange formatWorking Group
(IDWG) de l'Internet Engineering Task Force
24
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
(IETF) comme base de départ, car il résulte d'un
large consensus parmi les intervenants du domaine.
L'objectif des travaux du groupe IDWG est la définition
d'un standard de
communication entre certains composants d'un système de
détection d'intrusions. La figure illustre ce modèle et permet
d'introduire un certain nombre de concepts :
Figure 3.1 : Modèle générique de
la détection d'intrusions proposé par l'IDWG
L'architecture IDWG d'un système de détection
d'intrusions contient des capteurs qui
envoient des événements à un analyseur. Les
capteurs couplés avec un analyseur forment une sonde, cette
dernière envoie des alertes vers un manager qui la notifie à un
opérateur humain.
· Administrateur : personne
chargée de mettre en place la politique de sécurité, et
par conséquent, de déployer et configurer les IDS.
· Alerte : message formaté
émis par un analyseur s'il trouve des activités intrusives dans
une source de données.
· Analyseur : c'est un outil logiciel
qui met en oeuvre l'approche choisie pour la détection (comportementale
ou par scénarios), il génère des alertes lorsqu'il
détecte une intrusion.
· Capteur : logiciel
générant des événements en filtrant et formatant
les données brutes provenant d'une source de données.
· Evénement : message
formaté et renvoyé par un capteur. C'est l'unité
élémentaire utilisée pour représenter une
étape d'un scénario d'attaques connu.
25
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
· Manager : composant d'un IDS
permettant à l'opérateur de configurer les différents
éléments d'une sonde et de gérer les alertes reçues
et éventuellement la réaction.
· Notification : la méthode par
laquelle le manager d'IDS met au courant l'opérateur de l'occurrence
d'alerte.
· Opérateur : personne
chargée de l'utilisation du manager associé à l'IDS. Elle
propose ou décide de la réaction à apporter en cas
d'alerte. C'est, parfois, la même personne que l'administrateur.
· Réaction : mesures passives ou
actives prises en réponse à la détection d'une attaque,
pour la stopper ou pour corriger ses effets.
· Sonde : un ou des capteurs
couplés avec un analyseur.
· Source de données : dispositif
générant de l'information sur les activités des
entités du système d'information.
Dans ce modèle qui représente le processus
complet de la détection ainsi que l'acheminement des données au
sein d'un IDS. L'administrateur configure les différents composants
(capteur(s), analyseurs(s), manager(s)) selon une politique de
sécurité bien définie. Les capteurs accèdent aux
données brutes, les filtrent et les formatent pour ne renvoyer que les
événements intéressants à un analyseur. Les
analyseurs utilisent ces événements pour décider de la
présence ou non d'une intrusion et envoient dans le cas
échéant une alerte au manager, qui notifie l'opérateur
humain, une réaction éventuelle peut être menée
automatiquement par le manager ou manuellement par l'opérateur.
2.3.1.2.2. Vocabulaire de la détection
d'intrusions
La détection d'intrusions utilise un vocabulaire bien
définis et qui est comme suit :
· Attaque ou intrusion : action qui permet
de violer la politique de sécurité ;
· Audit de sécurité :
c'est l'ensemble des mécanismes permettant la collecte
d'informations sur les actions faites sur un système d'information ;
· Détection d'intrusions :
recherche de traces laissées par une intrusion dans les
données produites par une source ;
· Faux positif : alerte en l'absence
d'attaque ;
· Faux négatif : absence
d'alerte en présence d'attaque ;
26
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
· Vulnérabilité : faille
de conception, d'implémentation ou de configuration d'un système
logiciel ou matériel ;
· Log (trace d'audit) : c'est un
fichier système à analyser ;
· Exploit : terme utilisé pour
désigner un programme d'attaque ;
· Scénario : suite
constituée des étapes élémentaires d'une attaque
;
· Signature : suites des étapes
observables d'une attaque, utilisée par certains analyseurs pour
rechercher dans les activités des entités, des traces de
scénarios d'attaques connus ;
· Système de détection
d'intrusions : ensemble constitué d'un ou plusieurs capteurs,
un ou plusieurs analyseurs et un ou plusieurs managers ;
· Corrélation : c'est
l'interprétation conceptuelle de plusieurs événements
(alertes) visant à leur assigner une meilleure sémantique et
à réduire la quantité globale d'événements
(d'alertes).
2.3.1.2.3. Emplacements d'un système de
détection d'intrusions
Il existe plusieurs endroits stratégiques où il
convient de placer un IDS.
Le schéma suivant illustre un réseau local ainsi
que les positions que peut y prendre
un IDS :
Figure 3.2: endroits typiques pour un
système de détection d'intrusions
27
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
· Position (1): sur cette position,
l'IDS va pouvoir détecter l'ensemble des attaques frontales, provenant
de l'extérieur, en amont du firewall. Ainsi, beaucoup trop d'alertes
seront remontées ce qui rendra les logs difficilement consultables ;
· Position (2): si l'IDS est
placé sur la DMZ, il détectera les attaques qui n'ont pas
été filtrées par le firewall et qui relèvent d'un
certain niveau de compétence. Les logs seront ici plus clairs à
consulter puisque les attaques bénins ne seront pas recensées
;
· Position (3): l'IDS peut ici rendre
compte des attaques internes, provenant du réseau local de l'entreprise.
Il peut être judicieux d'en placer un à cet endroit étant
donné le fait que 80% des attaques proviennent de l'intérieur. De
plus, si des trojans ont contaminé le parc informatique (navigation peu
méfiante sur internet) ils pourront être ici facilement
identifiés pour être ensuite éradiqués.
2.3.1.2.4. Classification des systèmes de
détection d'intrusions
Nous pouvons classifier les systèmes de
détection d'intrusions selon cinq critères :
· la source des données à analyser ;
· le lieu de l'analyse des données ;
· la fréquence de l'analyse ;
· le comportement en cas d'attaque détectée
;
· la méthode de détection utilisée.
? Sources des données à
analyser
Les sources possibles de données à analyser
sont une caractéristique essentielle des systèmes de
détection d'intrusions puisque ces données constituent la
matière première du processus de détection. Les
données proviennent soit de logs générés par le
système d'exploitation, soit de logs applicatifs, soit d'informations
provenant du réseau, soit encore d'alertes générées
par d'autres IDS.
o Source d'information système
Un système d'exploitation fournit
généralement plusieurs sources d'information :
· Commandes systèmes : presque
tous les systèmes d'exploitation fournissent des commandes pour avoir un
« instantané » de ce qui se passe ;
28
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
? Accounting : l'accounting fournit de
l'information sur l'usage des ressources partagées par les utilisateurs
(temps processeur, mémoire, espace disque, débit réseau,
applications lancées, ...) ;
? Audit de sécurité : tous les
systèmes d'exploitation modernes proposent ce service pour fournir des
événements système, les associer à des utilisateurs
et assurer leur collecte dans un fichier d'audit. On peut donc potentiellement
disposer d'informations sur tout ce que font (ou ont fait) les utilisateurs :
accès en lecture à un fichier, exécution d'une
application, etc.
o Source d'information réseau
Des dispositifs matériels ou logiciels (snifer)
permettent de capturer le trafic réseau. Cette source d'information est
particulièrement adaptée lorsqu'il s'agit de rechercher les
attaques en déni de service qui se passent au niveau réseau ou
les tentatives de pénétration à distance. Le processus
d'interception des paquets peut être rendu quasiment invisible pour
l'attaquant car on peut utiliser une machine dédiée juste
reliée à un brin du réseau, configurée pour ne
répondre à aucune sollicitation extérieure et dont
personne ne soupçonnera l'existence. Néanmoins, il est difficile
de garantir l'origine réelle de l'attaque que l'on a
détectée car il est facile de masquer son identité en
modifiant les paquets réseau.
o Source d'information applicative
Les applications peuvent également constituer une
source d'information pour les IDS. Les capteurs applicatifs sont de deux
natures :
? Capteur interne : le filtrage sur les
activités de l'application est alors exécuté par le code
de l'application ;
? Capteur externe : le filtrage se fait
à l'extérieur de l'application. Plusieurs méthodes sont
utilisées : un processus externe peut filtrer les logs produits par
l'application ou bien l'exécution de l'application peut être
interceptée (au niveau de ses appels de librairies ou d'un proxy
applicatif).
Prendre ses informations directement au niveau de
l'application présente plusieurs avantages. Premièrement, les
données interceptées ont réellement été
reçues par l'application.
Il est donc difficile d'introduire une
désynchronisation entre ce que voit passer le capteur applicatif et ce
que reçoit l'application contrairement à ce qu'il peut se passer
avec les capteurs réseau. Ensuite, cette source d'information est
généralement de plus haut niveau que
29
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
les sources système et réseau. Cela permet donc
de filtrer des événements qui ont une sémantique plus
riche. Finalement, si l'on prend l'exemple d'une connexion web chiffrée
par SSL, un capteur réseau ne verra passer que des données
pseudo-aléatoires tandis qu'un capteur associé au serveur web
pourra analyser le texte en clair de la requête.
o Source d'information basée IDS
Une autre source d'information, souvent de plus haut niveau
que les précédentes, peut être exploitée. Il s'agit
des alertes remontées par des analyseurs provenant d'un IDS. Chaque
alerte synthétise déjà un ou plusieurs
événements intéressants du point de vue de la
sécurité.
Elles peuvent être utilisées par un IDS pour
déclencher une analyse plus fine à la suite d'une indication
d'attaque potentielle. De surcroît, en corrélant plusieurs
alertes, on peut parfois détecter une intrusion complexe de plus haut
niveau. Il y aura alors génération d'une nouvelle alerte plus
synthétique que l'on qualifie de méta-alerte.
? Localisation de l'analyse des
données
On peut également faire une distinction entre les IDS
en se basant sur la localisation réelle de l'analyse des données
:
? Analyse centralisée : certains IDS
ont une architecture multi-capteurs (ou multisondes). Ils centralisent les
événements (ou alertes) pour analyse au sein d'une seule machine.
L'intérêt principal de cette architecture est de faciliter la
corrélation entre événements puisqu'on dispose alors d'une
vision globale. Par contre, la charge des calculs (effectués sur le
système central) ainsi que la charge réseau (due à la
collecte des événements ou des alertes) peuvent être
lourdes et risquent de constituer un goulet d'étranglement ;
? Analyse locale : si l'analyse du flot
d'événements est effectuée au plus près de la
source de données (généralement en local sur chaque
machine disposant d'un capteur), on minimise le trafic réseau et chaque
analyseur séparé dispose de la même puissance de calcul. En
contrepartie, il est impossible de croiser des événements qui
sont traités séparément et l'on risque de passer à
côté de certaines attaques distribuées.
? Fréquence de l'analyse
Une autre caractéristique des systèmes de
détection d'intrusions est leur fréquence d'utilisation :
30
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
? Périodique : certains
systèmes de détection d'intrusions analysent
périodiquement les fichiers d'audit à la recherche d'une
éventuelle intrusion ou anomalie passée. Cela peut être
suffisant dans des contextes peu sensibles (on fera alors une analyse
journalière, par exemple) ;
? Continue : la plupart des systèmes
de détection d'intrusions récents effectue leur analyse des
fichiers d'audit ou des paquets réseau de manière continue afin
de proposer une détection en quasi temps-réel. Cela est
nécessaire dans des contextes sensibles (confidentialité) et/ou
commerciaux (confidentialité, disponibilité). C'est toutefois un
processus coûteux en temps de calcul car il faut analyser à la
volée tout ce qui se passe sur le système.
? Comportement après détection
Une autre façon de classer les systèmes de
détection d'intrusions consiste à les classer par type de
réaction lorsqu'une attaque est détectée :
? Passive : la plupart des systèmes de
détection d'intrusions n'apportent qu'une réponse passive
à l'intrusion. Lorsqu'une attaque est détectés, ils
génèrent une alarme et notifient l'administrateur système
par e-mail, message dans une console, voire même par beeper. C'est alors
lui qui devra prendre les mesures qui s'imposent ;
? Active : d'autres systèmes de
détection d'intrusions peuvent, en plus de la notification à
l'opérateur, prendre automatiquement des mesures pour stopper l'attaque
en cours. Par exemple, ils peuvent couper les connexions suspectes ou
même, pour une attaque externe, reconfigurer le pare-feu pour qu'il
refuse tout ce qui vient du site incriminé. Des outils tels que
RealSecure ou NetProwler proposent ce type de réaction. Toutefois, il
apparait que ce type de fonctionnalité automatique est potentiellement
dangereux car il peut mener à des dénis de service
provoqués par l'IDS. Un attaquant déterminé peut, par
exemple, tromper l'IDS en usurpant des adresses du réseau local qui
seront alors considérées comme la source de l'attaque par l'IDS.
Il est préférable de proposer une réaction facultative
à un opérateur humain (qui prend la décision finale).
? Méthode de détection
Deux approches de détection ont été
proposées :
31
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
? L'approche comportementale : cette approche
se base sur l'hypothèse selon laquelle nous pouvons définir un
comportement normal de l'utilisateur et que toute déviation par rapport
à celui-ci est potentiellement suspect ;
? L'approche par signature : elle s'appuie
sur un modèle constitué des sections interdites dans le
système d'informatique, ce modèle s'appuie sur la connaissance
des techniques employées par les attaquants : on tire des
scénarios d'attaque et on recherche dans les traces d'audit leur
éventuelle survenue.
o L'approche comportementale
Les détecteurs d'intrusions comportementaux reposent
sur la création d'un modèle de référence
représentant le comportement de l'entité surveillée en
situation de fonctionnement normal. Ce modèle est ensuite utilisé
durant la phase de détection afin de pouvoir mettre en évidence
d'éventuelles déviations comportementales. Pour cela, le
comportement de l'entité surveillée est comparé à
son modèle de référence. Une alerte est levée
lorsqu'une déviation trop importante (notion de seuil) vis-à-vis
de ce modèle de comportement normal est détectée.
Le principe de cette approche est de considérer tout
comportement n'appartenant pas au modèle de comportement normal comme
une anomalie symptomatique d'une intrusion ou d'une tentative d'intrusion.
On peut distinguer deux catégories de profils :
? Profils construits par apprentissage
Parmi les méthodes proposées pour construire les
profils par apprentissage, les plus marquantes sont les suivantes :
? Méthode statistique : le profil est
calculé à partir de variables considérées comme
aléatoires et échantillonnées à intervalles
réguliers. Ces variables peuvent être le temps processeur
utilisé, la durée et l'heure des connexions, etc. Un
modèle statistique est alors utilisé pour construire la
distribution de chaque variable et pour mesurer, au travers d'une grandeur
synthétique, le taux de déviation entre un comportement courant
et le comportement passé ;
? Système expert : ici, c'est une base
de règles qui décrit statistiquement le profil de l'utilisateur
au vu de ses précédentes activités. Son comportement
courant est comparé aux règles, à la recherche d'une
anomalie. La base de règles est rafraîchie
régulièrement ;
32
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
· Réseaux de neurones : la
technique consiste à apprendre à un réseau de neurones le
comportement de l'entité à surveiller. Par la suite, lorsqu'on
lui fournira en entrée les actions courantes effectuées par
l'entité, il devra décider de leur normalité ;
· Analyse de signatures : Il s'agit de
construire un modèle de comportement normal des services réseaux.
Le modèle consiste en un ensemble de courtes séquences d'appels
système représentatifs de l'exécution normale du service
considéré. Des séquences d'appels étrangères
à cet ensemble sont alors considérées comme l'exploitation
potentielle d'une faille du service.
Pour toutes ces méthodes, le comportement de
référence utilisé pour l'apprentissage étant
rarement exhaustif, on s'expose à des risques de fausses alarmes (faux
positifs). De plus, si des attaques ont été commises durant cette
phase, elles seront considérées comme normales (risque de faux
négatifs).
? Profils spécifiant une politique de
sécurité (policy-based)
Pour les IDS dits policy-based, il n'y a pas de phase
d'apprentissage. Leur comportement de référence est
spécifié par une politique de sécurité : la
détection d'une intrusion intervient chaque fois que la politique est
violée. Le profil est ici une politique de sécurité qui
décrit la suite des appels systèmes licites d'une application.
L'approche comportementale possède un certain nombre
d'avantages et d'inconvénients.
Tableau 1.1: Avantages et inconvénient de
l'approche comportementale
|
Avantages
|
|
Inconvénients
|
·
·
|
L'analyse comportementale n'exige
pas des connaissances préalables sur les attaques,
Elle permet la détection de la mauvaise utilisation
des privilèges ;
|
·
|
Les approches comportementales
produisent un taux élevé des alarmes
type faux positif en raison des
comportements imprévisibles des utilisateurs et des
réseaux ;
|
·
|
Elle permet de produire des
informations qui peuvent être employées pour
définir des signatures
|
·
|
Ces approches nécessitent des phases d'apprentissage
pour caractériser les profils de comportement normaux ;
|
|
pour l'analyse basée connaissance.
|
· Les alarmes génériques par
cette approche ne sont pas significatives.
|
|
33
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
o L'approche par scénarios
On construit des scénarios d'attaque en spécifiant
ce qui est caractéristique de l'attaque
et qui doit être observé dans les traces d'audit.
L'analyse des traces d'audit se fait à la recherche de ces
scénarios. Les méthodes proposées à ce jour sont
les suivantes :
· système expert : le
système expert comporte une base de règles qui décrit les
attaques. Les événements d'audit sont traduits en des faits qui
sont interprétables par le système expert. Son moteur
d'inférence décide alors si une attaque répertoriée
s'est ou non produite ;
· analyse de signatures : il s'agit
là de la méthode la plus en vue actuellement. Des signatures
d'attaques sont fournies à des niveaux sémantiques divers selon
les outils (de la suite d'appels système aux commandes passées
par l'utilisateur en passant par les paquets réseau). Divers algorithmes
sont utilisés pour localiser ces signatures connues dans les traces
d'audit. Ces signatures sont toujours exprimées sous une forme proche
des traces d'audit. Si l'on prend l'exemple des NIDS, les algorithmes de
recherche de motifs utilisés permettent d'obtenir de bonnes performances
en vitesse de traitement mais génèrent de nombreuses fausses
alertes ;
· automates à états finis :
plusieurs IDS utilisent des automates à états finis pour
coder le scénario de reconnaissance de l'attaque. Cela permet d'exprimer
des signatures complexes et comportant plusieurs étapes. On passe d'un
état initial sûr à un état final attaqué via
des états intermédiaires. Chaque transition entre états
est déclenchée par des conditions sur les
événements remontés par les capteurs.
L'approche par scénario possède un certain
nombre d'avantages et d'inconvénients :
Tableau 2.2: Avantages et inconvénient de
l'approche par scénario
|
Avantages
|
|
Inconvénients
|
·
|
l'analyse basée connaissance est très efficace
pour la détection d'attaque avec un taux très bas des alarmes de
type faux positif ;
|
·
|
Cette analyse basée connaissance
permet seulement la détection des
attaques qui sont connues au
préalable. Donc, la base de
|
·
|
Les alarmes générées sont
significatives.
|
|
connaissances doit être constamment mise à jour
avec les signatures des nouvelles attaques ;
|
|
34
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
? Le risque que l'attaquant peut influencer sur la
détection après la
reconnaissance des signatures.
|
|
2.3.1.2.5. Les différents IDS
Les différents IDS se caractérisent par leur
domaine de surveillance. Celui-ci peut se situer au niveau d'un réseau
d'entreprise, d'une machine hôte, d'une application... Nous allons tout
d'abord étudier la détection d'intrusion basée sur
l'hôte, puis basée sur une application, avant de nous
intéresser aux IDS réseaux, NIDS et NNIDS (Network IDS et Node
Network IDS).
? La détection d'intrusions basée sur
l'hôte
Les systèmes de détection d'intrusions
basés sur l'hôte ou RIDS (Rost IDS) analysent exclusivement
l'information concernant cet hôte. Comme ils n'ont pas à
contrôler le trafic du réseau mais "seulement" les
activités d'un hôte ils se montrent habituellement plus
précis sur les types d'attaques subies.
De plus, l'impact sur la machine concernée est
sensible immédiatement, par exemple dans le cas d'une attaque
réussie par un utilisateur. Ces IDS utilisent deux types de sources pour
fournir une information sur l'activité de la machine : les logs et les
traces d'audit du système d'exploitation. Chacun a ses avantages : les
traces d'audit sont plus précises et détaillées et
fournissent une meilleure information alors que les logs qui ne fournissent que
l'information essentielle sont plus petits. Ces derniers peuvent être
mieux contrôlés et analysés en raison de leur taille, mais
certaines attaques peuvent passer inaperçues, alors qu'elles sont
détectables par une analyse des traces d'audit.
Ce type d'IDS possède un certain nombre d'avantages :
il est possible de constater immédiatement l'impact d'une attaque et
donc de mieux réagir. Grâce à la quantité des
informations étudiées, il est possible d'observer les
activités se déroulant sur l'hôte avec précision et
d'optimiser le système en fonction des activités
observées.
De plus, les RIDS sont extrêmement
complémentaires des NIDS. En effet, ils permettent de détecter
plus facilement les attaques de type "Cheval de Troie", alors que ce type
d'attaque est difficilement détectable par un NIDS. Les RIDS permettent
également de détecter des attaques impossibles à
détecter avec un NIDS, car elles font partie de trafic crypté.
35
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Néanmoins, ce type d'IDS possède
également ses faiblesses, qui proviennent de ses qualités : du
fait de la grande quantité de données
générées, ce type d'IDS est très sensible aux
attaques de type DoS, qui peuvent faire exploser la taille des fichiers de
logs.
Un autre inconvénient tient justement à la
taille des fichiers de rapport d'alertes à examiner, qui est très
contraignante pour le responsable sécurité. La taille des
fichiers peut en effet atteindre plusieurs Mégaoctets. Du fait de cette
quantité de données à traiter, ils sont assez gourmands en
CPU et peuvent parfois altérer les performances de la machine
hôte.
Enfin, ils ont moins de facilité à
détecter les attaques de type hôte que les IDS réseaux.
Les HIDS sont en général placés sur des
machines sensibles, susceptibles de subir des attaques et possédantes
des données sensibles pour l'entreprise. Les serveurs, web et
applicatifs, peuvent notamment être protégés par un
HIDS.
? Détection d'Intrusions basée sur une
application
Les IDS basés sur les applications sont un sous-groupe
des IDS hôtes. Ils contrôlent l'interaction entre un utilisateur et
un programme en ajoutant des fichiers de log afin de fournir de plus amples
informations sur les activités d'une application particulière.
Puisque vous opérez entre un utilisateur et un programme, il est facile
de filtrer tout comportement notable. Un ABIDS se situe au niveau de la
communication entre un utilisateur et l'application surveillée.
L'avantage de cet IDS est qu'il lui est possible de
détecter et d'empêcher des commandes particulières dont
l'utilisateur pourrait se servir avec le programme et de surveiller chaque
transaction entre l'utilisateur et l'application. De plus, les données
sont décodées dans un contexte connu, leur analyse est donc plus
fine et précise.
Par contre, du fait que cet IDS n'agit pas au niveau du
noyau, la sécurité assurée est plus faible, notamment en
ce qui concerne les attaques de type "Cheval de Troie". De plus, les fichiers
de log générés par ce type d'IDS sont des cibles faciles
pour les attaquants et ne sont pas aussi sûrs, par exemple, que les
traces d'audit du système.
Ce type d'IDS est utile pour surveiller l'activité
d'une application très sensible, mais son utilisation s'effectue en
général en association avec un HIDS. Il faudra dans ce cas
contrôler le taux d'utilisation CPU des IDS afin de ne pas compromettre
les performances de la machine.
? La Détection d'Intrusions
Réseau
Le rôle essentiel d'un IDS réseau est l'analyse et
l'interprétation des paquets circulant
sur ce réseau. L'implantation d'un NIDS sur un
réseau se fait de la façon suivante : des capteurs
36
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
sont placés aux endroits stratégiques du
réseau et génèrent des alertes s'ils détectent une
attaque. Ces alertes sont envoyées à une console
sécurisée, qui les analyse et les traites éventuellement.
Cette console est généralement située sur un réseau
isolé, qui relie uniquement les capteurs et la console.
Les avantages des NIDS sont les suivants : les capteurs
peuvent être bien sécurisés puisqu'ils se contentent
d'observer le trafic et permettent donc une surveillance discrète du
réseau, les attaques de type scans sont facilement
détectées, et il est possible de filtrer le trafic.
Les NIDS sont très utilisés et remplissent un
rôle indispensable, mais ils présentent néanmoins de
nombreuses faiblesses. En effet, la probabilité de faux négatifs
(attaques non détectées comme telles) est élevée et
il est difficile de contrôler le réseau entier. De plus, ils
doivent principalement fonctionner de manière cryptée d'où
une complication de l'analyse des paquets. Pour finir, à l'opposé
des IDS basés sur l'hôte, ils ne voient pas les impacts d'une
attaque.
? Les IDS hybrides
Les IDS hybrides rassemblent les caractéristiques des
NIDS et RIDS. Ils permettent, en un seul outil, de surveiller le réseau
et les terminaux. Les sones sont placés en des points
stratégiques, et agissent comme NIDS et/ou RIDS suivant leurs
emplacements. Toutes ces sondes remontent alors les alertes à une
machine qui va centraliser le tout, et lier les informations d'origines
multiples. Ainsi, on comprend que les IDS hybrides sont basés sur une
architecture distribuée, ou chaque composant unifie son format d'envoi
cela permet de communiquer et d'extraire des alertes plus pertinentes.
Les avantages des IDS hybrides sont multiples :
? moins de faux positifs ;
? meilleure corrélation (la corrélation permet de
générer de nouvelles alertes à partir de celle existantes)
;
? possibilité de réaction sur les analyseurs.
Si on compare les RIDS et NIDS, les RIDS présente un
avantage considérable par rapport à un NIDS dans le cas où
le trafic est crypté. En effet, un NIDS n'a pas connaissance des
clés de cryptage et ne peut appliquer ses algorithmes de
détection au niveau des données chiffrées. La
détection est effectuée à l'extrémité de la
chaine de communication, une fois le flux est décrypté. Ceci est
réalisé en mettant en oeuvre un agent RIDS directement sur le
serveur
37
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
cible. Les flux chiffrés sont ainsi décodés
par la cible et transmis ensuite au monteur d'analyse de l'NIDS.
2.3.1.4. Avantages et limites d'un IDS
Tableau 3.3 : Avantages et limites d'un
IDS
|
Avantages
|
|
|
Limites
|
·
|
détecter les tentatives de découvertes
|
|
·
|
nombreux faux positifs ;
|
|
du réseau ;
|
|
·
|
configuration complexe et longue ;
|
·
|
détecter dans certains cas, si l'attaque a
réussi ou non ;
|
|
·
|
nombreux faux positifs après
configuration ;
|
·
|
détecter le Dénis de Service ;
|
|
·
|
pas de connaissance de la plate-
|
·
|
détecter le niveau d'infection du
|
|
|
forme ;
|
|
système informatique et les zones
|
|
·
|
de ses vulnérabilités ;
|
|
réseaux touchées ;
|
|
·
|
du contexte métier ;
|
·
|
repérer les machines infectées ;
|
|
·
|
les attaques applicatives sont
|
·
|
alerter de façon centrale pour toutes
|
|
|
difficilement détectables ;
|
|
les attaques ;
|
|
·
|
injection SQL ;
|
·
|
réagir aux attaques et corriger les
|
|
·
|
exploitation de CGI mal conçus ;
|
|
problèmes éventuels ;
|
|
·
|
des évènements difficilement
|
·
|
etc.
|
|
détectables ;
· scans lents / distribués ;
· canaux cachés / tunnels ;
· pollution des IDS ;
· consommation des ressources de l'IDS ;
· perte de paquets ;
· déni de service contre l'IDS
/ l'opérateur ;
· une attaque réelle peut passer inaperçue
;
· attaque contre l'IDS lui-même ;
· ils ne peuvent pas compenser les trous
de sécurité dans les protocoles réseaux
;
· ils ne peuvent pas compenser des
manques significatifs dans votre stratégie de
sécurité, votre politique
de sécurité ou votre architecture
de sécurité.
|
|
2.3.2. Systèmes de prévention d'intrusions
(IPS)
38
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
IPS est un autre concept qui a fait son apparition au
début des années 2000 sous l'idée qu'un système de
détection d'intrusion peut certes détecter des attaques contre un
réseau mais ne peut empêcher l'intrusion. Cela a mené
certaines entreprises utilisatrices à se poser la question : pourquoi
s'investir dans une solution de détection des intrusions si on ne peut
pas empêcher l'intrusion ? La réaction des fournisseurs a
été rapide et c'est ainsi que le concept IPS a vu le jour.
2.3.2.1. Définition
Un système de prévention d'intrusion est un
ensemble de composants logiciels et/ou
matériels dont la fonction principale est
d'empêcher toute activité suspecte détectée au sein
d'un système.
2.3.2.2. Les différents IPS
Il existe trois types de systèmes de préventions
d'intrusion :
? système de prévention d'intrusion réseau
(NIPS) ;
? système de prévention d'intrusion de type
hôte (HIPS) ; ? système de prévention d'intrusion kernel
(KIPS).
2.3.2.2.1. Système de prévention d'intrusion
réseau (NIPS)
Un NIPS est un logiciel ou matériel connecté
directement à un segment du
réseau.il a comme rôle
d'analyser les tous les paquets circulant dans ce réseau. La principale
différence entre un NIDS et un NIPS tient principalement en deux
caractéristiques: le positionnement en coupure sur le réseau du
NIPS et non plus seulement en écoute comme pour le NIDS et la
possibilité de bloquer immédiatement les intrusions et ce quel
que soit le type de protocole de transport utilisé et sans
reconfiguration d'un équipement tierce. Ce qui induit que le NIPS est
constitué d'une technique de filtrage de paquets et de moyens de
blocage.
? Fonctionnement d'un NPIS
Le NIPS combine les caractéristiques d'un IDS standard
avec celles d'un firewall. On le qualifie parfois de firewall à
inspection en profondeur (deep inspection).
39
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Comme avec un firewall, le NIPS a au minimum deux interfaces
réseau, une interne et une externe. Les paquets arrivent par une des
interfaces et sont passés au moteur de détection.
L'IPS fonctionne pour le moment comme un IDS en
déterminant si oui ou non le paquet est malveillant. Cependant, en plus
de déclencher une alerte dans le cas où il détecte un
paquet suspect, il rejettera le paquet et marquera cette session suspecte.
Quand les paquets suivants de cette session arriveront à l'IPS ils
seront rejetés.
Les NIPS sont déployés en ligne avec le segment
du réseau à protéger, du cout toutes les données
qui circulent entre le segment surveillé et le reste du réseau
sont forcés de passer par le NIPS. Un NIPS déclenche des alarmes
du type ` tel ou tel trafic a été détecter en train
d'essayer d'attaquer ce système et a été
bloqué'.
2.3.2.2.2. Système de prévention d'intrusion
de type hôte (HIPS)
Le système de prévention des intrusions sur
l'hôte (HIPS) détecte toutes les activités malveillantes
sur l'hôte, ce qui permet de protéger le système à
différents niveaux.
Si un attaquant obtient un accès système shell
et essaye d'ajouter un compte utilisateur
pour se connecter au système par la suite, le
système de prévention des intrusions sur l'hôte (HIPS)
détecte les fichiers système modifiés et avertit
l'administrateur.
Si un pirate a obtenu l'accès au système et essaie
d'installer un rootkit sur l'espace
utilisateur en remplaçant plusieurs utilitaires
systèmes, HIPS détecte les fichiers système
modifiés et avertit l'administrateur.
2.3.2.2.3. Système de prévention d'intrusion
kernel (KIPS)
Grâce à un KIPS, tout accès suspect peut
être bloqué directement par le noyau, empêchant ainsi toute
modification dangereuse pour le système. Le KIPS peut reconnaître
des motifs caractéristiques du débordement de mémoire, et
peut ainsi interdire l'exécution du code. Le KIPS peut également
interdire l'OS d'exécuter un appel système qui ouvrirait un shell
de commandes .Puisqu'un KIPS analyse les appels systèmes, il ralentit
l'exécution. C'est pourquoi ce sont des solutions rarement
utilisées sur des serveurs souvent sollicités.
2.3.2.3. Types de réponses aux attaques
40
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Face à une activité intrusive un IPS peut
répondre de deux manières différentes :
· réponse active ;
· réponse passive.
2.3.2.3.1. Réponse active
Les réponses actives consistent à
répondre directement à une attaque, la plupart du temps en
générant des requêtes de fin de connexion vers la source de
manière à la contraindre à cesser son activité
intrusive sur le champ. Dans le cas de données TCP, ceci se traduit par
l'envoi de paquets RST qui marquent la fin d'une session aussi bien vers la
source que la destination. Dans le cas des protocoles ICMP ou UDP qui
n'implémentent pas de machines d'états, il peut s'avérer
plus complexe de marquer une fin de session dans la mesure où la notion
même de session n'existe pas. Une méthode couramment
utilisée consiste à générer des requêtes ICMP
Network Unreachable ou UDP Port Unreachable en espérant que la source
reçoive ces requêtes et cesse d'émettre.
Si ces techniques permettent d'interrompre le flux intrusif,
elles présentent toutefois des inconvénients majeurs. Le fait de
générer des paquets de réponse à une intrusion peut
fournir à l'attaquant d'éventuelles informations
révélant la présence d'un système de protection
actif, tel un IPS. En observant la valeur de certains paramètres des
trames de réponse, il est parfois possible de déduire quel est
l'IDS qui les a émis à l'exemple les cas de SNORT qui utilisait
systématiquement un champ TTL de 253 ou de Dragon avec des
numéros de séquences incrémentés de 15 entre 2
trames consécutives. Ces deux problèmes ont été
corrigés depuis, mais il en existe certainement d'autres de même
nature sur les IDS et IPS actuels. Si un pirate parvient à
détecter la nature du système utilisé, il peut arriver
à le contourner plus facilement. C'est pourquoi il est souvent
préférable de rendre les IDS le plus furtifs possible et de les
cantonner dans un rôle de détection passif. L'IPS utilise la
génération de paquets pour couper la connexion :
· TCP Reset ;
· ICMP Network Unreachable ;
· UDP Port Unreachable ;
· Drop.
41
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Le deuxième problème est l'authenticité
de la source de l'attaque (par exemple par le spoofing). Si l'attaquant usurpe
l'identité d'un réseau nécessaire à notre
entreprise, cette méthode peut nous couper du monde. Une des
premières solutions serait de créer une liste blanche de ce qu'il
ne faut absolument pas bloquer. La liste blanche bloque le paquet suspect mais
ne coupe pas le flux.
? Exemple de problème réponse
Active
Figure 3.4 : Réponse active
En cas de spoofing d'adresse IP, le fait de répondre
peut générer des effets de bord indésirables.
Considérez le scénario illustré par la figure ci-dessus
qui relate une mésaventure arrivée à la Maison Blanche il
y a quelques années. Après une phase de reconnaissance, un groupe
de pirates a réussi à détecter la présence d'un IDS
utilisant des réponses automatiques installé sur le site
principal d'une entreprise. Les pirates ont alors attaqué le site de
cette entreprise en le saturant de requêtes UDP distribuées dont
l'adresse IP source était celle d'un serveur de la Maison Blanche. L'IDS
a répondu en générant un grand nombre de paquets de
réinitialisation à destination de l'un des serveurs de la Maison
Blanche, qui a croulé sous la charge. L'entreprise qui a servi de base
de rebond a été reconnue responsable de l'attaque contre la
Maison Blanche, tant du point de vue technique que juridique.
Si une intrusion en provenance du réseau externe est
détectée, il est possible toutefois
de minimiser les risques induits par ces mécanismes de
réponse active en n'émettant des paquets
42
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
de réponse que vers la cible et non pas vers la
source. En procédant de cette manière, les flux intrusifs vers la
cible sont coupés (de manière impropre toutefois) et le pirate ne
peut pas détecter l'IDS.
2.3.2.3.2. Réponse passive
Cette technique consiste à bloquer les flux
associés à une activité intrusive sans en informer la
source, c'est-à-dire sans générer de paquets
spécifiques à destination du pirate. Les réponses passives
se traduisent la plupart du temps par des opérations de reconfiguration
automatique d'un firewall afin de bloquer les adresses IP source
impliquées dans les intrusions.
Le problème n'est pas le même que la
réponse active, n'ayant aucune action vis à vis de l'attaquant
celui-ci n'est pas aux courant de la présence de l'IPS. En revanche le
problème de l'authenticité de la source de l'attaque est le
même. Avec un firewall on a aussi la possibilité de ce
coupé d'un réseau important.
En effet, si le pirate usurpe une adresse IP sensible telle
qu'un routeur d'accès ou un
serveur DNS, l'entreprise qui implémente une
reconfiguration systématique d'un firewall risque tout simplement de se
couper elle-même du monde extérieur.
2.3.2.4. Les limites d'un IPS
Les IPS ne sont pas des logiciels miracle qui vous permettront
de surfer en toute quiétude sur le net. Voici quelques-uns de leurs
inconvénients :
? ils bloquent tout ce qui parait infectieux à leurs
yeux, mais n'étant pas fiable à 100 % ils peuvent donc bloquer
malencontreusement des applications ou des trafics légitimes ; ? ils
laissent parfois passer certaines attaques sans les repérer ;
? ils sont peu discrets et peuvent être
découverts lors de l'attaque d'un pirate qui une fois qu'il aura
découvert l'IPS s'empressera de trouver une faille dans ce dernier pour
le détourner et arriver à son but.
Ce chapitre nous a permis de découvrir les
systèmes de détection et de prévention d'intrusions leurs
fonctionnement et leur capacités. La plupart des IDS sont fiables, ce
qui explique qu'ils sont souvent intégrés dans les solutions de
sécurité. Les avantages qu'ils présentent face aux autres
outils de sécurités les favorisent, mais d'un autre
côté cela n'empêche
43
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
pas que les meilleurs IDS présentent aussi des lacunes
et quelques inconvénients. Nous comprenons donc bien qu'ils sont
nécessaires mais ne peuvent pas se passer de l'utilisation d'autres
outils de sécurité visant à combler leurs défauts.
Dans le chapitre suivant nous allons faire une étude sur quelques
solutions disponibles et faire une présentation des solutions
choisies.
2.4. Etude des solutions
Il existe une panoplie des systèmes de détection
d'intrusions (IDS) dont certains jouent
le rôle de systèmes de détection
d'intrusions basée sur l'hôte (RIDS), d'autres de systèmes
de détection d'intrusions réseau (NIDS) et d'autres les deux
à la fois (IDS hybrides).
2.4.1. Systèmes de détection d'intrusions
basée sur l'hôte (HIDS)
Parmi les systèmes de détection d'intrusions
basée sur l'hôte (HIDS), nous pouvons citer : OSSEC, AIDE et
Samhain.
2.4.1.1. OSSEC
OSSEC signifie Open Source RIDS Security. C'est le principal
RIDS disponible et son utilisation est entièrement gratuite. En tant que
système de détection d'intrusion basé sur l'hôte, le
programme se concentre sur les fichiers journaux de l'ordinateur sur lequel
vous l'installez. Il surveille les signatures de somme de contrôle de
tous vos fichiers journaux pour détecter les éventuelles
interférences. Sous Windows, il gardera un oeil sur toute modification
apportée au registre. Sur les systèmes de type Unix, il
surveillera toutes les tentatives d'accès au compte root. Bien qu'OSSEC
soit un projet open source, il appartient en réalité à
Trend Micro, un producteur de logiciels de sécurité de premier
plan.
L'application de surveillance principale peut couvrir un ou
plusieurs hôtes et consolider les données dans une console. Bien
qu'un agent Windows autorise la surveillance des ordinateurs Windows,
l'application principale ne peut être installée que sur un
système de type Unix, ce qui signifie Unix, Linux ou Mac OS. Il existe
une interface pour OSSEC pour le programme principal, mais celle-ci est
installée séparément et n'est plus prise en charge. Les
utilisateurs réguliers d'OSSEC ont découvert d'autres
applications qui fonctionnent bien comme outil frontal pour l'outil de collecte
de données: notamment Splunk, Kibana et Graylog.
44
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
2.4.1.2. AIDE
«Advanced Intrusion Detection Environment»
(Environnement de détection d'intrusion avancée) est une
tâche ardue. Les développeurs de cet IDS ont donc
décidé de raccourcir son nom en AIDE. Il s'agit d'un HIDS gratuit
qui se concentre sur la détection des rootkits et la comparaison des
signatures de fichiers pour les systèmes d'exploitation Unix et
similaires, de sorte qu'il fonctionne également sur Mac OS et Linux.
Le système compile une base de données de
données admin à partir de fichiers de configuration lors de sa
première installation. Cela crée une base de
référence, puis toute modification de configuration peut
être annulée à chaque fois que des modifications de
paramètres système sont détectées. L'outil comprend
à la fois des méthodes de surveillance des signatures et des
anomalies. Les vérifications du système sont émises
à la demande et ne fonctionnent pas en permanence, ce qui est un peu un
manque à gagner avec ce HIDS. Comme il s'agit d'une fonction de ligne de
commande, vous pouvez planifier son exécution périodique avec une
méthode d'exploitation telle que cron. Si vous voulez des données
en temps quasi réel, vous pouvez simplement planifier leur
exécution très fréquemment.
AIDE n'est en réalité qu'un outil de
comparaison de données et n'incluant aucun langage de script, vous devez
vous appuyer sur vos compétences en scripts shell pour intégrer
des fonctions de recherche de données et d'implémentation de
règles dans ce HIDS. Peut-être que AIDE devrait plutôt
être considéré comme un outil de gestion de la
configuration plutôt que comme un système de détection
d'intrusions.
2.4.1.3. Samhain
Samhain, produit par Samhain Design Labs en Allemagne, est un
système de détection d'intrusion basé sur un hôte
qui est libre d'utilisation. Il peut être exécuté sur un
seul ordinateur ou sur plusieurs hôtes, offrant une collecte de
données centralisée sur les événements
détectés par les agents exécutés sur chaque
ordinateur.
Les tâches effectuées par chaque agent incluent
la vérification de l'intégrité des fichiers, la
surveillance des fichiers journaux et des ports. Les processus recherchent des
virus de rootkit, des SUID non autorisés (droits d'accès
utilisateur) et des processus cachés. Le système applique un
cryptage aux communications entre les agents et un contrôleur central
dans les implémentations multi-hôtes. Les connexions pour la
livraison des données de fichier
45
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
journal incluent des exigences d'authentification,
qui empêchent les intrus de détourner ou de remplacer le
processus de surveillance.
Les données recueillies par Samhain permettent
d'analyser les activités du réseau et de mettre en
évidence les signes avant-coureurs d'une intrusion. Cependant,
cela ne bloquera pas l'intrusion et ne supprimera pas les processus
indésirables. Vous devrez conserver des sauvegardes de vos fichiers de
configuration et de vos identités d'utilisateur afin de résoudre
les problèmes révélés par le moniteur Samhain.
Tableau 4.1: Comparaison des HIDS
HIDS
Critères
|
OSSEC
|
AIDE
|
Samhain
|
Mode de détection
|
Signature
|
Signature et anomalies
|
|
Réaction en temps réel
|
Oui
|
Oui
|
|
Plateforme
|
Windows, Unix, Linux et Mac OS
|
Unix, Linux et Mac OS
|
Unix, Linux et Mac OS
|
Open source
|
Oui
|
|
Oui
|
Coût
|
Gratuit
|
Gratuit
|
Gratuit
|
Source de données à analyser
|
Surveillance des fichiers journaux de l'ordinateur
(données FTP, mail, serveur Web, journaux
d'événement du système
d'exploitation, tables du pare-feu, antivirus, journaux de
trafic),
surveillance du registre, surveillance
|
Comparaison des signatures de fichiers
|
Vérification de l'intégrité des
fichiers, surveillance des fichiers journaux et des ports.
|
|
46
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
|
de l'accès au compte root
|
|
|
Detection des rootkits
|
Oui
|
Oui
|
Oui
|
Ajout d'add-ons
|
Oui
|
|
|
Nombre d'hôte
|
Un ou plusieurs
|
|
Un ou plusieurs
|
Outil frontal
|
Splunk, Kibana et Graylog
|
|
|
|
2.4.2. Systèmes de détection d'intrusions
réseau (NIDS)
Parmi les systèmes de détection d'intrusions
réseau (NIDS), nous pouvons citer : SNORT, Suricata et Bro.
2.4.2.1. SNORT
SNORT est le leader du secteur dans le NIDS, mais son
utilisation est toujours libre. C'est l'un des rares IDS disponibles à
être installé sur Windows. Il a été
créé par Cisco. Le système peut fonctionner selon trois
modes différents et peut mettre en oeuvre des stratégies de
défense. Il s'agit donc d'un système de prévention des
intrusions ainsi que d'un système de détection des intrusions.
Les trois modes de SNORT sont : mode renifleur, enregistreur de paquets et
détection d'intrusion.
Vous pouvez utiliser SNORT comme un renifleur de paquets sans
activer ses fonctionnalités de détection d'intrusion. Dans ce
mode, vous obtenez une lecture en direct des paquets qui transitent par le
réseau. En mode d'enregistrement de paquets, ces détails sont
écrits dans un fichier.
La renommée de SNORT a attiré des adeptes dans
l'industrie du développement de logiciels. Un certain nombre
d'applications créées par d'autres éditeurs de logiciels
peuvent effectuer une analyse plus approfondie des données
collectées par SNORT. Ceux-ci incluent Snorby, BASE, Squil et Anaval.
Ces applications complémentaires vous aident à compenser le fait
que l'interface de SNORT n'est pas très conviviale.
2.4.2.2. Suricata
47
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Suricata est probablement la principale alternative à
SNORT. Suricata présente un avantage essentiel par rapport à
SNORT, à savoir qu'il collecte des données au niveau de la couche
application. Cela surmonte le fait que SNORT est aveugle aux signatures
réparties sur plusieurs paquets TCP. Suricata attend que toutes les
données contenues dans les paquets soient assemblées avant de
transférer les informations dans l'analyse.
Bien que le système fonctionne au niveau de la couche
application, il est capable de surveiller l'activité du protocole
à des niveaux inférieurs, tels que IP, TLS, ICMP, TCP et UDP. Il
examine le trafic en temps réel pour différentes applications
réseau, notamment FTP, HTTP et SMB. Le moniteur ne se contente pas de
regarder la structure des paquets. Il peut examiner les certificats TLS et se
concentrer sur les requêtes HTTP et les appels DNS. Une fonction
d'extraction de fichier vous permet d'examiner et d'isoler les fichiers
suspects présentant des caractéristiques d'infection par le
virus.
2.4.2.3. Bro
Bro est un NIDS gratuit qui va au-delà de la
détection d'intrusion et peut également vous fournir d'autres
fonctions de surveillance du réseau. La communauté des
utilisateurs de Bro comprend de nombreuses institutions de recherche
universitaires et scientifiques.
La fonction de détection d'intrusion de Bro est
remplie en deux phases: enregistrement du trafic et analyse. Comme Suricata,
Bro possède un avantage majeur sur SNORT en ce sens que son analyse
s'applique au niveau application. Cela vous donne une visibilité sur les
paquets pour obtenir une analyse plus large de l'activité du protocole
réseau.
Le module d'analyse de Bro a deux éléments qui
travaillent à la fois sur l'analyse de signature et sur la
détection d'anomalies. Le premier de ces outils d'analyse est le moteur
d'événements Bro. Cela permet de suivre les
événements déclencheurs, tels qu'une nouvelle connexion
TCP ou une requête HTTP. Chaque événement est
enregistré, de sorte que cette partie du système est neutre en
termes de stratégie. Elle fournit uniquement une liste
d'événements dans lesquels l'analyse peut révéler
la répétition d'actions ou d'activités présentant
une diversité suspecte générées par le même
compte d'utilisateur.
L'exploitation de ces données
d'événement est effectuée par des scripts de
stratégie. Une condition d'alerte provoquant une action, Bro est donc un
système de prévention des intrusions ainsi qu'un analyseur de
trafic réseau. Les scripts de stratégie peuvent être
personnalisés, mais ils fonctionnent généralement dans un
cadre standard impliquant la correspondance des signatures, la détection
des anomalies et l'analyse des connexions.
48
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Vous pouvez suivre les activités HTTP, DNS et FTP avec
Bro, mais aussi surveiller le trafic SNMP, vous permet de vérifier les
modifications de configuration du périphérique et les conditions
d'interruption SNMP. Chaque stratégie est un ensemble de règles
et vous n'êtes pas limité au nombre de stratégies actives
ou aux couches de pile de protocoles que vous pouvez examiner. Aux niveaux
inférieurs, vous pouvez surveiller les attaques par inondation DDoS syn
et détecter le contrôle des ports.
Bro peut être installé sur Unix, Linux et Mac
OS.
Tableau 5.2 : Comparaison des NIDS
NIDS
Critères
|
SNORT
|
Suricata
|
Bro
|
Mode de détection
|
Signatures et anomalies
|
Signatures et anomalies
|
Signatures et anomalies
|
Langage de signatures
|
Règles de SNORT (très facile à
élaborer)
|
Règles de SNORT
|
Règles
|
Réaction en temps réel
|
Oui
|
|
|
Plateforme
|
Windows, Unix et Linux
|
Windows, Unix, Linux et Mac OS
|
Unix, Linux et Mac OS
|
Open source
|
Oui
|
|
|
Coût
|
Gratuit
|
Gratuit
|
Gratuit
|
Source de données à analyser
|
Analyse de port furtif, attaques par dépassement de
mémoire tampon, attaques CGI, sondes SMB, empreintes digitales du
système d'exploitation
|
Données de la couche application, données de la
couche réseau
|
Données de la couche application, données de la
couche réseau
|
Version/fonctionnalité IPS
|
Oui
|
|
Oui
|
|
49
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Outils frontal
|
Snorby, BASE, Squil et Anaval
|
Snorby, BASE, Squil et Anaval
|
|
|
2.4.3. Choix des solutions
En ce qui concerne le choix de notre HIDS on note qu'OSSEC et
Samhain se distinguent d'AIDE car ils ont plusieurs sources de données
à analyser et peuvent couvrir plusieurs hôtes. Ceci dit, OSSEC
prend l'avantage grâce à sa disponibilité multiplateforme
et la variété de ses outils frontaux.
Aussi en ce qui concerne le choix de notre NIDS on note que
SNORT se distingue de Suricata car il possède une version IPS et peut
réagir en temps réel. On note aussi que SNORT se distingue de Bro
à cause de la variété de ses outils frontaux et de sa
capacité à réagir en temps réel.
2.4.4. Présentation générale de
SNORT
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 ».
SNORT a la capacité d'effectuer l'analyse du trafic en
temps réel et effectuer l'analyse
de protocole, la recherche de contenu. Il utilise une sonde
pour détecter les attaques, le débordement système, les
scans de port etc.
SNORT peut être configuré pour fonctionner en trois
modes :
? Le mode sniffer : dans ce mode, SNORT lit les
paquets circulant sur le réseau et les affiche d'une façon
continue sur l'écran ;
? Le mode « packet logger » : dans ce
mode SNORT journalise le trafic réseau dans des répertoires sur
le disque ;
? Le mode détecteur d'intrusions réseau
(NIDS) : dans ce mode, SNORT analyse le trafic du réseau,
compare ce trafic à des règles déjà définies
par l'utilisateur et établi des actions à exécuter.
2.4.4.1. Positionnement de SNORT dans le réseau
L'emplacement physique de la sonde SNORT sur le réseau
a un impact considérable sur son efficacité.
50
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Dans le cas d'une architecture classique, composée
d'un Firewall et d'une DMZ, trois positions sont généralement
envisageables :
· Avant le Firewall ou le routeur filtrant :
dans cette position, la sonde occupe une place de premier choix dans
la détection des attaques de sources extérieures visant
l'entreprise. SNORT pourra alors analyser le trafic qui sera
éventuellement bloqué par le Firewall. Les deux
inconvénients de cette position du NIDS sont:
o Le risque engendré par un trafic très important
qui pourrait entraîner une perte de fiabilité ;
o Etant situé hors du domaine de protection du firewall,
le NIDS est alors exposé à d'éventuelles attaques pouvant
le rendre inefficace.
· Sur la DMZ : dans cette position, la
sonde peut détecter tout le trafic filtré par le Firewall et qui
a atteint la zone DMZ. Cette position de la sonde permet de surveiller les
attaques dirigées vers les différents serveurs de l'entreprise
accessible de l'extérieur ;
· Sur le réseau interne : le
positionnement du NIDS à cet endroit nous permet d'observer les
tentatives d'intrusions parvenues à l'intérieur du réseau
d'entreprise ainsi que les tentatives d'attaques à partir de
l'intérieur. Dans le cas d'entreprises utilisant largement l'outil
informatique pour la gestion de leur activités ou de réseaux
fournissant un accès à des personnes peu soucieuses de la
sécurité (réseaux d'écoles et
d'universités), cette position peut revêtir un
intérêt primordial.
Figure 17.1: Différentes positions possible
de SNORT dans un réseau informatiques
2.4.4.2. Architecture de SNORT
L'architecture de SNORT est modulaire et est composée de
:
51
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
· Décodeur de paquet : en
anglais (Packet Decoder) il capture les paquets de données des
interfaces réseaux, les prépare afin d'être
prétraitées ou envoyées au moteur de détection ;
· Pré processeur : en anglais
(Pre-processor) ce sont des composants utilisés avec
SNORT afin d'améliorer les possibilités d'analyse, et de
recomposition du trafic capturé. Ils reçoivent les paquets, les
retraitent et les envoient au moteur de détection ;
· Moteur de détection : en
anglais (Detection Engine) c'est le composant le plus important de SNORT. Son
rôle consiste à détecter les éventuelles intrusions
qui existent dans un paquet. Pour se faire, le moteur de recherche se base sur
les règles de SNORT. En effet, ce moteur consulte ces règles et
les compare une à une avec le paquet de données. S'il y a
conformité, le détecteur l'enregistre dans le fichier log et/ou
génère une alerte. Sinon le paquet est laissé tomber ;
· Système d'alerte et d'enregistrement
des logs : en anglais (Logging and Alerting System) il permet de
générer les alertes et les messages log suivant ce que le moteur
de détection a trouvé dans le paquet analysé ;
· Output modules : en anglais (plugins)
permet de traiter l'intrusion générée par le
système d'alertes et de notation de plusieurs manières : envoie
vers un fichier log, génère un message d'alerte vers un serveur
syslog, ou stocke cette intrusion dans une base de données comme MySQL
ou Oracle.
Figure 18.2: Architecture de SNORT
2.4.4.3. Paramétrage de SNORT
52
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
2.4.4.3.1. Préprocesseurs
Les préprocesseurs permettent d'étendre les
fonctionnalités de SNORT. Ils sont exécutés avant le
lancement du moteur de détection et après le décodage du
paquet IP. Le paquet IP peut être modifié ou analysé de
plusieurs manières en utilisant le mécanisme de
préprocesseur.
Liste des préprocesseurs :
· mainfrag ;
· HTTP Decode ;
· détecteur de balayage du port (Portscan Detector)
;
· port scan Ignorer hosts ;
· défragmentation (Defrag) ;
· stream.
Les préprocesseurs sont chargés et
configurés avec le mot-clé preprocessor. Le format de la
directive preprocesseur dans les règles de SNORT est : preprocessor
<nom> <options>.
2.4.4.3.2. Les plugins de sortie
Les modules de sortie sont une nouveauté de la version
1.6. Ils permettent à SNORT d'être bien plus flexible dans le
formatage et la présentation des sorties à ses utilisateurs. Les
modules de sortie son exécutés quand les sous-systèmes
d'alerte ou de journalisation de SNORT sont appelés, après les
préprocesseurs et le moteur de détection. Le format des
directives dans le fichier de règles est très similaire à
celui des préprocesseurs.
Plusieurs plugins de sortie peuvent être
spécifiés dans le fichier de configuration de SNORT. Quand
plusieurs plugins du même type (journal, alert) sont
spécifiés, ils sont "empilés" et appelés en
séquence quand un événement se produit. Comme avec les
systèmes standards de journalisation et d'alerte, les plugins de sortie
envoient leurs données à /var/log/snort par défaut ou vers
un répertoire désigné par un utilisateur (en utilisant
l'option de la ligne de commande " l").
Liste des modules de sortie :
· Alerte syslog (Alert_syslog) ;
· Alerte rapide (Alert_fast) ;
· Alerte pleine (Alert_full) ;
53
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
· Alerte smb ;
· Alerte unixsock ;
· Log _tcpdump.
Les modules de sortie sont chargés au moment de
l'exécution en spécifiant le mot clé output
dans le fichier de règles : output <nom>:
<options>
2.4.4.3.3. Les bases de SNORT
SNORT permet d'écrire des règles personnelles
et utilise un langage simple et léger de description de règles
qui est flexible et assez puissant.
Les règles SNORT sont divisées en deux sections
logiques, l'entête de la règle et les options de la
règle.
L'entête de la règle : il contient comme
information l'action de la règle, le protocole, les adresses IP source
et destination, les masque réseaux et les ports source et
destination.
Option de la règle : contient les messages d'alerte et
les informations sur les parties du paquet qui doivent être
inspectées pour déterminer si l'action de la règle doit
être acceptée.
Figure 19.3: Les différents champs d'une
règle SNORT
? L'entête de règle
Le champ « action » : il peut prendre
plusieurs valeurs selon l'action à mener par
SNORT en détectant des paquets réseaux
répondant au critère définie dans la règles. Ces
valeurs sont les suivantes :
· alert : génère une alerte et log le paquet
;
· log : log le paquet ;
· pass : ignore le paquet ;
· activate : active une règle dynamique ;
· dynamic : définie une règle dynamique.
Le champ « Protocole » :
décrit le protocole utilisé pour la communication. Snort
supporte les protocoles TCP, UDP, ICMP et IP.
54
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Les champs «Direction» : renseignent
Snort sur la direction des échanges réseau (->,
<-, < >).
Les champs «Adress/Port » :
décrivent les adresses IP et les ports des machines qui
échangent des données sur le réseau.
? Options
· Msg : affiche un message dans les
alertes et journalise les paquets ;
· Logto : journalise le paquet dans un
fichier nommé par l'utilisateur au lieu de la sortie standard ;
· Ttl : teste la valeur du champ TTL de
l'entête IP ;
· Tos : teste la valeur du champ TOS de
l'entête IP ;
· Id : teste le champ ID de fragment de
l'entête IP pour une valeur spécifiée ;
· Ipoption : regarde les champs des
options IP pour des codes spécifiques ;
· Fragbits : teste les bits de
fragmentation de l'entête IP ;
· Dsize : teste la taille de la charge du
paquet contre une valeur ;
· Flags : teste les drapeaux TCP pour
certaines valeurs ;
· Seq : teste le champ TCP de
numéro de séquence pour une valeur spécifique ;
· Ack : teste le champ TCP d'acquittement
pour une valeur spécifiée ;
· Itype : teste le champ type ICMP contre
une valeur spécifiée ;
· Icode : teste le champ code ICMP contre
une valeur spécifiée ;
· Icmp_id : teste le champ ICMP ECHO ID
contre une valeur spécifiée ;
· Icmp_seq : teste le numéro de
séquence ECHO ICMP contre une valeur spécifique ;
· Content : recherche un motif dans la
charge d'un paquet ;
· Content-list : recherche un ensemble de
motifs dans la charge d'un paquet ;
· Offset : modifie l'option content, fixe
le décalage du début de la tentative de correspondance de motif
;
· Depth : modifie l'option content, fixe
la profondeur maximale de recherche pour la tentative de correspondance de
motif ;
· Nocase : correspond à la
procédure de chaîne de contenu sans sensibilité aux
différences majuscules/minuscules ;
· Session : affiche l'information de la
couche applicative pour la session donnée ;
· Rpc : regarde les services RPC pour des
appels à des applications/procédures spécifiques :
55
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
· Resp : réponse active (ferme les
connexions, etc) ;
· React : réponse active (bloque
les sites web).
2.4.4.4. Dépendances de SNORT 2.4.4.4.1.
Barnyard2
Barnyard2 est un fork du projet étable barnyad,
conçue spécifiquement pour SNORT et le nouveau format de fichier
unified2. Barnyard2 est en développement actif et continue de s'adapter
en fonction des commentaires des utilisateurs.
La version actuelle de 2 à 1,8 a les
caractéristiques suivantes:
· traitement des sorties Délestage de vos
fichiers d'alerte de SNORT à un processus dédié, en
minimisant les paquets perdus en soi;
· analyse unified2 fichiers ;
· utilise la syntaxe de configuration similaire à
celle de SNORT pour simplifier le déploiement ;
· supporte tous les plugins de sortie de SNORT (sauf
alert_sf_socket) ainsi que deux plugins supplémentaires (Sguil et
CEF).
Barnyard2 a été écrit à partir de
zéro et tirant parti hors des routines fondamentales de SNORT et
continuellement est aligné sur les dernières versions de SNORT.
Il est distribué sous la licence GPLv2.
2.4.4.4.2. BASE
Par défaut, les alertes de SNORT sont
enregistrées dans un simple fichier texte. L'analyse de ce fichier
n'était pas aisée, même en utilisant des outils de filtre
et de tri. C'est pour cette raison qu'il est vivement conseillé
d'utiliser des outils de monitoring. Parmi ceux-ci, le plus vogue actuellement
est BASE (Basic Analysis and Security Engine), un projet open-source
basé sur Acid (Analysis Console for Intrusion Database). La console BASE
est une application Web écrite en PHP qui interface la base de
données dans laquelle SNORT stocke ses alertes.
Pour fonctionner, BASE a besoin d'un certain nombre de
dépendances :
· Un SGBD installé : par exemple MySQL ;
56
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
· SNORT : compilé avec le support de ce SGBD ;
· Un serveur http : par exemple Apche ;
· PHP5 : module PHP ;
· PHP5-mysql : interface PHP/MySQL ;
· la bibliothèque ADODB (Active DATA Objects DATA
Base) : c'est une bibliothèque destinée à communiquer avec
différents systèmes de gestion de base de données (SGBD)
comme MySQL, SQL Server,etc. Ecrite au début en PHP, il existe
également une version en Python ;
· PHP-mail : extension PHP ;
· PHP-gd ;
· PHP-pear.
2.4.5. Présentation générale
d'OSSEC
OSSEC est une plate-forme pour surveiller et contrôler
vos systèmes. Il associe tous les aspects de HIDS (détection
d'intrusion sur hôte), de surveillance des journaux et de gestion des
incidents de sécurité (SIM) / gestion des informations de
sécurité et des événements (SIEM) dans une solution
simple, puissante et à code source ouvert.
2.4.5.1. Architecture
OSSEC est composé de plusieurs pièces. Il
dispose d'un gestionnaire central pour la
surveillance et la réception d'informations provenant
d'agents, de syslog, de bases de données et de
périphériques sans agent.
2.4.5.1.1. Gestionnaire (ou serveur)
Le manager est la pièce maîtresse du
déploiement OSSEC. Il stocke les bases de données de
vérification de l'intégrité des fichiers, les journaux,
les événements et les entrées d'audit du système.
Toutes les règles, décodeurs et principales options de
configuration sont stockés de manière centralisée dans le
gestionnaire; ce qui facilite l'administration, même d'un grand nombre
d'agents.
57
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Les agents se connectent au serveur sur le port 1514 / udp.
La communication vers ce port doit être autorisée pour que les
agents puissent communiquer avec le serveur.
Le gestionnaire peut être appelé serveur OSSEC,
ou même simplement serveur dans cette documentation.
2.4.5.1.2. Agents
L'agent est un petit programme, ou un ensemble de programmes,
installé sur les systèmes à surveiller. L'agent collectera
les informations et les transmettra au responsable pour analyse et
corrélation. Certaines informations sont collectées en temps
réel, d'autres périodiquement. Par défaut, sa
mémoire et son encombrement CPU sont très faibles, ce qui
n'affecte pas l'utilisation du système.
Sécurité de l'agent: Il s'exécute avec
un utilisateur disposant de peu de privilèges
(généralement créé lors de l'installation) et dans
une prison chroot isolée du système. La majeure partie de la
configuration de l'agent peut être poussée du gestionnaire.
OSSEC peut uniquement être installé en tant
qu'agent sur les plates-formes Microsoft Windows. Ces systèmes
nécessiteront un serveur OSSEC, fonctionnant sous Linux ou un autre
système de type Unix.
2.4.5.1.3. Sans agent
Pour les systèmes sur lesquels un agent ne peut pas
être installé, le support sans agent
peut permettre d'effectuer des vérifications
d'intégrité. Les analyses sans agent peuvent être
utilisées pour surveiller les pare-feu, les routeurs et même les
systèmes Unix.
2.4.5.1.4. Virtualisation / VMware
OSSEC vous permet d'installer l'agent sur les systèmes
d'exploitation invités. Il peut également être
installé dans certaines versions de VMWare ESX, mais cela peut
entraîner des problèmes de support. Avec l'agent installé
dans VMware ESX, vous pouvez recevoir des alertes sur le moment où un
invité VM est installé, supprimé, démarré,
etc. Il surveille également les connexions, les déconnexions et
les erreurs sur le serveur ESX. En plus de cela, OSSEC effectue les
vérifications CIS (Center for Internet Security) pour VMware, en
avertissant si une option de configuration non sécurisée est
activée ou tout autre problème.
58
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
2.4.5.1.5. Pare-feux, commutateurs et
routeurs
OSSEC peut recevoir et analyser des événements
syslog provenant d'une grande variété de pare-feu, de
commutateurs et de routeurs. Il prend en charge tous les routeurs Cisco, Cisco
PIX, Cisco FWSM, Cisco ASA, les routeurs Juniper, le pare-feu Netscreen,
Checkpoint et bien d'autres.
Figure 20.4: architecture d'OSSEC
Ce diagramme montre le gestionnaire central qui reçoit
les événements des agents et les journaux système des
périphériques distants. Lorsqu'un élément est
détecté, les réponses actives peuvent être
exécutées et l'administrateur est averti.
2.4.5.2. Fonctionnalités
2.4.5.2.1. Les exigences de conformité
OSSEC aide les clients à répondre aux exigences
de conformité spécifiques telles que PCI et HIPAA. Il permet aux
clients de détecter les modifications non autorisées du
système de fichiers et les comportements malveillants
intégrés dans les fichiers journaux des produits commerciaux
ainsi que des applications personnalisées et d'en avertir. Pour PCI, il
couvre les sections suivantes: surveillance de l'intégrité des
fichiers (PCI 11.5, 10.5), inspection et surveillance des journaux (section
10), et application / vérification des règles.
59
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
2.4.5.2.2. Multi plateforme
OSSEC permet aux clients d'implémenter un
système complet de détection d'intrusion
basé sur l'hôte avec des stratégies
détaillées spécifiques à l'application / serveur
sur plusieurs plates-formes telles que Linux, Solaris, Windows et Mac OS X.
2.4.5.2.3. Alertes en temps réel et
configurables
OSSEC permet aux clients de configurer les incidents sur
lesquels ils souhaitent être alertés, et leur permet de se
concentrer sur la priorité des incidents critiques par rapport au bruit
normal de tout système. L'intégration avec smtp, sms et syslog
permet aux clients d'être au top des alertes en les envoyant vers des
appareils compatibles avec la messagerie électronique. Des options de
réponse active pour bloquer immédiatement une attaque sont
également disponibles.
2.4.5.2.4. Intégration avec l'infrastructure
actuelle
OSSEC s'intégrera aux investissements actuels de clients
tels que les produits SIM /
SEM (gestion des incidents de sécurité /
gestion des événements de sécurité) pour la
création de rapports centralisés et la corrélation des
événements.
2.4.5.2.5. Gestion centralisée
OSSEC fournit un serveur de gestion centralisé
simplifié pour gérer les politiques sur
plusieurs systèmes d'exploitation. En outre, il permet
également aux clients de définir des remplacements
spécifiques au serveur pour des règles plus
détaillées.
2.4.5.2.6. Surveillance d'agent et sans agent
OSSEC offre la flexibilité de la surveillance, sans
agent, des systèmes et des composants réseaux tels que les
routeurs et les pare-feu. La surveillance sans agent permet aux clients qui ont
des restrictions sur l'installation de logiciels sur des systèmes (tels
que des systèmes ou des appliances approuvés par la FDA) de
répondre aux besoins en matière de sécurité et de
conformité.
60
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
2.4.5.2.7. Vérification de
l'intégrité des fichiers
Toute attaque contre vos réseaux et vos ordinateurs
présente un point commun: ils modifient vos systèmes d'une
manière ou d'une autre. L'objectif de la vérification de
l'intégrité des fichiers (ou FIM - surveillance de
l'intégrité des fichiers) est de détecter ces
modifications et de vous alerter lorsqu'elles se produisent. Il peut s'agir
d'une attaque, d'une utilisation abusive par un employé ou même
d'une faute de frappe par un administrateur. Toute modification de fichier, de
répertoire ou de registre vous sera signalée.
2.4.5.2.8. Surveillance du journal
Votre système d'exploitation veut vous parler, mais
savez-vous écouter? Chaque système d'exploitation, application et
périphérique de votre réseau génère des
journaux (événements) pour vous informer de ce qui se passe.
OSSEC collecte, analyse et corrèle ces journaux pour vous permettre de
savoir s'il se passe quelque chose de suspect (attaque, mauvaise utilisation,
erreur, etc.). Voulez-vous savoir quand une application est installée
sur votre poste client? Ou quand quelqu'un change une règle dans votre
pare-feu? En surveillant vos journaux, OSSEC vous en informera.
2.4.5.2.9. Détection de rootkits
Les pirates informatiques veulent cacher leurs actions, mais en
utilisant la détection
de rootkit, vous pouvez être averti lorsque le
système est modifié de la même manière que les
rootkits.
2.4.5.2.10. Réponse active
Une réponse active permet à OSSEC de prendre des
mesures immédiates lorsque des
alertes spécifiées sont
déclenchées. Cela peut empêcher la propagation d'un
incident avant qu'un administrateur puisse prendre des mesures
2.4.5.3. Systèmes et périphériques
pris en charge par OSSEC
61
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Tableau 6.3 : Systèmes et
périphériques pris en charge par OSSEC
systèmes d'exploitation par l'agent OSSEC
|
Périphériques via Syslog
|
Périphériques et
systèmes d'exploitation via Agentless
|
· GNU / Linux (toutes
|
· Cisco PIX, ASA et
|
· Cisco PIX, ASA et
|
les distributions, y
|
FWSM (toutes les
|
FWSM (toutes les
|
compris RHEL,
|
versions) ;
|
versions) ;
|
Ubuntu, Slackware,
|
· Routeurs Cisco IOS
|
· Routeurs Cisco IOS
|
Debian, etc.) ;
|
(toutes versions) ;
|
(toutes versions) ;
|
· Windows XP, 2003,
|
· Juniper Netscreen
|
· Juniper Netscreen
|
Vista, 2008 et 2012 ;
|
(toutes les versions) ;
|
(toutes les versions) ;
|
· VMWare ESX 3.0,
3.5 (y compris les
|
· Pare-feu SonicWall (toutes les versions) ;
|
· Pare-feu SonicWall (toutes les versions) ;
|
contrôles CIS) ;
|
· Pare-feu Checkpoint
|
· Pare-feu Checkpoint
|
· FreeBSD (toutes les
|
(toutes les versions) ;
|
(toutes les versions) ;
|
versions actuelles) ;
|
· Module Cisco IOS
|
· Tous les systèmes
|
· OpenBSD (toutes les
|
IDS / IPS (toutes les
|
d'exploitation
|
versions actuelles) ;
|
versions) ;
|
spécifiés dans la
|
· NetBSD (toutes les
|
· Sourcefire (Snort)
|
section «Systèmes
|
versions actuelles) ;
|
IDS / IPS (toutes les
|
d'exploitation».
|
· Solaris 2.7, 2.8, 2.9 et
|
versions) ;
|
|
10 ;
|
· Dragon NIDS (toutes
|
|
· AIX 5.2 et 5.3 ;
|
les versions) ;
|
|
· Mac OS X 10.x ;
|
· Checkpoint Smart
|
|
· HP-UX 11.
|
Defense (toutes les
versions) ;
|
|
|
· McAfee VirusScan
|
|
|
Enterprise (v8 et
v8.5) ;
|
|
|
· Proxy Bluecoat
|
|
|
(toutes les versions) ;
|
|
|
· Concentrateurs Cisco
|
|
|
VPN (toutes
versions) ;
|
|
|
· VMWare ESXi 4.x.
|
|
|
Dans ce chapitre, nous avons fait une étude sur
quelques solutions de systèmes de détection d'intrusions
basée sur l'hôte (HIDS) et de systèmes de détection
d'intrusions réseau (NIDS) disponible sur le marché. Ensuite nous
avons identifié le système de détection d'intrusions
basée sur l'hôte (HIDS) le plus efficace et le de systèmes
de détection d'intrusions réseau (NIDS) le plus efficace.
62
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Cette partie était consacrée à tout ce
qui est présentation de la notion de système de détection
d'intrusions puis de système de prévention d'intrusions. Aussi
elle nous a permis de faire une étude sur quelques solutions de
systèmes de détection d'intrusions basée sur l'hôte
(HIDS) et de systèmes de détection d'intrusions réseau
(NIDS) disponible sur le marché. Enfin elle nous a permis d'identifier
le système de détection d'intrusions basée sur
l'hôte (HIDS) le plus efficace et le de systèmes de
détection d'intrusions réseau (NIDS) le plus efficace. Nous
allons sans plus tarder nous lancer à la présentation de
l'architecture que nous allons utiliser pour la mise en place de notre
système de détection et de prévention d'intrusions et des
prérequis à considérés, puis nous allons passer
à la configuration et terminer par une simulation de quelques tests
d'intrusions et la détection de celles-ci.
III. Mise en oeuvre
Pour la mise en place de notre système de
détection et de prévention d'intrusions nous allons tout d'abord
présenter l'architecture de notre cadre de travail et les
prérequis à considérer puis nous allons passer à la
configuration et terminer par une simulation de quelques tests d'intrusions et
la détection de celles-ci.
3.5. Architecture et prérequis
Dans ce chapitre nous allons présenter l'architecture de
notre cadre de travail ainsi que les prérequis à
considérés.
3.5.1. Architecture
Dans ce mémoire, nous nous limiterons à mettre en
place un système de détection et
de prévention d'intrusions en utilisant SNORT et OSSEC
dans un réseau local afin de détecter et de prévenir les
menaces internes qui découlent du réseau de l'entreprise.
Il est plus recommandé de placer SNORT à cet
endroit étant donné que 80% des attaques proviennent de
l'intérieur.
63
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Endian Firewall
Figure 21.1 : Architecture du projet
3.5.2. Prérequis
Afin de tester notre proposition de travail, nous allons
utiliser des outils d'émulation
et de virtualisation (VMware) qui sont des hyperviseurs de
type 2. A cet effet pour une bonne simulation de travail, nous aurons besoins
de trois machine dont :
· Une machine avec un système d'exploitation
Ubuntu 16 sur laquelle sera installé SNORT. Elle aura pour Ram 1Go, un
processeur de 64 bits ;
· Une machine qui contiendra l'appliance d'OSSEC. Elle
aura pour Ram 4Go, un processeur de 64 bits;
· Et une machine cliente avec un système
d'exploitation Windows XP pour les éventuels tests. Elle aura pour Ram
512Mo, un processeur de 64 bits.
NB : en ce qui concerne le serveur
OSSEC, une appliance virtuelle contenant les installations
· CentOS 7.4
· OSSEC 2.9.3
· Elasticsearch-Logstash-Kibana (ELK) 6.1.1
· Cerebro 0.7.2
a été mise en place par les fabricants d'OSSEC.
Donc il suffit juste de télécharger l'appliance avec ce lien
http://updates.atomicorp.com/channels/atomic/virtual-machines/ossec-vm-2.9.3.ova
et de l'importer dans l'hyperviseur (VMware).
Télécharger l'agent OSSEC Windows à
partir de ce lien
http://updates.atomicorp.com/channels/atomic/windows/ossec-agent-win32-3.3.0-7006.exe
64
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
On a consacré ce chapitre à la
présentation de l'architecture de notre projet ainsi que les
prérequis à considérés. Dans le chapitre suivant
nous allons configurer notre système et nous allons terminer par la
réalisation de quelques tests d'intrusions ainsi que la détection
de celles-ci.
3.6. Configuration et tests
Dans ce chapitre nous allons procéder à la
configuration de notre système de détection
et de prévention d'intrusion et terminer par une
simulation de quelques tests d'intrusions et la détection de
celles-ci.
3.6.1. SNORT
Installez les conditions préalables des
dépôts Ubuntu:
sudo apt-get install -y build-essential libpcap-dev
libpcre3-dev libdumbnet-dev bison flex zlib1g-dev
Modifiez /etc/network/interfaces comme un
admin:
sudo nano /etc/network/interfaces
Rajoutez les deux lignes suivantes pour chaque interface
réseau :
post-up ethtool -K ens33 gro off post-up ethtool -K
ens33 lro off
Activez le mode promiscuité sur la carte réseau
qui sera utilisé comme interface d'écoute de SNORT :
ifconfig ens33 promisc
Création d'un répertoire pour enregistrer les
fichiers téléchargé: mkdir /snort_src
cd /snort_src
SNORT utilise la bibliothèque d'acquisition de
données (DAQ) aux appels abstraits par paquets bibliothèques de
capture. DAQ est téléchargé et installer à partir
du site SNORT: cd snort_src
65
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
wget
https://www.snort.org/downloads/snort/daq-2.0.6.tar.gz
tar -xzf daq-2.0.6.tar.gz
cd daq-2.0.6
./configure
make
sudo make install
L'installation de SNORT peut être effectuée :
cd /snort_src
wget
https://snort.org/downloads/snort/snort-2.9.14.tar.gz
tar -xzf snort-2.9.14.tar.gz
cd snort-2.9.14
./configure - -enable-sourcefire -
-disable-open-appid
make
sudo make install
Exécutez la commande suivante pour mettre à jour
des bibliothèques partagées : sudo ldconfig
Placez le binaire local de SNORT dans
/usr/local/bin/snort et créer un lien symbolique vers
/use/sbin/snort : sudo ln -s /usr/local/bin/snort
/usr/sbin/snort
Testez que le binaire SNORT fonctionne avec la commande
snort -V.
Figure 22.1: Test du binaire SNORT
Configuration des règles de SNORT, pour des raisons de
sécurité, afin que SNORT fonctionne en tant qu'utilisateur non
privilégié.
Création de l'utilisateur SNORT et le groupe :
66
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
sudo groupadd snort
sudo useradd snort -r -s /sbin/nologin -c SNORT_IDS -g
snort
Création d'un certain nombre de fichiers et dossier
dont SNORT a besoin lors de son exécution en mode NIDS, on modifier en
suite la propriété de ces fichiers pour le nouvel utilisateur
SNORT. Les fichiers de configuration de SNORT sont stocké dans
/etc/snort, les règles dans /etc/sort/rules
et /usr/local/lib/snort_dynamicrules, et on stocke
ces journaux dans /var/log/snort :
# creation des repertoire de SNORT:
sudo mkdir /etc/snort
sudo mkdir /etc/snort/rules
sudo mkdir /etc/snort/rules/iplists
sudo mkdir /etc/snort/preproc_rules
sudo mkdir /usr/local/lib/snort_dynamicrules
sudo mkdir /etc/snort/so_rules
# Création des fichiers qui stocke les règles :
sudo touch /etc/snort/rules/iplists/default.blacklist sudo touch
/etc/snort/rules/iplists/default.whitelist sudo touch
/etc/snort/rules/local.rules
# Création des repertoires de
journalisation : sudo mkdir /var/log/snort
sudo mkdir /var/log/snort/archived_logs
# Régler les autorisations :
sudo chmod -R 5775 /etc/snort
sudo chmod -R 5775 /var/log/snort
sudo chmod -R 5775
/var/log/snort/archived_logs
sudo chmod -R 5775 /etc/snort/so_rules
sudo chmod -R 5775
/usr/local/lib/snort_dynamicrules
#changement de propriété sur les
dossiers :
67
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
sudo chown -R snort:snort /etc/snort
sudo chown -R snort:snort /var/log/snort
sudo chown -R snort:snort
/usr/local/lib/snort_dynamicrules
Déplacez les fichiers suivants vers /etc/snort
avec les commandes suivantes :
cd /snort_src/snort-2.9.14/etc/
sudo cp *.conf* /etc/snort
sudo cp *.map /etc/snort
sudo cp *.dtd /etc/snort
cd
/snort_src/snort-2.9.14/src/dynamicpreprocessors/
build/usr/local/lib/snort_dynamicpreprocessor/
sudo cp *
/usr/local/lib/snort_dynamicpreprocessor/
Modification du fichier de configuration SNORT. Le fichier de
configuration SNORT est stocké dans
/etc/snort/snort.conf, et contient tous les paramètres
que SNORT va utiliser quand il est exécuté en mode NIDS. Ceci est
un fichier volumineux (bien plus de 500 lignes), et contient un certain nombre
d'options pour la configuration de SNORT. Nous sommes intéressés
par seulement quelques réglages à l'heure actuelle.
Mettez en commentaire toutes les règles de SNORT avec la
commande suivante : sudo sed -i 's/include \$RULE\_PATH/#include
\$RULE\_PATH/'
/etc/snort/snort.conf
Modifiez quelques lignes dans le fichier
snort.conf, on ouvre le fichier Snort.conf
avec la commande suivante : sudo nano
/etc/snort/snort.conf
La ligne 45 et on modifie la ligne de ipvar $HOME_NET
any comme suit : ipvar HOME_NET 192.168.1.0/24
Insertion des chemins et des répertoires que nous avons
créés plus tôt comme suit :
var RULE_PATH /etc/snort/rules # ligne 104
var SO_RULE_PATH /etc/snort/so_rules # ligne
105
var PREPROC_RULE_PATH /etc/snort/preproc_rules
# ligne 106
var WHITE_LIST_PATH /etc/snort/rules/iplists #
ligne 113
68
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
var BLACK_LIST_PATH /etc/snort/rules/iplists #
ligne 114
Activez les règles qu'on veut utiliser en enlevant le
« # » qui se trouve en début de la
ligne, maintenant on va éditer un seul fichier
règles local.rules et pour que SNORT l'utilise on doit
lui enlever le # qui rend la ligne comme commentaire :
include $RULE_PATH/local.rules
Pour s'assurer du bon fonctionnement de SNORT on exécute
la commande suivante :
sudo snort -T -c /etc/snort/snort.conf
Figure 23.2: Validation du fichier de
configuration
Pour écrire sur le fichier local.rules
on ouvre d'abord le fichier à l'aide de la commande
sudo nano /etc/snort/rules/local.rules, puis on écrit
les règles qui nous intéresse le plus, exemple : alert
icmp any any -> $HOME_NET any (msg:"ICMP test";
sid:10000001;rev:001;)
Cette règle dit que pour tous les paquets ICMP qu'il
voit dans tout le réseau à HOME_NET génère une
alerte avec le test ICMP texte.
Apres avoir apporté des modifications aux fichiers qui
reniflent des charges, on doit tester le fichier de configuration à
nouveau: sudo snort -T -c /etc/snort/snort.conf
Figure 24.3: Validation de la nouvelle règle
3.6.2. Installation de Barnyard2
Tout d'abord, installer certaines conditions
préalables:
sudo apt-get install -y mysql-server libmysqlclient-dev
mysql-client autoconf libtool
Lors de l'exécution de la commande
précédente nous aurons besoin de configurer le mot de passe MySQL
root.
69
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Modifier snort.conf. Nous avons besoin
d'ajouter une ligne qui indique SNORT les événements de sortie
sous forme binaire de sorte que Barnyard2 puisse les lire. Après la
ligne 520 dans /etc/snort/snort.conf, on ajoute la ligne
suivante et on enregistre le fichier:
output unified2: filename snort.u2, limit
128
Cette ligne indique à Snort des événements
de sortie dans le format binaire unified2.
Télécharger, configurer et installer Barnyard2
:
cd /snort_src
wget
https://github.com/firnsy/barnyard2/archive/master.tar.gz
-O barnyard2-
Master.tar.gz
tar -zxf barnyard2-Master.tar.gz
cd barnyard2-master
autoreconf -fvi -I ./m4
sudo ln -s /usr/include/dumbnet.h
/usr/include/dnet.h
sudo ldconfig
Selon l'architecture du système (x86 ou x64),
exécute une des deux lignes suivantes: ./configure --with-mysql
--with-mysql-libraries=/usr/lib/x86_64-linux-gnu
./configure --with-mysql
--with-mysql-libraries=/usr/lib/i386-linux-gnu
Une fois terminé on continue avec les commandes suivantes
:
make
sudo make install
Figure 25.4: Test d'installation de Barnyard2
YABOUI Frèse
70
Barnyard2 est maintenant installé dans
/usr/local/bin/barnyard2. Testez pour que Barnyard2 soit
correctement installé en exécutant en utilisant la commande
/usr/local/bin/barnyard2 -V
Inspection du trafic pour la détection et la
prévention d'intrusions
Configurer SNORT pour qu'il puisse utiliser Barnyard2, nous
avons besoin de
quelques fichiers:
sudo cp
/snort_src/barnyard2-master/etc/barnyard2.conf /etc/snort/
sudo mkdir /var/log/barnyard2
sudo chown snort.snort /var/log/barnyard2
sudo touch /var/log/snort/barnyard2.waldo
sudo chown snort.snort
/var/log/snort/barnyard2.waldo
Créer la base de données pour enregistrer les
alertes de Barnayrd2, pour cela on
exécute les commandes suivantes :
$ mysql -u root -p
mysql> create database snort;
mysql> use snort;
mysql> mysql> source
/snort_src/barnyard2-master/schemas/create_mysql
mysql> CREATE USER 'snort'@'localhost' IDENTIFIED
BY 'frese';
mysql> grant create, insert, select, delete,
update on snort.* to 'snort'@'localhost';
mysql> exit
Maintenant que la base de données SNORT a
été créée, modifier le fichier de configuration de
Barnayrd2 et entrer les détails sur la base de données
créé : sudo nano /etc/snort/barnyard2.conf
Ajouter à la fin du fichier la ligne suivante :
output database: log, mysql, user=snort password=frees
dbname=snort host=localhost
Étant donné que le mot de passe est dans le
fichier barnyard2.conf, nous devrions empêcher les autres utilisateurs de
le lire: sudo chmod o-r /etc/snort/barnyard2.conf
Maintenant Barnyard2 est configuré pour fonctionner avec
SNORT. Pour tester, nous allons exécuter SNORT et Barnyard2 et
générer des alertes :
sudo /usr/local/bin/snort -q -u snort -g snort -c
/etc/snort/snort.conf -i eth0 -D
71
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Exécuter la commande suivante pour dire à
Barnyard2 de sauvegarder ces événements dans l'instance de la
base de données de SNORT : sudo barnyard2 -c
/etc/snort/barnyard2.conf -d /var/log/snort -f snort.u2 -w
/var/log/snort/barnyard2.waldo -g snort -u snort
Pour vérifier si Barnyard2 a enregistré ces
évènements dans la base de données de Snort on
exécute la commande suivante:
mysql -u snort -p -D snort -e "select count(*) from
event"
Le nombre d'évènements doit être
supérieur à 0
Figure 26.5: Vérification d'enregistrement des
événements par Barnyard2
3.6.3. Installation de PulledPork
Pour télécharger le jeu de règles
gratuit principal de SNORT, vous avez besoin d'un code Oink. Enregistrez-vous
sur le site Web SNORT et enregistrez votre code Oink avant de continuer, car le
code Oink est requis pour le jeu de règles gratuit le plus populaire.
Figure 27.6: Oinkcode
Installer les pré-requis de PulledPork:
72
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
sudo apt-get install -y libcrypt-ssleay-perl
liblwp-useragent-determined-perl
Télécharger le dernier PulledPork et l'installer
:
cd /snort_src
wget
https://github.com/shirkdog/pulledpork/archive/master.tar.gz
-O pulledpork-
master.tar.gz
tar -xzf pulledpork-master.tar.gz
cd pulledpork-master/
Copier le fichier perl réel vers /usr/local/bin
et les fichiers de configuration
nécessaires vers /etc/snort :
sudo cp
pulledpork.pl
/usr/local/bin
sudo chmod +x /usr/local/bin/
pulledpork.pl
sudo cp etc/*.conf /etc/snort
Tester que PulledPork s'exécute en exécutant la
commande /usr/local/bin/
pulledpork.pl
-V suivante, en recherchant la sortie ci-dessous:
Figure 28.7: Test de fonctionnement de
PulledPork
Maintenant que nous sommes sûrs que PulledPork fonctionne,
nous devons le configurer:
sudo nano /etc/snort/pulledpork.conf
Ligne 74: changer en:
rule_path=/etc/snort/rules/snort.rules
Ligne 89: changer en:
local_rules=/etc/snort/rules/local.rules
Ligne 92: changer en:
sid_msg=/etc/snort/sid-msg.map
Ligne 96: changer en: sid_msg_version=2
Ligne 119: changer en:
config_path=/etc/snort/snort.conf
Ligne 133: changer en: distro=Ubuntu-12-04
Ligne 141: changer en:
black_list=/etc/snort/rules/iplists/black_list.rules
Ligne 150: changer en:
IPRVersion=/etc/snort/rules/iplists
73
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Nous voulons exécuter PulledPork une fois
manuellement pour vous assurer que cela fonctionne :
sudo /usr/local/bin/
pulledpork.pl
-c /etc/snort/pulledpork.conf -l
NB : Cela prend du temps.
Figure 29.8: Exécution manuelle de
PulledPork
Maintenant que nous sommes sûrs que PulledPork fonctionne
correctement, nous voulons ajouter PulledPork au crontab de la racine pour
s'exécuter quotidiennement:
sudo crontab -e
Ajouter la ligne suivante :
00 18 * * * /usr/local/bin/
pulledpork.pl
-c /etc/snort/pulledpork.conf -l
3.6.4. Création de Scripts SystemD
Créer le service SNORT systemD comme suit :
? Editer un fichier snort.service : sudo nano
/lib/systemd/system/snort.service
? Ajouter le les lignes suivantes : [Unit]
Description=Snort NIDS Daemon After=syslog.target
network.target [Service]
Type=simple
74
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
ExecStart=/usr/local/bin/snort -q -u snort -g snort -c
/etc/snort/snort.conf -i ens160 [Install]
WantedBy=multi-user.target
· Ajouter le service snort au démarrage :
sudo systemctl enable snort
· Lancer le service snort : sudo systemctl start
snort
Créer le service Barnyard2 systemD comme suit :
· Editer un fichier barnyard.service : sudo nano
/lib/systemd/system/barnyard.service
· Ajouter le les lignes suivantes :
[Unit]
Description= Barnyard2 Daemon
After=syslog.target network.target
[Service]
Type=simple
ExecStart=/usr/local/bin/barnyard2 -c
/etc/snort/barnyard2.conf -d /var/log/snort
-f snort.u2 -q -w /var/log/snort/barnyard2.waldo -g
snort -u snort D -a
/var/log/snort/archived_logs
[Install]
WantedBy=multi-user.target
· Ajouter de service barnyard au démarrage :
sudo systemctl enable barnyard2
· Lancer le service barnyard : sudo systemctl start
barnyard2
3.6.5. Installation de B.A.S.E
Installez d'abord les conditions préalables :
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install -y apache2 libapache2-mod-php5 php5
php5-mysql php5- common
php5-gd php5-cli php-pear
Installez Pear image Graph: sudo pear install -f -
-alldeps Image_Graph
Ensuite installez ADODB :
75
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
cd /snort_src
wget
http://sourceforge.net/projects/adodb/files/adodb-php5-only/adodb-520-for-php5/
adodb-5.20.8.tar.gz
tar -xzf adodb-5.20.8.tar.gz
sudo mv adodb5 /var/adodb
sudo chmod -R 755 /var/adodb
Installation de B.A.S.E :
cd /snort_src
wget
http://sourceforge.net/projects/secureideas/files/BASE/base
1.4.5/base-1.4.5.tar.gz
tar -xzf base-1.4.5.tar.gz
sudo mv base-1.4.5 /var/www/html/base/
cd /var/www/html/base
sudo cp base_conf.php.dist base_conf.php
sudo chown -R www-data:www-data
/var/www/html/base
sudo chmod o-r
/var/www/html/base/base_conf.php
sudo nano /var/www/html/base/base_conf.php
La dernière commande va nous permettre d'ouvrir le fichier
base_conf.php, insérer les configurations
nécessaires :
$BASE_urlpath = '/base'; # ligne 50
$DBlib_path = '/var/adodb/'; #ligne 80
$alert_dbname = 'snort'; # ligne 102
$alert_host = 'localhost'; $alert_port = ";
$alert_user = 'snort';
$alert_password = 'frese'; # ligne 106
Redémarrer le service apache2: sudo service
apache2 restart
3.6.6. OSSEC
? Ajout d'un agent OSSEC
Installer l'agent OSSEC sur la machine Ubuntu en choisissant
agent :
76
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
sudo apt-get update
sudo apt-get install build-essential
wget
https://github.com/ossec/ossec-hids/archive/3.1.0.tar.gz
sudo tar -zxf ossec-hids-3.1.0.tar.gz
cd ossec-hids-3.1.0
sudo ./
install.sh
Figure 30.9: Installation de l'agent OSSEC sur la
machine Ubuntu
? Ajout de la machine Ubuntu comme agent du
serveur OSSEC
Entrer la commande suivante sur le serveur OSSEC : sudo
/var/ossec/bin/manage_agents
Figure 31.10: Ajout de la machine Ubuntu comme agent
du serveur OSSEC
77
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Figure 32.11: Extraction de la clé pour la
machine Ubuntu
Entrer la commande ci-dessous sur la machine Ubuntu :
sudo /var/manage-agents
Coller la clé extraite :
Figure 33.12: Ajout de la clé sur la machine
Ubuntu
Une fois terminer rédémarrer le serveur OSSEC
pour que ces modifications prennent effet : systemctl restart
ossec-hids
Utilisez la commande suivante pour redémarrer
OSSEC sur le client (machine Ubuntu) : sudo
/var/ossec/bin/ossec-control restart
Pour vérifier que l'agent est bien connecté au
serveur, utilisez la commande suivante sur le serveur OSSEC : sudo
/var/ossec/bin/agent_control -lc
78
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Figure 34.13: Agent connecté
NB : la configuration de la machine
cliente Windows XP comme agent du serveur OSSEC est illustrée en annexe.
Aussi l'ajout d'un dossier à surveiller en temps réel par le
serveur OSSEC est illustré en annexe.
3.6.7. Tests d'intrusions 3.6.7.1. Avec SNORT
Ouvrir le terminal de la machine cliente Windows XP puis faire
un ping sur la
machine Ubuntu.
Figure 35.14 : Ping de la machine Windows XP vers la
machine Ubuntu
79
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Figure 36.15 : Détection du ping par la machine
Ubuntu
3.6.7.2. Avec OSSEC
Utilisez un client SSH pour se connecter à la machine
Ubuntu depuis la machine Windows XP.
Figure 37.16 : Connection SSH à la machine
Ubuntu
80
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Figure 38.17 : Accès au compte root de la
machine Ubuntu
Figure 39.18 : Connection SSH
détectée par le serveur OSSEC via le Dashboard Kibana
81
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
Figure 40.19 : Connection SSH détectée
par le serveur OSSEC via le fichier alerts.log
Dans ce chapitre, nous avons réalisé
expérimentalement et de façon manuelle l'installation et la
configuration de SNORT, avec la quasi-totalité de ses fonctions et
intégré des règles de sécurité qui sont
nécessaire pour la détection des attaques afin de renforcer la
sécurité au niveau du réseau LAN. Aussi nous avons
configuré OSSEC pour la détection d'intrusions au sein des
équipements du système d'information.
Cette partie était consacrée à la
présentation de l'architecture de notre projet ainsi que les
prérequis à considérer. Aussi elle était
consacrée à la configuration de notre système de
détection et de prévention d'intrusions et à la simulation
de quelques tests d'intrusions et la détection de celles-ci.
Conclusion générale
En guise de conclusion, vu la place centrale qu'occupe le
système d'information (SI) dans une entreprise, la sécurisation
de celui-ci contre les multiples attaques et incidents est devenue une
préoccupation de cette dernière. Il est prouvé durant ce
travail la possibilité de mettre en place un système de
sécurité permettant de détecter et d'y remédier aux
intrusions sur le réseau aussi bien que sur les équipements du
système d'information.
Afin de mettre en place ce système de
sécurité nous avions tout d'abord présenté les
concepts liés à la sécurité informatique ainsi que
la notion de système de détection d'intrusions puis de
système de prévention d'intrusions. Ensuite nous avions fait une
étude sur quelques solutions de systèmes de détection
d'intrusions basée sur l'hôte (HIDS) et de systèmes de
82
YABOUI Frèse
Inspection du trafic pour la détection et la
prévention d'intrusions
détection d'intrusions réseau (NIDS) disponible
sur le marché, ce qui nous permis de choisir SNORT comme NIDS et OSSEC
comme HIDS. Enfin nous avions configuré SNORT et OSSEC et
réalisé différents tests d'évaluation.
De nombreux problèmes ont été
rencontrés au cours de la réalisation de ce projet, nous
avons rencontré des difficultés notamment durant
la récolte d'informations pour l'implémentation d'OSSEC et son
téléchargement.
Ainsi, comme perspective d'amélioration de notre
système, la mise en place de SNORT Inline qui est une version
modifiée du fameux IDS SNORT pour en faire un IPS, une solution capable
de bloquer les intrusions et attaques réseau. Il reçoit les
paquets envoyés par le firewall Netfilter avec l'aide
de la librairie libipq, les compare avec des règles de signature SNORT
et les marque en "drop" s'ils correspondent à une règle, puis
finalement les renvoie vers Netfilter où les paquets SNORT Inline
marqués sont rejetés. Aussi dans l'optique de
pouvoir superviser l'ensemble des évènements
générés par ces deux applicatifs (SNORT et OSSEC), il faut
pouvoir les centraliser, rendant de cette manière l'administration et la
visualisation des alertes plus rapides. C'est ce que permet le logiciel
Prelude, un IDS, qui utilise des applications tels qu'OSSEC et SNORT comme des
sondes.
83
YABOUI Frèse
Bibliographie
? Ouvrages
Aman Vladimir, Concevoir la Sécurité
Informatique en Entreprise, 2014, 152 pages. ?
Mémoires
Batouche Sonia et Saci Souhila, Etude et mise en place
d'un système de Détection d'intrusion sous Linux,
Université Abderrahmane Mira de Béjaïa, 2014-2015, 53
pages.
TOUATI Azeddine, Détection d'intrusions dans les
réseaux LAN : Installation et configuration de l'IDS-SNORT,
Université Abderrahmane Mira de Bejaïa, 2015-2016, 68
pages.
Aladine Tlich et Nabil Kherfani, Mise en place d'une
Plateforme de Supervision et de Détection d'Intrusion Système et
Réseau, Université de Carthage, 2015-2016, 67 pages.
? Articles
Noah Dietrich, Snort 2.9.9.x on Ubuntu 14 and 16 with
Barnyard2, PulledPork, and BASE, 8 janvier 2017, 28 pages.
Wayne Veilleux, Le système de surveillance de la
sécurité des réseaux, Security Onion, 11 novembre
2015, 30 pages.
Gilles Hilary, WannaCry et la diffusion des « zero day
exploits », août 2017, 4 pages.
Arnaud Fontaine et Pierre Chifflier, Architecture
système sécurisée de sonde IDS réseau, 13
pages.
? Rapports
i
Eric Farman, Snort, Hôtel de ville de Pertuis,
30/01/2012 au 16/02/2012, 30 pages.
Webographie
fr.wikipedia.org : 27/07/19, 12h28
blog.sienerinformatique.com
: 27/07/19, 12h29
www.informatiquenews.fr :
27/07/19, 12h29
www.directioninformatique.com
: 27/07/19, 12h29
www.commentcamarche.net :
27/07/19, 12h30
www.futura-sciences.com :
27/07/19, 12h31
encyclopedia.kaspersky.fr
: 27/07/19, 12h32
www.cnil.fr : 27/07/19, 12h33
www.bravotelecom.com :
27/07/19, 12h33
doc.ubuntu-fr.org : 27/07/19,
12h35
www.prelude-siem.org :
27/07/19, 12h35
wiki.monitoring-fr.org :
27/07/19, 12h35
www.ossec.net : 27/07/19, 12h35
ii
www.snort.org : 27/07/19, 12h37
www.securiteinfo.com :
27/07/19, 12h37
lactualite.com : 27/07/19, 12h38
blog.securite-information.fr
: 27/07/19, 12h39
Annexes
Annexe 1 : Dashboard Kibana
Annexe 2 : Installation de l'agent OSSEC sur la
machine Windows XP
Annexe 3 : Enregistrement de la machine Windows XP
comme agent du serveur OSSEC
iii
iv
Annexe 4 : Importation de la clé sur la machine
Windows XP
Annexe 5 : Ajout d'un dossier à surveiller en
temps réel par le serveur OSSEC
Annexe 6 : Ajout du dossier réussi
Table des matières
Dédicace I
Remerciements II
Avant-propos III
Sommaire IV
Glossaire VI
Liste des tableaux IX
Introduction générale 1
I. Cadre théorique et méthodologique
3
1.1. Cadre méthodologique 3
1.1.1. Présentation de l'ESTM 3
1.1.2. Problématique 4
1.1.3. Objectifs 4
1.1.4. Délimitation du sujet 4
1.2. La sécurité informatique
5
1.2.1. Qu'est-ce que la sécurité ? 5
1.2.2. Objectifs de la sécurité 5
1.2.3. Les enjeux de la sécurité 6
1.2.4. Les vulnérabilités 6
1.2.5. Les menaces 7
1.2.6. Les logiciels malveillants 7
1.2.7. Les intrusions 7
1.2.8. Les attaques 8
1.2.8.1 Définition 8
1.2.8.2. Anatomie d'une attaque 8
1.2.8.3. Types d'attaques 9
1.2.8.4. Catégorie des attaques 10
1.2.8.5. Quelques attaques courantes 12
1.2.9. Les moyens de sécuriser un réseau 15
1.2.10. Mise en oeuvre d'une politique de sécurité
21
II.
v
Cadre conceptuel 22
2.3. Système de détection et de
prévention d'intrusions 23
2.3.1. Système de détection d'intrusions (IDS)
23
2.3.1.1. Définition 23
2.3.1.2. Présentation d'un système de
détection d'intrusions 24
2.3.1.2.1. Architecture d'un IDS 24
2.3.1.2.2. Vocabulaire de la détection d'intrusions 26
2.3.1.2.3. Emplacements d'un système de détection
d'intrusions 27
2.3.1.2.4. Classification des systèmes de détection
d'intrusions 28
2.3.1.2.5. Les différents IDS 35
2.3.1.4. Avantages et limites d'un IDS 38
2.3.2. Systèmes de prévention d'intrusions (IPS)
38
2.3.2.1. Définition 39
2.3.2.2. Les différents IPS 39
2.3.2.2.1. Système de prévention d'intrusion
réseau (NIPS) 39
2.3.2.2.2. Système de prévention d'intrusion de
type hôte (HIPS) 40
2.3.2.2.3. Système de prévention d'intrusion kernel
(KIPS) 40
2.3.2.3. Types de réponses aux attaques 40
2.3.2.3.1. Réponse active 41
2.3.2.3.2. Réponse passive 43
2.3.2.4. Les limites d'un IPS 43
2.4. Etude des solutions 44
2.4.1. Systèmes de détection d'intrusions
basée sur l'hôte (HIDS) 44
2.4.1.1. OSSEC 44
2.4.1.2. AIDE 45
2.4.1.3. Samhain 45
2.4.2. Systèmes de détection d'intrusions
réseau (NIDS) 47
2.4.2.1. SNORT 47
2.4.2.2. Suricata 47
2.4.2.3. Bro 48
2.4.3. Choix des solutions 50
2.4.4. Présentation générale de SNORT 50
2.4.4.1. Positionnement de SNORT dans le réseau 50
2.4.4.2. Architecture de SNORT 51
2.4.4.3. Paramétrage de SNORT 52
vi
2.4.4.3.1. Préprocesseurs 53
2.4.4.3.2. Les plugins de sortie 53
2.4.4.3.3. Les bases de SNORT 54
2.4.4.4. Dépendances de SNORT 56
2.4.4.4.1. Barnyard2 56
2.4.4.4.2. BASE 56
2.4.5. Présentation générale d'OSSEC 57
2.4.5.1. Architecture 57
2.4.5.1.1. Gestionnaire (ou serveur) 57
2.4.5.1.2. Agents 58
2.4.5.1.3. Sans agent 58
2.4.5.1.4. Virtualisation / VMware 58
2.4.5.1.5. Pare-feux, commutateurs et routeurs 59
2.4.5.2. Fonctionnalités 59
2.4.5.2.1. Les exigences de conformité 59
2.4.5.2.2. Multi plateforme 60
2.4.5.2.3. Alertes en temps réel et configurables 60
2.4.5.2.4. Intégration avec l'infrastructure actuelle
60
2.4.5.2.5. Gestion centralisée 60
2.4.5.2.6. Surveillance d'agent et sans agent 60
2.4.5.2.7. Vérification de l'intégrité des
fichiers 61
2.4.5.2.8. Surveillance du journal 61
2.4.5.2.9. Détection de rootkits 61
2.4.5.2.10. Réponse active 61
2.4.5.3. Systèmes et périphériques pris en
charge par OSSEC 61
Périphériques et systèmes d'exploitation via
Agentless 62
III. Mise en oeuvre 63
3.5. Architecture et prérequis 63
3.5.2. Prérequis 64
3.6. Configuration et tests 65
3.6.1. SNORT 65
3.6.2. Installation de Barnyard2 69
3.6.3. Installation de PulledPork 72
3.6.4. Création de Scripts SystemD 74
3.6.5. Installation de B.A.S.E 75
vii
3.6.6. OSSEC 76
3.6.7. Tests d'intrusions 79
3.6.7.1. Avec SNORT 79
3.6.7.2. Avec OSSEC 80
Conclusion générale 82
Bibliographie i
Webographie ii
Annexes iii
Résumé ix
viii
Abstract x
Résumé
Les réseaux informatiques sont devenus beaucoup plus
important qu'ils en aient il y a quelques années. De nos jours les
entreprises dès leur création n'hésitent pas à
mettre en place un réseau informatique pour faciliter la gestion de leur
infrastructure, c'est pour cela que la sécurité de ces
réseaux constitue un enjeu crucial. Vu le nombre sans cesse croissant
d'attaques et d'incidents, et à titre d'exemple de WannaCry en 2017 dont
200 000 ordinateurs auraient été infectés sur tous les
continents. Etre réactif et proactif dans la détection et la
gestion des incidents cybers est une préoccupation de toutes les
structures.
L'objectif général de notre travail est de
mettre en place une solution de détection et de prévention
d'intrusions en utilisant des outils libres. La problématique est par
conséquent la suivante : quel système de sécurité
mettre en place afin de détecter et d'y remédier aux intrusions
sur le réseau aussi bien que sur les équipements du
système d'information ?
Pour répondre à la problématique, une
recherche documentaire a constitué le fondement du présent
mémoire. Des mémoires, des articles, des ouvrages, des rapports
de recherche, des sites internet et des documents divers ont conduits à
l'élaboration de ce travail. La lecture issue de cette recherche a servi
à s'informer des recherches déjà menées sur ce
sujet et à situer la nouvelle contribution envisagée par rapport
à elles. Ainsi l'ensemble de ces recherches nous a montré
à quel point les systèmes de détection et de
prévention d'intrusions sont indispensables.
ix
A partir de ces données recueillies, bon nombre
d'administrateurs des systèmes d'information n'ont pas de système
de détection et de prévention d'intrusions au sein de leurs
structures. Alors que ces systèmes protègent les entreprises
contre les attaques externes ; ils sont également capables de
détecter et d'éradiquer une menace interne qui représente
en 70 à 80% des actes de malveillance auxquels sont confrontées
les entreprises.
Abstract
Computer networks have become much more important than they
were a few years ago. Nowadays companies from their creation do not hesitate to
set up a computer network to facilitate the management of their infrastructure,
that's why the security of these networks is a crucial issue. Given the
ever-increasing number of attacks and incidents, and as an example of WannaCry
in 2017 of which 200,000 computers would have been infected on every continent.
Being responsive and proactive in detecting and managing cyber incidents is a
concern of all structures.
The general objective of our work is to set up an intrusion
detection and prevention solution using free tools. The problem is therefore:
what security system should be put in place to detect and remedy intrusions on
the network as well as on the equipment of the information system?
To answer the problem, a documentary research was the
foundation of this memoir. Presentations, articles, books, research reports,
websites and various documents led to the development of this work. The reading
from this research was used to learn about research already conducted on this
topic and to situate the new contribution envisaged in relation to them. Thus
all of this research has shown us how intrusion detection and prevention
systems are essential.
x
From this data collected, many IT administrators do not have
an intrusion detection and prevention system within their structures. While
these systems protect companies against external attacks; they are also able to
detect and eradicate an internal threat that accounts for 70 to 80 percent of
the malicious acts that companies face.