Nothing Special   »   [go: up one dir, main page]

Securite Reseau Informatique

Télécharger au format pdf ou txt
Télécharger au format pdf ou txt
Vous êtes sur la page 1sur 68

INTRODUCTION

Aucun système d’information n’est sûr à 100% ! Parmi les préceptes connus sur la sécurité
informatique se trouve celui énonçant que, pour une entreprise connectée à l’Internet, le problème
aujourd’hui n’est plus de savoir si elle va se faire attaquer, mais quandcela va arriver ; une solution
possible est alors d’essayer de limiter les risques dans le temps par la mise en œuvre de divers moyens
destinés à augmenter le niveau de sécurité.
Afin de réduire voir éradiquer ces menaces, les entreprises se tournent de plus en plus vers des
solutions de pare-feu avec des fonctionnalités de filtrage et de prévention d’intrusion.
Malheureusement dans ce domaine, les solutions propriétaires sont très couteuses. Le cabinet NTC
veut proposer aux entreprises ayant un budget modeste, des solutions de sécurité à moindre coût. C’est
dans ce cadre que le cabinet NTC a soumis à nôtre étude le thème suivant: « sécurisation d’un réseau
informatique à l’aide des outils open source cas du filtrage et de la prévention d’intrusion avec les
outils Netfilter et SURICATA».
Notre travail consistera à évaluer ces outils de sécurité dans un environnement test pour apprécier leur
fonctionnement et voir comment les adapter dans un environnement de production.
Pour mener à bien ce travail, nous allons dans un premier temps, présenter le cadre de référence
ensuite nous ferons une étude technique pour comprendre le fonctionnement de ces outils de sécurité
sélectionnés puis nous les implémenterons dans un environnement test en vue de les évaluer et dire s’il
est possible de les utiliser dans les milieux de production.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
1
PREMIERE PARTIE

ETUDE PREALABLE

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
2
CHAPITRE 1 : CADRE DE REFERENCE
1.1. Présentation du cabinet Networking Technologies Center (NTC)
NTC est un cabinet de Formation et de Certification sur les équipements matériels et logiciels de
réseaux et de sécurité informatiques des principaux constructeurs/éditeurs : CISCO, Juniper, Fortinet,
Microsoft, Sun Systems (Oracle) et du Système d’exploitation Linux.

1.1.1 Mission
NTC a pour mission:
La formation en technologie réseaux et sécurité réseau
L’organisation des examens de certification en informatique
Le développement d’application de gestion et d’application réseaux informatiques

1.1.2 Activités complémentaires


Afin d’assurer la pérennité de son activité principale qui est la formation et la certification autour des
produits Cisco, Juniper, Fortinet, Microsoft et ORACLE, le cabinet NTC met à la disposition des
entreprises et du public des formations complémentaires ci-dessous énumérées :
- Formation en Anglais Technique et Traduction de Document
 Formation pour les sciences et la technologie : Electronique, Informatique, Télecoms.
 Traduction de documents techniques et de documents administratifs (diplômes, ...)
- Formation et mise en œuvre de solutions logicielles de Téléphonie IP (Astérisk)
 Serveur IPBX, serveur vocal interactif
 Utilisation de carte de type Digium TDM Série 400 (FXS/FXO), T1, T2, etc.
- Formation et Développement de logiciel
 Environnement Java J2SE et J2EE
 Environnement Dot Net et Visual Studio (C++, C#, Visual Basic, etc.)
 Environnement Windev
 Environnement Oracle
 Environnement SQL Server
- Formation et Développement Web
 Logiciels pour développement Web (Collection adobe : Photoshop, Flash, Illustrator,
Fireworks, Dreamweaver, etc.)
 Langage de développement Web (PHP, Java Script, etc.)
 Logiciels CMS (Joomla, WordPress, Drupal, artisteer, etc.)
- Formation dans le domaine de la bureautique informatique et des logiciels grand public
 Logiciel client de messagerie ex : Outlook)
 MS office (Word, Excel, PowerPoint, Visio, etc.)
- Vente d’équipements et de logiciels
 Logiciels : serveurs d’anti-virus,
 Equipements : Routeurs, firewall, ordinateurs, etc.
Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux
ALLOU Paul-Claver
3
1.2. Organigramme de l’entreprise

Direction Générale

Secrétariat et
Comptabilité

Marketing et Relations Patrimoine et


Développement Formation et Certification
Extérieures Déploiement de Solution

 La Direction Générale est chargé de :


- Proposer et suivre la vision stratégique, les grandes orientations de l’évolution de
l’entreprise
- Planifier et valider les dépenses conformément au document de référence avant leur
exécution
 Le Département Marketing et des Relations Extérieures a pour mission de :
- Mettre en place et faire appliquer la politique de marketing pour la vente des produits et
services
- Faire connaître et valoriser les produits et services
- Rechercher de nouveaux marchés
- Proposer les plaquettes, prospectus et autres supports de publicité
- Gérer les conventions de formation et de partenariat avec des structures externes.
 Le Département Développement a pour mission de :
- Développer les applications de gestion
- Développer les applications réseaux
- Développer et héberger les applications web, y compris les sites web.

 Le Département formation et Certification a pour mission de :


- Proposer les formations et leurs contenus
- Faire exécuter les formations
- Prospecter le marché pour proposer des formations rentables.
 Le Département Patrimoine et Déploiement de solution a pour mission de :
- Veiller sur la sécurité physique des équipements techniques
- Assurer la maintenance des équipements
- Gérer le stock du matériel technique et logiciel
- Veiller à la propriété et au fonctionnement des salles techniques
- Assurer la logistique de toutes les activités (développement, formation, etc.)
- Assurer le déploiement de toute solution

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
4
CHAPITRE 2 : PRESENTATION DU PROJET

2.1. Contexte

La sécurité informatique est aujourd’hui l’une des équations difficiles à résoudre en informatique non
pas par ce qu’elle soit sans solution mais les solutions existantes sont le plus souvent des outils
propriétaire et sont très couteuses.
C’est pourquoi nous allons tenter à notre humble niveau d’apporter notre contribution à la résolution
de ce problème avec des outils open source afin que toutes les entreprises puissent sécuriser leurs
réseaux à moindre coût.

2.2. Problématique

Les systèmes d'information sont aujourd'hui de plus en plus ouverts sur Internet. Cette ouverture, a
priori bénéfique, pose néanmoins un problème majeur : il en découle un nombre croissant d'attaques.
Pour cela plusieurs outils physiques et logiciels dites propriétaire ont été développées mais ils ne
sont pas accessibles à tous les entreprises à cause de leurs coûts trop élevés.

Les logiciels open sources existent pour pallier cette “injustice “ et notre travail consistera à évaluer
ces outils de sécurité pour en déduire leur niveau de performance afin de proposer nos résultats aux
entreprises économiquement limitées.

Pour mener à bien notre étude nous utiliserons NETFILTER pour le filtrage et SURICATA pour la
détection et la prévention d’intrusion.

Nous déploierons ces outils dans un environnement expérimental pour évaluer leurs performances et
leurs limites.

2.3. Objectif général


Cette étude a pour but l’évaluation des outils de sécurité open source sous linux afin de montrer leur
efficacité à assurer une protection optimale d’un réseau informatique.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
5
2.4. Objectif spécifique
Le thème soumis à notre étude intitulé sécurisation d’un réseau informatique à l’aide des outils open
source : cas du filtrage et la prévention d’intrusion vise à étudier des outils open source
complémentaire que sont suricata pour la prévention d’intrusion et Netfilter pour le filtrage en vue de
savoir s’ils seront bien adapter dans un milieu de production.
Pour cela nous allons étudier Netfilter et suricata pour comprendre leur fonctionnement et ensuite les
évaluer dans un environnement test afin de vérifier leur efficacité face aux attaques que nous
simulerons.

2.5. Cahier de charge


L’étude mise à notre disposition consistera à :

- Etudier théoriquement ces outils open source que sont Netfilter et suricata afin de mieux
connaitre leurs fonctionnements en tant qu’outil de sécurité réseau.
- L’installation de ces outils open source de filtrage et de prévention d’intrusion
- Simuler des attaques afin de montrer leurs efficacités et dire s’il est possible de les utilisé dans
un environnement de production.
- Pour finir dire avec certitude si cès outils peuvent être déployés dans un environnement de
production.

Notons cependant que notre environnement de travail sera virtualisé afin que les différentes
manœuvres que nous aurons à effectuer n’endommagent pas les ressources informatiques du cabinet
NTC.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
6
DEUXIEME PARTIE

ETUDE TECHNIQUE

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
7
CHAPITRE 3: OUTIL OPEN SOURCE ET
SECURITE INFORMATIQUE

3.1 open source

L’expression est apparue en 1998 quand Netscape Communicator est devenu un logiciel libre.
L’expression Open Source (source ouverte) était utilisée dans les slogans pour associer libre et
diffusion du code source et faire comprendre et admettre les logiciels libres auprès des entreprises. Le
but était de faire abstraction des apports fondamentaux du libre pour se concentrer uniquement sur les
avantages techniques et économiques de ce nouveau modèle. Avec le temps, l’expression a été reprise
dans tous les sens par les médias et les entreprises, et sa définition a été largement entachée. On a parlé
de « Open Source limité » en proposant l’accès aux sources mais sans droit de modification ou de
redistribution. Or, le logiciel libre ne souffre d’aucun aménagement. Il est libre ou n’est pas.

3.1.1 Définition

La désignation open source (en français : « source ouverte » ou « code source libre ») s'applique aux
logiciels dont la licence respecte des critères précisément établis par l'Open Source Initiative, c'est-à-
dire la possibilité de libre redistribution, d'accès au code source et de travaux dérivés.

Les avantages majeurs de l'Open Source sont :

- La rapidité d'implémentation
- La réduction de vos coûts
- Son architecture technique
- L'accès au code source permettant la personnalisation totale et facilitant le support.
- L'indépendance par rapport aux fournisseurs

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
8
3.1.2 Open source et sécurité informatique

La sécurité relative des logiciels open source résident dans le fait du libre accès au code source ce qui
permet l'examen du logiciel par des experts indépendants et cela va favoriser la découverte de failles
de sécurité qui seront aussitôt corriger.

Il y a aussi les différentes communautés crées autour de ces logiciels de sécurité qui fournissent
gratuitement des règles au jour le jour pour la sécurisation des réseaux informatiques.

Les projets Open Source s'adaptent particulièrement bien aux cas uniques, à la personnalisation et aux
besoins spécifiques de certains métiers.

3.2 La sécurité informatique


3.2.1 Définition

La sécurité est l’ensemble des moyens mis en œuvre pour la protection des systèmes informatiques
contre des menaces accidentelles ou intentionnelles.

3.2.2 Politique de sécurité


Une politique de sécurité est un ensemble de règlements écrit ou oraux destinés à se mettre d’accord
pour fixer les actions autorisées et interdites au sein d’une société.

3.2.3 objectifs de la sécurité informatique


L’enjeu principal des réseaux informatique, et en particulier des réseaux connectés à internet, du point
de vue de la sécurité est de se préserver des attaques externes et internes. Ces attaques peuvent nuire au
maintien de la confidentialité et de la disponibilité du réseau et des données qui y cheminent.
Les objectifs d’une politique de sécurité sont de garantir la sécurité des informations et du réseau de
l’entreprise.
Ces impératifs peuvent être définis à plusieurs niveaux qui sont :
- La disponibilité : les données doivent rester accessibles aux utilisateurs. C’est la capacité à
délivrer un service permanent à l’entreprise.
- La confidentialité : les données ne doivent pas être visibles que des personnes autorisées pour.
C’est le fait de ne pas divulguer des informations sensibles propres à l’entreprise.
- L’intégrité : il faut pouvoir garantir que les données n’ont pas été modifiées par une personne
non autorisée. Le but étant de ne pas altérer les informations sensibles de l’entreprise.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
9
- La non répudiation : on doit pouvoir certifier avec certitude quand un fichier a subi des
modification par la personne qui l’a modifié.
Ces règles déterminent les enjeux de la sécurité informatique.

3.2.4 Mise en place d’une politique de sécurité


La mise en œuvre d’une politique de sécurité globale est assez difficile, essentiellement par la diversité
des aspects à considérer. Une politique de sécurité peut se définir par un certain nombre de
caractéristiques : les niveaux où elle intervient, les objectifs de cette politique et enfin les outils utilisés
pour assurer cette sécurité.
Chaque aspect différent doit être pris en compte, de façon à atteindre les objectifs de sécurité désirés,
en utilisant de façon coordonnée les différents outils à disposition.
Nous allons tout d’abord parler des différents aspects d’une politique de sécurité, avant de définir les
objectifs visés, puis de voir les outils disponibles pour appliquer cette politique.

3.2.5 Différents aspects de la sécurité


Une politique de sécurité s’élabore à plusieurs niveaux. On va tout d’abord sécuriser l’accès aux
données de façon logicielle (authentification, contrôle d’intégrité).
On va également sécuriser l’accès physique aux données : serveurs placés dans dessalles blindées (qui
empêchent les ondes électromagnétiques d’être captées) avec badge d’accès.
De même, si les utilisateurs laissent leur mot de passe écrit à côté de leur PC, sonutilité est limitée.
Enfin, il est essentiel pour un responsable de sécurité de s’informer continuellement,des nouvelles
attaques existantes, des outils disponibles de façon à pouvoirmaintenir à jour son système de sécurité et
à combler les brèches de sécurité quipourraient exister.

Etape à suivre pour une politique de sécurité

- Identifier les points faibles et sensibles du réseau (serveur, fichier confidentiel…)


- Evaluer en détail les risques associés
- Choix des contre-mesures (matériels ou logiciels de défense, sous-traité avec un partenaire
extérieure de control de sécurité)
- Evaluation des coûts de contre-mesures.
- Décision finale.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
10
CHAPITRE 4:ETUDE DE NETFILTER
Netfilter est la solution firewall du noyau Linux. C’est en première approche un
mécanisme de filtrage des paquets réseau d’où son nom : Netfilter mais pas uniquement
dédié au filtrage. Il est également possible de réaliser d’autres opérations au niveau des
paquets réseaux tels que la translation d’adresses, la suivie de connexion et la qualité de
service.

4.1. Les fonctionnalités essentielles de Netfilter


a. Le filtrage

Le filtrage réseaux consiste à faire un examen des paquets qui passent à travers l’outil de filtrage
réseau selon des critères définis qui peuvent être soit une adresse ip, une adresse MAC, le type de
protocole transporté, etc…
Avec le filtrage des paquets, l’administrateur peut ainsi mettre
Le filtrage réseau est très important car il effectue un tri sélectif des paquets transitant sur le réseau, ce
qui est bénéfique au réseau car les paquets indésirables pouvant engendrés des dommages sont
maintenu hors de ses frontières.

b. Translation d’adresse

Elle accepte les paquets IP entrants, change l'adresse de la source (modifit) par celle de la machine
locale et réinjecte les paquets dans le flux sortant des paquets IP.
Elle peut être utilisée pour assurer un partage d’accès à internet à partir d’un réseau privé et permet
un premier niveau de sécurité car elle masque en quelque sorte le réseau interne vis-à-vis de
l’extérieur.
C’est ce principe que Netfilter utilise pour permettre la communication entre un réseau dont il assure la
sécurité et le monde extérieur.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
11
c. La qualité de service

La qualité de service est un concept de gestion qui a pour but d’optimiser les ressources d'un réseau
informatique et de garantir de bonnes performances aux applications critiques.
Cette technique fournit à Netfilter la possibilité d'avoir un contrôle sur les débits des flux de données
entrants et sortants de la machine, afin de rendre certains flux plus prioritaires que d'autres c'est-à-dire
que certains flux vont être volontairement privilégiés.
Avec cette technique Netfilter assure un meilleur confort d'utilisation aux différents processus réseau.

Ainsi les débits et les temps de réponse différenciés par applications (ou activités) suivant les
protocoles mis en œuvre optimisent le rendement du réseau.
d. Suivi de connexions

La fonctionnalité de suivi des connexions se réfère à la capacité de maintenir les informations d’une
connexion, comme l’adresse IP source et destination, les numéros de ports, les types de protocole,
l’état et la durée de la connexion.
Les pare-feux qui sont capables de réaliser cela sont des pare-feu à état (stateful).
Avec cette fonctionnalité Netfilter a une vue générale sur toutes les connexions qui sont établies et sait
qu’elle connexion a été initiée de façon normale ou pas.
Ceci permet à Netfilter d’effectue un filtrage réseau pointueux et efficace. La sécurité réseau est de fait
encore plus renforcée.

4.1.1 Les concepts de netfilter

a. Les règles

Une règle est constituée d'un motif permettant de reconnaître des paquets selon certains critères et
d’une cible indiquant l'action à effectuer sur les paquets reconnus.

Les critères

Les critères possibles sont nombreux. En voici quelques-uns :

- --protocol|-p [!] <protocole>

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
12
Le protocole est <protocole>. Les protocoles possibles sont tcp, udp, icmp, all ou une valeur
numérique. Les valeurs de /etc/protocols sont aussi utilisables. Si un point d'exclamation se trouve
avant le protocole, le critère correspondra au paquet seulement s'il n'est pas du protocole spécifié.

- --source|-s [!] <adresse> [/<masque>]

L'adresse source est <adresse>. Si un masque est précisé, seules les parties actives du masque seront
comparées. Par exemple lorsqu'on écrit -s 192.168.5.0/255.255.255.0, toutes les adresses entre
192.168.5.0 et 192.168.5.255 correspondront. On peut aussi écrire le masque sous la forme d'un
nombre de bits (/8 correspond à 255.0.0.0, /24 à 255.255.255.0, etc.) Le masque par défaut est /32
(/255.255.255.255), soit l'intégralité de l'adresse.

- --destination|-d [!] <adresse>[/<masque>]

Comme --source mais pour l'adresse destination.

- --dport [!] <port>

Le port destination est <port>. Il est obligatoire de préciser le protocole (-p tcp ou -p udp), car dans les
autres protocoles il n'y a pas de notion de port.

- --sport [!] <port>

Comme --dport mais pour le port source.

- -i <interface>

L'interface réseau d'où provient le paquet. N'est utilisable que dans la chaîne INPUT.

- -o <interface>

L'interface réseau de laquelle va partir le paquet. N'est utilisable que dans les chaînes OUTPUT et
FORWARD.

- --state

Etat du paquet. Une liste de plusieurs valeurs peut être indiquée en les séparant par des virgules. L'état
de ce paquet est comparé alors à ces valeurs. NEW correspond à un paquet initiant une nouvelle

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
13
connexion. ESTABLISHED est un paquet participant à une conversation déjà établie. RELATED est
pour un paquet qui ouvre une nouvelle connexion, mais ceci en rapport avec une précédente déjà
établie. INVALID indique un paquet qui n'est rattaché à aucune connexion.

Une fois spécifiés les critères auxquels doivent répondre les paquets, il faut indiquer vers quelle cible
l'envoyer s'il y répond. Cela se fait avec l'option --jump ou en abrégé -j suivie par le nom de la cible.

Les cibles.

Il s'agit du traitement que l'on décide d'appliquer au paquet. C'est la cible qui se chargera de faire les
opérations nécessaires. En plus de celles prédéfinies, il est possible d'indiquer comme cible une chaîne
utilisateur. Cela permet d'imbriquer différents tests et traitements.

Chaque chaîne peut être vue comme un ensemble de tests, chacun ayant pour résultat l'envoi du paquet
vers la cible spécifiée si la condition est vérifiée. Si ce n'est pas le cas, on passe à la suivante. En
arrivant à la fin d'une des chaînes du tableau précédent, une cible par défaut est utilisée. A la fin d'une
chaîne utilisateur, si aucune décision n'a été prise, on revient à la chaîne appelante.

Les cibles principales sont les suivantes : ACCEPT, DROP, REJECT, RETURN

- -j ACCEPT

Autorise le paquet à passer et interrompt son parcours de la chaîne.

- -j DROP

Jette le paquet sans prévenir l'émetteur. Le parcours de la chaîne est interrompu.

- -j REJECT

Comme DROP mais prévient l'émetteur que le paquet est rejeté. La réponse envoyée à l'émetteur est
également un paquet qui devra satisfaire les règles de sortie pour pouvoir passer.

- -j LOG [--log-level <level>] [--log-prefix <prefix>]

Enregistre le paquet dans les logs systèmes. Au <level> par défaut, le paquet est affiché sur la console
principale du système.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
14
Cette cible est utile pour voir certains paquets qui passent (pour débugger ou pour alerter).

- -j RETURN

Utile dans les chaînes utilisateurs. Cette cible permet de revenir à la chaîne appelante. Si RETURN est
utilisé dans une des chaînes de base précédente, cela est équivalent à l'utilisation de sa cible par défaut.

b. Les chaines

Les chaînes sont des ensembles de règles que nous allons écrire dans chaque table. Ces chaînes vont
permettre d'identifier des paquets qui correspondent à certains critères. On distingue deux types de
chaine, les chaînes prédéfinies et les chaînes utilisateurs.

Lorsqu'un paquet arrive dans une chaîne :

- Netfilter regarde la première règle de la chaîne,


- puis regarde si les critères de la règle correspondent au paquet.
- Si le paquet correspond, la cible est exécutée (jeter le paquet, le laisser passer, etc.).
- Sinon, Netfilter prend la règle suivante et la compare de nouveau au paquet. Et ainsi de suite
jusqu'à la dernière règle.
- Si aucune règle n'a interrompu le parcours de la chaîne, la politique par défaut est appliquée.

Les chaînes sont de deux types :

Les chaînes prédéfinies (les chaînes par défaut de la table)


Ceux sont :
- FORWARD : elle filtre les paquets qui passent d'une interface réseau à l'autre.
- INPUT : contrôle les paquets à destination des applications du pare-feu.
- OUTPUT : elle analyse les paquets qui sortent des applications du pare-feu.
- PREROUTING : elle permet de traiter les paquets avant leur routage et est aussi utilisé pour la
traduction d’adresse en destination (DNAT).
- La chaine POSTROUTING : réalise la modification d’un paquet juste avant l’envoi du paquet
quand cela est nécessaire.

Les chaînes utilisateur sont créés pour les besoins spécifiques de l’administrateur.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
15
c. Les tables

Une table est un ensemble de chaînes.


Tous les paquets inspectés par Netfilter passent à travers des tables de traitement prédéfinies (queues).
Chacune de ces files d’attente est dédiée à un type particulier d’activité et est contrôlé par une chaîne
associée, qui a pour rôle de transformer ou de filtrer le paquet.
Il y a trois tables au total. Qui sont :
- La table mangle : Elle sert pour modifier les en-têtes des paquets. On la rencontrera parfois
pour marquer des paquets afin que d'autres applications puissent les reconnaître.
- La table est filter : elle permet de filtrer les paquets, soit se sera pour les accepter ou non.
- La table est nat : Avec cette table, on peut réaliser des translations d'adresse (ou de ports).
Ceci sera notamment utile pour partager une connexion.
Le tableau suivant liste les différentes tables de Netfilter

4.1.2. Iptables

Iptables est en quelques sortes l’interface utilisateur de netfilter et c’est elle qui permet la configuration
de ce firewall.

La première option à connaître est -t qui permet de spécifier le nom de la table sur laquelle porteront
les autres paramètres. Si cette option n'est pas spécifiée, ce sera par défaut la table filter.

On peut aussi demander à iptables de charger un module particulier avec l'option -m. Ce module peut
ajouter de nouvelles tables ou de nouvelles manières de tester les paquets.

La forme générale pour utiliser iptables est la suivante :

Iptables [-t table] commande [correspondance][cible/saut]

– table: table concernée. Par défaut, c'est la table filter qui est utilisée
– commande: commande iptables (ajout de règle, suppression de règle, ...)
– correspondance: critères du filtre de sélection de paquets.
– cible/saut: action à effectuer sur le paquet

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
16
a. Les commandes d’iptables

Pour chaque paramètre il existe généralement une forme longue avec deux tirets (par exemple --
append) et une forme courte avec un seul tiret (par exemple -A). Utiliser l'une ou l'autre n'a pas
d'importance, elles sont équivalentes. Les deux possibilités sont souvent représentées dans la
documentation sous la forme --append|-A.

Les paramètres indiqués entre crochets (par exemple [-t <table>]) sont facultatifs.

Ce qui se trouve entre inférieur et supérieur (par exemple <table>) doit être remplacé par une valeur.

Les options principales sont les suivantes :

- --list|-L [<chaîne>]
Affiche les règles contenues dans les chaînes ou seulement dans la chaîne sélectionnée.

- --append|-A <chaîne> <critères> -j <cible>


Ajoute une règle à la fin de la chaîne <chaine>. Si tous les critères correspondent au paquet, il est
envoyé à la cible. Voir plus bas pour une description des critères et des cibles possibles.

- --insert|-I <chaîne> <critères> -j <cible>


Comme --append mais ajoute la règle au début de la chaîne.
- --delete|-D <chaîne> <critères> -j <cible>
Supprime la règle correspondante de la chaîne.
- --flush|-F [<chaîne>]
Efface toutes les règles de la chaîne. Si aucune chaîne n'est indiquée, toutes les chaînes de la table
seront vidées.
- --policy|-P <chaîne> <cible>
Détermine la cible lorsque qu'aucune règle n'a interrompu le parcours et que le paquet arrive en fin de
chaîne.
- -N
Crée une nouvelle chaîne utilisateur avec le nom passé en paramètre.
- -X
Supprime la chaîne utilisateur. Si aucun nom n'est spécifié, toutes les chaînes utilisateur seront
supprimées.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
17
CHAPITRE 5 : LA PREVENTION D’INTRUSION
Un système de prévention d'intrusion (ou IPS, Intrusion Prevention System) est un outil dont le but est
de sécuriser des systèmes d'information, similaire aux IDS, permettant de prendre des mesures afin de
diminuer les impacts d'une attaque. C'est un IDS actif, il détecte un balayage automatisé, l'IPS peut
bloquer les ports automatiquement. Les IPS peuvent donc parer les attaques connues et inconnues.

5.1 Le principe de fonctionnement d’IPS (Système de Prévention d’Intrusion)

Le concept d’IPS ( systèmes de prévention des intrusions) vise à anticiper les attaques de pirates
informatiques dès lors que leur empreinte est connu. Il ne s’agit plus seulement de réagir à une attaque
en cours, mais d’empêcher que celle-ci puisse seulement débuter.
Un système IPS est placé en ligne et examine en théorie tous les paquets entrants ou sortants. Il réalise
un ensemble d’analyses de détection, non seulement sur chaque paquet individuel, mais également sur
les conversations et motifs du réseau, en visualisant chaque transaction dans le contexte de celles qui
précèdent ou qui suivent.
Si le système IPS considère le paquet inoffensif, il le transmet sous forme d’un élément traditionnel de
couche 2 ou 3 du réseau. Les utilisateurs finaux ne doivent en ressentir aucun effet. Cependant, lorsque
le système IPS détecte un trafic douteux il doit pouvoir activer un mécanisme de réponse adéquat en
un temps record.
Le diagramme ci-après illustre le fonctionnement d’un IPS.

Fig 1 : Diagramme de fonctionnement d’un IPS

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
18
5.2 Les différents types d’IPS

Nous avons deux types d’IPS qui sont :


- Les HIPS (Host-based Intrusion Prevention System) qui sont des IPS permettant de surveiller
le poste de travail à travers différentes techniques, ils surveillent les processus, les drivers. En
cas de détection de processus suspect le HIPS peut le tuer pour mettre fin à ses agissements.
Les HIPS peuvent donc protéger des attaques de buffer overflow.
- Les NIPS (Network Intrusion Prevention System) sont des IPS permettant de surveiller le
traficréseau, ils peuvent prendre des mesures telles que terminer une session TCP. Une
déclinaison en WIPS (Wireless Intrusion Prevention System) est parfois utilisée pour évoquer
la protection des réseaux sans-fil.

5.3 Fonctionnalités d’un IPS


Les IPS fournissent les fonctionnalités suivantes:
- La surveillance du comportement d'application, c'est-à-dire que le comportement de
l'application est analysé et noté (quelles données sont normalement demandées, avec quels
programmes elle interagit, quelles ressources sont requises, etc.).
- La création de règles pour l'application : dérivé de la surveillance du comportement
d’application, cet ensemble de règles donne des informations sur ce que peut faire ou non une
application (par exemple, quelles ressources peut-elle demander ?).
- La fonctionnalité d’alerte suite aux violations permet d’envoyer une alerte en cas de déviation
(c'est-à-dire lorsqu’une attaque est détectée). L’alerte peut aller d’une simple entrée dans un
journal à un blocage de ressources, par exemple.
- L’interception d'appels au système : avant qu'un appel au système soit accepté, il doit être
complètement vérifié (par exemple,quel programme a demandé l'appel au système, sous quelles
autorisations l'utilisateur tourne le processus, à quoi l'appel système essaie-t-il d'accéder, etc.).
Cette fonctionnalité permet la surveillance des essais de modification d'importants fichiers du
système ou de la configuration.
- D’autres fonctionnalités sont possibles, comme la compréhension des réseaux IP (architecture,
protocoles, etc.), la maîtrise des sondes réseau/analyse des logs, la défense des fonctions vitales
du réseau, la vitesse d'analyse et un mode “stateful inspection”.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
19
5.4 Positionnement d’un système de prévention d’intrusion réseau

Les différents emplacements possibles d’un NIPS :

Fig 2 : Schéma des positionnements possible d’un NIPS

Avant le Firewall ou le routeur filtrant (emplacement 1)


Dans cette position, l’IPS occupe une place de premier choix dans la détection desattaques de sour
ces extérieures visant l’entreprise.
Dans cette position beaucoup d'alertes seront remontées ce qui rendra les logs difficilement
consultables.

Sur la DMZ (emplacement 2)


Dans cette position, l’IPS peut détecter tout le trafic filtré par le Firewall et qui a atteint la zone DMZ.
Cette position de la sonde permet de surveiller les attaques dirigées vers les différents serveurs de
l’entreprise accessible de l’extérieur.
Il détectera les attaques qui n'ont pas été filtrées par le firewall et qui relèvent d'un certain niveau
de compétence. Les logs seront ici plus clairs à consulter puisque les attaques bénignes ne seront pas
recensées.
Sur le réseau interne (emplacement 3)
Le positionnement de l’IPS à cet endroit nous permet d’observer les tentatives d’intrusion
parvenues de l’intérieur du réseau d’entreprise ainsi que les tentatives d’attaques à partir de
l'intérieur.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
20
Dans le cas d’entreprises utilisant largement l'outil informatique pour la gestion de
leurs activités ou de réseaux fournissant un accès à des personnes peu soucieuses de la sécurité
(réseaux d’écoles et d’universités), cette position peut revêtir un intérêt primordial.

Il est impensable de vouloir analyser tout le trafic d’un réseau. Il faut donc donner la priorité aux
systèmes à risque : ceux qui offrent des services accessibles par Internet (HTTP, FTP, ...).

De plus, il est souvent préférable de placer le senseur après le firewall du côté interne.

Ainsi, seul les flux acceptés par le firewall sont analysés, ce qui réduit fortement la charge
de l’ IPS.

5.5 Les méthodes de détection utilisées par les IPS

La majorité des systèmes de prévention d’intrusions utilisent l'une des trois méthodes de détection
suivant:

- La détection d’abus (misusedetection) : Dans la détection d'abus (aussi appelée détection de


mauvaise utilisation), l’IDS analyse l’information recueillieet la compare (pattern matching,
approche par scénarii) avec une base de données de signatures (motifs définis, caractéristiques
explicites) d’attaques connues ( qui ont déjà été documentées), et toute activité correspondante
est considérée comme une attaque (avec différents niveaux de sévérité).
- La détection d’anomalie (anomalydetection) : La détection d'anomalie de comportement est
une technique assez ancienne. L’idée principale est de modéliser durant une période
d'apprentissage le comportement “normal” d’un système, programme, utilisateur en définissant
une ligne de conduite (dite baselineou profil), et de considérer ensuite (en phasede détection)
comme suspect tout comportement inhabituel (les déviations significatives par rapport au
modèle de comportement “normal”). Les modèles de détection d’anomalie incluent
fréquemment des modèles statistiques.
- Détection d'anomalie de protocole (protocolanomalydetection) : elle représente un sous-
groupe de la détection d'anomalie. C'est une technique relativement récente fonctionnant, à la
base, comme la détection d'anomalie. Chaque protocole a une signature prédéfini ; le but de la
détection d'anomalie de protocole est de trouver si le comportement du protocole est conforme
à celui prédéfini ou non. Beaucoup d'attaques sont basées sur l'abus de protocole ; ce sous-
groupe est donc assez important relativement aux IDS.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
21
5.6 La prévention d’intrusion avec suricata
5.6.1 A propos de suricata

Le moteur Suricata est un IDS/IPS Open Source. Ce moteur n'est pas destiné à remplacer ou émuler les
outils existants dans l'industrie, mais ils apporteront de nouvelles idées et technologies sur le terrain.
Le moteur de Suricata et la Bibliothèque HTP sont disponibles pour l'utilisation sous licence GPL 2.
Suricata est un IDS/IPS développé par l’Open Information Security Foundation (OISF) qui est une
association à but non lucratif qui a été fondée pour porter le projet. Suricata est un IDS/IPS de la même
famille que Snort. Il analyse le traffic réseau en comparant les paquets à un ensemble de signatures qui
cherchent des motifs ressemblant à des attaques. La version 1.0 de Suricata est sortie le 1er juillet
2010. L’architecture de Suricata est multithread et les tests ont montrés que le passage à l’échelle sur
les systèmes multi CPU était bien au rendez-vous. Suricata peut aussi utiliser les capacités de
traitement des processeurs graphiques. Les fonctions IDS et IPS sont natives et les signatures au
format Snort sont supportées. Suricata a des fonctionnalités exclusives comme des modules d’analyse
protocolaire. Il est par exemple possible d’écrire des signatures utilisant des éléments du protocole
HTTP comme l’URL ou les cookies. Le développement reste très actif et de nombreuses nouvelles
fonctionnalités majeures sont prévues.

5.6.2 Les fonctionnalités de SURICATA

a. Les fonctionnalités de Suricata

Les fonctionnalités de Suricata sont :

- Support IPv6 natif


- Multi threadée
- Accélération matérielle native (Accélération par GPU, PF_RING)
- De nombreuses options pour optimiser les performances
- Support optimisé des tests sur IP seules
- IPS (mode inline) natif

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
22
b. Les fonctions avancées de SURICATA

Les fonctions avancées de Suricata sont :

LibHTP :
- parseur orienté sécurité du protocole http
- suivi de flux,
- Capable de décoder des flux compressés par Gzip
Variable de flux
- Détection des attaques en étapes,
- vérification de conditions sur un flux
- modification du traitement sur l’alerte
- machine à état au sein du flux.
Extraction et inspection de fichiers

- Récupération des fichiers des downloads et uploads http


- Détection des informations sur le fichier (Type de fichiers)
- Une extension dédiée du langage des signatures
Étude de la négociation TLS Capable de décoder des flux compressés par Gzip
- Détection automatique du protocole (indépendamment du port, grâce à un système de pattern
matching)
- Des mots clés dédiés
- Utilisables dans les signatures

5.6.3 Modules d’entréeset de sorties de SURICATA


a. Modules d’entrées

Les modules d’entrées de Suricata en tant que IDS sont :

- PCAP
- PF_RING
- AF_PACKET

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
23
Les modules d’entrées de Suricata en tant que IPS sont :

- NFQUEUE : pour les système linux et Windows,


- Ipfw : pour les systèmes FreebsdetNetBSD

b. Modules de sortie

- Fastlog
- Unified log (Barnyard 1 & 2)
- HTTP log (log dans un format de type apache)
- Prelude (IDMEF)

5.6.4 Les nouveautés apportées par SURICATA

Parmi les nouveautés, on peut citer :


Amélioration importante des performances:
- nouvel algorithme de recherche de motifs par défaut,
- recherche de motifs multiples pour le protocole HTTP (responsable d’une grosse partie de
l’augmentation de performance),
- amélioration des modes de fonctionnements (agencement des threads dans Suricata) ;
Amélioration de la précision de l’analyse ;
journalisation augmentée :
- plus de champs HTTP peuvent être journalisés (Agent HTTP, par exemple),
- journalisation des événements de reconstruction des flux TCP (alerte sur les comportements
bas niveau suspects) ;
Un mode de prévention d’intrusion (IPS) amélioré :
- mode de gestion des flux dédié au fonctionnement en mode IPS permettant de bloquer les
paquets avant leur émission,
- nouveaux mots clés et nouvelles options avancées (modification des flux ou apposition d’une
marque sur les paquets, par exemple) pour le mode IPS sous Netfilter.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
24
TROISIEME PARTIE

MISE EN ŒUVRE ET
EVALUATION

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
25
CHAPITRE 6: INSTALLATION ET TESTS
Dans ce chapitre nous procéderons à l’installation et à l’évaluation des outils de défense. Pendant la
phase des tests il est prévu de lancer une succession d’attaque à partir de l’extérieur vers nôtre réseau.

6.1 Description de l’environnement de test

Tous les tests se feront dans un environnement virtualisé comme il a été dit dans le cahier de
Charge. Pour ce faire nous utiliserons virtualbox
Le réseau est constitué de :
Une machine linux avec la distribution Debian 6 nommée FIREWALL qui servira de firewall
avec deux cartesréseaux. Son but sera de filtrer le flux de paquet entrant dans notre réseau.
Cette machine a pour configuration :
- Adresse IP Ethernet 0 : 172.17.0.2 / Masque : 255.255.0.0
- Adresse IP Ethernet 1 : 192.168.0.1 / Masque : 255.255.255.0
Une autre machine avec la distribution Debian6 nommée SURICATA, sur cette machine sera
installée l’IPS/IDS SURICATA, le rôle de ce dernier sera d’alerté l’administrateur ou de
bloquer les menaces qui auront traversé notre firewall.
Cette machine a pour configuration :
- Adresse IP Ethernet 0 : 192.168.0.2 / Masque : 255.255.255.0
- Adresse IP Ethernet 1 : 192.168.1.1 / Masque : 255.255.255.0
Une autre machine avec la distribution Debian 6 nommée Snorby qui sera le serveur http
(apache).
Cette machine a pour configuration:
- Adresse IP : 192.168.1.2 / Masque : 255.255.255.0
Une autre machine avec la distribution Debian 6 nommée Filezilla qui sera le serveur ftp
(filezilla).
Cette machine a pour configuration:
- Adresse IP : 192.168.1.3 / Masque : 255.255.255.0
Enfin une machine avec la distribution Backtrack 5r3 nommée Attaquant qui nous permettra
d’attaquer notre réseau.
Cette machine a pour configuration:
- Adresse IP : 172.17.0.2 / Masque : 255.255.0.0

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
26
 Schéma de notre réseau:

Fig3 : schema du réseau test

6.2 installation et configuration des outils de défense


Les outils netrfilter et suricata sont des logiciels travaillant au niveau du noyau linux ce qui rend
difficile l’accessibilité et l’interprétation des logs qu’ils génèrent c’est pourquoi des programmeurs ont
développé des outils permettant l’accessibilité à ces logs en vue de leur exploitation par
l’administrateur réseau.
Dans le cadre du filtrage avec netfilter ces outils sont :
- Ulogd
- Nulog
A l’aide d’un schéma montrons l’interaction de ces derniers avec netfilter.

Figure 4 : schema de l’interaction entre netfilter, ulogd et nulog

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
27
D’après le schéma nous remarquons que quand les flux de paquet arrivent à netfilteur il fait un tri en se
basant sur les règles écrites par l’administrateur réseau à l’aide d’iptables à la suite de cela il genère
des logs conséquence de l’activité qui s’est déroulée et c’est la que ulogd rentre en action en récupérant
cès logs pour les envoyer dans une base de donnée. Pour finir nulog les récupère et les affiche dans une
interface web.

Dans le cadre de la prévention d’intrusion avec suricata ces outils sont :


- Snorby qui est un logiciel open source sous linux permettant de faire la gestion et l’analyse des
évènements (nombre d’attaque, type de protocole…) générés par les IPS ou IDS et les les
affiches sur son interface web.
- Barnyard qui est un outil open source qui a pour rôle d’écrire les différents logs générés par un
NIPS/IDS dans une base de données.

A l’aide d’un schéma montrons l’interaction de ces derniers avec suricata.

Fig 5 : Schéma de l’interaction entre suricata, Barnyard et Snorby

C’est le même fonctionnement que dans le cas du filtrage sauf qu’ici les regles de suricata sont
téléchargeables et une mise à jour quasi quotidienne est necessaire.

6.2.1 Installation et configuration de Ulogd

Le logiciel ulogd a été développé par Harald Welte pour récupérer les données du noyau et les stocker
dans différents formats grâce à des plugins de sortie.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
28
Installation de Ulogd

# apt-get install ulogd ulogd-mysql

Configuration du fichier ulogd.conf situé dans /etc/

Dans ce fichier nous nous sommes assuré que nous avons ces champs ci-dessous et qu’ils sont
decommentés c'est-à-dire qu’il n’y a pas de ‘#’ au début.

[global]
nlgroup=1
logfile="/var/log/ulog/ulogd.log"
loglevel=5
rmem=131071
bufsize=150000

plugin="/usr/lib/ulogd/ulogd_BASE.so"
plugin="/usr/lib/ulogd/ulogd_MYSQL.so"

[MYSQL]
table="ulog"
pass="paul"
user="ulogd"
db="ulogd"
host="localhost"
reconnect=5
connect_timeout=10

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
29
On va créer une base de donnée pour permettre à ulogd d’y envoyé les logs provenant de
netfilter

#mysql –u root –p
>create database ulogd ;
>create user ulogd ;
>grant insert,select,create temporary tables on ulogd.* to ulogd@localhost identified by ‘paul’;
>flush privileges;
>exit;

- Ensuite on va intégrer les tables fournies par ulogd-mysql dans notre base de données ulogd
avec cette commande

# mysql -u root -p ulogd< /usr/share/doc/ulogd-mysql/mysql.table

Cette etape met fin à l’installation de ulogd, pour le lancer on tape la commande suivante :

# /etc/init.d/ulogd start

6.2.2. Installation et configuration de Nulog

Pour exploiter les journaux du firewall envoyés dans une base de donnée par Ulogd, nous allons
utiliser une interface web écrite en python nommé Nulog2. Il fait partie à la base de la suite NuFW
développé par EdenWall.
Installons d’abord les dépendances
#aptitude install python2.4 python-twisted python-nevow python-matplotlibgettext python-soappy
python-mysqldb python-cairo python-ipy python-numpy python-docutils

Ensuite téléchargeons et installons Nulog2


# wget http://software.inl.fr/releases/Nulog2/nulog-2.1.5.tar.bz2
# tar xvjf nulog-2.1.5.tar.bz2
# cd nulog-2.1.5
# ./setup.py install

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
30
- Créons l’utilisateur nulog qui devra accéder à la base de donnéeulogd.

#mysql -u root -p
>grant all privileges on ulogd.* to nulog@localhost identified by ‘allou’;
>flush privileges;
>exit;

- Paramétrons l’accès de nulog à la base de données via /etc/nulog/core.conf.

[DB]
host=localhost
db=ulogd
user=nulog
password=allou
dbtype=mysql
type=triggers
ip=4
table=ulog

conntrack=conntrack_ulog
maxrotate=52
[Misc]
tiny_does_not_hide_timestamp=0

- Nous en faisons de même avec /etc/nulog/nulog.conf

[Links]
url=/nulog/
maintitle= parefeu_allou
#Désactivation de l'accès de NuFace
#nuface_acl=
[Sessions]
anonymous=yes

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
31
- Et aussi pour /etc/nulog/wrapper.conf.

- Nous terminons notre installation en lançant

# ./install_defconf.sh

NB : nous devons être dans le répertoire spécifié correspond au vardir précisé dans wrapper.conf.
Chez nous ce répertoire est : /var/lib/nulog/scripts.

- Pour que Nulog soit visible depuis une interface web, nous allons céer un virtualhost dans
apache2. Cela se fera dans /etc/apache2/conf.d

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
32
- Nulog sera visible dans un navigateur web avec l’adresse suivante :
http://localhost:8080/nulog

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
33
6.2.3. Implémentation de Netfilter

a. Enoncé et Ecriture des règles

Nous allons mettre en place des règles qui permettrons d’effectuer un filtrage réseau afin d’empêcher
les tentatives d’intrusions sur le réseau.

Stratégie par défaut

Notre stratégie par défaut consistera dans un premier temps à tout refuser, cela nous permettra de
mieux contrôler tout ce qui se passe au niveau du pare-feu et accepter uniquement la translation
d’adresse pour permettre notre réseau de communiquer avec l’extérieur et ensuite nous autoriserons les
services dont nous avons bésoin.

Protection contre les attaques par deni de service


- Bloquer les attaques par deni de service visant le port 80 du pare-feu car c’est sur ce port que
notre serveur web (apache2) communique.
- Bloquer les attaques par force brute sur le port 22 car notre serveur ssh (openssh) comunique
sur ce port.
- Bloquer les attaques deni de service visant notre réseau (qui traverse le pare-feu)
Rendre nos serveurs accessibles depuis l’extérieur
- Nous autorisons les connexions sur le port 22 du firewall via ssh depuis internet
- Nous autorisons une concession sur le port 80 de Netfilter

NB : tous les règles n’ont pas été énoncées, seul les règles concernant les attaques par deni de service
et force brute et les autorisations à nos serveurs.

Nous avons tenus

Les règles suivantes permettront la protection notre réseau contre ces types d’attaque :

Stratégie par défaut

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
34
Protection contre les attaques par deni de service
- Bloquer les attaques Dos visant le port 80 du firewall

- Bloquer les attaques par force brute sur le port 22

- Bloquer les attaques Dos visant notre réseau (qui traverse le firewall)

Rendre nos serveurs accessibles depuis l’extérieur


- nous autorisons les connexions sur le port 22 du firewall via ssh depuis internet

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
35
- nous autorisons une connexion sur le port 80 de Netfilter

Rendre nos serveurs accessibles depuis l’intérieur de notre réseau.


- autorisons notre réseau interne a communique avec le firewall netfilter via le port 8080

6.2.4. installation et configuration de SURICATA

Tout d’abord nous allons mettre notre système à jour pour faciliter tous installations de logiciels

#aptitude update
#apt-get update
#apt-get upgrade
#apt-getdist-upgrade

a. Installation de snorby

Installation des prérequis ou dépendances de snorby

#apt-getinstallgcc g++ build-essential libssl-dev libreadline6-dev zlib1g-dev linux-headers-


generic#libsqlite3-dev libxslt-dev libxml2-dev imagemagick git-corelibmysqlclient-devmysql-server
#libmagickwand-dev default-jre

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
36
#wget http://wkhtmltopdf.googlecode.com/files/wkhtmltopdf-0.10.0_rc2-static-i386.tar.bz2
#bunzip2 wkhtmltopdf-0.10.0_rc2-static-i386.tar.bz2
#tar xvf wkhtmltopdf-0.10.0_rc2-static-i386.tar
#cp wkhtmltopdf-i386 /usr/bin/wkhtmltopdf

#wget http://pyyaml.org/download/libyaml/yaml-0.1.4.tar.gz
#tar xzvf yaml-0.1.4.tar.gz
#cd yaml-0.1.4
#./configure --prefix=/usr/local
#make
#make install

#wget http://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p0.tar.gz
#tar xzvf ruby-1.9.3-p0.tar.gz
#cd ruby-1.9.3-p0
#./configure --prefix=/usr/local --enable-shared --disable-install-doc --with-opt-dir=/usr/local/lib make
#make

#gem install thor i18n bundler


#gem install tzinfo builder memcache-client rack rack-test erubis mail text-format
#gem install rack-mount --version=0.4.0
#gem install rails sqlite3-ruby

Installation et configuration de snorby

#git clone http://github.com/Snorby/snorby.git /var/www/snorby


Editons le fichier database.yml situé dans /var./www/snorby/config comme ce ci

snorby: &snorby
adapter: mysql
username: root
password: "allou"
host: localhost

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
37
- Editons le fichier snorby_config.yml situé dans /var/www/snorby/config/ :

- Ensuite on rentre dans /var/www/snorby et on fait une mise à jour

#cd /var/www/snorby
#bundle update activesupportrailties rails
#gem install arelezprint&&bundle install

- on lance snorbytoujour en etant dans /var/www/snorby

#bundle exec rake snorby:setup

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
38
On obtient:

- On crée un utilisateur snorbyuser et on lui donne tous les droits sur la base de donnéesnorby
#mysql -u root –p
>create user 'snorbyallou'@'localhost' IDENTIFIED BY “claver”;
>grant all privileges on snorby.* to 'snorbyallou'@'localhost' with grant option;
>flushprivileges;

- Maintenant nous repartons dans /var/www/snorby/config et nous editons le fichier


database.yml afin de mettre à jour les informations sur notre base de donnée. nous apportons
les modifications suivantes :

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
39
b. Installation d’apache2
Appache est un serveur http qui nous permettra de visualiser l’interface graphique de snorby.

Installation des dépendances d’apache2

#apt-get install apache2 apache2-prefork-dev libapr1-dev libaprutil1-dev libopenssl-ruby


#apt-get install libcurl4-openssl-dev

Installation de passenger et de ses modules dont a besoin apache2

Passenger est un module pour apache2 qui permet de déployer simplement des applications Ruby.

#gem install --no-ri --no-rdoc --version 3.0.3 passenger


#passenger-install-apache2-module

Ensuite on crée un fichier nommé passenger.load dans /etc/apache2/mods-available/ et on y


écrit ce qui suit pour permettre à apache de retrouver les différent module de passenger qu’il a
besoin.

- Ensuite on va charger les modules d’apache2

#a2enmod passenger
#a2enmod rewrite
#a2enmod ssl

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
40
Intégration de snorby dans apache2

On va créer un virtualhost en éditant un fichier que nous nommerons snorby dans


/etc/apache2/sites-available pour rendre apache2 accessible via un navigateur web. Et on a ca :

Ensuite on copie le fichier snorby dans /etc/apache2/sites-available/ en faisant :

#ln -s /etc/apache2/sites-available/snorby /etc/apache2/sites-enabled/snorby

- Nous allons consulter le fichier hosts dans /etc/ pour voir si le nom de notre serveur y est, s’il
n’y est pas on l’écrit (nous avons nommé notre serveur snorbyadmin)

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
41
- Ensuite on écrit le nom de notre serveur snorby dans le fichierhttpd.conf situer dans
/etc/apache2
- On lance notre serveur apache2

#service apache2 start

- Ensuite on rentre dans navigateur web l’adresse suivante :http://snorbyadmin


Remarque :
Le login par defaut de snorby est : snorby@snorby.org
Le password est : snorby
Après une première connexion nous avons inscrit l’administrateur Allou paul-claver.
Son login est : alloupc@hotmail.fr
Le password est : XXXXXX (password de ma boite electronique)

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
42
Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux
ALLOU Paul-Claver
43
c. Installation de SURICATA

- Installons-les prérequis de SURICATA

#apt-get -y install libpcre3 libpcre3-dbg libpcre3-dev build-essential autoconfautomakelibtoollibpcap-


dev libnet1-dev libyaml-0-2 libyaml-dev zlib1g zlib1g-dev libcap-ng-dev libcap-ng0 makelibmagic-
dev git pkg-config libnss3-dev libnspr4-dev

- Téléchargement et installations de SURICATA

#git clone git://phalanx.openinfosecfoundation.org/oisf.git && cd oisf/ && ./autogen.sh &&


./configure --with-libnss-libraries=/usr/lib --with-libnss-includes=/usr/include/nss/ --with-libnspr-
libraries=/usr/lib --with-libnspr-includes=/usr/include/nspr&& make clean && make && make
install-full &&ldconfig

d. Installation de Barnyard2

- Installation des prérequis de Barnyard2

#apt-get install libpcre3 libpcre3-dbg libpcre3-dev build-essential autoconfautomakelibtoollibpcap-


dev libnet1-dev mysql-client libmysqlclient16-dev

- Téléchargement et installations Barnyard2

#wget http://www.securixlive.com/download/barnyard2/barnyard2-1.9.tar.gz &&tar xvfz barnyard2-


1.9.tar.gz && cd barnyard2-1.9 && ./configure --with-mysql&& make && make install

- Après téléchargement et installation de Barnyard2, on copie le fichier Barnyard2.conf dans


/etc/suricata et on y apporte les modifications suivante :

………

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
44
- Nous allons créer un dossier barnyard2 pour recuperer les logs en provenance de barnyard

#mkdir /var/log/Barnyard2

- Maintenant vérifions qu’on a ceci dans suricata.yaml sinon suricata ne pourra pas
communiquer avec barnyard2 ;

- Nous allons installer oinkmaster qui va nous permettre de faire nos mises à jour de façon
automatique

#apt-get install oinkmaster

- Après l’installation on va ouvrir le fichier oinkmaster.conf situé dans /etc/ et on décommente


cette ligne:
http://rules.emergingthreats.net/open/suricata/emerging.rules.tar.gz
- Nous lançons la commande qui suit pour télécharger les règles qui permettront à notre IDS/IPS
suricata de bien fonctionner:

# oinkmaster -C /etc/oinkmaster.conf -o /etc/suricata/rules

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
45
6.3. Evaluation de Netfilter et de suricata

Dans cette partie nous mènerons une série d’attaque contre notre réseau afin de déterminer si, oui ou
non, nos outils assurent le rôle qui leur est impartie c'est-à-dire empêcher l’intrusion de notre réseau.
Dans un premier temps nous allons activer nos outils défenses.

6.3.2. Mise en marche de nos outils de défenses

Activation de notre firewall nommé parefeu_allou

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
46
Lançons maintenant l’interprétateur de log nulog dans un navigateur web
On rentre l’adresse suivante (http://localhost:8080/nulog)

Activation de NIPS/NIDS SURICATA

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
47
Lançons dans notre navigateur Snorby (http://snorbyadmin) qui est chargé d’interpréter et
d’analyser les logs provenant de SURICATA :

Maintenant que nos outils sont activé nous allons passer à la deuxième phase qui est l’attaque de notre
réseau.

6.3.3. Simulation des attaques réseau

Il faut pour simuler les attaques les outils suivants :

- NMAP permet de voir s’il y a des ports ouverts ou fermés.


- Hping3 outils permettant de simuler des attaques de type DOS.
- Armitage permet de mettre en œuvre plusieurs types d’attaques de type DOS, exploit etc …

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
48
a. Scan de port

Le scan de port en elle-même n’est pas considérer comme une attaque (mais si elle n’est pas autoriser
elle fait l’objet de poursuite judiciaire) mais est un préalable avant de memer tous types d’attaque car
elle permet à toute personne qui l’utilise d’avoir des renseignements sur l’état des ports d’une machine
ou de toutes les machines du réseau.

Nous utiliserons NMAP pour faire ce le sacn de port.

#nmap –A –T4 172.17.0.2

L’option -A permet la détection des OS et la version de logiciels utilisés


.
L’option -T4 pour une exécution plus rapide.
On obtient :

- Interprétation des résultats

Nous avons 999 ports filtrés, 1 port ouvert (port : 22 ; état: ouvert ; service : ssh)

Adresse MAC 08 :00 :27 :2F :C5 :2C

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
49
Nous avons 1 saut entre la machine attaquante et notre réseau.

NB : le port 22 est ouvert car nous avons mis en place un serveur ssh pour que nous puissions nous
connecter depuis l’extérieur à notre firewall mais nous avons protégé ce port. Donc notre firewall va
considérer ce scan comme une attaque.

Interprétation

Les pings envoyés lors du scan réseau ont été considérés comme une attaque par netfilter car nous
avons l’avons configuré

b. Attaques par déni de services (DOS)

Une attaque par déni de service (denial of service attack) est une attaque informatique ayant pour but
de rendre indisponible un service, d'empêcher les utilisateurs légitimes d'un service de l'utiliser. Il peut
s'agir de :
- l’inondation d’un réseau afin d'empêcher son fonctionnement ;
- la perturbation des connexions entre deux machines, empêchant l'accès à un service particulier ;
- l'obstruction d'accès à un service à une personne en particulier.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
50
Nous utiliserons hping3 pour mener cette attaque sur l’adresse externe du firewall qui est 172.17.0.2

#hping3 –flood –p 80 –S 172.17.0.2

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
51
Interprétation

D’après nulog notre firewall à détecter l’attaque visant le port 80 de notre firewall et a DROP les
paquets venant de la machine attaquante.

Attaque par force brute sur le port 22

Notre firewall a été configuré pour n’accepter que deux connexion en 120 s.
La troisième tentative de connexion sera considérée comme une attaque par force brute car nous
jugerons que cet utilisateur n’a pas de mots de passe et qu’il force l’accès à notre réseau.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
52
Interprétation

Nous remarquons dans nulog que cette tentative est détectée et refusée et le paquet a été drop.

Attaque syn_flood(une variante de l’attaque doS) visant le port 80 de notre NIPS situé après
notre firewall

#hping3 –flood –p 80 –S 192.168.0.2

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
53
Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux
ALLOU Paul-Claver
54
Interprétation

D’après nulog l’attaque syn_flood visant notre NIPS a été détectée par le pare-feu et les paquets
envoyés ont été DROP c’est à dire détruit.

NB: Nous avons remarqué pendant les tests que toutes les attaques visant le réseau ont été bloquées
par le firewall donc nous n’arrivons pas à vérifier si oui ou non suricata fonctionne. Pour vérifier le
bon fonctionnement de suricata nous avons donc décidé d’arrêter le pare-feu et d’attaquer directement
notre réseau.

Pour les tests nous avons dans un premier temps laissé les règles de SURICATA en alerte c’est à dire
que au début des règles de suriricata le mot alert qui est ecrit nous le laissons inchangé.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
55
Arrêt de notre firewall

Scan réseau avec armitage

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
56
On obtient :

Interprétation

Le scan a révélé les marchines de notre reseau, leurs différents systèmes d’exploitations et les ports
ouverts sur chaque machine. Une obène pour les pirates.

Attaques réseau

- Nous lançons une attaque syn flood sur notre serveur ftp filezilla sur le poste windows xp qui a
pour adresse ip 192.168.1.3.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
57
On lance l’attaque avec armitage comme ceci :

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
58
Interpretation

Nous remarquons que la cible a été atteinte, cela veut dire que même si suricata est en mode IPS et que
ses règles sont mises en alert, il n’arrêtera même pas une attaque.

Maintenant vérifions dans snorby si SURICATA a détecté tous les scans de port et les attaques
memées.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
59
SURICATA a bel et bien détecter les attaques comme le montre l’interface graphique de snorby.

Avec snorby il est possible de télécharger un rapport détaillé des evenement en pdf sur une certaine
periode definie. Dans notre cas avons téléchargé le bilan après un mois d’activité. Se rapport se trouve
ci-dessous :

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
60
Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux
ALLOU Paul-Claver
61
Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux
ALLOU Paul-Claver
62
Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux
ALLOU Paul-Claver
63
Maintenant nous changeons le mot alert des règles en drop (c'est-à-dire que les paquets
provenant des attaques seront bloqués et détruits) dans les regles de SURICATA.
Nous sommes toujour en mode IPS (prévention d’intrusion).

Scan réseau

Interprétation

Nous remarquons qu’armitage n’a pas réussi à découvrir les machines de notre réseau et leurs failles
car notre IPS SURICATA à bloquer le scan de port mais lui-même a été découvert.

Dans armitage on remarque :

Nmap : Nmap scan report for 192.168.1.2 [host down]

Nmap : Nmap scan report for 192.168.1.3 [host down]

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
64
Attaque réseau

- attaque DOS sur notre serveur apache avec armitage

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
65
Interprétation

Nous remarquons que l’attaque a bel et bien été bloquée par SURICATA cela s’explique par :

- Dos packet unsucceful.

6.3.4. Bilan des tests

Après avoir mené plusieurs attaques dont toutes n’ont pas été répertoriés dans ce rapport, nous
pouvons dire que nos outils de défenses ont dans l’ensemble bien fonctionné.
Notre firewall à bloquer tous les attaques qu’il a subi de tel sorte que nous avons été bien obligés de
l’arrêter pour voir si notre NIPS fonctionnait normalement.
Quant à notre NIPS, il a aussi bien fonctionné mais le bémol c’est qu’il doit d’abord reconnaitre la
signature de l’attaque avant d’agir.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
66
CONCLUSION

La sécurité informatique est un processus indispensable à la survie d’un réseau informatique c’est
pourquoi il a été soumis à notre étude l’évaluation des outils open source de sécurité informatique que
sont Netfilter et suricata.

Au cours de notre travail nous avons étudié de façon théorique ces outils pour comprendre leur
fonctionnement, puis nous les avons implémentés afin de les évaluer.

Après l’évaluation nous pouvons dire que ces outils peuvent assurer la sécurité d’un réseau
informatique à condition que la suivie quotidienne de ces outils soient faite de façon rigoureuse.

Il faut bien signaler que ce projet a été une excellente initiation à la vie professionnelle car il nous a
permis d’avoir une petite expérience de ce qu’est le travail au sein d’une équipe de sécurité
informatique.

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
67
BIBLIOGRAPHIE
Ouvrages

[1] Tableau de bord de la sécurité informatique ; Cédric Llorens, Laurent Levrier, Denis Valois,
2006,Eyrolles 559 pages

[2] Sécuriser un réseau linux; Bernard BBoutherin, Benoit Delauney, 3 édition, 2006, 200 pages
environ. Eyrolles

[3]Sécurité informatique Ethical Hacking ; Marion AGÉ, Sébastien BAUDRU, Robert. CROCFER,
Franck EBEL, Jérôme HENNECART, Sébastien LASSON, David PUCHE. Eni editions.195 pages

[4]Iptables tutoral 1.2.2 ; Oskar Andreasson, Mark Blanc, Philippe Latu. www.inetdoc.net, 142 pages

Webographie:

[1] www.backtrack.fr vendredi 19/10/2012

[2] www.insecure.org/nmap/changelog.html. 19/10/2012

[3] www.aldeid.com/wiki/Snorby 05/12/2012

[4] https://redmine.openinfosecfoundation.org/ 05/12/2012

[5] www.inetdoc.net Mercredi 05/12/2012

[ 5] www.c-sait.net/cours/iptables.php vendredi o1/02/2013

[ 6] www.doc.fedora.fr.org samedi 2 /02/ 2013

Mémoire de fin de cycle d’Ingénieur de conception en Télécommunication et Réseaux


ALLOU Paul-Claver
68

Vous aimerez peut-être aussi