
Introduction et objectifs
Introduction à la méthodologie de test de sécurité des applications web OWASP, expliquant les concepts de vulnérabilité, de menace et de test, ainsi que l'approche collaborative du guide.
Qu'est-ce que le test de sécurité des applications web ?
Un test de sécurité est une méthode d'évaluation de la sécurité d'un système informatique ou d'un réseau en validant et en vérifiant méthodiquement l'efficacité des contrôles de sécurité des applications. Un test de sécurité d'application web se concentre uniquement sur l'évaluation de la sécurité d'une application web. Le processus implique une analyse active de l'application pour détecter toute faiblesse, faille technique ou vulnérabilité. Tous les problèmes de sécurité détectés seront présentés au propriétaire du système, accompagnés d'une évaluation de l'impact, d'une proposition d'atténuation ou d'une solution technique.
Qu'est-ce qu'une vulnérabilité ?
Une vulnérabilité est une faille ou une faiblesse dans la conception, la mise en oeuvre, le fonctionnement ou la gestion d'un système qui pourrait être exploitée pour compromettre les objectifs de sécurité du système.
Qu'est-ce qu'une menace ?
Une menace est tout ce qui (un attaquant externe malveillant, un utilisateur interne, une instabilité du système, etc.) peut nuire aux actifs détenus par une application (ressources de valeur, telles que les données d'une base de données ou du système de fichiers) en exploitant une vulnérabilité.
Qu'est-ce qu'un test ?
Un test est une action visant à démontrer qu'une application répond aux exigences de sécurité de ses parties prenantes.
L'approche de la rédaction de ce guide
L'approche OWASP est ouverte et collaborative :
- Ouverte : chaque expert en sécurité peut participer avec son expérience au projet. Tout est gratuit.
- Collaborative : un brainstorming est effectué avant la rédaction des articles afin que l'équipe puisse partager des idées et développer une vision collective du projet. Cela signifie un consensus approximatif, un public plus large et une participation accrue.
Cette approche tend à aboutir à une méthodologie de test définie qui sera :
- Cohérente
- Reproductible
- Rigoureuse
- Sous contrôle qualité
Les problèmes à résoudre sont entièrement documentés et testés. Il est important d'utiliser diverses méthodes pour tester toutes les vulnérabilités connues et documenter toutes les activités de test de sécurité.
Quelle est la méthodologie de test OWASP ?
Les tests de sécurité ne seront jamais une science exacte où une liste complète de tous les problèmes possibles qui devraient être testés peut être définie. En fait, les tests de sécurité ne sont qu'une des nombreuses techniques appropriées pour tester la sécurité des applications web dans certaines circonstances. Le but de ce projet est de collecter toutes les techniques de test possibles, d'expliquer ces techniques et de maintenir le guide à jour. La méthodologie de test de sécurité des applications web OWASP est basée sur l'approche de la boîte noire. Le testeur a peu ou pas d'informations sur l'application à tester.
Le modèle de test se compose de :
- Testeur : Qui effectue les activités de test
- Outils et méthodologie : Le coeur de ce projet de guide de test
- Application : La boîte noire à tester
Les tests peuvent être classés comme passifs ou actifs :
Tests passifs
Pendant les tests passifs, un testeur essaie de comprendre la logique de l'application et explore l'application en tant qu'utilisateur final. Des outils peuvent être utilisés pour la collecte d'informations. Par exemple, un proxy HTTP(S) peut être utilisé pour observer toutes les requêtes et réponses HTTP(S). A la fin de cette phase, le testeur doit généralement comprendre tous les points d'accès et les fonctionnalités du système (par exemple, les en-têtes HTTP, les paramètres, les cookies, les API, l'utilisation/les modèles de technologie, etc.). La section Collecte d'informations explique comment effectuer des tests passifs.
Par exemple, un testeur peut trouver une page à l'URL suivante : https://www.example.com/login/auth_form
Cela peut indiquer un formulaire d'authentification où l'application demande un nom d'utilisateur et un mot de passe.
Les paramètres suivants représentent deux points d'accès à l'application : https://www.example.com/appx?a=1&b=1
Dans ce cas, l'application a deux points d'accès (paramètres a et b). Tous les points d'entrée trouvés dans cette phase représentent des cibles pour les tests. Garder une trace du répertoire ou de l'arborescence d'appels de l'application et de tous les points d'accès peut être utile pendant les tests actifs.
Tests actifs
Pendant les tests actifs, un testeur utilise les méthodologies décrites dans les sections suivantes.
L'ensemble des tests actifs a été divisé en 12 catégories :
- Collecte d'informations
- Test de la gestion de la configuration et du déploiement
- Test de la gestion des identités
- Test de l'authentification
- Test de l'autorisation
- Test de la gestion des sessions
- Test de la validation des entrées
- Test de la gestion des erreurs
- Test de la cryptographie faible
- Test de la logique métier
- Test côté client
- Test des API