web application security

50
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

Upload: marcel-tchoulegheu

Post on 18-Jan-2017

23 views

Category:

Internet


1 download

TRANSCRIPT

Page 1: 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

Page 2: web application security

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

Page 3: web application security

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

Page 4: web application security

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

Page 5: web application security

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 -

Page 6: web application security

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

Page 7: web application security

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 -

Page 8: web application security

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 -

Page 9: web application security

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 -

Page 10: web application security

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 -

Page 11: web application security

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 -

Page 12: web application security

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

Page 13: web application security

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é » ?

Page 14: web application security

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é

Page 15: web application security

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 

Page 16: web application security

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 -

Page 17: web application security

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

Page 18: web application security

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 -

Page 19: web application security

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 -

Page 20: web application security

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 -

Page 21: web application security

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 -

Page 22: web application security

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 -

Page 23: web application security

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 -

Page 24: web application security

Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY

Sécurité des Applications Web - 24 -

Page 25: web application security

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

Page 26: web application security

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 -

Page 27: web application security

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 -

Page 28: web application security

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 -

Page 29: web application security

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 -

Page 30: web application security

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 -

Page 31: web application security

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 -

Page 32: web application security

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 -

Page 33: web application security

Licence Réseaux et Télécom TCHOULEGHEU NJEMOU MARCEL THIERRY

Figure 5 http Proxy

Sécurité des Applications Web - 33 -

Page 34: web application security

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

Page 35: web application security

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

Page 36: web application security

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