Mémoire présenté en vue d'obtenir
Unité d'Enseignement ENG111
« Information et communication
pour l'ingénieur »
Spécialité : Informatique
par
HARRY Guillaume
Les principales failles de sécurité des
applications Web actuelles, telles que recensées par
l'OWASP : principes, parades et bonnes pratiques
de développement.
Soutenu le 17/01/2012
JURY
PRESIDENTE : Nicole LEVY
MEMBRES : Selma BOUMERDASSI, Axel BUENDIA
Table des matières
1. INTRODUCTION
1
1.1 Contexte
1
1.2 Enjeux
2
2. APPLICATIONS WEB
3
2.1 Architecture
3
2.2 Composants du client Web
5
2.3 Composants serveur
6
3. FAILLES DE
SÉCURITÉ
8
3.1 Injection
8
3.2 Cross-Site Scripting (XSS)
10
3.3 Violation de gestion d'authentification et de
session
13
3.4 Référence directe non
sécurisée à un objet
15
3.5 Falsification de requête inter-sites (CSRF)
16
3.6 Mauvaise configuration de sécurité
17
3.7 Stockage de données cryptographiques non
sécurisé
18
3.8 Défaillance dans la restriction des
accès à une URL
19
3.9 Protection insuffisante de la couche transport
20
3.10 Redirection et renvois non validés
21
4. BONNES PRATIQUES
23
4.1 Règles de développement
23
4.2 Configuration des composants serveur
23
4.3 Audit
24
5. CONCLUSION
25
5.1 Constat
25
5.2 Perspectives
25
6. BIBLIOGRAPHIE
26
1. TABLE DES FIGURES
Figure 1 - Transfert des données à
travers la pile de protocoles d'Internet
3
Figure 2 - Pile de protocoles d'Internet
4
Figure 3 - Mode de fonctionnement des applications Web
5
Figure 4 - Mode de fonctionnement des applications Web
2.0
6
Figure 5 - Script SQL de création de la table
« comptes »
8
Figure 6 - Requête SQL pour l'authentification
et affichage du numéro de carte
8
Figure 7 - Script PHP pour l'authentification et
l'affichage du numéro de carte
9
Figure 8 - Requête SQL incluant du code
frauduleux d'injection
9
Figure 9 - Caractères spéciaux
communément utilisés dans les attaques d'injection
10
Figure 10 - Script PHP pour remplacer les
caractères par le code HTML
10
Figure 11 - Principe d'une attaque XSS par
réflexion
11
Figure 12 - Exemple de lien malveillant exploitant une
faille XSS
11
Figure 13 - Script SQL de création de la table
« messages »
12
Figure 14 - Script PHP pour l'insertion dans la table
« messages »
12
Figure 15 - Script PHP pour la recherche dans la table
« messages »
12
Figure 16 - Caractères spéciaux à
remplacer par leur code
13
Figure 17 - Script PHP pour positionner l'attribut de
cookie HTTPOnly
13
Figure 18 - Script PHP pour l'affichage du
numéro de carte
15
Figure 19 - Principe d'une attaque CSRF stockée
16
Figure 20 - Code HTML pour réaliser une attaque
CSRF
17
Figure 21 - Script PHP vulnérable à
l'attaque par traversée de chemin
19
Figure 22 - Script PHP non vulnérable à
l'attaque par traversée de chemin
20
Figure 23 - Script PHP de redirection automatique
21
Figure 24 - Lien pour rediriger l'utilisateur vers une
page malveillante
21
Figure 25 - Exemple de redirection automatique
configurée au niveau du serveur http
22
|