Les principales failles de sécurité des applications web actuelles
1. Les principales failles de sécurité
des applications web actuelles
telles que recensées par l ’OWASP
Xavier KRESS
08 Juillet 2013
Principes, parades
& bonnes pratiques de développement
2. Les principales failles de sécurité des applications web actuelles
- L’importance de la sécurité applicative
• Les applications Web sont devenues omniprésentes
• Objectifs et conséquences d’une attaque
• Les hackers et les kits d’attaque
• L’OWASP et les kits de défense
- Les principales failles de sécurité applicatives
• Principe et exemples de fonctionnement
• Objectifs / Conséquences
• Parades
- Comment sécuriser son parc applicatif
• Sensibiliser les développeurs
• Effectuer des tests d’intrusion et de la revue de code
• Intégrer la sécurité dans la gestion de projets
2/22
Xavier KRESS - 08/07/2013
3. Les principales failles de sécurité des applications web actuelles
- L’importance de la sécurité applicative
• Les applications Web sont devenues omniprésentes
Environ 40% de la
population mondiale
70% dans les pays
développés
80% en France soit
plus de 50 millions
d’internautes
Pourcentage d’Internautes dans le monde, source: International Telecommunications Union.
3/22
Xavier KRESS - 08/07/2013
4. Les principales failles de sécurité des applications web actuelles
- L’importance de la sécurité applicative
• Les applications Web sont devenues omniprésentes
Une multitude d’applications
Dans tous les domaines
Des usages différents, en
entreprise, à domicile ou en
mobilité
L’intégralité des données
personnelles et de
l’entreprise est accessible au
travers des applications Web
4/22
Xavier KRESS - 08/07/2013
5. Les principales failles de sécurité des applications web actuelles
- L’importance de la sécurité applicative
• Objectifs et conséquences d’une attaque
o
o
o
o
o
Vol d’informations
Usurpation d’identité
Indisponibilité de service
Défiguration de site
Désinformation
5/22
Xavier KRESS - 08/07/2013
6. Les principales failles de sécurité des applications web actuelles
- L’importance de la sécurité applicative
• Objectifs et conséquences d’une attaque
Avril 2011 : accès et publication sur Internet des informations de 77 millions
de comptes du Playstation Network
Juin 2011 : plusieurs centaines de comptes Gmail de hauts fonctionnaires et
militaires américains piratés
Juin 2012 6.5 millions de mots de passe LinkedIn volés
6/22
Xavier KRESS - 08/07/2013
7. Les principales failles de sécurité des applications web actuelles
- L’importance de la sécurité applicative
• Les hackers et les kits d’attaque
o Trouver et exploiter une faille de
sécurité est un jeu d’enfant
o Cela ne nécessite aucune
compétence particulière
o Une documentation abondante
o Des logiciels de détection (scanner)
et d’intrusion disponibles
gratuitement.
7/22
Xavier KRESS - 08/07/2013
8. Les principales failles de sécurité des applications web actuelles
- L’importance de la sécurité applicative
• L’OWASP et les kits de défense
o Une communauté libre et ouverte travaillant sur la sécurité des applications Web
o De nombreux projets et documents destinés à aider les développeurs à sécuriser leurs applications
o
o
o
o
o
o
WebGoat
WebScarab
Zed Attack Proxy
Testing Guide
Code Review Guide
Top Ten
Application non sécurisée permettant de découvrir la sécurité par la pratique
Permet d’analyser et modifier les flux HTTP envoyés et reçus par les applications
Logiciel de test d’intrusion permettant de détecter des failles applicatives
Guide pour les tests applicatifs
Guide pour la revue de code
Classement (par niveau de risque) des principales failles applicatives
8/22
Xavier KRESS - 08/07/2013
9. Les principales failles de sécurité des applications web actuelles
- Les principales failles de sécurité applicatives
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Les injections
Violation de gestion d’authentification et de session
Cross-Site Scripting (XSS)
Référence directe non sécurisée à un objet
Mauvaise configuration de sécurité
Exposition de données sensibles
Absence de contrôle d’accès aux fonctions
Falsification de requête intersite (CSRF)
Utilisation de composants dont la vulnérabilité est connue
Redirections et renvois non validés
9/22
Xavier KRESS - 08/07/2013
10. Les principales failles de sécurité des applications web actuelles
- Les principales failles de sécurité applicatives
1. Les injections
Injection de commande non prévue par le système (SQL, LDAP, XPATH …) dans les entrées
de l’application (formulaires et variables d’URL).
Objectifs :
- lecture, suppression, altération de données.
- accès au système sans authentification.
Parades :
- Vérification des données saisies (listes noires,
liste blanche, expressions régulières…).
10/22
Xavier KRESS - 08/07/2013
11. Les principales failles de sécurité des applications web actuelles
- Les principales failles de sécurité applicatives
2. Violation de gestion d’authentification et de session
Regroupe les vulnérabilités permettant à un attaquant de s’approprier l’identité d’un
utilisateur.
Violation de gestion d’authentification
Vol de session
Objectifs :
- Accéder à des fonctionnalités réservées à
certaines personnes.
- Accéder à des données confidentielles.
Parades :
- Exiger des mots de passe forts.
- Utiliser un système de captcha.
-------------------- Utiliser les cookies pour gérer les sessions.
- Définir une durée de session maximale.
11/22
Xavier KRESS - 08/07/2013
12. Les principales failles de sécurité des applications web actuelles
- Les principales failles de sécurité applicatives
3. Cross-Site Scripting (XSS)
Attaque par injection, consistant à insérer du code au sein d’une application réputée fiable,
pour qu’il s’exécute sur le poste client.
Objectifs :
- Défiguration / blocage de site.
- Redirection d’utilisateurs vers un autre site.
- Vol de session.
Parades :
- Vérifier les données en entrée.
- Retraiter les données issues de la base de
données avant de les afficher.
12/22
Xavier KRESS - 08/07/2013
13. Les principales failles de sécurité des applications web actuelles
- Les principales failles de sécurité applicatives
4. Référence directe non sécurisée à un objet
Faille permettant à un attaquant d’accéder directement à des objets (fichiers, répertoires,
enregistrements de base de données) sans autorisation.
Objectifs :
- Accéder à des informations confidentielles.
- Prendre le contrôle d’un serveur.
Parades :
- Vérifier les accès à chaque ressources.
- Remplacer par une valeur temporaire
aléatoire (ESAPI) les références directes aux
objets (ID, noms de fichiers…).
13/22
Xavier KRESS - 08/07/2013
14. Les principales failles de sécurité des applications web actuelles
- Les principales failles de sécurité applicatives
5. Mauvaise configuration de sécurité
Cette faille regroupe toutes les vulnérabilités liées à des problèmes de configuration, sur
tous les éléments de la couche applicative (serveurs, langage, framework, composants…).
Attaque par manipulation d’URL
Objectifs :
- Accéder à des informations confidentielles.
- Prendre le contrôle d’un serveur.
Parades :
- Ne pas attribuer aux composants plus de
droits que nécessaire.
- Etudier rigoureusement la configuration.
14/22
Xavier KRESS - 08/07/2013
15. Les principales failles de sécurité des applications web actuelles
- Les principales failles de sécurité applicatives
6. Exposition de données sensibles
Cette faille regroupe toutes les vulnérabilités liées à la protection des données sensibles.
Technique du grain de sel
Objectifs :
- Accéder à des données confidentielles.
- Usurpation d’identité.
Parades :
- Utiliser des algorithmes de chiffrement forts.
- Ne pas stocker d’informations inutiles.
- Utiliser le protocole TLS sur toute la chaine.
- Les clés de décryptage doivent être stockées
séparément des données.
15/22
Xavier KRESS - 08/07/2013
16. Les principales failles de sécurité des applications web actuelles
- Les principales failles de sécurité applicatives
7. Absence de contrôle d’accès aux fonctions
Cette faille permet à un attaquant d’accéder à des pages ou fonctions d’une application
Web sans y avoir droit.
Objectifs :
- Exécuter des fonctionnalités sans en avoir les
droits.
- Accéder à des données confidentielles.
Parades :
- Vérifier les droits d’accès sur chaque page de
l’interface et avant d’exécuter chaque
fonctions (logique métier).
- Par défaut, refuser les accès.
16/22
Xavier KRESS - 08/07/2013
17. Les principales failles de sécurité des applications web actuelles
- Les principales failles de sécurité applicatives
8. Falsification de requête intersite (CSRF)
Cette faille consiste à exploiter la confiance qu’une application a envers ses utilisateurs en
les forçant à exécuter des requêtes sur l’application sans qu’ils en soient conscients.
Attaque CSRF par envoi de mail
Objectifs :
- Exécuter des fonctionnalités sans en avoir les
droits.
Parades :
- Demander aux utilisateurs des confirmations
avant d’exécuter des actions sensibles.
- Vérifier le referer de la page.
- Utiliser la technique du jeton de validité.
<img src =
"http://bank.com/transfer.do?acct=
KRESS&amount=1000" width="1"
height="1" border="0">
17/22
Xavier KRESS - 08/07/2013
18. Les principales failles de sécurité des applications web actuelles
- Les principales failles de sécurité applicatives
9. Utilisation de composants dont la vulnérabilité est connue
Cette faille concerne tous les composants utilisés pour le fonctionnement d’une application.
Ils peuvent présenter des vulnérabilités et doivent faire l’objet d’une attention particulière.
Objectifs :
- Accéder à des données confidentielles.
- Prendre le contrôle d’un serveur.
Parades :
- Tenir à jour une liste des composants utilisés
ainsi que leur version.
- Mettre à jour ces composants dès qu’une
vulnérabilité est détectée et corrigée.
18/22
Xavier KRESS - 08/07/2013
19. Les principales failles de sécurité des applications web actuelles
- Les principales failles de sécurité applicatives
10. Redirections et renvois non validés
Cette faille concerne les redirections et renvois utilisés par les applications sans validation.
Objectifs :
- Rediriger des utilisateurs vers des sites de
phishing.
- Accéder sans autorisation à une partie de
l’application.
Parades :
- Vérifier les URL avant d’effectuer les
redirections.
- Utiliser des variables pour masquer les liens
de redirection.
- Vérifier les droits d’accès sur chaque page
d’un espace privé.
19/22
Xavier KRESS - 08/07/2013
20. Les principales failles de sécurité des applications web actuelles
- Comment sécuriser son parc applicatif
• Sensibiliser les développeurs
o Les informer sur les failles de sécurité et les impacts métier qu’elles peuvent avoir.
o Leur apprendre à mettre en place des parades pour chacune de ces failles.
o La robustesse d’une application dépend de son maillon le plus faible.
o Les inciter à utiliser les API et les check-lists (OWASP).
o Utiliser des référentiels (OWASP, SANS TOP 25, CWE, WASC ID…)
20/22
Xavier KRESS - 08/07/2013
21. Les principales failles de sécurité des applications web actuelles
- Comment sécuriser son parc applicatif
• Effectuer des tests d’intrusion et de la revue de code
o Utiliser les techniques des hackers pour mieux protéger ses applications.
o Les tests d’intrusion ne remplacent pas la revue de code (hashage des mots de passe,
vérification d’authentification sur toutes les pages…)
o Utiliser des guides (Testing guide, Code rewiew guide…)
21/22
Xavier KRESS - 08/07/2013
22. Les principales failles de sécurité des applications web actuelles
- Comment sécuriser son parc applicatif
• Intégrer la sécurité dans la gestion de projets
o La sécurité doit être appréhendée et traitée comme un processus continu.
o Elle doit être intégrée à la stratégie et aux objectifs de l’entreprise.
o Définition d’une politique de sécurité impliquant le management.
22/22
Xavier KRESS - 08/07/2013
23. Les principales failles de sécurité des applications web actuelles
Questions
Xavier KRESS - 08/07/2013