Академический Документы
Профессиональный Документы
Культура Документы
Rechercher sur le
site:
Recherche
Memoire Online >
Informatique et Télécommunications >
Sécurité informatique
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.
SOMMAIRE
DEDICACES 1
REMERCIEMENTS 2
INTRODUCTION 6
I.1. Objectif 7
I.3. Les Menaces 12
I.3.1. E-mails forgés 12
I.3.2. Spamming 12
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.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.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.3.1. Les capteurs : 46
II.3.1. Modes de détection 51
II.3.2.1. Réponse passive : 53
II.3.2.2. Réponse active : 53
II.4.1. Points forts 54
II.4.2. Points faibles 56
III. SNORT 59
III.1. L'architecture de SNORT 60
III.3. Les pré-processeurs. 62
III.4. Moteur de détection. 63
CONCLUSION 66
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.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.
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.
Nous pouvons considérer que la sécurité informatique est divisée en deux grands domaines :
La sécurité organisationnelle
La sécurité technique
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.
La sécurité personnelle
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
Une politique de sécurité informatique mal gérée peut conduire à trois types d'impacts
négatifs :
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'ingénierie sociale,
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.
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.
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.
Afin de mieux comprendre les menaces auxquelles sont exposés les systèmes informatiques,
nous allons analyser en détail quelques attaques courantes.
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:
ü 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.
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.
II.4.2.2. Ver :
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
· 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 plus évolués permettent d'exécuter des commandes arbitraires en ligne, d'espionner le
réseau, le clavier et l'écran.
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
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
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,
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.1. La Cryptographie
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 :
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 :
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 ».
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 :
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.
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 :
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.
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.
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.
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é.
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.
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.).
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.
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.
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.
Inconvénients
Avantages
Impossible de l'éviter (les paquets Possibilité de le contourner (il suffit de passer outre ses
passeront par ses interfaces) règles)
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.
Inconvénients
Avantages
Intégré au matériel réseau Dépendant du constructeur pour les mises à jour
Présents à la fois dans lesserveurs et routeurs « faits maison », on peut les classer en
plusieurs catégories :
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.
Inconvénients
Avantages
Sécurité en bout de chaîne (Poste Client) Facilement contournable
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.
Inconvénients
Avantages
Personnalisables Nécessite une administration système supplémentaire
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)
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 :
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.1. Principe
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
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 :
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.
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.
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.
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.
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.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.
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).
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.
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.
· 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.
· 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.
Les IDS basés sur les applications sont un sous-groupe des IDS hôtes(HIDS).
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.
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
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.
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.
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.
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 :
· 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.
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.
Nous allons tout d'abord étudier les modes de détection d'un IDS, avant de présenter les
réponses possibles à une attaque.
· La détection d'anomalies
· La reconnaissance de signature
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...).
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.
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.
Il faut savoir que les signatures sont mises à jour en fonction des nouvelles attaques
identifiées.
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.
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.
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é.
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.
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.
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.
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
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 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.
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.
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.
La mise en place d'une sonde de sécurité fait appel à de bonnes connaissances en sécurité.
Les interfaces fournissent beaucoup d'informations, et permettent des tris facilitant beaucoup
de travail, mais l'intervention humaine est toujours indispensable.
Est-il utile de relever des alertes dont toutes les machines sont protégées?
Toutes ces questions et bien d'autres doivent se poser au responsable de sécurité en charge
d'un IDS.
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é).
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.
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.
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
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.
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).
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.
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.
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
Figure 5 : Etablissement de la connexion entre un client et serveur FTP en passant par un
Firewall 29
VI. BIBLIOGRAPHIE
v Les Firewalls par Alban Jacquemin et Adrien Mercier
Recherche
© Memoire Online 2000-2019
Pour toute question contactez le webmaster