web application security
-
Upload
marcel-tchoulegheu -
Category
Internet
-
view
23 -
download
1
Transcript of web application security
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
DEDICACES
Sécurité des Applications Web - 1 -
A mes parents,Mr Njemou Yafa François et
Mme Njemou née Tchotchepoué Mongoué
Thérèse
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
REMERCIEMENTS
Je tiens à remercier ici les personnes qui ont contribué fortement à l’élaboration de la présente
œuvre :
Le seigneur JESUS CHRIST pour m’avoir toujours veillé sur moi, me montrer le bon
chemin, celui du travail et de la persévérance
Mr Arthur R T MANGAMTCHEUTH Directeur d’ISTDI pour m’avoir suivit aussi
bien tout au long de ma formation que pendant mon stage il a même été au cours de
cette année plus qu’un père pour moi.
Mr Alban Mba’a Tsamo pour m’avoir admis dans son institution, et mis à ma
disposition les moyens techniques et financières nécessaires.
Mes frères : Yafa Njemou Amédée, Mongoue Njemou Didier Stéphane, Djiya
Njemou Emeric Parfait
Mes Sœurs Elick Njemou Edwige, Tchoulegheu Njemou Judith , Nougoue
Njemou Berianne
Tous mes Camarades de promotion, plus particulièrement : Weladji Chastine, Ibotie
Gwladys, Daniel Ofam, Bitchoka Dominique, Joël Tsamo, Lemogo Donald,Yetna z
marcelle, Kemogne Nadine ….
A tous ceux de ma famille ou mes amis qui ont contribué de près ou de loin à ma
formation.
Enfin je rends hommage au Président et aux membres du Jury qui auront accepté
d’apprécier le présent travail et qui mettront en relief ses imperfections
Sécurité des Applications Web - 2 -
REMERCIEMENTS
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
SOMMAIRE
DEDICACES...........................................................................................................................................................1
REMERCIEMENTS...............................................................................................................................................2
SOMMAIRE............................................................................................................................................................3
INTRODUCTION...................................................................................................................................................4
1ERE PARTIE PRÉSENTATION DE LA SOCIÉTÉ PREMIERS PAS SARL..............................................5
A - PRÉSENTATION..............................................................................................................................................6B - STRUCTURE....................................................................................................................................................6C – PERSONNEL...................................................................................................................................................6D – RÔLES DU SERVICE TECHNIQUES................................................................................................................7
Le modèle de développement................................................................................................................7 L’implémentation..................................................................................................................................7 Simplicité d'utilisation :........................................................................................................................7 Délocalisation et mise à jour :..............................................................................................................8 Pluri média :..........................................................................................................................................8 Répartition multi usager :.....................................................................................................................8 Technologie...........................................................................................................................................8
E - BUDGET..........................................................................................................................................................9F - QUELQUES RÉFÉRENCES...............................................................................................................................9
2ÈME PARTIE : SECURITE DES APPLICATIONS WEB...............................................................................11
I - INTRODUCTION.............................................................................................................................................12II – QUELS SENS DONNER AU MOT SÉCURITÉ ?...............................................................................................12III - PRINCIPES FONDAMENTAUX DE LA SÉCURITÉ.........................................................................................13
Authentification..................................................................................................................................13 Autorisation.........................................................................................................................................13 Audit....................................................................................................................................................13 Confidentialité.....................................................................................................................................13 Intégrité...............................................................................................................................................14 Disponibilité........................................................................................................................................14
IV – MENACES, VULNÉRABILITÉ ET ATTAQUES.............................................................................................14A – Définitions..............................................................................................................................................14B – Top 10 des attaques et vulnérabilités des applications Web.................................................................14
A1 – Cross Site Scripting (XSS)....................................................................................................................15 A2 – Injection Flaws ......................................................................................................................................15 A3 – Malicious File Execution.......................................................................................................................15 A4 – Insecure Direct Object Reference........................................................................................................15 A5 – Cross Site Request Forgery (CSRF)....................................................................................................15 A6 – Information Leakage and Improper Error Handling........................................................................15 A7 – Broken Authentication and Session Management..............................................................................15 A8 – Insecure Cryptographic Storage..........................................................................................................15 A9 – Insecure Communications.....................................................................................................................16 A10 – Failure to Restrict URL Access..........................................................................................................16
V - COMMENT CRÉER UNE APPLICATION WEB SÉCURISÉE ?..........................................................................16 modélisation de la menace..................................................................................................................17 Sécuriser le réseau..............................................................................................................................17 Sécuriser l’hôte...................................................................................................................................18 Sécuriser l’application........................................................................................................................21
o Catégories de vulnérabilités de l’application...............................................................................................21VI – MÉTHODOLOGIES ET OUTILS POUR L’ÉVALUATION DE LA SÉCURITÉ DES APPLICATIONS..................24
A – Méthodologies........................................................................................................................................25B – Recherches préliminaires......................................................................................................................26C – Preparation finale..................................................................................................................................26D- Phase d’évaluation..................................................................................................................................26
Sécurité des Applications Web - 3 -
SOMMAIRE
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
E- Après evaluation......................................................................................................................................27F- Outils pour évaluer la sécurité des applications web.............................................................................27
1. Le navigateur..................................................................................................................................................272. Web application security Scanner.................................................................................................................274. HTTP Request Editor...................................................................................................................................305. HTTP Proxy....................................................................................................................................................31
CONCLUSION......................................................................................................................................................33
INDEX....................................................................................................................................................................35
Sécurité des Applications Web - 4 -
INTRODUCTION
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
INTRODUCTION
Au terme de la formation de Licence Professionnelle, les étudiants de
l’Institut Supérieure de Technologie et du Design (ISTDI) sont amenés à effectuer un
stage académique dans l’entreprise de leur choix pour toucher du doigt les réalités de
l’entreprise et d’acquérir des compétences professionnels dans un contexte réel. L’obtention
de notre stage s’est fait principalement par une demande de stage muni d’une
recommandation de l’ISTDI, et d’un certificat de scolarité ;toute fois il faut noté que sur la
multitude des demandes déposé dans les entreprises de Douala principalement l’accord
favorable de la société Premiers Pas Sarl n’a été possible qu’avec l’appuis de connaissances
personnelles. Nous avions pour objectif de mettre les compétences techniques et
professionnelles acquis au cours de notre formation au profit de l’entreprise et aussi pouvoir
approfondir nos compétences en technologies web , domaine que la société exerce avec
compétence.
Sécurité des Applications Web - 5 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
1ere Partie Présentation de la Société Premiers Pas Sarl
Sécurité des Applications Web - 6 -
1ere PARTIE : PRESENTATION DE LA SOCIETE PREMIERS PAS SARL
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
A - Présentation
La société Premier Pas est une Sarl - RC 2566 – N° Contr. M110400018811P spécialisée en
ingénierie informatique, conseils, e-commerce et les NTIC. Elle a été créée afin de répondre à un
besoin innovateur dans le domaine des Nouvelles Technologies de l’Information et de la
Communication. Son principal objectif est d’accompagner les entreprises dans la mise en place, la
maintenance et l’évolution de leur système d’information. Elle accorde par ailleurs un accent
particulier au développement du marketing via l’Internet. Nos prestations couvrent les trois axes
suivants :
○ Ingénierie des systèmes d’information (Logiciels de gestion Sage Saari : Comptabilité,
Facturation et paie),
○ Conception, développement et hébergement des sites Web,
○ Développement des boutiques et catalogues en ligne,
○ L'audit et les conseils informatiques.
○ Réponse aux appels d’offre en TIC ou en comptabilité et Gestion.
B - Structure
La société est principalement basée à Bonanjo, Premiers Pas S.A.R.L. Bonanjo 141, Rue de
la Motte Picquet, Tour Ex-ONCPB 6 ème étage porte 11. Elle est constituée de quatre (04)
principaux services :
La Direction qui coordonne toutes les activité de la société
Un service technique qui se charge du côté technique des services offerts
(développement, administration réseau …)
Un service commercial qui fait les prospectus et les offres de service et vend les
principaux services et produits de la société
Une vitrine Web [email protected] – http://www.premiers-pas.net pour la
présentation de la société et de ses services et aussi pour l’assistance et le support aux
clients et visiteurs.
C – Personnel
Premiers Pas est forte d’une équipe constituée de :○ Trois (03) ingénieurs systèmes et réseau ○ Un (01) ingénieur des Systèmes d'Information et d'aide à la décision ○ Deux (01) experts en comptabilité et fiscalité Camerounaise ○ Deux (05) développeurs web/application ○ Un (01) infographiste ○ Deux (02) traductrices (français/anglais/espagnole et français/allemand)
Sécurité des Applications Web - 7 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
○ Deux (02) commerciaux (BTS en communication d'entreprise et BTS en commerce international)
○ Trois (03) Stagiaires commerciaux et 02 stagiaires Développeur d’applications Web
D – Rôles du service Techniques
Le service technique étant constitué d’une équipe d’informaticien choisit pour
leur compétences ou recruté sous recommandation tierce .Le principale rôle du service est de
mettre en œuvre les moyens techniques pour répondre aux besoins des clients conformément
au cahier de charge ou à l’offre de service proposé.
Le modèle de développement
Quand nous réalisons une architecture générale d'applications Web, nous nous
servons le plus souvent d'un modèle MVC (en anglais Model View Controller).
Le plus grand avantage de l'utilisation de MVC consiste à séparer complètement les données
(et les règles qui les gèrent) de leur présentation. Grâce à cette démarche, il est possible de
présenter les mêmes objets (p. ex. liste des structures partenaires) dans le navigateur Web
comme PDF ou p. ex. RSS sans changer la logique liée au téléchargement ou à la
transformation de cette liste.
L’implémentation
L’implémentation de la méthode décrite plus haut, dans le cadre de ce projet
se fera à travers l’utilisation d’un CMS (Content Management System). Les systèmes de
gestion de contenu, sont une famille de logiciels de conception et de mise à jour dynamique
de site Web ou d'application multimédia. Ils donnent les avantages suivants :
Simplicité d'utilisation :
La mise à jour se fait à partir d'un éditeur en ligne de type Word de Microsoft Office ou
Writer d’Open Office. Tout utilisateur familier avec ce type de logiciel peut faire la mise à
jour de votre site (Les mises à jours ne demandent pas des compétences purement
informatiques).
Délocalisation et mise à jour :
Vous avez accès aux modifications de votre site Internet depuis n'importe quel endroit dans le
monde. L’accès aux mises à jours est protégé par un mot de passe.
Pluri média :
Sécurité des Applications Web - 8 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
Un stockage centralisé du contenu permet la réutilisation de ce celui-ci par un reformatage
selon les utilisations que l'on veut en faire : Affichage a l’écran, téléchargement, impression.
Répartition multi usager :
Plusieurs usagers peuvent travailler en commun sur le contenu du site grâce aux droits
d'utilisateurs protégés par mot de passe.
Les fonctions d’administration et de présentation étant de façon native déjà présente dans un
CMS comme le montre le Diagramme ci-dessous (Les blocs en gris), Les modules
spécifiques au projet devront être développés (Les blocs en couleurs sur le diagramme).
Noy
au d
u ge
stio
nnai
re d
e co
nten
u (C
OR
E)
Module d’administration d’edition de contenus(Content Management System Made Simple - CMS MS)
Gestion du contenu en
ligne
Catalogue de produits en
ligne
Présentations des Projtes
réaliséa
Autres Modules à développer
Gestion des statistiques
Gestion des indexations,
recherches et téléchargements
Gestion de la Struture
(Personnel et filiale) Base de donnees
Des utilisateurs Et autres modules
Modeles de pages(Templates suivant la charte graphique)
Elements de mise en forme(Fichier CSS)
Présentation (Intranet)
Technologie
Les sites web sont principalement développés dans un environnement LAMP .Cet
environnement allie
le système Linux (L),
le serveur Apache (A),
le SGBDR MySQL (M)
et le langage PHP (P).
Dans cette même logique dite de l'Open Source, l'ensemble des fichiers développés pour le
site Web est remis aux clients et il sera de son droit d'y apporter modifications et
améliorations.
NB : Le délai global du site est fixé à 35 jours
E - Budget
Ce Prototype de budget est le celui d’une offre de site Web
Sécurité des Applications Web - 9 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
ref Description Unite Qté PU PT Conception et développement
1 · Planification et gestion du projet Forfait 50 000 2 · Consultation des utilisateurs (SFA) homme/ jour 0 50 000 0 3 · Contenu et rédaction (SFA) homme/ jour 0 50 000 0 4 · Photos et droits d'utilisation (SFA) Forfait 0 200 000 0 5 · Conception graphique homme/ jour 3 50 000 150 000 6 · Programmation Web homme/ jour 2 50 000 100 000 7 · Licence d’utilisation du logiciel Gratuit 8 · Tests d’utilisation homme/ jour 1 50 000 50 000 9 · Saisie de données (SFA) homme/ jour 0 50 000 0
Total développement 350 000
Hébergement promotion et maintenance
10 · Referencement Année 0 350 000 0
11 · Hébergement, nom de domiane et Adresses email illimité année 0 199 000 0
12 · Mise à jour du contenu Fait par SFA
13 · Maintenance et soutien technique année 0 300 000 0
14 · Formation Gratuit 1 100 000 0
Total hébergement promotion et maintenance 0
· Frais administratifs et divers Forfait 0 0
Total 350 000 Total HT 350 000 TVA (%) 19.25 67 375 Total TTC 417 375
Conditions de règlement :
50% au lancement du projet
50% à la fin.
F - Quelques Références
http://www.premiers-pas.net
Site institutionnel de Premiers Pas. Développé et hébergé pas Premiers Pas.
http://www.camer-auto.com
Site de publication des annonces de vente de voiture d’occasion au cameroun.
http://www.beryo-inter.com
Site d’une PME Douala.
Sécurité des Applications Web - 10 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
http://www.missmamakilo.com
Site camerounais de l’élection des femmes de fortes corpulences
http://cfao-cf.premierspas.biz
Site du Centre de formation de CFAO Technologies Douala.
http://www.somcosarl.com
http://freecard.premierspas.biz
Site d’une PME de Douala
Développé et hébergé par Premiers Pas. Site en phase de construction
http://lageneinfo.premierspas.biz
Site d’une PME de Douala
Développé et hébergé par Premiers Pas. Site en phase de construction
http://www.ac3l.cm
Site d’une association camerounaise des utilisateurs de Linux
http://www.piposfoot.com
Site d’une Association de Football de Douala
http://minrex.premierspas.biz/
Site du Ministère des Relations Extérieurs du Cameroun
Sécurité des Applications Web - 11 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
2ème PARTIE : SECURITE DES APPLICATIONS
WEB
Sécurité des Applications Web - 12 -
2ème PARTIE : SECURITE DES APPLICATIONS WEB
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
I - Introduction
Lorsqu’il est question de sécurité des applications web, on pense immédiatement à ces pirates
qui endommagent les sites web, volent des numéros de cartes de crédit et bombardent les
sites d’attaques de refus de services. Il est fréquent aussi de penser aux virus aux chevaux de
Troie et aux vers. Ce sont là des types de problèmes le plus largement évoqué car ils
représentent quelques-unes des menaces les plus importantes auxquelles sont confrontées les
applications web actuelles. Mais ils ne sont pas les seuls. Les menaces internes dues à des
administrateurs malfaisants, des employés hostiles et des utilisateurs occasionnels qui tombent
par une erreur sur des données sensibles représente un risque non négligeable. Le plus gros
problème est peut-être l’ignorance.
La solution pour assurer la sécurité d’une application web dépasse la technologie .Elle
suppose un processus progressif d’implication des personnes et de recours à certaines
pratiques.
II – Quels sens donner au mot sécurité ?
« Nous sommes sécurisé Nous avons un pare-feu »Le malentendu est courant ; tout dépend
de la menace .Par exemple un pare –feu ne peut détecter les entrées malveillantes transmise à
votre application web ou encor détecter un utilisateur malveillant qui dispose des accès direct
à votre application.
Les pare-feu ont – ils une place à occupé dans le processus de sécurité ? Naturellement Les
pare-feu sont des idéaux pour bloquer les ports .Certains examinent les communications et
peuvent offrir une protection très élaborée. En fait, ils font partie intégrante de votre sécurité,
mais ne constituent pas à eux seuls une solution complète.
La sécurité est essentiellement destinée à protéger les ressources .Celles-ci peuvent être des
éléments tangibles, comme une page web ou votre base de donnés de clients, ou plus abstraits,
tels que la réputation de votre société.
La sécurité n’est pas une destination, elle est un chemin à parcourir. Au fur et à mesure que
nous analysons notre infrastructure web, nous identifiez les menaces potentielles et nous
Sécurité des Applications Web - 13 -
I - INTRODUCTION
II - Quel sens donner au Mot « sécurité » ?
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
réalisons alors que chacune d’elles présente un degré de risque .La sécurité consiste à gérer le
risque, et à mettre en œuvre les contre-mesures efficaces.
III - Principes fondamentaux de la sécurité
Authentification
L’authentification pose la question : qui êtes – vous ?C’est le processus visant à identifier
de façon unique les clients de vos applications et services,qui peuvent être des utilisateurs
finals,d’autres services ,des processus ou des ordinateurs .
Autorisation
L’autorisation pose la question : que pouvez faire ? Il s’agit de déterminer les ressources
et les opérations que le client authentifié est autorisé à consulter ou à effectuer. Les
ressources englobent des fichiers ,des bases de données ,des tables ,des lignes ,etc.…,ainsi
que des ressources dites système telle que les clés de registre et des données de
configuration . Les opérations incluent l’exécution de transactions telles que l’achat d’un
produit, le transfert d’argent d’un compte à un autre ou l’augmentation du taux de crédit
d’un client.
Audit
Un audit et une journalisation efficaces sont essentiels pour la non répudiation .Cette
dernière garantit qu’un utilisateur ne peut pas refuser l’exécution d’une opération ou le
déclenchement d’une transaction .Par exemple, dans un système de e-commerce, des
mécanismes de non répudiation sont nécessaires pour s’assurer que le consommateur ne
peut pas refuser la commande de 100 exemplaires d’un produit donné.
Confidentialité
La confidentialité (Privacy en anglais) permet de s’assurer que les données restent privées
et confidentielles et qu’elles ne peuvent pas être vues ou détournée par des utilisateurs non
autorisés ou indiscrets qui surveillent le flux du trafic sur un réseau. Le cryptage ou les
listes de contrôle (ACL) sont employés pour renforcer la confidentialité
Intégrité
L’intégré garantit que les données sont protégés contre toute modification accidentelle ou
malveillante. Comme la confidentialité, l’intégrité est une préoccupation majeure,
notamment pour les données transmises sur des réseaux. L’intégrité des données en transit
Sécurité des Applications Web - 14 -
III - Principes fondamentaux de la sécurité
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
est généralement assurée par des techniques de hachage et des codes d’authentification
des messages.
Disponibilité
En termes de sécurité, on entend par disponibilité la capacité pour les systèmes de rester
disponibles les utilisateurs légitimes. Le but de nombreux auteurs d’attaques par refus de
service est de détériorer une application ou de créer une ou de créer une saturation telle
que les utilisateurs ne puissent plus y accéder.
IV – Menaces, Vulnérabilité et Attaques
A – Définitions
Une menace est un événement potentiel, malveillant ou autre, qui pourrait nuire à une
ressource est menace.
Une vulnérabilité est une faiblesse qui rend possible une menace. Cette possibilité peut être
due à une mauvaise conception, à des erreurs de configuration ou à des techniques de codage
inappropriées et non fiables .Une validation de la saisie insuffisante est un exemple de
vulnérabilité de la couche application susceptible d’aboutir à des attaques au niveau des
entrées.
Une attaque est une action qui exploite une vulnérabilité ou exécute une menace .Il s’agit
par exemple d’envoyer des données d’entrée malveillantes à une application ou de saturer un
réseau en vue d’entraîner un refus de service.
Une menace est donc un évènement potentiel qui peut avoir un impact négatif sur une
ressource, tandis qu’une attaque réussie exploite les vulnérabilités de votre système.
B – Top 10 des attaques et vulnérabilités des applications Web
D’après le rapport de OWASP ( Open Web Application Security Project ) 2007 on
dénombre 10 principales vulnérabilité critiques et auquel toute sécurité d’application web
doit y faire face. Ce sont :
A1 – Cross Site Scripting (XSS)
Les défauts d’XSS adviennent lorsqu’une application web prend les informations entrées
par un utilisateur et l’envoi au navigateur sans au préalable les avoir validé ou encodes. Il
Sécurité des Applications Web - 15 -
IV – Menaces, Vulnérabilité et Attaques
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
permet ainsi aux assaillants de pouvoir exécuté leur propre script sur le navigateur de la
victimes , de pirater sa session,de défaire un site d’y introduire des vers…
A2 – Injection Flaws .
Le plus souvent connu sous le nom de « SQL injection » sont courant dans les
applications web . Il advient lorsque un formulaire de l’application nécessite un paramètre
pour exécuter une requête ; Le pirate peut donc simplement inscrire comme paramètre une
requêtte SQL pour afficher,modifier ou supprimer les données.
A3 – Malicious File Execution
Il est courant que lorsque une application autorise l’envoi de fichier aux utilisateurs ,ceux-
ci peuvent inclure des codes hostiles ceci entraîne une attaque dévastatrice côté serveur .
Les systèmes PHP,XML et les framework sont souvent les plus vulnérables à ce type
d’attaque
A4 – Insecure Direct Object Reference
Lorsque le développeur spécifie une référence à un objet via URL, chemin relative ou
absolue visible, il est possible à l’attaquer de manipuler ces informations afin d’accéder
aux parties non autorisé du site ou de l’application
A5 – Cross Site Request Forgery (CSRF)
Une attaque CSRF envoit au navigateur de la victim une action pré-authentifiée hostile à
une application vulnérable qui,oblige ainsi la victim à effectuer une action au bénéfice de
l’attaquer
A6 – Information Leakage and Improper Error Handling
Une application peut inintelligemment afficher des erreurs avec des informations
particulièrement intéressante pour des pirates qui l’exploitent
A7 – Broken Authentication and Session Management
Il s’agit ici d’usurpation d’identité ou d’authentification pour des sessions mal configurer
A8 – Insecure Cryptographic Storage
Lorsque des informations confidentielle commme les numéros de carte de crédit ne sont
pas crypté lors des transferts, ils peuvent être interceptés au cours de ce type d’attaque
A9 – Insecure Communications
A10 – Failure to Restrict URL Access
Sécurité des Applications Web - 16 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
V - Comment créer une application web sécurisée ?
Pour créer des applications web sécurisées, il convient d’adopter une approche globale et
d’appliquer la sécurité dans les trois couches comme le montre la figure 5.1
Fig. 5.1 approche globale de la sécurité
Sécurité des Applications Web - 17 -
V - Comment créer une application web
sécurisée
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
Il n’est pas possible de concevoir et de créer une application web sécurisée tant qu’on ignore
les menaces. Un processus toujours plus important qu’il est conseiller d’intégrer dans la phase
de conception de l’application est la modélisation de la menace.
modélisation de la menace
L’objectif de la modélisation de la menace est d’analyser l’architecture et la conception de
l’application et d’identifier les domaines potentiellement vulnérables qui permettraient à
un utilisateur même par erreur, ou à un pirate mal intentionné, de compromettre la sécurité
de votre système.
Une fois que les menaces sont connus, nous devrons garder à l’esprit, lors de la phase de
conception, l’objectif de sécurité en appliquant les principes éprouvé de longue date (ISO,
MEHARI …).Les développeurs quant à eux devront appliquer des techniques de codages
sûres afin d’élaborer des solutions sécurisés, robustes et résistantes aux attaques. La
conception et le développement de la partie logicielle de la couche application doivent être
étayés par une configuration fiabilisée du réseau, de l’hôte et de l’application sur les
serveurs où le logiciel sera déployé.
Sécuriser le réseau
Une application web sécurisée s’appuie sur une infrastructure de réseau sécurisée. Cette
infrastructure comprend des routeurs, des pare-feu et des commutateurs. Le rôle du réseau
sécurisé n’est pas seulement de se protéger contre les attaques TCP / IP, mais aussi de
mettre en œuvre des contre-mesures telles que l’instauration d’interfaces administratives
sécurisées et de mots de passe forts. Le réseau sécurisé doit également assurer l’intégrité
du trafic qu’il achemine. Si au niveau de la couche réseau,,nous connaissons des ports des
protocoles ou une voie de communication risquant être utilisés à des fins nuisibles,nous
donc,à ce niveau contrer les menaces possibles .
La sécurité du réseau peut être divisé en catégories de composants comme illustré dans le
tableau 5.2
Composant Description
Routeur Les routeurs constituent la première enceinte
extérieure de notre réseau .Ils acheminent des
paquets de données vers les ports et les
protocoles utilisés par nos applications. Les
Sécurité des Applications Web - 18 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
vulnérabilités TCP/IP courantes sont
bloquées à ce niveau.
Pare-feu
Les pare-feu bloquent les protocoles et les
ports que l’application n’utilise pas. En outre,
ils garantissent un trafic sécurisé sur le
réseau en mettant en place un filtrage
spécifique à l’application de façon à bloquer
les communications malveillantes.
Commutateur
Les commutateurs servent à séparer des
segments de réseau. Ils sont fréquemment
négligés et on leur accorde une trop grande
confiance.
Sécuriser l’hôte
En ce qui concerne la sécurisation d’un hôte, qu’il s’agisse de votre web, d’applications
ou de base de données, ce guide classe les différents paramètres de configurations
sécurisées en plusieurs catégories. Grâces à cette approche, nous pouvons nous attacher à
une catégorie particulière et examiner la sécurité, ou appliquer des paramètres de sécurité
en relation avec cette catégorie spécifique. Lorsque nous installons un nouveau logiciel
sur nos serveurs en adoptant cette optique, nous pouvons par exemple évaluer l’impact de
nos paramètres de sécurité. Par exemple, examiner les questions suivantes : Le logiciel
créé –t-il de nouveaux comptes ? Ajoute-t-il des services par défaut ? À quel titre les
services s’exécute – t - ils ? Des mappages de script sont –ils créés ?
La figure 5.2 montre des diverses catégories utilisées dans la partie IV de ce Rapport,
Fig. 5.3 Catégories de sécurité de l’hôte
Sécurité des Applications Web - 19 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
Avec le cadre de référence fourni par ces catégories, nous pouvons de façon de façon
systématique évaluer la configuration de notre serveur au lieu d’appliquer des paramètres
de sécurité de manière ponctuelle et aléatoire. Ces catégories sont décrites dans le tableau
5.2
Tableau 5.2 Description des catégories de configuration de l’hôte
Catégorie Description
Correctifs et mise à jour
Bon nombre de risques élevés en matière de
sécurité existent du fait que les vulnérabilités
sont largement publiées et connues. Lorsque
de nouvelles vulnérabilités sont découvertes,
le code d’exploitation paraît souvent sur
Internet dans les heures qui suivent la
première attaque réussie. L’installation des
correctifs et des mises à jour du logiciel des
serveurs est donc la première étape de la
sécurisation. Si nous négligeons, nous nous
exposons d’avantage aux risques d’attaque et
de réception de code malveillant.
Services
L’ensemble des services est déterminé par le
rôle du serveur et les applications qu’il
héberge. En désactivant les services inutiles
et inutilisés, nous réduisons rapidement et
facilement les points de vulnérabilité
potentiels.
Protocoles
Pour réduire la zone exposée aux attaques et
limiter les possibilités offertes aux pirates,
désactiver tous les protocoles réseau inutiles
ou inutilisés.
Comptes Nous devons retreindre au strict nécessaire le
nombre des comptes de services et
d’utilisateurs accessibles depuis un serveur.
De plus, nous devons mettre en place des
stratégies de comptes appropriés, comme la
Sécurité des Applications Web - 20 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
définition de mots de passe forts.
Fichiers et répertoires
Les fichiers et les répertoires doivent être
sécurisés à l’aide d’autorisations NTFS
limitées qui permettent l’accès qu’aux
comptes utilisateurs et services Microsoft
Windows nécessaires
Partages
Tous les partages de fichiers inutiles, y
compris les partages d’administration par
défaut s’ils ne sont pas indispensables,
doivent être supprimés. Sécurisez les
partages restants en définissant des
autorisations NTFS limitées
Ports
Les services qui s’exécutent sur un serveur
écoutent sur des ports spécifiques en vue de
répondre aux requêtes entrantes. Les ports
ouverts sur un serveur doivent être connus et
régulièrement contrôlés afin de garantir
qu’un service non sécurisé n’est pas en
écoute et disponible pour une
communication. Dans le pire des scénarios,
un port en écoute est détecté alors qu’il n’a
pas été ouvert par un administrateur.
Audit et journalisation
L’audit est d’une aide essentielle pour
identifier les intrus ou les attaques en cours.
La journalisation s’avère utile pour fournir
des informations valides lorsqu’il s’agit de
déterminer comment a eu lieu l’attaque ou
l’intrusion.
Registre
De nombreux paramètres liés à la sécurité
sont gérés dans le registre dans les systèmes
Windows, Il faudrait donc appliqués des
listes ACL Windows limités et en interdisant
l’administration du registre à distance
Sécurité des Applications Web - 21 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
Sécuriser l’application
Nous avons examiné et analysé les principaux problèmes de sécurité dans de nombreuses
applications web, il se dégage un modèle de problèmes .Il suffit d’organiser ces derniers
en catégories pour pouvoir ainsi les traiter de façon systématique. Ces ensembles de
problèmes correspondent aux catégories de vulnérabilités de notre application.
o Catégories de vulnérabilités de l’application
Comment mieux mesurer la sécurité d’un système qu’en évaluant ses points faibles
potentiels ? Pour mesurer la résistance des applications on doit évaluer les
catégories générales de vulnérabilité des applications. Ce faisant nous devons
pouvoir créer des profils de sécurité des applications et les utiliser pour déterminer
l’efficacité de la sécurité d’une application particulière.
Ces catégories sont utilisées comme cadre de référence .Du fait qu’elles
représentent les domaines dans lesquels les erreurs de sécurité sont le plus souvent
commises, elles permettent d’illustrer les conseils destinés aux développeurs et aux
architectes. Elles servent aussi à évaluer la sécurité d’une application web Grâce à
elles, nous pouvons nous concentrer en toute cohérence sur les choix déterminants
de conception et de mise en œuvre qui affectent la sécurité de nos applications. Les
catégories de vulnérabilités des applications sont décrites dans le tableau 5.3
Sécurité des Applications Web - 22 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
Tableau 1.3 catégories de vulnérabilité des applications
Tableau 2 Tableau récapitulatif des principes de sécurité
Sécurité des Applications Web - 23 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
Sécurité des Applications Web - 24 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
VI – Méthodologies et outils pour l’évaluation de la sécurité des applications
L’évaluation de la sécurité d’un site web est une étape cruciale dans le cycle du
développement de toute application web .Ce processus doit être effectuer avec la même
Sécurité des Applications Web - 25 -
VI – Méthodologies et outils pour l’évaluation de
la sécurité des applications
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
approche que tous les autres test (Test Unité, Assurance qualité …).Une bonne documentation
de la méthodologie est en effet nécessaire et dans la plupart du temps l’utilisation des outils de
tes automatisés accélère le processus d’évaluation de l’application.
A – Méthodologies
Interview des utilisateurs
Il est impérative que le responsable de la sécurité de l’application fasse lui-même
l’interview ou alors que celle – ci soit faite par une tierce personne (développeur,
administrateur, gestionnaire projet …) et que les informations de fonctionnement et les
exigence en matière de sécurité soit collecté et remis au responsable sécurité. L’évaluation
du site étant bien sur ordonné le plus souvent par le client soucieux de la confidentialité et
la fiabilité des ses données les plus sensibles. L’interview doit avoir pour objectif de
récolter dans la mesure du possible toutes les informations nécessaires au processus
d’évaluation :
La date le lieu et l’heure de l’évaluation
L’ URL du site (Uniform Ressource Locator)
Les limites de patch de navigation autorisé par l’application web
Quelles parties de l’application seront évalués et testé ? quelles parties ne le seront
pas ?
Objectif de l’évaluation et test ?
Type du serveur et version
Type du serveur de donnés et version
Technologies additionnelles utilisées (php, asp, jsp …)
L’application est ‘elle protégée par un pare-feu
Informations sur les comptes de test
B – Recherches préliminaires
Après avoir collecté le maximum d’informations, de l’application web web, une recherche
préliminaires sur Internet sur les possibles vulnérabilités des produits tiers utilisés pour
développer l’application. Il existe à cet effet de nombreuses sources fiables d’information sur
le net :
http://www.cert.org
Base nationale des vulnérabilité : http://nvd.nist.gov/
CVE (Commun Vulnérability en exposures) : http://cve.mitre.org/
C – Preparation finale
Sécurité des Applications Web - 26 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
A ce stade, la personne responsable des test et de l’évaluation doit validé la date et l’heure du
processus de validation, il doit préparé un prototype de document contenant les différents test
et point de son intervention ; Enfin il doit se munir des outils (voir partie D) qui lui seront
nécessaire pour l’évaluation.
D- Phase d’évaluation
Notifié au propriétaire du site web que l’évaluation est sur le point de commencer
Il faudra tout savoir sur l’application, le parcourir avec plusieurs navigateurs,
comprendre sa structure, les scripts et leur rôle dans le flux des données.
Extraire les informations sur la technologie utilisé (langage de programmation, plat
form,…)
Décrire et comprendre le plan du site (qui sera ajouté dans le rapport)
Configurer le scanneur d’application web et l’exécuter
Si besoin se pose, utiliser les techniques de test et d’évaluations manuelles
Interpréter les résultats du scanner (et éventuelle ment des autres test)
Attaquer l’application grâce aux failles découvertes pour confirmer la vulnérabilité
Recommencer ce processus sur toutes les grandes parties de l’application jusqu’à ce
que les tests soient terminés
E- Après evaluation
Créer le rapport final de l’évaluation. Prendre les captures d’écran si possible pour illustrer le comportement de
l’application faces à une attaque précise Notifier le propriétaire de l’application web et du site web que l’évaluation
est terminéeF- Outils pour évaluer la sécurité des applications web
1. Le navigateur
C’est le premier outil avec lequel on peut apprécier le bon fonctionnement de
l’application. Le test un site ou une application web via navigateur se fait en tapant des url
erronés ou inattendu, en envoyant les données par requêtes « POST » de formulaire ; en
Testant les script de validation (ex ; java script). Des extensions de navigateurs peuvent
être très utiles pour l’analyse de l’application comme le DOM inspector
Sécurité des Applications Web - 27 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
Figure 1.4 l'outil dom inspector en action
2. Web application security Scanner
Ce logiciel est utilise pour accéléré le processus de localisation des vulnérabilités des
applications web. Aujourd’hui les applications web sont extrêmement complexes et
contiennent des milliers de scripts et de paramètres. Le scanner automatique quand à lui,
peut parcourir le site ou l’application web plus rapidement qu’un homme, et couvrir tout
le site web en quelques minutes seulement. Et on peut ainsi localiser les vulnérabilités les
plus courantes comme le Cross Scripting, SQL Injection, Buffer overflow, etc. Il parcours
toute l’application web et analyse sa structure (spidering), les scripts, les formulaires et
paramètres et envoi des tests à l’application. Ces tests sont validés conformément aux
règles prédéfinis.A la fin du scan de l’application, un rapport est présenté à l’utilisateur
Configuration du logiciel de scan automatique
Pour pouvoir trouver tous les problèmes de l’application, il est impératif que
le scanner traverse tout le site Ce processus est propre à l’application qui
subira le test : voici quelques configurations cruciales pour le scan complet et
objectif du site :
Starting point URL : la page principale de l’application
Sécurité des Applications Web - 28 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
Application path limit : spécifier quels parties du site doivent être inclues ou
exclues
Crawling depth : profondeur de parcours durant le scan
Redundant path limit : spécifie le nombre de liens commun au même
ressource
Amount links to crawl : définit le nombre de liens à visiter
Crawling algorithm: on a le choix entre BFS (breadth first search) ou DFS
(depth first search). BFS est l’algorithme le plus utilise mai dans certains cas
DFS est requis (cas des application qui requiert à une personne de spécifier le
flux des actions)
Automatic form filler configuration : Le plus part des scanneurs
professionnels incluse des remplisseurs automatiques de formulaires qui envoi
des valeurs réelles au formulaire comme un utilisateur humain pourrait le faire.
Pour le faire fonctionner on doit remplir préalablement certains paramètres
comme email, login, mot de pass etc. Le mauvais paramétrage de cette partie
pourrait entraîné une partie de l’application non scanner
Exclude file types : Certains types de fichiers à très grande capacité doivent
être exclues du téléchargement lors du parcours du site.
Communication timeout: Puisque certains sites web répondent plus
lentement que les autres il est donc crucial que nous configurons un délai
d’attente adéquat de façon à ce que le scanner analyse toutes les pages sans en
exclure d’autres pour délai d’attente trop long.
Crawler Proxy settings : à configurer si on accède à l’application web via un
serveur Proxy
Authentication credentials : Dans le cas où une authentification HTTP est
requise
Client-side certificates : Pour les applications web qui requiert un certificat de
sécurité
Sécurité des Applications Web - 29 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
Figure 2 configuration du web application security scanner
3. Session Management : La plupart des applications web utilise des cookies pour
maintenir les sessions d’utilisateurs. Il faut donc définir les paramètres de cookies si
ceux – ci sont utilisés, ou encor configurer les log de parcours des utilisateurs
enregistré de l’application ou encor configurer les sessions si ceux-ci sont utilisés.
Sécurité des Applications Web - 30 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
Figure 3 configuration de session
4. HTTP Request Editor
Il est parfois requis lors de l’audit d’un site web de configurer les requêtes http lorsque le
navigateur n’offre pas ce genre de manipulations. Nous pourrons par exemple
Envoyer des requêtes http sans restriction au model de sécurité du navigateur web
Tester les requêtes non faisable par un navigateur web (manipuler http header et http
referer header)
Tester les requêtes qui requiert des encryptions SSL
…
Les résultats de ces manipulations sont visibles sur le rapport d’analyse en texte brut ou en
Html
Sécurité des Applications Web - 31 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
Figure 4 http request editor
5. HTTP Proxy
On doit pendant la phase de test de vulnérabilité d’un site web intercepter les requêtes et
les réponse http avant qu’il n’atteigne leur cible. Ce logiciel nous permettra alors lorsqu’il
est bien configuré de le faire automatiquement. Ainsi il faut spécifier les limitations
navigateurs, circonscrire les scripts côté client et les validations d’entrée (exemple : java
script) enregistrer les log http, créer les règles automatique qui manipuleront certaines
requêtes http.
Sécurité des Applications Web - 32 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
Figure 5 http Proxy
Sécurité des Applications Web - 33 -
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
CONCLUSION
La société Premiers pas SARL, se voulant leader dans le développement et la fourniture de
services et d’application web accorde une place très important à la sécurité de ces
applications afin de préserver no seulement l’intégrité, la fiabilité et la disponibilité des
donnés sur les clients et visiteurs mai aussi et même surtout de sauver leur en étant une
référence en matière de sécurité. Il nous a été confié au cour du stage hors mis le
développement des applications web, de mettre en œuvre des moyens pour garantir au mieux
la sécurité des applications web développé par le service technique. Nous avons étudié les
principales menaces et donné les contres mesures possibles tout ce ci, associé à la politique de
sécurité globale de l’entreprise et le model OSI de sécurité tout en respectant les standard
internationaux. Le processus d’évaluation, d’audit, de profilage et de test de la sécurité des
applications est très complexe et doit suivre une méthode d’approche semblable aux autres
méthodes d’analyses logicielles avec méthodologie, des procédures de test, des outils d’aides,
du flair et beaucoup de connaissance et d’expérience.
METHODOLOGIES & TOOLS FOR WEB APPLICATION SECURITY
Sécurité des Applications Web - 34 -
CONCLUSION
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
Bibliographie
DOCUMENTS [ALS1] Alshanetsky, I. “php|architect's Guide to PHP Security”, ISBN 0973862106
McGraw.Hill.Hacking.Exposed.Web.Applications.iNT.eBook-DDU
methodologies & tools for web application security assessment ORY SEGAL, A whitepaper
from Watchfire
BAI1+ Baier, D., “Developing more secure ASP.NET 2.0 Applications”, ISBN 978-0-7356-
2331-6
[GAL1] Gallagher T., Landauer L., Jeffries B., "Hunting Security Bugs", Microsoft Press,
ISBN 073562187X
[GRO1] Fogie, Grossman, Hansen, Rager, “Cross Site Scripting Attacks: XSS Exploits and
Defense”, ISBN 1597491543
[HOW1] Howard M., Lipner S., "The Security Development Lifecycle", Microsoft Press, ISBN
0735622140
[SCH1] Schneier B., "Practical Cryptography", Wiley, ISBN 047122894X
SHI1+ Shiflett, C., “Essential PHP Security”, ISBN 059600656X
[WYS1] Wysopal et al, The Art of Software Security Testing: Identifying Software Security
Flaws, ISBN 0321304861
Google Hacking for Penetration Testers" by Johnny Long, from BlackHat Briefings, Europe
2005
Sites Web
Web Application Threat Classification (WASC project):
http://www.webappsec.org/projects/threat/
Web Security Glossary (WASC project): http://www.webappsec.org/projects/glossary/
Watchfire Security Zone portal: http://www.watchfire.com/securityzone/default.aspx
Web Application News (CGISecurity.net): http://www.cgisecurity.net/
OWASP, http://www.owasp.org
MITRE, Common Weakness Enumeration – Vulnerability Trends,
http://cwe.mitre.org/documents/vuln-trends.html
Web Application Security Consortium, http://www.webappsec.org/
SANS Top 20, http://www.sans.org/top20/
PCI Security Standards Council, publishers of the PCI standards, relevant to all organizations
processing or holding credit card data, https://www.pcisecuritystandards.org/
PCI DSS v1.1, https://www.pcisecuritystandards.org/pdfs/pci_dss_v1-1.pdf
Build Security In, US CERT, https://buildsecurityin.us-cert.gov/daisy/bsi/home.html
Sécurité des Applications Web - 35 -
BLIOGRAPHIE
Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY
INDEX
A
Access 16ACL
contrôle 14, 22algorithm 29applications web13, 28,
34attaque 15, 16, 20, 22,
27attaques 13, 15, 18, 21,
22audit 7, 14, 22, 31, 34Authentification 3, 14Autorisation 3, 14
C
certificat 5, 30clients 7, 8, 9, 13, 14,
34CMS 8, 9Commutateur 19Comptes 21Confidentialité 3, 14couches 17CSRF 16
F
failles 27figure 17, 19
H
hôte 3, 18, 19, 20HTTP 3, 29, 31, 32
I
Injectionsql 16, 28
Intégrité 3, 14Interpréter 27ISTDI 2, 5
L
langage 9, 27
M
Malicious 16menace 3, 13, 15, 18Méthodologies 3, 25,
26modélisation 3, 18
MVCmodèle 8
O
OSI 34OWASP 15, 35
P
pare-feu 13, 18, 19, 26path 29PHP 9, 16, 35pirates 13, 16, 21Ports 21Premiers Pas Sarl 3, 5,
6Proxy 3, 29, 32, 33
R
rapport 15, 27, 28, 31refus de service 15règles 8, 28, 32requêtes 21, 28, 31, 32
S
scanner 27, 28, 29, 30
sécurité 3, 13, 14, 15, 17, 18, 19, 20, 22, 24, 25, 26, 28, 30, 31, 34
services 7, 13, 14, 19, 20, 21, 34
SessionManagement 16, 30
T
technologies 5
U
URL 16, 26, 29
V
vulnérabilité 15, 20, 22, 23, 27, 32
W
web 3, 5, 8, 9, 13, 14, 15, 16, 17, 18, 19, 22, 26, 27, 28, 29, 30, 31, 32, 34, 35
Sécurité des Applications Web - 36 -
INDEX