Vous êtes sur la page 1sur 32

Ralis par : IKERMOUD Amazigh BOUZEBOUDJA Ferhat BOUAM Farid

Encadr par : Nicolas GAMA

Promotion : 2009/2010

Sommaire
INTRODUCTION..4 Gnralits et Dfinitions......................................................................................................... 6 1 I. Introduction : .................................................................................................................... 6 Gnralits sur les serveurs :........................................................................................... 7 I.1. Serveur linux : ................................................................................................................. 7 I.2. Serveur Debian : ............................................................................................................. 8 I.2.1. Avantages :............................................................................................................... 8 I.2.2. Inconvnients : ......................................................................................................... 9 II. Les diffrents services : .................................................................................................... 9 II.1. Serveur Web : ................................................................................................................ 9 II.2. Serveur DNS : .............................................................................................................. 10 II.3. Serveur SSH : .............................................................................................................. 10 II.4. Serveur FTP : ............................................................................................................... 12 II.5. Serveur X : ................................................................................................................... 12 III. Quelques dfinitions sur la scurit : ........................................................................... 12 III.1. Scurit : ..................................................................................................................... 13 III.2. Vulnerabilit : ............................................................................................................. 13 III.3. Menace : ..................................................................................................................... 13 III.4. Attaque : ..................................................................................................................... 13 III.5. Intrusion : ................................................................................................................... 13 III.6. Objectifs de la scurit : ............................................................................................. 13 Conclusion : ............................................................................................................................ 15 Vulnrabilits et Outils de Test ............................................................................................. 16 Introduction : .......................................................................................................................... 16 I. Vulnerabilit : ................................................................................................................. 17 I.1. Dfinitions : .................................................................................................................. 17 I.2. Classification des vulnrabilits : ................................................................................. 17

II. Outil de tests de vulnerabilit : ..................................................................................... 17 II.1. Ping : ............................................................................................................................ 18 II.2. Nmap : ......................................................................................................................... 18 II.3. Metasploit : .................................................................................................................. 19 II.4. Nessus : ........................................................................................................................ 19 Conclusion ............................................................................................................................... 20 Conception et Ralisation ...................................................................................................... 21 Introduction : .......................................................................................................................... 21 I. Outils utiliss : ................................................................................................................ 22 I.1. Langage C++ :............................................................................................................... 22 I.2. Debian : ......................................................................................................................... 22 I.3. Vmware : ....................................................................................................................... 22 II. Traitement des vulnrabilits : ..................................................................................... 22 II.1. Vulnrabilits lies la configuration : ..................................................................... 22 A. Test du grub: ................................................................................................................ 22 B. Test dinittab : .............................................................................................................. 23 C. Test du mode shadow : ................................................................................................ 23 D. Test de la version du noyau : ....................................................................................... 24 E. Test du partitionnement systme : ............................................................................... 24 F. Test de la configuration rseau : .................................................................................. 25 G. Chiffrement de la partition swap : ............................................................................... 25 II.2. Vulnrabilits des services : ...................................................................................... 26 II.2.1. Vulnrabilits du serveur Web : ........................................................................... 26 II.2.2. Vulnrabilits du service SSH: .............................................................................. 28 II.2.3. Vulnrabilits du service DNS : ........................................................................... 28 II.2.4. Vulnrabilits du service FTP : ............................................................................ 28 II.2.5. Vulnrabilits du service Xwindows: ................................................................... 29

II.3. Vulnrabilits lies une compromission : ............................................................... 29 II.3.1. Test des excutables SetUID : ............................................................................... 29 II.3.2. Test des signatures des paquets installs : ............................................................ 29 II.3.3. Le Port Scanning : ................................................................................................ 30 II.3.4. Rootkits :............................................................................................................... 31 Conclusion : ............................................................................................................................ 31 CONCLUSION... 30

INTRODUCTION :

La scurit informatique est un aspect trs important lors de la mise en service de serveur sur internet. Les serveurs internet sont aujourdhui de plus en plus exposs des attaques dont le but peut tre le vole dinformations confidentielles ou bien la provocation dun dysfonctionnement du site internet et donc du serveur. Ceci implique pour les concepteurs de site web dadopter un dveloppement scuris des pages web. Toutefois, une scurit renforce du systme dexploitation augment le niveau de scurit du site internet. De plus, conjugu un dveloppement scuris des sites web. Ceci permet de dployer un service internet fiable et robuste. Dans le cadre de ce projet, lobjectif est dtudier un serveur linux (Spcialement Debian), den comprendre le fonctionnement et les mcanismes de scurit. De ltude aussi des services disponibles sur le serveur. Ceci nous permettra la fin de monter un serveur internet scuris en vue de lhbergement dun site web.

Chapitre 1 :

Gnralits et Dfinitions

Introduction :
Dans ce chapitre nous allons prsenter quelques gnralits sur les serveurs debian et les services offerts par ces derniers. Nous avons galement trait les diffrents aspects de scurit et ces objectifs. Enfin, nous avons expliqu quelques tapes ncessaires pour installer un systme scuris.

I.

Gnralits sur les serveurs :


Un serveur est un dispositif informatique matriel ou logiciel qui offre des services, diffrents clients. Il fonctionne en permanence, rpondant automatiquement des requtes provenant de plusieurs utilisateurs selon une architecture client-serveur. Le format des requtes et des rsultats obtenus est conforme des protocoles rseaux.

I.1. Serveur linux :


Linux est le systme dexploitation le plus utilis sur les serveurs et les superordinateurs, cependant il existe plusieurs distributions bas sur le noyau Linux ( debian, Ubuntu, redhat, Openbsd...).Une distribution Linux est un ensemble cohrent de logiciels, la plupart tant logiciels libres, assembls autour du noyau Linux. La plupart des distributions sont bases sur la mme architecture : Le systme d'exploitation (Le noyau : Linux). Les logiciels GNU pour les commandes de base (ls, grep, ...). Le serveur X qui permet l'affichage graphique. Gnralement X11. Un systme de gestion de paquets : ensemble de logiciels muni d'une unit d'installation et de dsinstallation. Les plus rpandues tant les paquetages .rpm et .deb. Un programme d'installation et de paramtrage.

Toute distribution contient gnralement plusieurs interfaces graphiques (KDE, Gnome, IceWM, ...) et comprend, l aussi en rgle gnrale, une suite de logiciels pour l'utilisateur moyen (StarOffice, Gimp, ...), des outils scientifiques ou encore de programmation.

Figure : Les Architecture dune distribution linux

I.2. Serveur Debian :


Debian est une distribution GNU/Linux non commerciale. Elle a pour principal but de fournir un systme d'exploitation compos uniquement de logiciels libres. Elle est trs utilise sur les serveurs. Debian est toujours disponible en trois versions (trois branches) qui sont :

Squeeze (stable) : version fige o les seules mises jour sont des correctifs de scurit.

Testing (testing) : future version stable o seuls les paquets suffisamment matures peuvent rentrer.

Sid (unstable) : surnomme Sid, il s'agit d'une version en constante volution, alimente sans fin par de nouveaux paquets ou de mises jour de paquets dj existants (on parle deRolling release).

I.2.1. Avantages :
Extrmement stable. Assure le ncessaire pour un fonctionnement normal. fiable et scurise. Un systme complet de mise jour. La configuration se fait par la manipulation de fichier.

Peu de logiciels installs par dfaut.

I.2.2. Inconvnients :
La configuration se fait uniquement par la manipulation de fichier Peu de logiciels installs par dfaut. Installation et usage difficile pour un dbutant dans un environnement Linux.

II.

Les diffrents services : II.1. Serveur Web :


Un serveur serveur Web, est un logiciel servant des requtes utilisant le protocole de communication HTTP. Un serveur Web fait fonctionner plusieurs logiciels qui fonctionnent ensemble. On retrouve la combinaison Apache (serveur HTTP), MySQL (serveur de base de donnes) et PHP.

Figure Serveur web

II.2. Serveur DNS :


Le Domain Name System (ou DNS, systme de noms de domaine) est un service permettant de traduire un nom de domaine en informations de plusieurs types qui y sont associes, notamment en adresses IP de la machine portant ce nom. Le DNS est organis sous la forme dune arborescence inverse, avec une racine dont dpendent les diffrentes branches . Au premier niveau de larborescence se trouvent les Top-Level Domains ou domaines de premier niveau, comme les .fr, .com etc. Au second niveau, nous avons les noms de domaine classiques comme uvsq.fr .

Figure Arborescence du DNS

II.3. Serveur SSH :


Le protocole SSH (Secure Shell) offre un service de connexion scurise distance (port 22 en TCP/IP). Il est (souvent) bas sur un serveur (sshd) et un logiciel client (la commande ssh). Ce service remplace les anciens protocoles de

connexion distance comme telnet, rsh ou rlogin. Avec ces derniers les informations transitent en clair sur le rseau ce qui permet leur interception. Lauthentification dans SSH peut se faire par mot de passe ou par lutilisation de clefs asymtriques. A cause de lutilisation de mot de passe le protocole est sensible aux attaques par force brute (tentatives de connexions multiples bases sur des dictionnaires de mots de passe). Grce SSH, un ordinateur client peut initier une connexion avec un ordinateur serveur et profiter des mesures de scurit suivantes : Aprs avoir effectu une connexion initiale, le client peut sassurer de se connecter au mme serveur lors des sessions suivantes. Le client peut transmettre ses donnes dauthentification au serveur, telles que son nom dutilisateur et son mot de passe, en format crypt. Toutes les donnes envoyes et reues pendant la connexion sont transfres de faon chiffre, ce qui les rend extrmement difficiles dchiffrer et lire. OpenSSH ncessite OpenSSL (openssl) qui installe de nombreuses bibliothques cryptographiques importantes qui aident OpenSSH chiffrer les communications.

Figure Scenario de connexion SSH

II.4. Serveur FTP :


FTP (File Transfert Protocol) est un protocole de transfert de fichiers travers un rseau. Il est le plus utilis gnralement pour tlcharger un dossier d'un serveur utilisant l'Internet ou pour envoyer un dossier un serveur. Le serveur FTP est la partie qui contient les fichiers et gre les utilisateurs, tout le monde peut en hberger un chez soi (du moment que le port 21(tcp) est ouvert sur le routeur, ou en modifiant le port par dfaut). Pour crer un serveur FTP il faut disposer dune adresse IP fixe ou un DNS dynamique avec une adresse IP dynamique. Parmi les serveurs FTP on trouve GProFTPd et PureAdmin qui ont une interface graphique, ProFTPd, PureFTPd et VsFTPd des serveurs en ligne de commande. VsFTPd est le plus scuris vue quil est conue pour avoir une scurit absolue.

II.5. Serveur X :
Offre un environnement graphique pour lutilisation et ladministration dun systme dexploitation Linux. Repose sur une architecture client serveur. Cest larchitecture X-Windows. Le serveur X est responsable de la collecte des informations concernant le matriel est leurs prsentations graphiques. Tandis que le client X se connecte au serveur X pour rcuprer les informations et les affichent lutilisateur. La communication entre le serveur et le client se fait localement via des sockets par TCP/IP. On citera quelques implmentations sous linux : XFree86 X.org

III.

Quelques dfinitions sur la scurit :

III.1. Scurit :
Situation dans laquelle quelquun, quelque chose n'est expos aucun danger, aucun risque d'agression physique, d'accident, de vol ou dtrioration .Situation de quelquun qui se sent l'abri du danger, qui est rassur

III.2. Vulnerabilit :
Faiblesse de la scurit dun systme qui lempche de remplir un ou plusieurs de ses objectifs de scurit. C'est--dire toute faiblesse qui pourrait tre exploite pour violer un systme ou les informations quil contient. Une vulnrabilit est une caractristique intrinsque dun systme dinformation. Elle peut tre due : Un dfaut de conception Une faiblesse dimplmentation dun des composants Un dfaut dexploitation (configuration, administration, utilisation)

III.3. Menace :
Une menace cest toute action ou vnement susceptible de porter prjudice la scurit. Cest une Violation potentielle de la scurit. La ralisation effective dune menace exploit une vulnrabilit.

III.4. Attaque :
Une attaque cest une tentative relle de porter atteinte la confidentialit, lintgrit, la disponibilit dun systme. Cest la concrtisation dune menace intentionnelle exploitant une vulnrabilit.

III.5. Intrusion :
Une intrusion cest la prise de contrle partielle ou totale dun systme distant.

III.6. Objectifs de la scurit :


La scurit informatique cest lensemble des moyens mis en uvre pour rduire la vulnrabilit dun systme contre les menaces accidentelles ou intentionnelles. Il convient d'identifier les exigences fondamentales en scurit informatique. Elles

caractrisent ce quoi s'attendent les utilisateurs de systmes informatiques en regard de la scurit. La scurit recouvre ainsi plusieurs aspects, les 3 grands classiques : C I A Confidentialit : Disponibilit et divulgation limites aux seules entits autorises, Exemple : Seuls lexpditeur et le destinataire dun message connaissent linformation. Intgrit : Absence daltration ou de destruction. Exemple : Vrification quun message na pas t modifi. Disponibilit (Availability) : Capacit rpondre un instant prcis, tre accessible dans des conditions dfinies de performance, dhoraires Exemple : les donnes sont accessibles au moment o on en a besoin (pas de dni de service pour une personne autorise).

Figure Les 3 grands aspects de la scurit

Authentification (Identification) : Vrification / validation dune identit dune entit (ex : Connatre de manire sre celui qui a envoy le message).Tandis que lidentification est laction de fournir son identit proclame (ex : nom dutilisateur). Non rpudiation : Impossibilit de nier avoir particip (ex : Lexpditeur dun message ne peut pas prtendre ne pas lavoir envoy). Anti-rejeu : Impossibilit de rejouer une squence dvnements ou dactions enregistrs (ex : On ne peut pas enregistrer les transmissions effectues lors

dune transaction entre deux entits et les rejouer pour provoquer une nouvelle transaction valide). Respect de la vie prive : Protection contre la dcouverte et la mauvaise utilisation de son identit (ex : Anonymat).

Conclusion :
Aprs avoir prsent les aborder dans le chapitre prcdent quelques vulnrabilits et outils de tests. Dans le prochain chapitre nous allons nous intresser au traitement de ces vulnrabilits et lexploitation de outils de teste pour remdier quelques anomalies.

Chapitre 2 :

Vulnrabilits et Outils de Test

Introduction :
Un systme Linux est comparable un labyrinthe avec plein de passages. Chaque passage reprsente une connexion inconnue et des ports dentres avec diffrents niveaux de scurit. Les diffrents moyens de communication (protocoles, programmes, ) sont lorigine de failles de scurit. En effet, pour communiquer, ils ouvrent des voies de communication qui, si elles ne sont pas bien contrles, scurises, peuvent reprsenter une porte dentre des intrusions et des attaques. Pour protger notre machine Linux des diffrents types d'attaques, il est essentiel de se constituer de vritables remparts autour de nos serveurs, de dfinir les diffrentes failles de notre systme, faire une recherche sur les outils de scurit de prfrence open source. Dans ce chapitre nous allons prsenter quelques vulnrabilits et aussi quelques outils de scurit.

I.

Vulnrabilit : I.1. Dfinitions :


Dans le domaine de la scurit informatique en gnrale, une vulnrabilit signifie une faiblesse dans un systme informatique qui permet un attaquant de porter atteinte l'intgrit de ce systme, c'est--dire son fonctionnement normal, la confidentialit et l'intgrit des donnes qu'il contient. On parle aussi de faille de scurit informatique. Ces vulnrabilits sont la consquence de faiblesses dans la conception, la mise en uvre ou l'utilisation d'un composant matriel ou logiciel du systme, mais il s'agit gnralement de l'exploitation de bugs logiciels. Dans la section suivante, nous allons tablir une classification des vulnrabilits.

I.2. Classification des vulnrabilits :


Lors de notre tude des vulnrabilits des serveurs debian, on sest heurt plusieurs types de dfaillances. On note celles lies une mauvaise configuration du serveur qui se posent lors dune mauvaise installation du systme dexploitation. Celles lies aux services qui se posent cause dune configuration par dfaut dfaillante ou bien des versions de services obsoltes. Et le dernier type de vulnrabilits est li une compromission, dune erreur systme ou bien un comportement anormal de la machine. En rsum, on citera les types de vulnrabilits suivantes : Vulnrabilits lies la configuration. Vulnrabilits lies aux services. Vulnrabilits lies une compromission.

On abordera ces types de vulnrabilits avec plus dtails dans le chapitre suivant.

II.

Outil de tests de vulnrabilit :


Dans cette partie, nous allons prsenter plusieurs outils de tests et daudits des vulnrabilits des distributions. La plupart de ces outils sont Open source. Toutefois, ils permettent de raliser un audit complet des machines et viter lutilisation des solutions propritaires assez onreuses.

II.1. Ping :
Packet INternet Groper, l'un des outils d'administration de rseau le plus connu. Il s'agit pourtant de l'un des outils les plus simples puisqu'il permet, grce l'envoi de paquets, de vrifier si une machine distante rpond et, par extension, qu'elle est accessible par le rseau. Ping s'appuie sur le protocole ICMP, permettant de diagnostiquer les conditions de transmissions. Il utilise ainsi deux types de messages du protocole (sur les 18 proposs par ICMP) :

Le type 0 correspondant une commande "echo request", mis par la machine source.

Le type 8 correspondant une commande "echo reply", mis.

II.2. Nmap :
Nmap (Network Mapper) est un outil open source d'exploration rseau et d'audit de scurit. Il a t conu pour rapidement scanner de grands rseaux. il utilise des paquets IP brut pour dterminer les htes actifs sur le rseau, les services offerts par htes, les systmes d'exploitation quils utilisent, les dispositifs de filtrage utiliss, ainsi que des douzaines d'autres caractristiques. NMAP peut effectuer une prise d'empreintes de quatre manires diffrentes : En rcuprant la bannire del'application, Sinon, en comparant la bannire avec un fichier de rfrence. Sinon, en testant une implmentation diffrente (Exemple, HTTP 1.1 au lieu d'HTTP 1.0). Sinon, en utilisant SSL.

L'information centrale de la sortie est la table des ports intressants . Cette table liste le numro de port et le protocole, le nom du service et son tat. L'tat est soit ouvert (open), filtr (filtered), ferm (closed) ou non-filtr (unfiltered). Ouvert : l'application de la machine cible est en coute de

paquets/connexions sur ce port. Filtr : un dispositif de filtrage ou un autre obstacle rseau bloque ce port, empchant ainsi Nmap de dterminer son etat. Ferms : pas dapplications en ecoute.

II.3. Metasploit :
Metasploit est un framework (open-source crit en Ruby) sur la scurit informatique qui propose aux chercheurs et aux pen-testers des informations sur des vulnrabilits, aide la pntration de systmes informatiss et au dveloppement de signatures pour les IDS. Il est conu pour aider faire de l'excution des exploits aussi simple que possible. Le framework a t conu pour tre le plus modulaire possible, pour encourager la rutilisation de code travers diffrents projets.

II.4. Nessus :
Nessus est un outil de scurit informatique. il permet de scanner une ou plusieurs machines. Il permet aussi de tester diffrentes attaques pour savoir si une ou plusieurs machines sont vulnrables. Il signale les faiblesses potentielles ou avres sur les machines testes. Ceci inclut, entre autres : Les services vulnrables des attaques permettant la prise de contrle de la machine, l'accs des informations sensibles (lecture de fichiers confidentiels par exemple), des dnis de service... Les fautes de configuration (relais de messagerie ouvert par exemple) Les patchs de scurit non appliqus, que les failles corriges soient exploitables ou non dans la configuration teste Les mots de passe par dfaut, quelques mots de passe communs, et l'absence de mots de passe sur certains comptes systmes. Nessus peut aussi appeler le programme externe Hydra pour attaquer les mots de passe l'aide d'un dictionnaire. Les services jugs faibles (on suggre par exemple de remplacer Telnet par SSH) Les dnis de service contre la pile TCP/IP. Une fois le paquet tlcharg sur votre disque dur, l'installer avec la commande suivante: sudo dpkg -i Nessus*.debce Qui donne par exemple comme rponse dans votre terminal # dpkg -i Nessus-4.4.0-ubuntu804_i386.deb(Reading database ... 19831 files and directoriescurrently installed.)Preparing to replace nessus 4.4.0 (using Nessus-

4.4.0-ubuntu810_i386.deb) ...Shutting down Nessus : .Unpacking replacement nessus ...Setting up nessus (4.4.0) ...nessusd (Nessus) 4.4.0. for Linuxi - Le fonctionnement de Nessus : Nessus permet de faire des tests dintrusion aussi bien interne quexterne. Les audits peuvent donc avoir lieu lintrieur dune entreprise ou lextrieur travers Internet laide dun poste connect au Web. Nessus balaye les ports dun serveur et recherche puis identifie les failles de vulnrabilit prsentes. Il indique les mthodes que peuvent utiliser les hackers pour sintroduire lintrieur du rseau audit. A la fin du balayage des ports, Nessus prsente la liste des failles de vulnrabilits et dans la majorit des cas, indique galement la faon dy remdier. Nessus est bas sur une architecture client / serveur qui permet de multiples configurations. En effet, nous pouvons placer le dmon de Nessus lextrieur du rseau sur lInternet afin deffectuer des sries de tests externes. Le client lui est lintrieur du rseau. Il permet de contrler le serveur et de configurer le serveur qui effectue lattaque proprement dite de la machine cible. Il est ainsi possible davoir une vision claire des services effectivement vulnrables partir dInternet.

Conclusion
Aprs avoir prsent quelques notions sur debian, ces services et la scurit en gnral, nous nous intressons dans le prochain chapitre aux vulnrabilits associes ces services et les outils de test qui permettent danalyser et dtecter les anomalies dans notre systme.

Chapitre 3 : Conception et Ralisation

Introduction :
Dans ce chapitre, nous allons dabord aborder les technologies utilises au cours de notre projet pour laudit et le test des vulnrabilits. Ensuite, nous allons dtailler les vulnrabilits identifies sur les serveurs en respectant une certaine classification quon adopt pour permettre une meilleure identification et traitements sur ces dernires et on prsentera des solutions qui permettront de corriger ces failles.

I.

Outils utiliss : I.1. Langage C++ :


Cest lun des langages le plus utilis au monde. Il est apprci pour ces performances et offre plus de facilits que son prdcesseur le langage C. De plus, le C++ nous permet dutiliser les fonctions systmes du C et facilite la recherche et le parcours des fichiers de configuration ainsi que la manipulation des chanes de caractres.

I.2. Debian :
Debian est une distribution GNU/Linux non commerciale, lance en 1993 par Ian Murdock avec le soutien de la Free Software Foundation. Elle a pour principal but de fournir un systme d'exploitation compos uniquement de logiciels libres. Elle est trs utilise sur les serveurs.

I.3. Vmware :
Cest un logiciel permettant la simulation de machine virtuelle. De ce fait, on peut simuler le fonctionnement de systme dexploitation comme Debian et dautre distribution Unix. Vmware permet llaboration de diffrentes distributions de serveur Debian, de cette manire on aura la possibilit de faire plusieurs tests et apporter des correctifs aux versions de serveur vulnrables.

II.

Traitement des vulnrabilits : II.1. Vulnrabilits lies la configuration : A. Test du grub:


Le fichier /etc/default/grub permet de dfinir ventuellement un mot de passe pour le lancement du serveur et configure laccs la console de rcupration systme en tant que root.

Une vulnrabilit peut-tre quun attaquant lance le serveur et parvient accder la console de rcupration. Ceci lui permet daccder aux ressources de la machine en tant que superutilisateur. Contre-mesure : Dans le fichier /etc/default/grub. Un mot de passe doit tre dfini en rajoutant la ligne suivante : password = definir un mot de passe De plus, on doit aussi dsactiver laccs la console de rcupration systme en rajoutant la ligne suivante : GRUB_DISABLE_LINUX_RECOVERY

B. Test dinittab :
Le fichier /etc/inittab dans linux est rattach au dmon init. Il permet de choisir quelle procdure est lance et quel niveau dexcution est attribu lutilisateur de la machine lors dmarrage du systme. Dans ce fichier, on trouve aussi les utilisateurs qui ont certaines permissions dexcution sur certaine fonction du systme dont le redmarrage de la machine lors du ctlr+alt+del. Ceci pose une vulnrabilit vidente lorsquun attaquent arrive obtenir une session utilisateur (ou un utilisateur malveillant). Cela lui permettra de bloquer le fonctionnement de la machine. Contre-mesure : Lors de la dcouverte dune vulnrabilit lie a inittab. On recommande le rajout du paramtre -a la ligne suivante : ca:12345:ctrlaltdel:/sbin/shutdown -t1 -r now et la creation dun fichier /etc/shutdown.allow dans lequel ladministrateur pour mettre les utilisateurs autoriss redmarrer la machine grce ctrl+alt+del.

C. Test du mode shadow :


Le mode shadow permet de cacher les mots de passe des utilisateurs de la machine. De ce fait, leur hach nest pas visible au public et lutilisateur de la machine.

Si ce mode nest pas activ, les mots de passe sont visible a tous les utilisateurs de la machine dans le fichier /etc/passswd. Ce qui reprsente une vulnrabilit. Quand ce mode est activ, le caractre x cache les mots de passe dans /etc/passwd et ils sont sauvegards et seul le superutilisateur peut les consulter. Lactivation du mode shadow est laiss au choix de ladministrateur lors de linstallation de la distribution.

D. Test de la version du noyau :


Une ancienne version dun noyau linux pour serveur debian reprsente une vulnrabilit vidente pour ce dernier. Un script vrifiant la version du noyau dun serveur est ncessaire pour se prvenir de ce genre de vulnrabilit. Contre-mesure : Lorsquon a un serveur avec un noyau Unix ancien. Une mise jour du noyau doit tre effectue grce au lutilitaire apt-get. Toutefois, une mise jour peut tre insuffisante, une compilation et installation dun nouveau noyau peut tre une opration intressante.

E. Test du partitionnement systme :


Un bon partitionnement du systme permet la machine doffrir de bonne performance lutilisateur. Mais aussi permet dviter des vulnrabilits de type dni de service en sparant la partition / des partitions des utilisateurs et temporaires. Une bonne rgle est de mettre larborescence / sur une partition et les arborescences suivantes /home, /tmp, /var/tmp sur une autre partition. Cela permet dviter un blocage de la machine lors dun remplissage excessif des partitions utilisateurs et temporaires.

Contre-mesure : Lorsquon a un serveur avec un mauvais partitionnement du systme. Une sauvegarde systme et un changement de partitionnement dans le fichier /etc/fstab avec une bonne configuration des partitions est ncessaire.

F. Test de la configuration rseau :


On peut modifier plusieurs fonctionnalits rseau dun serveur pour amliorer la scurit dune machine. Ces oprations sont possibles en envoyant des donnes via une commande echo par exemple vers les variables /proc du systme. Exemple dune manipulation : Paramtrer les rponses de la machine une requte icmp :

Exemples de commandes : echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_broadcasts Configurer les syncookies :

Eviter des attaques de type dni de service syn flood. echo 1 > /proc/sys/net/ipv4/tcp_syncookies On trouve la configuration rseau dune machine dans le fichier /etc/sysctl.conf.

G. Chiffrement de la partition swap :


La partition swap (lespace dchange) est une zone d'un disque dur faisant partie de la mmoire virtuelle. Elle sert vider la mmoire vive lorsquelle arrive la saturation. Chiffrement de la partition swap : Au moment de vidage de la mmoire, des donnes sensibles peuvent tre recopies sur disque (la partition swap). Si un attaquant arrive accder au disque, il aura accs aux donnes secrtes si la partition swap nest pas chiffre. De ce fait le chiffrement de la partition swap savre trs intressant pour assurer que les donnes de la RAM ne seront en aucun cas accessible par un attaquant.

Une partition peut tre chiffre par les outils cryptsetup, luks et pammount. Plusieurs solutions sont possibles : Gnration dune cl de chiffrement alatoire chaque dmarrage : Cette solution est la plus sure mais elle allonge le dmarrage et interdit lhibernation. Utilisation dune cl standard luks : Obligation de taper un mot de passe ou fournir un fichier cl chaque dmarrage. Utilisation dune cl drive dune autre partition : possibilit dhibernation et pas de mot de passe supplmentaire taper.

II.2. Vulnrabilits des services : II.2.1. Vulnrabilits du serveur Web :


Lors de notre tude des serveurs debian. On a tudi les vulnrabilits lies un serveur web particulier qui est Apache. On liste dans cette section quelques vulnrabilits dun serveur Apache :

A. Test n1:
Cette premire vulnrabilit consiste a cach la version dapache qui tourne sur le serveur. Dans le fichier /etc/apache2/conf.d/security. On vrifie les paramtres ServerSignature et ServerTokens. Contre-mesure : Si une vulnrabilit de ce type est dtect. On doit accder au fichier cit prcdemment et modifier les deux paramtres cits. ServerSignature doit tre mis sur Off et ServerTokens sur Prod.

B. Test n2:
Dans ce cas, on vrifie la version dapache qui tourne sur le serveur. On sait quune ancienne version dapache augmente le risque de vulnrabilit dun serveur. Contre-mesure : Lorsquune ancienne version dapache tourne sur un serveur. On doit imprativement mettre jour apache grce lutilitaire apt-get disponible sur debian.

C. Test n3:
Ce test permet davoir des informations sur les permissions et les protections dfinies par apache pour les rpertoires du serveur et notamment celui de la racine /. Le fichier ainsi cibl est /etc/apache2/sites-available/default. On y dfinit les permissions et les protections appliques sur les rpertoires. Contre-mesure : Dans le fichier de configuration, on doit trouver une balise de ce type : <Directory /> AllowOverride None </Directory> Ceci interdit l'utilisation des fichiers .htaccess dans tous les rpertoires et qui permettent de saffranchir des paramtres de scurit.

D. Test n4:
Ce test permet davoir des informations sur les permissions et les protections dfinies par apache pour le rpertoire web du serveur. Ce rpertoire par dfaut le /var/www. On doit configurer apache pour interdire le parcours des fichiers ainsi que le suivi des liens. On peut citer un exemple dune attaque : On a ces commandes : cd /; ln -s / index.html Si on accde lurl : http://localhost/ on russit parcourir toutes la racine. Contre-mesure : Dans le fichier de configuration, on doit trouver une balise de ce type : <Directory /> AllowOverride None Options Indexes Options FollowSymLinks </Directory>

II.2.2. Vulnrabilits du service SSH:


La configuration du service ssh dun serveur est paramtr dans le fichier configuration sshd_config qui se trouve dans le rpertoire /etc/ssh/. La scurit de ce service dpend de plusieurs paramtres. On citera : PermitRootLogin : doit tre no pour ne pas permettre les connexions en tant que superutilisateur. PermitEmptyPasswords : doit tre no pour empcher les mots de passe vide. AllowUsers : autorise certains utilisateurs avoir accs au service ssh. AllowGroups : autorise certains membres avoir accs au service ssh daprs leurs groupes. PasswordAuthentication : permet lutilisation de cl ssh sauvegardes dans le fichier ~/.ssh/authorized_keys. Protocole : doit tre 2 car la version 1 soufre dun dfaut de conception qui facilite le vole des mots de passe.

II.2.3. Vulnrabilits du service DNS :


Lors de notre tude dun service DNS, on a tudi les vulnrabilits lies au service BIND. La configuration du bind se trouve dans fichier /etc/bind/named.conf. On doit positionner plusieurs paramtres qui sont : allow-query, allowrecursive et version. On doit aussi chrooter bind pour atteindre un niveau maximal de scurit.

II.2.4. Vulnrabilits du service FTP :


Dans le cas ou le serveur offre un service ftp, on doit scuriser notre serveur ftp. La configuration du serveur ftp se trouve dans /etc/proftpd.conf. Une solution consiste a chroot ftp en rajoutant la ligne DefaultRoot ~ au fichier /etc/proftpd.

Pour viter les attaques de type dni de service ../../../. On doit rajouter la ligne suivante DenyFilter \*.*/ au fichier de configuration.

II.2.5. Vulnrabilits du service Xwindows:


Une solution est propose qui permet lchange entre le clientX et le serveur X. Ceci est ralis en fixant le paramtre ForwardX11 yes dans le fichier /etc/ssh/ssh_config et X11Forwarding aussi yes dans /etc/ssh/sshd.config. On doit aussi sassurer que si dans le cas ou aucun accs depuis une machine distante vers notre serveur X nest pas requis, lcoute sur un port TCP est dsactiv. On citera le cas de XFree ou on modifie le fichier /etc/X11/xdm/ Xservers.

II.3. Vulnrabilits lies une compromission : II.3.1. Test des excutables SetUID :
Un excutable ou bien shell possdant la proprit suid. Tout processus excutant cet excutable passe en mode superutilisateur (root). Ce qui implique quun fichier non autoris avec des proprits setuid reprsente une vulnrabilit pour le serveur. Une recherche de tous les fichiers ayant cette proprit doit tre effectue afin de dterminer les menaces potentielles. Contre-mesure : Lors de la dcouverte dun fichier Setuid. On doit sassurer du contenu et du rle du script ou de lexcutable pour le systme. Dans le cas dune excution dun script malicieux, une suppression doit tre effectue.

II.3.2. Test des signatures des paquets installs :


Lors de linstallation des paquets sur une distribution debian. Les signatures des paquets installs est sauvegard dans le rpertoire /var/lib/dpkg/info/* .

Loutil debsums permet le calcul des signatures de chaque paquet install sur le serveur est la compare avec la base sauvegarde dans le rpertoire cit prcdemment. Un rapport est gnr sur le fait quun paquet ou plusieurs ont des signatures qui ne sont pas les mmes que celle sauvegardes dans la base. On signale aussi la prsence de paquets installs qui nont pas de signature sauvegarde dans la base. Contre-mesure : Lors de la dcouverte dune altration de la signature de certains paquets. Il est vivement conseill de sassurer de la provenance du paquet. Une rinstallation du paquet mis en cause peut tre ncessaire.

II.3.3. Le Port Scanning :


Le port scanning est utilis pour surveiller ltat dun rseau, il permet de dceler si certains ports sont dans ltat LISTEN. Il est utilis par les administrateurs systmes pour dtecter si certains ports sont ouverts et les fermer en cas de besoin, mais aussi par les pirates pour les mmes raisons mais ceux-ci utiliseront ces ports ouverts pour sinfiltrer ou rcuprer des informations sur le systme. Le pirate doit tester chacun des ports de la machine les uns aprs les autres, pour protger les diffrents ports il faut savoir que tout systme possde 65536 ports TCP dont les 1024 premiers sont rservs des applications serveur lances par ladministrateur. Lattaquant envoie une demande de connexion chacun des ports de la machine et attend quil rponde, si celui-ci rpond cest quil est ouvert, il pourra donc par la suite essayer dtablir une connexion sur ces derniers. Il sagit la plupart du temps dune attaque de reconnaissance, elle est souvent suivie dune vritable intrusion. Nous allons voir les diffrentes techniques utilises pour scanner les ports dun systme.

II.3.4. Rootkits :
Les rootkits sont des malwares qui peuvent tre difficiles dmasquer et parfois, radiquer. En effet ils possdent deux caractristiques originales: D'une part ils modifient en profondeur le fonctionnement du noyau du systme d'exploitation. D'autre part ils se rendent invisibles ce systme d'exploitation.

Un rootkit peut tre dfini comme un programme malicieu qui se dissimule par diverses mthodes au sein mme du systme d'exploitation qu'ils dtournent un niveau lev, titre d'exemple le MBR constitue une cible merveilleuse pour prendre le contrle d'un ordinateur.

chkrootkit est un outil libre (licence GNU GPL) utilis pour tester si un systme UNIX n'a pas t compromis par un rootkit. Il permet de tracer une attaque et de rechercher la prsence d'un rootkit sur un systme Unix/Linux en vrifiant, si des fichiers excutables du systme ont t modifis, si la carte rseau est en mode promiscuous , et si un ou des vers LKM (Linux Kernel Module) sont prsents.

Pour une installation sous Debian avec aptitude : # aptitude install chkrootkit.

Conclusion :
Au travers de chapitre. Nous avons vu les outils utiliss ainsi que le traitement effectus pour la dtection et la prsentation de certaines contre-mesures qui permettront de corriger ces vulnrabilits.

CONCLUSION :

A lheure de lexplosion dinternet et lutilisation massive des services web. La ncessit dassurer une scurit daccs aux services pour les clients est absolument ncessaire. En effet, le risque li une compromission augmente de jour en jour sur internet, car nimporte qui aujourdhui avec un minimum de comptences informatiques peut devenir un pirate informatique. Le problme li la scurit informatique et quil faut un maximum de comptences et de comprhension des systmes informatiques pour assurer un niveau de scurit apprciable pour un service web donn. Au travers de ce projet. On cest familiaris avec les concepts de scurit de debian. De ce fait, on a appris a mieux administr un serveur debian et assurer un bon niveau de scurit. Il est vident quune bonne configuration dun serveur ne suffit pas assurer la scurit dun service web. Il est impratif quil soit associ au dveloppement dun site web scuris afin de garantir un bon niveau de scurit et fiabilit pour lutilisateur.