DEDICACES
Je dédie ce travail à mes chers parents qui se
sont sacrifiés pour ma réussite,
Mon père Moctar Gueye, celui qui m'a toujours soutenu
moralement et financièrement
A ma très chère Maman, RoghayaDièye,
celle qui n'a jamais cessé de me soutenir, grâce à elle je
ne baisserai jamais les bras, je t'adore maman.
A mes tantes et oncles pour le soutien qu'ils m'ont
fourniquelque soit la nature
A mes chers frères et soeurs : Awa, Ndery,
Cheikh, Fallou, Mariam(Mah), Arame, Malick, Aboulahad, Roghaya, Mariam(Mami)
et DAM
A tous mes amis qui ont toujours été là
pour moi à savoir ceux qui sont avec moi au Maroc et ceux qui sont
ailleurs. Je ne saurais citer tous les noms de peur d'en oublier mais je vous
remercie du fond du coeur.
REMERCIEMENTS
Tous mes remerciements à Monsieur Moustapha directeur
de la prestigieuse école (MIAGE Kenitra).
Je remercie mon encadrant et professeur Mr Mounji qui s'est
fatigué autant pour ce travail que pour notre formation.
Merci à tous les professeurs et à toute
l'administration de l'école MIAGE Kenitra qui m'ont permis d'atteindre
ce niveau ainsi que tous mes promotionnaires.
Sans oublier Amina Hamoud et Cheikh OuldMehlou pour leur
aide
Je crois que sans vous ce travail n'aurait abouti à
temps
SOMMAIRE
DEDICACES
1
REMERCIEMENTS
2
INTRODUCTION
6
I. LA
SÉCURITÉ INFORMATIQUE
7
I.1. Objectif
7
I.2. Enjeux de la
sécurité au sein de l'entreprise
8
I.2.1. La
sécurité informatique : C'est quoi ?
8
I.2.2. La
sécurité informatique : Pourquoi ?
10
I.2.3. La
sécurité informatique : Comment ?
11
I.3. Les
Menaces
12
I.3.1. E-mails
forgés
12
I.3.2.
Spamming
12
I.3.3. Virus,
Chevaux de Troie et autres Malwares
14
I.3.3.1.
Virus
15
I.3.3.2.
Ver :
16
I.3.3.3. Cheval de
Troie :
16
I.3.3.4.
Backdoor
16
I.3.4. 3.4
SNIFFING
17
I.3.5. 3.5 IP
SPOOFING
19
I.4.
Définition des technologies oeuvrant pour la
sécurité
22
I.4.1. La
Cryptographie
22
I.4.1.1.
Cryptographie Symétrique
22
I.4.1.2.
Cryptographie Asymétrique
23
I.4.1.3.
Cryptographie numérique
23
I.4.2. Les
Firewalls
23
I.4.2.1.
Définition
23
I.4.2.2.
Fonctionnement d'un système Firewall
26
I.4.2.2.1. Le
filtrage simple de paquets
26
I.4.2.2.2. Limites
de filtrage de paquets
27
I.4.2.2.3. Le
filtrage dynamique
28
I.4.2.2.4. Le
filtrage applicatif
29
I.4.3. Les
différents types de Firewalls
31
I.4.3.1. Les
Firewalls BRIDGE
31
I.4.3.1.1. Les
Firewalls personnels
34
I.4.3.1.2. Les Firewalls plus
sérieux
34
I.4.3.2. DMZ (
demilitarized zone)
35
I.4.3.2.1. Notion
de cloisonnement
35
I.4.3.2.2.
Architecture DMZ
36
I.4.3.3. NAT
« Network Address Translation »
37
I.4.3.3.1.
Principe
37
I.4.3.3.2. Espaces
d'adressages
38
I.4.3.3.3.
Translation statique
39
I.4.3.3.4.
Translation dynamique
40
II. LES IDS
41
II.1.
Définition
41
II.2. Les
différentes sortes d'IDS
42
II.2.1. La détection d'intrusion
basée sur l'hôte
42
II.2.2.
Détection d'Intrusion basée sur une
application(ABIDS)
45
II.2.3. La
Détection d'Intrusion Réseau (NIDS)
45
II.2.3.1. Les
capteurs :
46
II.2.3.2. Placement
des capteurs
47
II.3. Mode de
fonctionnement d'un IDS
50
II.3.1. Modes de
détection
51
II.3.1.1. La
détection d'anomalies :
51
II.3.1.2. La
reconnaissance de signature :
51
II.3.2.
Réponse active et passive
53
II.3.2.1.
Réponse passive :
53
II.3.2.2.
Réponse active :
53
II.4. . Points
forts et Points faibles des IDS
54
II.4.1. Points
forts
54
II.4.1.1. Une
surveillance continue et détaillée :
54
II.4.1.2. La
modularité de l'architecture :
55
II.4.1.3. La
complémentarité des NIDS et des HIDS :
56
II.4.2. Points
faibles
56
II.4.2.1. Besoin de
connaissances en sécurité :
56
II.4.2.2.
Problème de positionnement des sondes :
57
II.4.2.3.
Vulnérabilités des sondes NIDS :
57
II.4.2.4.
Problèmes intrinsèques à la
plateforme :
58
III. SNORT
59
III.1.
L'architecture de SNORT
60
III.2. Le
décodeur de paquets.
61
III.3. Les
pré-processeurs.
62
III.4. Moteur de
détection.
63
III.5.
Système d'alerte et d'enregistrement des logs.
64
CONCLUSION
66
INDEX DES FIGURES
67
INDEX DES TABLEAUX
68
BIBLIOGRAPHIE 6
8
I.
INTRODUCTION
La croissance de l'Internet et l'ouverture des systèmes
ont fait que les attaques dans les réseaux informatiques soient de plus
en plus nombreuses. Les vulnérabilités en matière de
sécurité s'intensifient, d'une part au niveau de la conception
des protocoles de communication ainsi qu'au niveau de leur implantation et
d'autre part, les connaissances, les outils et les scripts pour lancer les
attaques sont facilement disponibles et exploitables. D'où la
nécessité d'un système de détection d'intrusions
(IDS).
Cette technologie consiste à rechercher une suite de mots
ou de paramètres caractérisant une attaque dans un flux de
paquets. Les systèmes de détection d'intrusion sont devenus un
composant essentiel et critique dans une architecture de sécurité
informatique.
Un IDS doit être conçu dans une politique globale de
sécurité. L'objectif d'un IDSest de détecter toute
violation liée à la politique de sécurité, il
permet ainsi de signaler les attaques.
Ainsi pour créer un IDS nous allons utiliser un logiciel
open source nommé SNORT.
Dans le cas du système SNORT, la reconnaissance des
attaques est basée sur le concept d'analyse de chaînes de
caractères présentes dans le paquet. Pour que le système
puisse être capable de détecter une attaque, cette dernière
doit être décrite par une signature. C'est avec cette signature
qu'on pourra d'écrire la règle que l'IDS va utiliser pour la
détection.
II. LA SÉCURITÉ INFORMATIQUE
La sécurité est un enjeu majeur des technologies
numériques modernes. Avec le développement de l'Internet et de la
notion du partage en général, les besoins en
sécurité sont de plus en plus importants. Le développement
d'applications Internet telles que le commerce électronique, les
applications médicales ou la vidéoconférence, impliquent
de nouveaux besoins comme, l'identification des entités communicantes,
l'intégrité des messages échangés, la
confidentialité de la transaction, l'authentification des
entités, l'anonymat du propriétaire du certificat, l'habilitation
des droits, la procuration, etc..
II.1. Objectif
« La sécurité informatique est tout un
processus ». Afin de garder un très bon niveau de
sécurité, il faut des contrôles réguliers (audits /
tests d'intrusion), des règles respectées (politiques de
sécurité) et des solutions intelligemment déployées
(Firewalls applicatifs, proxy, etc.). Le tout fait que la
sécurité converge vers des niveaux satisfaisants mais jamais
parfaits. Si une composante s'affaiblit c'est tout le processus qui est en
danger.
Nous allons essayer de répondre à une partie de
la problématique de la sécurité Informatique dans les
entreprises. La solution proposée au niveau de ce projet ne cadre que la
partie liée à l'architecture réseau, qui représente
un maillon parmi d'autres dans la politique de sécurité de
l'entreprise. Cette solution a été conçue de façon
modulaire dans le but de respecter les différents besoins des
entreprises. Allant de la simple utilisation d'un Firewall jusqu'à
l'utilisation des certificats avec les PKI« Public Key
Infrastructure » pour l'authentification, le VPN « Virtual
Private Network » - IPSEC pour le cryptage des données et les
IDS «Intrusion Detection System » pour la détection des
intrusion.
II.2. Enjeux de la
sécurité au sein de l'entreprise
Avant d'aborder le domaine technique, il est
préférable de prendre un peu de recul et de considérer la
sécurité dans son ensemble, pas comme une suite de technologies
ou de processus remplissant des besoins bien spécifiques, mais comme une
activité à part entière pour laquelle s'appliquent
quelques règles simples.
· Pour une entreprise ou une institution connectée
à l'Internet, le problème n'est pas de savoir si on va se faire
attaquer mais quand cela va-t-il arriver ? Une solution est donc de
repousser le risque dans le temps et dans les moyens à mettre en oeuvre
en augmentant le niveau de sécurité permettant d'écarter
les attaques quotidiennes, pas forcément anodines et non
spécifiquement ciblées.
· Aucun système d'information n'est 100%
sûr.
Ces deux premières règles ne sont pas du tout
les manifestations d'une paranoïa mais bien un simple constat qu'il est
bon d'avoir toujours en tête pour ne pas se sentir à tort
à l'abri de tout « danger ». En
sécurité informatique, on ne parle pas d'éliminer
complètement les risques mais de les réduire au minimum par
rapport aux besoins/contraintes d'affaires. Il ne faut pas oublier non plus de
considérer les actions provenant de l'intérieur de
l'organisation, qui forment une partie (la majorité selon certaines
données) non négligeable des sources d'attaques.
II.2.1. La sécurité informatique : C'est
quoi ?
Nous pouvons considérer que la sécurité
informatique est divisée en deux grands domaines :
La sécurité organisationnelle
La sécurité technique
La sécurité organisationnelle concerne la
politique de sécurité d'une société (code de bonne
conduite, méthodes de classification et de qualification des risques,
plan de secours, plan de continuité, ...).
Une fois la partie organisationnelle traitée, il faut
mettre en oeuvre toutes les recommandations, et plans dans le domaine technique
de l'informatique, afin de sécuriser les réseaux et
systèmes : cet aspect relève de la sécurité
technique.
Le périmètre de la sécurité est
très vaste :
La sécurité des systèmes
d'information
La sécurité des réseaux
La sécurité physique des locaux
La sécurité dans le développement
d'applications
La sécurité des communications
La sécurité personnelle
Un risque se définit comme une combinaison de menaces
exploitant une vulnérabilité et pouvant avoir un impact. De
manière générale, les risques sont soit des causes
(attaques, pannes, ...) soit des conséquences (fraude, intrusion,
divulgation ...).
Les objectifs de la sécurité sont simples :
empêcher la divulgation de données confidentielles et la
modification non autorisée de données.
Nous retrouvons ainsi les principes fondamentaux de la
sécurité :
La confidentialité,
L'intégrité,
L'authentification,
Le contrôle d'accès,
La non répudiation.
Une seule entrave à l'un de ces principes remet toute
la sécurité en cause
II.2.2. La sécurité informatique :
Pourquoi ?
Une politique de sécurité informatique mal
gérée peut conduire à trois types d'impacts
négatifs :
La pénétration d'un réseau,
Le vol ou détérioration d'informations,
Les perturbations.
La pénétration d'un réseau ou d'un
système peut se faire soit par vol d'identité soit par intrusion.
Ce vol d'identité peut se faire par vol du « nom d'utilisateur/mot
de passe » de connexion au système d'information. Tous les moyens
sont bons pour obtenir des informations. On peut citer à titre
d'exemples :
L'écoute des réseaux,
L'ingénierie sociale,
Ou tout simplement le fait de regarder par-dessus
l'épaule de l'utilisateur qui s'authentifie.
La pénétration d'un réseau ou
système peut aussi se faire à distance ; par exemple un hacker
peut pénétrer le réseau via un serveur de messagerie. Mais
il existe d'autres méthodes moins visibles, comme l'installation d'un
logiciel à l'insu de l'utilisateur, suite à la lecture d'une page
web sur un site. Ainsi un script contenu dans la page web chargée, peut
envoyer des messages de votre logiciel de messagerie vers d'autres
personnes.
II.2.3. La sécurité informatique :
Comment ?
Des produits existent sur le marché et permettent
d'éviter des problèmes de sécurité. Nous trouverons
par exemple des antivirus, des Firewall, du VPN, de la signature
numérique, du proxy, etc.
Chacune de ces technologies ou produits disposent d'une
couverture spécifique. Par exemple, l'antivirus va permettre de bloquer
les virus ou Chevaux de Troie entrants par la messagerie ou par échange
de fichiers.
Le très connu firewall, dont la configuration n'est ni
simple, ni rapide va permettre de filtrer les échanges entre deux
réseaux afin de limiter les accès, et de détecter les
éventuelles tentatives d'intrusion.
Une fonctionnalité supplémentaire a tendance
à se retrouver intégrée dans les firewalls : le VPN.
Celui-ci permet de garantir la confidentialité des échanges
d'informations passant par son intermédiaire en chiffrant le flux
d'informations.
Il est possible de mettre en outre une signature
numérique en place. Ainsi, dans le système de messagerie, le
destinataire du message sera certain de l'identité de l'émetteur
et de l'intégrité du message. Il pourra être le seul
lecteur si le message a été chiffré (clef
privée/clef publique).
Le serveur Web reste vulnérable, car accessible
directement depuis l'extérieur du réseau. La mise en place d'un
reverse proxy résout l'affaire. En effet, toute tentative de connexion
au serveur Web parvient au serveur proxy, qui lui-même envoie une
requête au serveur Web. Ainsi le serveur Web n'est plus accessible depuis
l'extérieur du réseau.
II.3. Les Menaces
Afin de mieux comprendre les menaces auxquelles sont
exposés les systèmes informatiques, nous allons analyser en
détail quelques attaques courantes.
II.4. E-mails
forgés
La falsification du courrier électronique est une des
attaques les plus faciles à réaliser. Bien qu'elle paraisse
anodine, elle peut être utilisée de manière criminelle pour
du harcèlement, de la diffamation ou du chantage.
La raison pour laquelle la falsification des e-mails est possible
est que le protocole utilisé par les serveurs de mail pour transmettre
le courrier (SMTP) n'effectue aucune vérification des adresses source
des messages, à l'image des bureaux de poste qui ne vérifient pas
l'adresse d'expéditeur inscrite sur les lettres ou colis.
Le protocole SMTP est basé sur cinq commandes principales:
HELO, MAIL FROM,RCPT TO,DATA, QUIT
II.4.1. Spamming
Le fait que l'on puisse envoyer du courrier électronique
anonyme ou avec des adresses falsifiées est exploitée par des
individus peu scrupuleux pour faire des envois de publicité
non-ciblées non-sollicitée et à très large
diffusion (plusieurs millions d'adresses e-mail). Ces messages non
sollicitées sont appelées du "spam" et le fait de les envoyer est
appelé le "spamming". Pour se mettre à l'abri des destinataires
qui sont frustrés d'éliminer chaque jour du spam de leur
boîte aux lettres et qui doivent parfois payer le prix d'une
communication téléphonique pour recevoir ces messages non
désirées, leurs auteurs se cachent derrière de fausses
adresses.
Si le fait de recevoir du spam est plus une
contrariété qu'un risque de sécurité, la
manière dont le spam est distribué crée des risques
réels. En effet, les ressources pour envoyer un même message
à des millions d'adresses e-mails coûteraient bien trop cher aux
spammers et ils n'auraient probablement pas le temps de terminer leurs envois
avant que leur fournisseur de service ne coupe la ligne. Il est beaucoup plus
efficace alors pour un spammer de choisir une centaine de serveurs de mail et
d'envoyer à chacun une copie du message avec une liste de distribution
d'une dizaine de milliers d'adresses.
Pour l'entreprise dont le serveur de messagerie est abusé
de telle sorte, les conséquences peuvent être les suivantes:
ü Le serveur est complètement surchargé par la
tâche de distribution du courrier pendant plus d'une journée. S'il
s'agit d'une petite entreprise avec un seul serveur, c'est non seulement la
messagerie Internet qui est bloqués, mais aussi la messagerie
interne.
ü Les disques du serveur se remplissent de logs confirmant
l'envoi des messages (risque de blocage de la machine).
ü La boîte aux lettres de l'administrateur est
inondée de messages d'erreur à propos de toutes les adresses
e-mail qui n'étaient pas atteignables.
ü Le fournisseur d'accès à Internet peut
menacer de couper la ligne s'il n'arrête pas de recevoir des
réclamations.
ü Le serveur de messagerie risque d'être inclus dans
les listes noires des serveurs participant au spam, rendant ainsi impossible
l'échange de courrier électronique avec des entreprises qui
consultent cette liste avant d'accepter du courrier d'un autre serveur.
La seule protection possible contre les abus de spam est de
configurer les serveurs de messagerie de manière à ce qu'ils
n'acceptent pas de relayer du courrier externe. Pour cela il faut appliquer au
minimum les deux règles suivantes au traitement des messages:
· Pour qu'il soit accepté par le serveur de
messagerie, l'expéditeur ou le destinataire d'un message doit faire
partie du domaine auquel appartient le serveur.
· Seules les machines faisant partie du domaine du serveur
de messagerie ont le droit de déposer des messages avec un
expéditeur qui fait partie du domaine.
La première règle permet d'éviter que le
serveur de messagerie soit utilisé pour relayer des messages qui n'ont
rien à voir avec le domaine (entreprise, unité) pour lequel il a
été mis en service. La deuxième est une règle
générale qui permet d'éviter qu'une personne externe ne
fasse relayer du courrier en prétendant que l'expéditeur
appartient au domaine du serveur.
II.4.2. Virus, Chevaux de Troie et autres Malwares
Les virus sont des programmes qui ont la capacité de se
répliquer et de se propager à travers les réseaux
informatiques. En réalité, il existe plusieurs types de logiciel
de ce genre qui peuvent compromettre la sécurité dans un
réseau informatique. Ils peuvent agir de manière
indépendante ou combinée. Voici quelques exemples :
II.4.2.1. Virus
Un fragment de logiciel qui se propage avec l'aide d'un autre
programme. Il peut détruire des données de manière directe
ou indirecte et dégrader les performances d'un système en
monopolisant certaines de ces ressources.
Certains virus n'ont comme fonction que de se répliquer
alors que d'autres sont programmées avec des actions destructives
(élimination de fichiers, redémarrage de
l'ordinateur, ...). Quoi qu'il en soit, il est important de se
protéger des virus car ils peuvent aussi créer des
dégâts indirects.
· Perte de données : Les virus modifient
des fichiers pour les infecter. Par cette opération, le contenu original
du fichier peut être perdu. D'autre part, certains virus sont
programmés pour effacer des fichiers.
· Perte de temps de travail : Les personnes dont
le poste de travail est infecté ne peuvent plus travailler
jusqu'à ce que le virus soit éliminé. Les administrateurs
ne peuvent pas faire leur travail quotidien pendant qu'ils éliminent les
virus des postes de travail et des serveurs.
· Perte de fonctionnalité : L'infection
par un virus peut rendre inutilisable une fonctionnalité d'un
système (messagerie, traitement de texte, accès Internet). Cette
perte de fonctionnalité peut par exemple empêcher une entreprise
de conduire ses affaires.
· Perte d'image de marque : Une entreprise peut
souffrir d'une perte d'image de marque, par exemple si un virus se propage par
son système de messagerie vers tous les clients de l'entreprise.
· Vol d'informations : Les virus peuvent rendre
un ordinateur vulnérable à du vol d'information (par exemple en
installant un backdoor) ou carrément envoyer une copie des fichiers se
trouvant sur l'ordinateur infecté vers un pirate.
II.4.2.2. Ver :
Un programme indépendant qui se reproduit en se copiant
d'un système à un autre par exemple à travers le
réseau. Comme les virus, les vers peuvent détruire des
données ou dégrader les performances d'un système en
consommant des ressources.
II.4.2.3. Cheval de Troie :
Un programme indépendant qui paraît avoir une
fonction utile et qui contient un programme malveillant. Quand un utilisateur
exécute la fonction utile, le cheval de Troie exécute aussi la
fonction malveillante.
II.4.2.4. Backdoor
Littéralement appelé porte arrière est un
programme permettant à un pirate de contrôler un ordinateur
à distance. Ces programmes étant souvent installés par des
chevaux de Troie sont aussi souvent classés comme tel. Ils ont trois
caractéristiques variables qui sont :
· La taille : Plus un backdoor est petit, plus
il est facile d'être installé par un cheval de Troie, un virus, ou
un ver.
· Les fonctionnalités : Les
fonctionnalités minimales sont par exemple la possibilité de
transférer un fichier exécutable sur la machine infectée
et de l'exécuter. Ceci permet d'installer un backdoor plus complet
à partir d'un backdoor minimal. Les backdoors
Les plus évolués permettent d'exécuter des
commandes arbitraires en ligne, d'espionner le réseau, le clavier et
l'écran.
· Le mode de communication : Les backdoors les
plus classiques ouvrent simplement un port TCP ou UDP prédéfini
et attendent qu'un pirate distant se connecte pour leur transmettre des ordres.
Les backdoors plus évolués peuvent envoyer un message à
une adresse e-mail ou dans un système de conversation en ligne pour
signaler qu'ils sont prêts à recevoir des ordres. Ils peuvent
ainsi aussi communiquer l'adresse IP de la machine infectée et le port
sur lequel ils attendent les commandes. Dans ce cas, le port peut être
choisi aléatoirement, ce qui rend plus difficile la détection du
backdoor. Certains backdoors utilisent des moyens de communication plus
discrets comme par exemple des paquets ICMP de requêtes et de
réponse (Ping). Finalement, ces communications peuvent aussi être
chiffrées.
Parmi les backdoors les plus complets on trouve "Back Orifice
2000" développé par le Cult of the Dead Cow, NetBus de
Carl-Fredrik Neikter et Subseven de MobMan.
Ils contiennent toutes les options décrites plus haut, la
possibilité de créer des extensions modulaires (plug-ins) ainsi
que des outils pour créer un cheval de Troie qui va les installer.
II.5. 3.4 SNIFFING
Le sniffing consiste simplement à capturer une image du
trafic qui circule sur un brin d'un réseau. Le but du sniffing est
d'exploiter le fait que beaucoup de méthodes d'authentification
transmettent les mots de passe en clair sur le réseau. Le sniffing est
typiquement utilisé par les pirates pour étendre leurs attaques.
Une fois qu'ils ont pris possession d'une machine, le sniffing leur permet de
trouver des mots de passe leur donnant accès à des machines
supplémentaires. Le sniffing est le plus efficace dans des
réseaux locaux qui utilisent un média partagé (par
exemple, l'Ethernet classique sans commutation). Dans ce cas le sniffer peut
voir le trafic de toutes les machines connectées au réseau local
et sa chance de trouver un mot de passe est plus grande. Les réseaux
locaux récents sont souvent commutés plutôt que
partagés. Dans ce cas chaque machine est connectée
séparément à un commutateur. Le commutateur ne propage les
paquets que vers les machines qui peuvent potentiellement être leur
destinataire. Ceci augmente largement les performances du réseau,
puisque chaque machine a à sa disposition la bande passante totale du
média. L'efficacité du sniffer est par contre fortement
réduite puisqu'il ne voit que le trafic concernant la machine sur
laquelle il est installé. Certains sniffers avancés permettent de
forger des messages du protocole de résolution d'adresses Ethernet (ARP)
afin de recevoir du trafic qui ne leur est pas destiné, même sur
un réseau commuté. On parle alors d'empoisonnement de la
résolution d'adresses (ARP poisoning).
La plupart des systèmes d'exploitation ne permettent
l'exécution de sniffers que par des utilisateurs ayant des
privilèges d'administrateur. En utilisant un sniffer sur une machine, le
pirate peut éventuellement trouver le mot de passe d'un administrateur
d'une autre machine et installer un sniffer sur cette nouvelle cible.
Plus souvent, le pirate découvre des mots de passe
d'utilisateurs qui ne sont pas administrateurs. Ces mots de passe lui donnent
accès à de nouvelles machines, mais il doit encore trouver une
vulnérabilité dans sa nouvelle cible et d'obtenir les
privilèges d'administrateur.
Pour information, les protocoles d'authentification les plus
courants qui transmettent des mots de passe en clair sont donnés dans le
tableau 1
Figure 1 : PROTOCOLES
ÉCHANGEANT DES MOTS DE PASSE EN CLAIR
II.5.1. IP SPOOFING
Le terme "IP Spoofing" se réfère à la
falsification d'adresses source IP. Dans de nombreux cas, des paquets de
données sont traités différemment en fonction de leur
adresse source. Dans les réseaux, un routeur ou un firewall peut laisser
passer des paquets dont l'adresse source indique qu'ils proviennent d'un site
ami. De même, certaines applications offrent des privilèges aux
connexions qui émanent de sites connus. Par exemple
rsh, sous Unix, peut permettre l'exécution de commandes
sans demander de mot de passe, à condition que la requête vienne
d'un site se trouvant sur une liste de sites amis.
Typiquement, les attaques de Spoofing exploitent des relations de
confiance entre des machines qui appartiennent à une même
entité. Par exemple, les machines d'une salle informatique peuvent
être configurées de manière à ce qu'on n'ait pas
besoin de s'authentifier si on se connecte à une machine de la salle
à partir d'une autre machine de la salle. Un pirate peut exploiter cette
relation de confiance en essayant de se faire passer pour une machine de la
salle lorsqu'il se connecte à une autre machine de la salle. La
difficulté avec le Spoofing est que le pirate qui envoie des paquets
avec des adresses source falsifiées ne voit pas les réponses
à ces paquets, puisque la cible répondra à l'adresse
falsifiée se trouvant dans les paquets. Ceci est d'autant plus difficile
que la plupart des attaques se basent sur des connexions TCP et que pour
établir une connexion, TCP exige que trois paquets soient
échangés.
Pour comprendre les tenants et aboutissants d'une telle attaque
il faut se rappeler quelques notions de base de TCP. TCP est un protocole
à fenêtre coulissante. Il utilise donc un numéro de
séquence pour chaque direction, indiquant le numéro du premier
byte envoyé dans la trame courante et le numéro du prochain byte
attendu. Pour éviter que des paquets retardés d'une ancienne
connexion soient confondus avec des paquets d'une connexion courante, les
numéros de séquence ne commencent pas à zéro, mais
à une valeur initiale qui est incrémentée dans le temps.
Lors de l'établissement d'une connexion, la machine initiante envoie une
demande de synchronisation (paquet syn.) en indiquant le numéro de
séquence initial qu'elle va utiliser. La machine destination
répond avec une confirmation de synchronisation (synack) qui contient
son numéro de séquence initial. La machine initiante peut ensuite
envoyer le premier paquet faisant partie du protocole à fenêtre,
un acquittement (ack), qui contient le numéro de séquence du
prochain byte attendu, éventuellement des données et le
numéro de séquence du premier byte transmis (ou à
transmettre). Cet échange est décrit à la figure
Imaginons maintenant le cas d'un pirate sur la machine A qui veut
se faire passer pour un utilisateur sur la machine C. Dans ce cas il
crée des paquets TCP dont l'adresse source est
C.
Quand la machine B va recevoir les paquets du pirate, elle va,
de bonne foi, répondre à la machine C. Le pirate ne verra donc
pas le numéro de séquence initial de B et ne peut continuer le
dialogue que s'il est capable de le deviner. Ce dialogue de sourds est
illustré à la figure 2
Pour réussir son attaque le pirate a besoin de deux
informations :
1. Le numéro de séquence initial utilisé
pour la dernière connexion établie par la cible
2. L'incrément qui va être utilisé pour
générer le numéro de séquence initial de la
prochaine connexion.
Pour obtenir la première information, le pirate n'a
qu'à faire une tentative de connexion en donnant sa vraie adresse source
(si le réseau est surveillé alors il sera démasque).
L'acquittement que la cible lui envoie contient le numéro de
séquence initial actuel. La deuxième information,
Figure 2 : ECHANGE
DES NUMÉROS DE SÉQUENCE INITIAUX LORS DE L'ÉTABLISSEMENT
D'UNE CONNEXION TCP
Figure 3 : TENTATIVE
D'ETABLISSEMENT D'UNE CONNEXION PAR UN PIRATE. POUR QUE L'ATTAQUE REUSSISSE, LE
PIRATE DOIT DEVINER LE NUMERO DE SEQUENCE INITIAL PROPOSE PAR
B.
Pour obtenir la deuxième information, l'incrément,
est plus difficile à obtenir. Initialement, la plupart des
implémentations de TCP utilisaient des incréments fixes. Suite
aux attaques de Spoofing, les incréments fixes ont été
remplacés par des incréments aléatoires. Quand le
générateur de nombres aléatoires utilisé est trop
simple, le pirate arrive quand-même à prédire le prochain
numéro de séquence initial. Il faut noter que le pirate n'a pas
besoin de connaître la valeur exacte du numéro de séquence.
Il peut envoyer une multitude de paquets avec une série de
numéros de séquence initiaux parmi lesquels il suppose que se
trouve le bon numéro. Les paquets avec les mauvais numéros seront
rejetés, et le paquet avec le bon numéro établira la
connexion.
Il existe une difficulté supplémentaire à
part le fait que le pirate doive deviner le numéro de séquence
initial de sa cible. En effet, la machine pour laquelle le pirate se fait
passer va recevoir un acquittement de synchronisation (syn-ack), alors qu'elle
n'a jamais demandé de synchronisation. Dans ce cas elle va envoyer un
paquet d'annulation (reset, rst), pour invalider la connexion. Le pirate doit
donc soit envoyer son paquet de données avant que la machine C ait pu
répondre, soit choisir comme machine C une machine hors service (mais
tout de même amie de B), quitte à mettre hors service cette
machine lui-même.
II.6. Définition des technologies oeuvrant pour la
sécurité
II.6.1. La Cryptographie
La cryptographie permet l'échange sûr des
renseignements privés et confidentiel. Un texte compréhensible
est converti en texte inintelligible (chiffrement), en vue de sa transmission
d'un poste de travail à un autre. Sur le poste récepteur, le
texte chiffré est reconverti en format intelligible
(déchiffrement). On peut également utiliser la cryptographie pour
assurer l'authentification, la non-répudiation et
l'intégrité de l'information, grâce à un processus
cryptographique spécial appelé signature numérique.
Celle-ci permet de garantir l'origine et l'intégrité de
l'information échangée, et aussi de confirmer
l'authenticité d'un document.
II.6.1.1. Cryptographie
Symétrique
La cryptographie symétrique encore appelée
cryptographie classique repose sur l'utilisation d'une
« clef » mathématique qui sert au chiffrement et au
déchiffrement des données. Ainsi, pour faire parvenir un message
de façon sûre, il faut le chiffrer à l'aide d'une clef
connue uniquement de l'expéditeur et du destinataire, puis faire
parvenir au destinataire prévu à la fois le message et la clef de
façon à ce que seul celui-ci puisse décoder le message.
II.6.1.2. Cryptographie
Asymétrique
La cryptographie asymétrique encore appelée
cryptographie à clef publique utilise deux clefs. La première
demeure privée, tandis que la seconde est publique. Si l'on utilise la
clef publique pour chiffrer un message, la clef privée permet de le
déchiffrer. Autrement dit, il suffit de chiffrer un message à
expédier à l'aide de la clef publique du destinataire, et ce
dernier peut ensuite utiliser la clef privée pour le
déchiffrer.
II.6.1.3. Cryptographie
numérique
La cryptographie à clef publique rend possible
l'utilisation des signatures numériques. Celles-ci permettent de
corroborer l'origine d'un message. Pour «signer» un message, on
utilise une fonction mathématique qui produit un résumé du
message (Hash). Le résumé obtenu est chiffré à
l'aide de la clef privée de l'expéditeur. Le résultat, qui
constitue la signature numérique, est annexé au message. Le
destinataire du message peut ensuite s'assurer de l'origine du message et de
l'intégrité de l'information qu'il contient en déchiffrant
la signature numérique au moyen de la clef publique de
l'expéditeur, puis en comparant le résultat avec le
résumé obtenu en appliquant la même fonction
mathématique au message reçu. Cela semble un peu
compliqué, mais en pratique, il suffit de cliquer sur une icône
à l'écran pour lancer tout le processus.
II.6.2. Les Firewalls
II.6.2.1. Définition
Aujourd'hui, toutes les entreprises possédant un
réseau local disposent aussi d'un accès à Internet, afin
d'accéder à la manne d'information disponible sur le
réseau des réseaux, et de pouvoir communiquer avec
l'extérieur. Cette ouverture vers l'extérieur est
indispensable... et dangereuse en même temps. Ouvrir l'entreprise vers le
monde signifie aussi laisser place ouverte aux étrangers pour essayer de
pénétrer le réseau local de l'entreprise, et y accomplir
des actions douteuses, parfois gratuites, de destruction, vol d'informations
confidentielles, ... Les mobiles sont nombreux et dangereux.
Pour parer à ces attaques, une architecture
sécurisée est nécessaire. Pour cela, le coeur d'une telle
architecture est basé sur un firewall. Cet outil a pour but de
sécuriser au maximum le réseau local de l'entreprise, de
détecter les tentatives d'intrusion et d'y parer au mieux possible.
Cela représente une sécurité
supplémentaire rendant le réseau ouvert sur Internet beaucoup
plus sûr. De plus, il peut permettre de restreindre l'accès
interne vers l'extérieur.
En effet, des employés peuvent s'adonner à des
activités que l'entreprise ne cautionne pas, le meilleur exemple
étant le jeu en ligne. En plaçant un firewall limitant ou
interdisant l'accès à ces services, l'entreprise peut donc avoir
un contrôle sur les activités se déroulant dans son
enceinte.
Le firewall propose donc un véritable contrôle
sur le trafic réseau de l'entreprise. Il permet d'analyser, de
sécuriser et de gérer le trafic réseau, et ainsi
d'utiliser le réseau de la façon pour laquelle il a
été prévu et sans l'encombrer avec des activités
inutiles, et d'empêcher une personne sans autorisation d'accéder
à ce réseau de données. Il s'agit ainsi d'une passerelle
filtrante comportant au minimum les interfaces réseaux suivantes telles
que montrées dans la Figure 3 :
Une interface pour le réseau à protéger
(réseau interne)
Une interface pour le réseau externe
Figure 4: Schéma
d'une architecture réseau utilisant un 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 Firewall 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.
Dans le cas où le système Firewall est fourni
dans une boîte noire « clef en main », on utilise le
terme d'« Appliance ».
II.6.2.2. Fonctionnement d'un
système Firewall
Un système Firewall contient un ensemble de
règles prédéfinies permettant :
D'autoriser la connexion (allow)
De bloquer la connexion (deny)
De rejeter la demande de connexion sans avertir
l'émetteur (drop).
L'ensemble de ces règles permet de mettre en oeuvre une
méthode de filtrage dépendant de la politique de
sécurité adoptée par l'entité. On distingue
habituellement deux types de politiques de sécurité
permettant :
Soit d'autoriser uniquement les communications ayant
été explicitement autorisées :
« TOUT CE QUI N'EST PAS EXPLICITEMENT
AUTORISÉ EST INTERDIT »
Soit d'empêcher les échanges qui ont
été explicitement interdits.
La première méthode est sans nul doute la plus
sûre, mais elle impose toutefois une définition précise et
contraignante des besoins en communication.
II.6.2.2.1. Le filtrage simple de paquets
Un système Firewall fonctionne sur le principe du
filtrage simple de paquets (en anglais « Stateless Packet
Filtering »). Il analyse les en-têtes de chaque paquet de
données (datagramme) échangé entre une machine du
réseau interne et une machine extérieure.
Ainsi, les paquets de données échangées
entre une machine du réseau extérieur et une machine du
réseau interne transitent par le Firewall et possèdent les
en-têtes suivants, systématiquement analysés par le
firewall :
Adresse IP de la machine émettrice ;
Adresse IP de la machine réceptrice ;
Type de paquet (TCP, UDP, etc.) ;
Numéro de port (un port est un numéro
associé à un service ou une application réseau).
Les adresses IP contenues dans les paquets permettent
d'identifier la machine émettrice et la machine cible, tandis que le
type de paquet et le numéro de port donnent une indication sur le type
de service utilisé.
Les ports reconnus (dont le numéro est compris entre 0
et 1023) sont associés à des services courants (les ports 25 et
110 sont par exemple associés au courrier électronique, et le
port 80 au Web). La plupart des dispositifs Firewall sont au minimum
configurés de manière à filtrer les communications selon
le port utilisé. Il est généralement conseillé de
bloquer tous les ports qui ne sont pas indispensables (selon la politique de
sécurité retenue).
Le port 23 est par exemple souvent bloqué par
défaut par les dispositifs Firewall car il correspond au protocole
Telnet, permettant d'émuler un accès par terminal à une
machine distante de manière à pouvoir exécuter des
commandes à distance. Les données échangées par
Telnet ne sont pas chiffrées, ce qui signifie qu'un individu est
susceptible d'écouter le réseau et de voler les éventuels
mots de passe circulant en clair. Les administrateurs lui
préfèrent généralement le protocole SSH (Secure
Shell), réputé sûr et fournissant les mêmes
fonctionnalités que Telnet.
II.6.2.2.2. Limites de filtrage de paquets
Le premier problème vient du fait que l'administrateur
réseau est rapidement contraint à autoriser un trop grand nombre
d'accès, pour que le Firewall offre une réelle protection. Par
exemple, pour autoriser les connexions à internet à partir du
réseau privé, l'administrateur devra accepter toutes les
connexions TCP provenant de l'internet avec un port supérieur à
1024. Ce qui laisse beaucoup de choix à un éventuel pirate.
Il est à noter que de définir des ACL sur des
routeurs haut de gamme n'est pas sans répercussion sur le débit
lui-même. Enfin, ce type de filtrage ne résiste pas à
certaines attaques de type IP Spoofing ou IP Flooding, la mutilation de paquets
ou encore certaines attaques de type DOS. Ceci est vrai sauf dans le cadre des
routeurs fonctionnant en mode distribué. Ceci permettant de gérer
les ACL directement sur les interfaces sans remonter à la carte de
traitement central. Les performances impactées par les ACL sont alors
quasi nulles.
II.6.2.2.3. Le filtrage dynamique
Le filtrage simple de paquets ne s'attache qu'à
examiner les paquets IP indépendamment les uns des autres, ce qui
correspond au niveau 3 du modèle OSI. Or, la plupart des connexions
reposent sur le protocole TCP, qui gère la notion de session, afin
d'assurer le bon déroulement des échanges. D'autre part, de
nombreux services (le FTP par exemple) initient une connexion sur un port
statique, mais ouvrent dynamiquement (c'est-à-dire de manière
aléatoire) un port afin d'établir une session entre la machine
faisant office de serveur et la machine cliente. La figure suivante illustre
l'échange entre un Client et un Serveur FTP.
Figure 5 :
Etablissement de la connexion entre un client et serveur FTP en passant par
un Firewall
Ainsi, il est impossible avec un filtrage simple de paquets de
prévoir les ports à laisser passer ou à interdire. Pour y
remédier, le système de filtrage dynamique de
paquets est basé sur l'inspection des couches 3 et 4 du
modèle OSI, permettant d'effectuer un suivi des transactions entre le
client et le serveur. Le terme anglo-saxon est « Stateful
inspection » ou
« Statefulpacketfiltering », qui se
traduit en « filtrage de paquets avec état ».
Un dispositif pare-feu de type « Stateful
inspection » est ainsi capable d'assurer un suivi des
échanges, c'est-à-dire de tenir compte de l'état des
anciens paquets pour appliquer les règles de filtrage. De cette
manière, à partir du moment où une machine
autorisée initie une connexion à une machine située de
l'autre côté du pare-feu; l'ensemble des paquets transitant dans
le cadre de cette connexion seront implicitement acceptés par le
pare-feu.
Si le filtrage dynamique est plus performant que le filtrage
de paquets basique, il ne protège pas pour autant de l'exploitation des
failles applicatives, liées aux vulnérabilités des
applications. Or ces vulnérabilités représentent la part
la plus importante des risques en termes de sécurité.
Limites du filtrage dynamique
Tout d'abord, il convient de s'assurer que les deux techniques
sont bien implémentées par les Firewalls, car certains
constructeurs ne l'implémentent pas toujours correctement. Ensuite une
fois l'accès à un service a été autorisé, il
n'y a aucun contrôle effectué sur les enquêtes et
réponses des clients et serveurs. Un serveur http pourra donc être
attaqué impunément.
Enfin les protocoles maisons utilisant plusieurs flux de
données ne passeront pas, puisque le système de filtrage
dynamique n'aura pas connaissance du protocole.
II.6.2.2.4. Le filtrage applicatif
Le filtrage applicatif permet de filtrer les communications
application par application. Le filtrage applicatif opère donc au niveau
7 « Couche application » du modèle OSI,
Contrairement au filtrage de paquets simple « Niveau
4 ». Le filtrage applicatif suppose donc une connaissance des
protocoles utilisés par chaque application.
Le filtrage applicatif permet, comme son nom l'indique, de
filtrer les communications application par application. Le filtrage applicatif
suppose donc une bonne connaissance des applications présentes sur le
réseau, et notamment de la manière dont elle structure les
données échangées (ports, etc.).
Un firewall effectuant un filtrage applicatif est
appelé généralement « passerelle
applicative » ou « proxy », car il sert de relais
entre deux réseaux en s'interposant et en effectuant une validation fine
du contenu des paquets échangés. Le proxy représente donc
un intermédiaire entre les machines du réseau interne et le
réseau externe, subissant les attaques à leur place. De plus, le
filtrage applicatif permet la destruction des en-têtes
précédant le message applicatif, ce qui permet de fournir un
niveau de sécurité supplémentaire.
Il s'agit d'un dispositif performant, assurant une bonne
protection du réseau, pour peu qu'il soit correctement
administré. En contrepartie, une analyse fine des données
applicatives requiert une grande puissance de calcul et se traduit donc souvent
par un ralentissement des communications, chaque paquet devant être
finement analysé.
Par ailleurs, le proxy doit nécessairement être
en mesure d'interpréter une vaste gamme de protocoles et de
connaître les failles afférentes pour être efficace.
Limites du filtrage applicatif
Le premier problème qui se pose est la finesse du filtrage
réalisé par le proxy. Il ets extrêmement difficile de
pouvoir réaliser un filtrage qui ne laisse rien passer, vu le nombre de
protocoles de niveau 7. En outre le fait de devoir connaître les
règles protocolaires de chaque protocole filtré pose des
problèmes d'adaptabilité à de nouveaux protocoles ou des
protocoles maison.
Mais il est indéniable que le filtrage applicatif apporte
plus de sécurité que le filtrage de paquets par état, mais
cela se paie en performance. Ce qui exclut l'utilisation d'une technologie 100
% proxy pour les réseaux à gros trafic au jour d'aujourd'hui.
Néanmoins d'ici quelques années, le problème technologique
sera sans doute résolu.
Enfin, un tel système peut potentiellement comporter une
vulnérabilité dans la mesure où il interprète les
requêtes qui transitent par son biais. Ainsi, il est recommandé de
dissocier le pare-feu (dynamique ou non) du proxy tel que montré dans la
Figure 4, afin de limiter les risques de compromission.
Figure 6 : Choix des
Firewalls dans une architecture réseau
II.6.3. Les différents types de
Firewalls
II.6.3.1. Les Firewalls BRIDGE
Ces derniers sont relativement répandus. Ils agissent
comme de vrais câbles réseau avec la fonction de filtrage en plus,
d'où leur appellation de Firewall. Leurs interfaces ne possèdent
pas d'adresse IP, et ne font que transférer les paquets d'une interface
a une autre en leur appliquant les règles prédéfinies.
Cette absence d'adresse IP est particulièrement utile, car cela signifie
que le Firewall est indétectable pour un hacker lambda. En effet, quand
une requête ARP est émise sur le câble réseau, le
Firewall ne répondra jamais. Ses adresses Mac ne circuleront jamais sur
le réseau, et comme il ne fait que « transmettre » les
paquets, il sera totalement invisible sur le réseau.
Cela rend impossible toute attaque dirigée directement
contre le Firewall, étant donnévqu'aucun paquet ne sera
traité par ce dernier comme étant sa propre destination. Donc, la
seule façon de le contourner est de passer outre ses règles de
drop. Toute attaque devra donc « faire » avec ses règles, et
essayer de les contourner.
Dans la plupart des cas, ces derniers ont une interface de
configuration séparée. Un câble vient se brancher sur une
troisième interface, série ou même Ethernet, et qui ne doit
être utilisée que ponctuellement et dans un environnement
sécurisé de préférence.
Ces Firewalls se trouvent typiquement sur les switchs.
Avantages
|
Inconvénients
|
Impossible de l'éviter (les paquets passeront par ses
interfaces)
Peu coûteux
|
Possibilité de le contourner (il suffit de passer
outre ses règles)
Configuration souvent contraignante
Les fonctionnalités présentes sont très
basiques (filtrage sur adresse IP, port, le plus souvent en Stateless)
|
Tableau 1 : Avantages et
inconvénients d'un Firewall Bridge
II.6.3.2. Les Firewalls
matériels
Ils se trouvent souvent sur des routeurs achetés dans
le commerce par de grands constructeurs comme Cisco ou Nortel.
Intégrés directement dans la machine, ils font office de «
boite noire », et ont une intégration parfaite avec le
matériel. Leur configuration est souvent relativement ardue, mais leur
avantage est que leur interaction avec les autres fonctionnalités du
routeur est simplifiée de par leur présence sur le même
équipement réseau. Souvent relativement peu flexibles en terme de
configuration, ils sont aussi peu vulnérables aux attaques, car
présent dans la « boite noire » qu'est le routeur.
De plus, étant souvent très liés au
matériel, l'accès à leur code est assez difficile, et le
constructeur a eu toute latitude pour produire des systèmes de codes
« signés » afin d'authentifier le logiciel (système RSA
ou assimilés).
Ce système n'est implanté que dans les
firewalls haut de gamme, car cela évite un remplacement du logiciel par
un autre non produit par le fabricant, ou toute modification de ce dernier,
rendant ainsi le firewall très sûr. Son administration est souvent
plus aisée que les Firewalls bridges, les grandes marques de routeurs
utilisant cet argument comme argument de vente. Leur niveau de
sécurité est de plus très bon, sauf découverte de
faille éventuelle comme tout firewall. Néanmoins, il faut savoir
que l'on est totalement dépendant du constructeur du matériel
pour cette mise à jour, ce qui peut être, dans certains cas, assez
contraignant. Enfin, seules les spécificités prévues par
le constructeur du matériel sont implémentées. Cette
dépendance induit que si une possibilité nous intéresse
sur un firewall d'une autre marque, son utilisation est impossible. Il faut
donc bien déterminer à l'avance ses besoins et choisir le
constructeur du routeur avec soin.
Avantages
|
Inconvénients
|
Intégré au matériel réseau
Administration relativement simple
Bon niveau de sécurité
|
Dépendant du constructeur pour les mises à
jour
Souvent peu flexible
|
Tableau 2 :Avantages
et inconvénients d'un Firewall matériel
II.6.3.3. Les Firewalls logiciels
Présents à la fois dans lesserveurs et routeurs
« faits maison », on peut les classer en plusieurs
catégories :
II.6.3.3.1. Les Firewalls personnels
Ils sont assez souvent commerciaux et ont pour but de
sécuriser un ordinateur particulier, et non pas un groupe d'ordinateurs.
Souvent payants, ils peuvent être contraignants et quelque fois
très peu sécurisés. En effet, ils s'orientent plus vers la
simplicité d'utilisation plutôt que vers l'exhaustivité,
afin de rester accessible à l'utilisateur final.
Avantages
|
Inconvénients
|
Sécurité en bout de chaîne (Poste
Client)
Personnalisable assez facilement
|
Facilement contournable
Difficiles à départager de par leur nombre
énorme
|
Tableau 3 : Avantages
et inconvénients d'un Firewall personnel.
II.6.3.3.2. Les Firewalls plus sérieux
Tournant généralement sous linux, car cet OS
offre une sécurité réseau plus élevée et un
contrôle plus adéquat, ils ont généralement pour but
d'avoir le même comportement que les firewalls matériels des
routeurs, à ceci prêt qu'ils sont configurables à la main.
Le plus courant est iptables (anciennement ipchains), qui utilise directement
le noyau linux.
Toute fonctionnalité des firewalls de routeurs est
potentiellement réalisable sur une telle plateforme.
Avantages
|
Inconvénients
|
Personnalisables
Niveau de sécurité très bon
|
Nécessite une administration système
supplémentaire
|
Tableau 4 : Avantages
et inconvénients d'un Firewall plus sérieux.
Ces firewalls logiciels ont néanmoins une grande
faille : ils n'utilisent pas la couche bas réseau. Il suffit donc de
passer outre le noyau en ce qui concerne la récupération de ces
paquets, en utilisant une librairie spéciale, pour
récupérer les paquets qui auraient été normalement
« droppés » par le Firewall. Néanmoins, cette faille
induit de s'introduire sur l'ordinateur en question pour y faire des
modifications... chose qui induit déjà une intrusion dans le
réseau, ou une prise de contrôle physique de l'ordinateur, ce qui
est déjà Synonyme d'inefficacité de la part du
firewall.
II.6.3.4. DMZ (demilitarized zone)
II.6.3.4.1. Notion de cloisonnement
Les systèmes
pare-feu
permettent de définir des règles d'accès entre deux
réseaux. Néanmoins, dans la pratique, les entreprises ont
généralement plusieurs sous-réseaux avec des politiques de
sécurité différentes. C'est la raison pour laquelle il est
nécessaire de mettre en place des architectures de systèmes
pare-feux permettant d'isoler les différents réseaux de
l'entreprise : on parle ainsi de « cloisonnement des
réseaux » (le terme isolation est parfois
également utilisé).
II.6.3.4.2. Architecture DMZ
Figure 7 :
Architecture d'une DMZ
Lorsque certaines machines du réseau interne ont besoin
d'être accessibles de l'extérieur (serveur web, un serveur de
messagerie, un serveur FTP public, etc.), il est souvent nécessaire de
créer une nouvelle interface vers un réseau à part,
accessible aussi bien du réseau interne que de l'extérieur, sans
pour autant risquer de compromettre la sécurité de l'entreprise.
On parle ainsi de « zone
démilitarisé » (notée
DMZ pour Demilitarized Zone) pour désigner
cette zone isolée hébergeant des applications mises à
disposition du public. La DMZ fait ainsi office de « zone
tampon » entre le réseau à protéger et le
réseau hostile. La figure ci-dessous montre la position d'une DMZ au
sein d'un réseau.
Les serveurs situés dans la DMZ sont appelés
« bastions » en raison de leur position d'avant-poste dans
le réseau de l'entreprise.
La politique de sécurité mise en oeuvre sur la
DMZ est généralement la suivante :
Trafic du réseau externe vers la DMZ
autorisé ;
Trafic du réseau externe vers le réseau interne
interdit ;
Trafic du réseau interne vers la DMZ
autorisé ;
Trafic du réseau interne vers le réseau externe
autorisé ;
Trafic de la DMZ vers le réseau interne
interdit ;
Trafic de la DMZ vers le réseau externe
interdit.
La DMZ possède donc un niveau de sécurité
intermédiaire, mais son niveau de sécurisation n'est pas
suffisant pour y stocker des données critiques pour l'entreprise.
Il est à noter qu'il est possible de mettre en place
des DMZ en interne afin de cloisonner le réseau interne selon
différents niveaux de protection et ainsi éviter les intrusions
venant de l'intérieur.
II.6.3.5. NAT « Network
Address Translation »
II.6.3.5.1. Principe
Le mécanisme de translation d'adresses
« NAT » a été mis au point
afin de répondre à la pénurie d'adresses IP avec le
protocole IPv4 (le protocole IPv6 répondra à terme à ce
problème).
En effet, en adressage IPv4 le nombre d'adresses IP routables
(donc uniques sur la planète) n'est pas suffisant pour permettre
à toutes les machines nécessitant d'être connectées
à internet de l'être.
Le principe du NAT consiste donc à utiliser une adresse
IP routable (ou un nombre limité d'adresses IP) pour connecter
l'ensemble des machines du réseau en réalisant, au niveau de la
passerelle de connexion à internet, une translation
(littéralement une « traduction ») entre l'adresse
interne (non routable) de la machine souhaitant se connecter et l'adresse IP de
la passerelle. Cette passerelle peut être un routeur tel que
montré dans la figure suivante.
Figure 8 :
Fonctionnement de NAT
D'autre part, le mécanisme de translation d'adresses
permet de sécuriser le réseau interne
étant donné qu'il camoufle complètement l'adressage
interne. En effet, pour un observateur externe au réseau, toutes les
requêtes semblent provenir de la même adresse IP.
II.6.3.5.2. Espaces d'adressages
L'organisme gérant l'espace d'adressage public
(adresses IP routables) est l'IANA. La RFC 1918 définit
un espace d'adressage privé permettant à toute organisation
d'attribuer des adresses IP aux machines de son réseau interne sans
risque d'entrer en conflit avec une adresse IP publique allouée par
l'IANA. Ces adresses dites non-routables correspondent aux plages d'adresses
suivantes :
Classe A : plage de 10.0.0.0 à
10.255.255.255 ;
Classe B : plage de 172.16.0.0 à
172.31.255.255 ;
Classe C : plage de 192.168.0.0 à
192.168.255.55 ;
Toutes les machines d'un réseau interne,
connectées à internet par l'intermédiaire d'un routeur et
ne possédant pas d'adresse IP publique doivent utiliser une adresse
contenue dans l'une de ces plages. Pour les petits réseaux domestiques,
la plage d'adresses de 192.168.0.1 à 192.168.0.255 est
généralement utilisée.
II.6.3.5.3. Translation statique
Le principe du NAT statique consiste à
associer une adresse IP publique à une adresse IP privée interne
au réseau. Le routeur (ou plus exactement la passerelle) permet donc
d'associer à une adresse IP privée (par exemple 192.168.0.1) une
adresse IP publique routable sur Internet et de faire la traduction, dans un
sens comme dans l'autre, en modifiant l'adresse dans le paquet IP.
La translation d'adresse statique permet ainsi de connecter
des machines du réseau interne à internet de manière
transparente mais ne résout pas le problème de la pénurie
d'adresse dans la mesure où n adresses IP routables sont
nécessaires pour connecter n machines du réseau interne.
Avantages et inconvénients du NAT statique
En associant une adresse IP publique à une adresse IP
privée, nous avons pu rendre une machine accessible sur Internet. Par
contre, on remarque qu'avec ce principe, on est obligé d'avoir une
adresse publique par machine voulant accéder à Internet. Cela ne
va pas régler notre problème de pénurie d'adresses IP...
D'autre part, tant qu'à donner une adresse publique par machine,
pourquoi ne pas leur donner cette adresse directement plutôt que de
passer par un intermédiaire ? A cette question, on peut apporter
plusieurs éléments de réponse. D'une part, il est souvent
préférable de garder un adressage uniforme en interne et de ne
pas mêler les adresses publiques aux adresses privées. Ainsi, si
on doit faire des modifications, changements, interventions sur le
réseau local, on peut facilement changer la correspondance entre les
adresses privées et les adresses publiques pour rediriger les
requêtes vers un serveur en état de marche.
D'autre part, on gâche un certain nombre d'adresses
lorsqu'on découpe un réseau en sous-réseaux (adresse de
réseau, adresse de broadcast...), comme lorsqu'on veut créer une
DMZ pour rendre ses serveurs publiques disponibles. Avec le NAT statique, on
évite de perdre ces adresses. Malgré ces quelques avantages, le
problème de pénurie d'adresses n'a toujours pas été
réglé. Pour cela, on va se pencher sur la NAT dynamique.
II.6.3.5.4. Translation dynamique
Le NAT dynamique permet de partager une
adresse IP routable (ou un nombre réduit d'adresses IP routables) entre
plusieurs machines en adressage privé. Ainsi, toutes les machines du
réseau interne possèdent virtuellement, vu de l'extérieur,
la même adresse IP. C'est la raison pour laquelle le terme de
« mascarade IP » est parfois
utilisé pour désigner le mécanisme de translation
d'adresse dynamique.
Afin de pouvoir « multiplexer » (partager)
les différentes adresses IP sur une ou plusieurs adresses IP routables,
le NAT dynamique utilise le mécanisme de translation de port
(PAT - Port Address Translation), c'est-à-dire
l'affectation d'un port source différent à chaque requête
de telle manière à pouvoir maintenir une correspondance entre les
requêtes provenant du réseau interne et les réponses des
machines sur Internet, toutes adressées à l'adresse IP du
routeur.
Avantages et inconvénients du NAT dynamique
Comme nous l'avons vu, le NAT dynamique permet à des
machines ayant des adresses privées d'accéder à Internet.
Cependant, contrairement au NAT statique, il ne permet pas d'être joint
par une machine de l'Internet. Effectivement, si le NAT dynamique marche, c'est
parce que le routeur qui fait le NAT reçoit les informations de la
machine en interne (Adresse IP, port TCP/UDP). Par contre, il n'aura aucune de
ces informations si la connexion est initialisée de
l'extérieur... Le paquet arrivera avec comme adresse de destination le
routeur, et le routeur ne saura pas vers qui rediriger la requête en
interne.
La NAT dynamique ne permet donc que de sortir sur Internet, et
non pas d'être joignable. Il est donc utile pour partager un accès
Internet, mais pas pour rendre un serveur accessible. De plus, étant
donné que l'on peut "cacher" un grand nombre de machines derrière
une seule adresse publique, cela permet de répondre à notre
problème de pénurie d'adresses.
Par contre, les machines n'étant pas accessibles de
l'extérieur, cela donne un petit plus au niveau de la
sécurité.
Nous allons à présent parler d'un autre
système de sécurité (Les IDS) dans notre prochain
chapitre.
III. LES IDS
III.1. Définition
Tout d'abord, IDS (Intrusion Detection System) signifie
système de détection d'intrusion. Il s'agit d'un
équipement permettant de surveiller l'activité d'un réseau
ou d'un hôte donné, afin de détecter toute tentative
d'intrusion et éventuellement de réagir à cette
tentative.
Pour présenter le concept d'IDS, nous allons tout d'abord
présenter les différentes sortes d'IDS, chacun intervenant
à un niveau différent.
Nous étudierons ensuite leur mode de fonctionnement, c'est
à dire les modes de détection utilisés et les
réponses apportées par les IDS. Enfin, nous détaillerons
les points forts et les points faibles des IDS.
Figure 9 :
Fonctionnement d'un IDS
III.2. Les différentes sortes
d'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 (HIDS), puis basée sur une
application, avant de nous intéresser aux IDS réseaux (NIDS).
III.2.1. La
détection d'intrusion basée sur l'hôte
Les systèmes de détection d'intrusion basés
sur l'hôte ou HIDS (Host 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 HIDS 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 HIDS permettent
également de détecter des attaques impossibles à
détecter avec un NIDS, car elles font partie de trafic crypté.
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édant des
données sensibles pour l'entreprise. Les serveurs, web et applicatifs,
peuvent notamment être protégés par un HIDS.
Pour finir, voici quelques HIDS connus: Tripwire, WATCH,
DragonSquire, Tiger,
Security Manager...
Avantages :
· Pouvoir surveiller des événements locaux
jusqu'au host et détecter des attaques qui ne sont pas vues par les
NIDS.
· Marcher dans un environnement dans lequel le trafic de
réseau est encrypté.
· HIDS n'est pas atteint par le réseau
commuté.
· Lors que HIDS marche sur la traînée de
l'audit de SE, ils peuvent détecter les Chevaux de Troie ou les autres
attaques concernant la brèche d'intégrité de logiciel.
Inconvénients :
· HIDS est difficile à gérer, et des
informations doivent être configurées et gérées pour
chaque host surveillé.
· Puisqu'au moins des sources de l'information pour HIDS se
résident sur l'host de la destination par les attaques, l'IDS peut
être attaqué et neutralisé comme une partie de l'attaque.
· HIDS n'est pas bon pour le balayage de réseau tel
que la surveillance qui s'adresse au réseau entier parce que les HIDS ne
voient que les paquets du réseau reçus par ses hosts.
· HIDS peuvent être neutralisés par certaines
attaques de DoS.
· Lorsque les HIDS emploient la traînée de
l'audit du SE comme des sources des informations, la somme de l'information est
immense, alors ils demandent le stockage supplémentaire local dans le
système.
III.2.2.
Détection d'Intrusion basée sur une application(ABIDS)
Les IDS basés sur les applications sont un sous-groupe des
IDS hôtes(HIDS).
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.
III.2.3. La
Détection d'Intrusion Réseau (NIDS)
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 sont placés aux endroits
stratégiques du réseau et génèrent des alertes une
fois qu'ils détectent une attaque. Ces alertes sont envoyées
à une console sécurisée, qui les analyse et les traite
éventuellement. Cette console est généralement
située sur un réseau isolé, qui relie uniquement les
capteurs et la console.
Figure 10 :
Système de détection d'intrusion réseau
III.2.3.1. Les
capteurs :
Les capteurs placés sur le réseau sont
placés en mode furtif (ou stealth mode), de façon à
être invisibles aux autres machines. Pour cela, leur carte réseau
est configurée en mode "promiscuous", c'est à dire le mode dans
lequel la carte réseau lit l'ensemble du trafic est confus, de plus
aucune adresse IP n'est configurée.
Un capteur possède en général deux cartes
réseaux, une, placée en mode furtif sur le réseau, l'autre
permettant de le connecter à la console de sécurité.
Du fait de leur invisibilité sur le réseau, il est
beaucoup plus difficile de les attaquer et de savoir qu'un IDS est
utilisé sur ce réseau.
III.2.3.2.
Placement des capteurs
Il est possible de placer les capteurs à différents
endroits, en fonction de ce que l'on souhaite observer. Les capteurs peuvent
être placés avant ou après le pare-feu, ou encore dans une
zone sensible que l'on veut protéger spécialement appelée
zone démilitarisée ou plus amplement DMZ (demilitarized zone).
Si les capteurs se trouvent après un pare-feu, il leur est
plus facile de dire si le pare-feu a été mal configuré
ou de savoir si une attaque est venue par ce pare-feu.
Les capteurs placés derrière un pare-feu ont pour
mission de détecter les intrusions qui n'ont pas été
arrêtées par ce dernier. Il s'agit d'une utilisation courante d'un
NIDS.
Il est également possible de placer un capteur à
l'extérieur du pare-feu (avant le firewall). L'intérêt de
cette position est que le capteur peut ainsi recevoir et analyser l'ensemble du
trafic d'Internet. Si vous placez le capteur ici, il n'est pas certain que
toutes les attaques soient filtrées et détectées.
Pourtant, cet emplacement est le préféré de nombreux
experts parce qu'il offre l'avantage d'écrire dans les logs et
d'analyser les attaques (vers le pare-feu...), ainsi l'administrateur voit ce
qu'il doit modifier dans la configuration du pare-feu.
Les capteurs placés à l'extérieur du
pare-feu servent à détecter toutes les attaques en direction du
réseau, leur tâche ici est donc plus de contrôler le
fonctionnement et la configuration du firewall que d'assurer une protection
contre toutes les intrusions détectées (certaines étant
traitées par le firewall).
Il est également possible de placer un capteur avant le
firewall et un autre après. En fait, cette variante réunit les
deux cas mentionnés ci-dessus. Mais elle est très dangereuse si
on configure mal les capteurs et/ou le pare-feu. En effet, on ne peut pas
simplement ajouter les avantages des deux cas précédents à
cette variante.
Les capteurs IDS sont parfois situés à
l'entrée de zones du réseau particulièrement sensibles
(parcs de serveurs, données confidentielles...), de façon
à surveiller tout trafic en direction de cette zone.
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.
Voici quelques exemples de NIDS : Dragon, ISSRealSecure,
NetRanger, NFR, Snort.
Même si nous distinguons HIDS et NIDS, la différence
devient de plus en plus réduite puisque les HIDS possèdent
maintenant les fonctionnalités de base des NIDS. Des IDS bien connus
comme ISS RealSecure se nomment aujourd'hui "IDS hôte et réseau".
Dans un futur proche la différence entre les deux systèmes
deviendra de plus en plus faible (ces systèmes évolueront
ensemble).
Voici un exemple de mise en place d'un IDS RealSecure avec des
IDS hôtes et réseaux connectés à une console de
management centrale (sur le schéma, les HIDS sont appelés
RealSecure Server Sensor et les NIDS RealSecure Network Sensor).
Figure 11: Exemple
d'architecture HIDS/NIDS
Avantages :
· Les NIDS peuvent surveiller un grand réseau.
· Le déploiement de NIDS a peu d'impact sur un
réseau existant. Les NIDS sont habituellement des dispositifs passifs
qui écoutent sur un fil de réseau sans interférer
l'opération normale d'un réseau. Ainsi, il est habituellement
facile de monter en rattrapage un réseau pour inclure IDS avec l'effort
minimal.
· NIDS peut être très sûr contre
l'attaque et peut être invisible pour beaucoup d'attaquants.
Inconvénients :
· Il est difficile à traiter tous les paquets
circulant sur un grand réseau. De plus il ne peut pas reconnaître
des attaques pendant le temps de haut trafic.
· Plusieurs des avantages des NIDS ne peuvent pas être
appliqués pour les commutateurs modernes. La plupart des commutateurs ne
fournissent pas des surveillances universelles des ports et limitent la gamme
de surveillance des NIDS .Même lorsque les commutateurs fournissent de
tels ports de surveillance, souvent le port simple ne peut pas refléter
tout le trafic traversant le commutateur.
· NIDS ne peut pas analyser des informations
chiffrées (cryptées). Ce problème a lieu dans les
organisations utilisant le VPN.
· La plupart de NIDS ne peuvent pas indiquer si une attaque
est réussie ou non. Ils reconnaissent seulement qu'une attaque est
initialisée. C'est-à-dire qu'après les NIDS
détectent une attaque, l'administrateur doit examiner manuellement
chaque host et vérifier s'il a été en effet
pénétré.
· Quelques NIDS provoquent des paquets en fragments. Ces
paquets mal formés font devenir les IDS instables.
III.3. Mode de fonctionnement d'un
IDS
Il faut distinguer deux aspects dans le fonctionnement d'un IDS :
le mode de détection utilisé et la réponse apportée
par l'IDS lors de la détection d'une intrusion.
Il existe deux modes de détection, la détection
d'anomalies et la reconnaissance de signatures. D'eux-mêmes, deux types
de réponses existent, la réponse passive et la réponse
active. Il faut noter que les différents IDS présents sur le
marché ne disposent pas toujours de l'ensemble des
fonctionnalités présentées ici.
Nous allons tout d'abord étudier les modes de
détection d'un IDS, avant de présenter les réponses
possibles à une attaque.
III.3.1. Modes de
détection
Nous notons deux modes de détection qui sont :
· La détection d'anomalies
· La reconnaissance de signature
Il faut noter que la reconnaissance de signature est le mode de
fonctionnement le plus implémenté par les IDS du marché.
Cependant, les nouveaux produits tendent à combiner les deux
méthodes pour affiner la détection d'intrusion.
III.3.1.1. La
détection d'anomalies :
Elle consiste à détecter des anomalies par rapport
à un profil "de trafic habituel". La mise en oeuvre comprend toujours
une phase d'apprentissage au cours de laquelle les IDS vont découvrir le
fonctionnement normal des éléments surveillés. Ils sont
ainsi en mesure de signaler les divergences par rapport au fonctionnement de
référence.
Les modèles comportementaux peuvent être
élaborés à partir d'analyses statistiques. Ils
présentent l'avantage de détecter des nouveaux types d'attaques.
Cependant, de fréquents ajustements sont nécessaires afin de
faire évoluer le modèle de référence de sorte qu'il
reflète l'activité normale des utilisateurs et réduire le
nombre de fausses alertes générées.
Dans le cas d'HIDS, ce type de détection peut être
basé sur des informations telles que le taux d'utilisation CPU,
l'activité sur le disque, les horaires de connexion ou d'utilisation de
certains fichiers (horaires de bureau...).
III.3.1.2. La
reconnaissance de signatures :
Cette approche consiste à rechercher dans
l'activité de l'élément surveillé les empreintes
(ou signatures) d'attaques connues. Ce type d'IDS est purement réactif ;
il ne peut détecter que les attaques dont il possède la
signature.
De ce fait, il nécessite des mises à jour
fréquentes. De plus, l'efficacité de ce système de
détection dépend fortement de la précision de sa base de
signature. C'est pourquoi ces systèmes sont contournés par les
pirates qui utilisent des techniques dites "d'évasion" qui consistent
à maquiller les attaques utilisées. Ces techniques tendent
à faire varier les signatures des attaques qui ainsi ne sont plus
reconnues par l'IDS.
Il est possible d'élaborer des signatures plus
génériques, qui permettent de détecter les variantes d'une
même attaque, mais cela demande une bonne connaissance des attaques et du
réseau, de façon à stopper les variantes d'une attaque et
à ne pas gêner le trafic normal du réseau.
Une signature permet de définir les
caractéristiques d'une attaque, au niveau des paquets (jusqu'à
TCP ou UDP) ou au niveau des protocoles (HTTP, FTP...).
· Au niveau paquet, l'IDS va analyser les différents
paramètres de tous les paquets transitant et les comparer avec les
signatures d'attaques connues.
· Au niveau protocole, l'IDS va vérifier au niveau du
protocole si les commandes envoyées sont correctes ou ne contiennent pas
d'attaque. Cette fonctionnalité a surtout été
développée pour HTTP actuellement.
Il faut savoir que les signatures sont mises à jour en
fonction des nouvelles attaques identifiées.
Néanmoins, plus il y a de signatures différentes
à tester, plus le temps de traitement sera long. L'utilisation de
signatures plus élaborées peut donc procurer un gain de temps
appréciable.
Cependant, une signature mal élaborée peut ignorer
des attaques réelles ou identifiées du trafic normal comme
étant une attaque. Il convient donc de manier l'élaboration de
signatures avec précaution, et en ayant de bonnes connaissances sur le
réseau surveillé et les attaques existantes.
Une fois une attaque détectée, un IDS a le choix
entre plusieurs types de réponses, que nous allons maintenant
détailler.
III.3.2.
Réponse active et passive
Il existe deux types de réponses, suivant les IDS
utilisés. La réponse passive est disponible pour tous les IDS
alors que la réponse active est elle plus ou moins
implémentée.
III.3.2.1.
Réponse passive :
La réponse passive d'un IDS consiste à enregistrer
les intrusions détectées dans un fichier de log qui sera
analysé par le responsable de sécurité.
Certains IDS permettent de logger l'ensemble d'une connexion
identifiée comme malveillante.
Ceci permet de remédier aux failles de
sécurité pour empêcher les attaques enregistrées de
se reproduire, mais elle n'empêche pas directement une attaque de se
produire.
III.3.2.2.
Réponse active :
La réponse active, au contraire a pour but de stopper une
attaque au moment de sa détection. Pour cela on dispose de deux
techniques : la reconfiguration du firewall et l'interruption d'une connexion
TCP.
La reconfiguration du firewall permet de bloquer le trafic
malveillant au niveau du firewall, en fermant le port utilisé ou en
interdisant l'adresse de l'attaquant. Cette fonctionnalité dépend
du modèle de firewall utilisé, tous les modèles ne
permettant pas la reconfiguration par un IDS. De plus, cette reconfiguration ne
peut se faire qu'en fonction des capacités du firewall.
L'IDS peut également interrompre une session
établie entre un attaquant et sa machine cible, de façon à
empêcher le transfert de données ou la modification du
système attaqué. Pour cela l'IDS envoie un paquet TCP reset aux
deux extrémités de la connexion (cible et attaquant). Un paquet
TCP reset a le flag RST de positionner, ce qui indique une déconnexion
de la part de l'autre extrémité de la connexion. Chaque
extrémité en étant destinataire, la cible et l'attaquant
pensent que l'autre extrémité s'est déconnectée et
l'attaque est interrompue.
Dans le cas d'une réponse active, il faut être
sûr que le trafic détecté comme malveillant l'est
réellement, sous peine de déconnecter des utilisateurs
normaux.
En général, les IDS ne réagissent pas
activement à toutes les alertes. Ils ne répondent aux alertes que
quand celles-ci sont positivement certifiées comme étant des
attaques. L'analyse des fichiers d'alertes générés est
donc une obligation pour analyser l'ensemble des attaques
détectées.
III.4. . Points forts et Points faibles
des IDS
Nous allons pour finir cette présentation des IDS,
résumer les points forts et les points faibles de ces
équipements.
III.4.1. Points
forts
III.4.1.1. Une
surveillance continue et détaillée :
Dans cette optique, nous nous intéressons aux flux
valides, mais aussi aux flux non valides qui transitent sur le réseau
dont nous avons la responsabilité.
Comment savoir si les règles d'un firewall sont valides ?
Comment savoir le nombre d'attaques subies au cours de la
dernière semaine ?
Comment différencier une surcharge normale du
réseau d'une attaque par DoS ?
Les IDS vont permettre de répondre à ces questions.
Ce sont des sondes en mode promiscuité. Ils peuvent donc analyser tout
le trafic (dans le même domaine de collision), et relever des attaques,
alors même qu'ils n'en sont pas la cible directe.
Bien sûr, nous évoquons ici le fonctionnement des
NIDS. Les HIDS vont au contraire établir une surveillance unique du
système sur lequel ils sont installés. De plus, toutes les
alertes sont stockées soit dans un fichier, soit dans une base de
données, ce qui permet de concevoir un historique, et d'établir
des liens entre différentes attaques.
Ainsi, le responsable sécurité n'a pas besoin de
surveiller le réseau en permanence pour être au courant de ce qui
se passe. Une attaque de nuit ne passera plus inaperçue. Tous les IDS
renvoient de nombreuses informations avec une alerte. Le type supposé
d'attaque, la source, la destination, ... Tout cela permet une bonne
compréhension d'un incident de sécurité, et en cas de
faux-positif, de le détecter rapidement.
Un autre point important dans la sécurité : nous
avons maintenant des outils de filtrage très intéressants qui
nous permettent de faire du contrôle par protocole
(ICMP, TCP, UDP), par adresse IP, jusqu'à du suivi de
connexion (couches 3 et 4).
Même si cela écarte la plupart des attaques, cela
est insuffisant pour se protéger des attaques passant par des flux
autorisés. C'est aussi assez marginal, car difficile à mettre en
place, l'ouverture de l'informatique au grand public et l'augmentation de ce
type de connaissances font qu'il faudra un jour savoir s'en protéger
efficacement.
III.4.1.2. La
modularité de l'architecture :
Il y a plusieurs solutions pour le positionnement de sondes
réseaux. Il peut être intéressant de positionner les sondes
pour étudier l'efficacité des protections mises en place.
Par exemple dans un réseau se cachant derrière un
firewall, nous mettrons une sonde côté extérieur du
firewall, et une autre côté intérieur du firewall. La
première sonde permet de détecter les tentatives d'attaques
dirigées contre le réseau surveillé.
La seconde sonde va remonter les attaques (préalablement
détectées par la première sonde) qui ont réussi
à passer le firewall. On peut ainsi suivre une attaque sur un
réseau, voir si elle arrive jusqu'à sa victime, en suivant quel
parcours a été emprunté.
Il est aussi intéressant de définir des
périmètres de surveillance d'une sonde. Ce sera en
général suivant un domaine de collision, ou sur des
entrées uniques vers plusieurs domaines de collision (par exemple
à l'entrée d'un commutateur).
Par cette méthode, nous réduisons le nombre de
sondes, car il n'y a pas de doublons dans la surveillance d'une partie du
réseau. Une alerte n'est remontée qu'une seule fois ; ce qui
allège l'administration des IDS. Et pour finir, le fait de placer les
sondes après les protections est plus logique, car le but premier des
IDS est d'étudier les intrusions malgré les protections.
III.4.1.3. La
complémentarité des NIDS et des HIDS :
Nous avons évoqué jusqu'ici principalement le cas
des NIDS. Les IDS se cantonnent à la surveillance des systèmes
sur lesquels ils sont hébergés. Mais ils sont extrêmement
utiles. Par exemple dans le suivi d'une attaque évoqué
précédemment, grâce aux sondes NIDS, nous pouvons suivre
son parcours. Mais quel est l'impact final sur la machine ?
Un NIDS ne peut pas répondre à cela, car il ne
gère pas les équipements terminaux. C'est ici que le HIDS se
révèle utile. De plus, la remontée d'alerte est locale et
vers un manager ainsi, la surveillance réseau et des équipements
terminaux est centralisée.
III.4.2. Points
faibles
III.4.2.1. Besoin
de connaissances en sécurité :
La mise en place d'une sonde de sécurité fait appel
à de bonnes connaissances en sécurité.
L'installation en elle-même des logiciels est à la
portée de n'importe quel informaticien. En revanche, l'exploitation des
remontées d'alertes nécessite des connaissances plus
pointues.
Les interfaces fournissent beaucoup d'informations, et permettent
des tris facilitant beaucoup de travail, mais l'intervention humaine est
toujours indispensable.
A partir des remontées d'alertes, quelle mesure prendre
?
Est-il utile de relever des alertes dont toutes les machines sont
protégées?
Comment distinguer un faux-positif d'un véritable incident
de sécurité ?
Toutes ces questions et bien d'autres doivent se poser au
responsable de sécurité en charge d'un IDS.
La configuration, et l'administration des IDS nécessitent
beaucoup de temps, et de connaissances. C'est un outil d'aide, qui n'est en
aucun cas complètement automatisé.
III.4.2.2.
Problème de positionnement des sondes :
La mise en place est importante. Il faut bien définir
là où placer les sondes. Il ne s'agit pas de mettre une sonde
partout où l'on veut surveiller. Il faut étudier les champs de
vision des sondes suivant leur placement, si on veut recouper ces champs de
vision (pour par exemple faire des doublons de surveillance ou faire un suivi
d'attaque), quel détail d'analyse (à l'entrée d'un
réseau, ou dans chaque domaine de collision). On découpe souvent
le réseau global en un LAN, une DMZ, puis Internet.
Mais il faut aussi envisager les domaines de collisions, les
sous-réseaux, ...
Les connaissances réseaux sont importantes. Il faut aussi
faire attention à comment sont remontées les alertes (passage par
un réseau sécurisé et isolé du réseau
surveillé).
III.4.2.3.
Vulnérabilités des sondes NIDS :
De par leur fonctionnement en mode promiscuité, les sondes
sont vulnérables. Elles captent tout le trafic, et même si un Ping
flood est réalisé sur une autre machine, les sondes NIDS le
captureront aussi et donc en subiront les conséquences, comme si
l'attaque leur était directement envoyée. Les DoS classiques
seront donc très nocifs pour les sondes NIDS.
Le point fort de certains IDS qui est d'archiver aussi le contenu
des trames ayant levées une alerte, peut aussi s'avérer un point
faible. Un hôte flood avec un paquet chargé de 64000 octets, ou
encore des trames de 1500 octets pour les SYN flood vont faire exploser la
taille des fichiers de logs des sondes en quelques minutes.
C'est une attaque qui porte le nom coke qui consiste à
saturer le disque dur.
La seule façon de parer cette attaque est de
prévoir d'importants espaces de stockages, et gérer le stockage
des fichiers de logs.
III.4.2.4.
Problèmes intrinsèques à la plateforme :
Beaucoup d'IDS (et plus particulièrement les IDS libres)
sont des logiciels reposant sur un système d'exploitation non
dédié aux IDS. Ainsi, la faiblesse d'un IDS est liée
à la faiblesse de la plate-forme.
Un même logiciel sera par exemple plus vulnérable
sur un PC Win98 que sur un PC Open BSD, de par la solidité de la pile IP
face aux attaques, ou tout simplement de par la stabilité du
système. La mise en place d'un IDS requiert donc des compétences
dans la sécurisation de la plate-forme.
Une saturation de la mémoire, de la carte réseau,
ou du processeur porte atteinte directement au bon fonctionnement de tout le
système et donc du logiciel IDS de la machine.
Le problème de ces dysfonctionnements est que si la sonde
ne peut plus remplir son rôle, le réseau n'en est pas coupé
pour autant. Le responsable sécurité ne peut donc pas voir que,
la sonde étant tombée, une partie du réseau n'est plus
surveillée. Une redondance des surveillances sur certaines zones devrait
momentanément résoudre le problème.
Comme nous venons de le voir, les IDS sont des outils
indispensables à la bonne sécurité d'un réseau,
néanmoins leur utilisation reste complexe et contraignante. Ces outils
sont malgré tout fiables et plutôt sûrs.
IV. SNORT
SNORT est une open source du système de détection
des intrusions de réseau (NIDS). Il est capable d'analyser le trafic sur
le réseau en temps réel et des paquets circulant sur le
réseau IP. Il peut exécuter l'analyse de protocole, en cherchant
le contenu et peut être employé pour détecter une
variété d'attaques, des tentatives comme des débordements
d'amortisseur, des balayages de port de dérobée, des attaques de
CGI, des sondes de SMB, des tentatives d'empreinte de OS, et beaucoup plus.
SNORT est un IDS gratuit. A l'origine, ce fut un sniffer qui par
la suite connut une telle évolution qu'il fut vite adapté et
utilisé dans le monde de détection d'intrusion en s'appuyant sur
une base de signatures régulièrement enrichie par « le
monde du libre ».
SNORT emploie un langage flexible de règles pour
décrire le trafic qu'il devrait se rassembler ou passer, aussi bien
qu'un moteur de détection qui utilise une architecture plug-in
modulaire. SNORT a des possibilités en temps réel d'alerter et
d'incorporer des mécanismes pour le système
d'événement, un dossier indiqué par utilisateur, un socket
d'Unix, ou des messages de WinPopup aux clients de Windows en utilisant la
smbclient.
SNORT a trois utilisations primaires. Il peut être
employé en tant qu'un renifleur de paquet (Sniffer) comme tcpdump(1), un
enregistreur de paquet (logs) (utile pour le trafic de réseau
corrigeant, etc....), ou comme plein système soufflé de
détection d'intrusion de réseau.
Figure 12 : Les
plateformes pour installer SNORT
IV.1. L'architecture de SNORT
L'architecture de SNORT est organisée en modules, elle est
composée de quatre grands modules : Le décodeur de paquets, les
préprocesseurs, le moteur de détection et le système
d'alerte et d'enregistrement de log.
Figure 13: Architecture de
SNORT
IV.2. Le décodeur de paquets.
Un système de détection d'intrusion active un ou
plusieurs interfaces réseau de la machine en mode espion (promiscuous
mode), ceci va lui permettre de lire et d'analyser tous les paquets qui passent
par le lien de communication. SNORT utilise la bibliothèque libpcap pour
faire la capture des trames.
Un décodeur de paquets est composé de plusieurs
sous décodeurs qui sont organisés par protocole (Ethernet, IP,
TCP..), ces décodeurs transforme les éléments des
protocoles en une structure de données interne. (Voir figure 14).
Figure 14 : Le
décodeur de paquets.
IV.3. Les pré-processeurs.
Les pré-processeurs s'occupent de la détection
d'intrusion en cherchant les anomalies. Un pré-processeur envoie une
alerte si les paquets ne respectent pas les normes des protocoles
utilisées. Un pré-processeur est différent d'une
règle de détection, il est un programme qui vise à aller
plus en détail dans l'analyse de trafic.
Les préprocesseurs permettent aussi 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. Les pré-processeurs sont chargés et
configurés avec le mot-clé préprocessor.
IV.4. Moteur de détection.
C'est la partie la plus importante dans un IDS. Le moteur de
détection utilise les règles pour faire la détection des
activités d'intrusion. Si un paquet correspond à une
règle, alors une alerte est générée. Les
règles sont groupées en plusieurs catégories sous forme de
fichiers. SNORT vient avec un ensemble de règles
prédéfini.
Ces règles ne sont pas activées automatiquement, il
faut les activer dans le fichier de configuration snort.conf. Chaque fichier
contient des règles décrit en type de trafic à
signaler.
(Voir figure 15).
Figure 15 : Une
partie du fichier snort.conf.
IV.5. Système d'alerte et d'enregistrement des
logs.
Le système d'alerte et d'enregistrement des logs s'occupe
de la génération des logs et des alertes. Les alertes sont
stockées par défaut dans le répertoire
C:\Snort\log.
Dés que le système devient opérationnel, on
pourra consulter les alertes générées directement dans les
fichiers textes ou bien utiliser une console de gestion. ACID (Analysis Console
for Intrusion Detection), est une application qui fournie une console de
gestion et qui permet la visualisation des alertes en mode graphique. Les
alertes dans ce cas sont stockées dans une base de données
MySQL.
Voici une maquette qui nous permettra de tester Snort afin de
mettre en avant ses fonctions.
Figure 16 :Maquette
de test des fonctions de Snort
V. CONCLUSION
La sécurité reste encore un sujet à
discussion vu qu'aucune solution fiable à part entière n'a encore
été trouvée.
Nous venons de montrer que la détection d'intrusion sur les réseaux ne vient pas
concurrencer les autres systèmes de sécurité mais au
contraire les compléter.
On a également présenté les principes mises
en oeuvre par les IDS pour atteindre leur but.
Cependant le seul bémol est qu'un système ne peut
jamais être sécurisé à 100 %, alors le but
recherché serait de pouvoir détecter le maximum d'intrusions et
de toutes les boquer dans le futur ; C'est dans ce cas que Snort est
déclaré efficace.
Capable de détecter et de bloquer plusieurs intrusions
à la fois de par ses règles régulièrement mises
à jour par « le monde du gratuit », Snort est un
vrai portail anti-intrusion.
Cependant, comme tout autre système de
sécurité, cette technologie (les IDS) n'est pas encore
arrivée à maturité et les outils existants tels que Snort
ne sont pas toujours à la hauteur des besoins
INDEX DES FIGURES
Figure 1 : PROTOCOLES
ÉCHANGEANT DES MOTS DE PASSE EN CLAIR
3
Figure 2 : ECHANGE DES NUMÉROS DE
SÉQUENCE INITIAUX LORS DE L'ÉTABLISSEMENT D'UNE CONNEXION TCP
21
Figure 3 : TENTATIVE D'ETABLISSEMENT D'UNE
CONNEXION PAR UN PIRATE. POUR QUE L'ATTAQUE REUSSISSE, LE PIRATE DOIT DEVINER
LE NUMERO DE SEQUENCE INITIAL PROPOSE PAR B.
22
Figure 4 : Schéma d'une architecture
réseau utilisant un Firewall
26
Figure 5 : Etablissement de la connexion entre
un client et serveur FTP en passant par un Firewall
29
Figure 6 : Choix des Firewalls dans une
architecture réseau
32
Figure
7 Architecture d'une DMZ
37
Figure 8 : Fonctionnement de NAT
39
Figure 9 : Fonctionnement d'un IDS
43
Figure 10 : Système de
détection d'intrusion réseau
47
Figure 11 : Exemple d'architecture HIDS/NIDS
50
Figure 12 : Les plateformes pour installer
SNORT
61
Figure 13: Architecture de SNORT
62
Figure 14 : : Le décodeur de
paquets.
63
Figure 15 : : Une partie du fichier
snort.conf.
64
_Toc296727848
INDEX DES TABLEAUX
Tableau 1 : Avantages et inconvénients
d'un Firewall Bridge
3
Tableau 2 ; Avantages et inconvénients
d'un Firewall matériel
34
Tableau 3 : Avantages et inconvénients
d'un Firewall personnel.
35
Tableau 4 : Avantages et inconvénients
d'un Firewall plus sérieux.
35
VI. BIBLIOGRAPHIE
v
Les Firewalls par Alban Jacquemin et Adrien Mercier
v
Secuser (fr) : infos sur les virus et autres...
v
La sécurité des réseaux
|