La méthodologie de test web : OWASP WSTG et grandes étapes
Dans le cours précédent, vous avez appris comment fonctionnent les réseaux, Linux et la cryptographie, et vous avez posé les bases du cadre légal d’un test d’intrusion. Il est temps de les appliquer à l’univers qui concentre la majorité des incidents : les applications web. Avant de toucher le moindre outil, cette première leçon vous donne la carte et la boussole : une méthode de travail, et les règles du jeu.
Cadre légal : à lire avant toute chose
Tester la sécurité d’un site ou d’une application sans autorisation écrite est une infraction pénale. En France, les articles 323-1 à 323-3-1 du Code pénal sanctionnent l’accès ou le maintien frauduleux dans un système de traitement automatisé de données, l’entrave à son fonctionnement et la modification ou l’extraction frauduleuse de données. « Je voulais juste vérifier » n’est pas une excuse. Un test d’intrusion légitime repose toujours sur une autorisation écrite et un périmètre défini. Dans ce cours, tout ce que vous pratiquerez le sera uniquement sur des environnements d’entraînement faits pour cela : un laboratoire personnel, DVWA, OWASP Juice Shop, la PortSwigger Web Security Academy, TryHackMe ou HackTheBox. Jamais ailleurs.
Pourquoi une méthodologie ?
Imaginez un médecin qui, face à un patient, prescrirait des examens au hasard. Il passerait peut-être à côté de l’essentiel, et il ne pourrait pas expliquer ce qu’il a vérifié. Le test d’intrusion web obéit à la même logique : sans méthode, on teste ce qu’on connaît déjà, on oublie des zones entières de l’application, et on est incapable de dire au client ce qui a été couvert.
Une méthodologie apporte trois choses :
- De l’exhaustivité : une liste de contrôles à parcourir permet de ne rien omettre.
- De la reproductibilité : une autre personne peut refaire le même test et obtenir le même résultat.
- De la preuve : on peut démontrer ce qui a été examiné, y compris quand on n’a rien trouvé.
L’OWASP et son guide de test
L’OWASP (Open Worldwide Application Security Project) est une communauté ouverte qui publie gratuitement des références sur la sécurité des applications. Deux documents sont à distinguer, car on les confond souvent :
- Le Top 10 est une liste de sensibilisation : les grandes catégories de risques les plus courantes dans les applications web. C’est un point de départ pour parler des risques, pas un plan de test.
- Le WSTG (Web Security Testing Guide) est le guide de test : il décrit, catégorie par catégorie, quoi vérifier et comment le vérifier. C’est lui qui sert de colonne vertébrale à un audit.
Vous pouvez consulter ces ressources sur owasp.org. Elles évoluent régulièrement : référez-vous toujours à la version en ligne la plus récente plutôt qu’à un souvenir.
Les grandes étapes d’un test web
Le WSTG range les contrôles en familles. Sans les recopier, voici comment on peut les regrouper en étapes logiques, qui correspondent aussi aux chapitres de ce cours :
| Étape | Question posée | Où la retrouver dans ce cours |
|---|---|---|
| Collecte d’informations | Qu’est-ce que cette application expose ? | Chapitre 1 |
| Configuration et déploiement | Le serveur est-il bien réglé ? | Chapitre 6 |
| Identités et authentification | Qui peut se connecter, et comment ? | Chapitre 2 |
| Autorisations | Chacun voit-il seulement ce qui lui revient ? | Chapitre 5 |
| Gestion de session | La « preuve d’identité » est-elle bien protégée ? | Chapitre 2 |
| Validation des entrées | L’application se méfie-t-elle de ce qu’on lui envoie ? | Chapitres 3 et 4 |
| Logique métier | Les règles de gestion peuvent-elles être détournées ? | Chapitre 5 |
| Rapport | Comment faire corriger ce qui a été trouvé ? | Chapitre 7 |
Le cycle de travail d’un testeur
Quelle que soit la famille de contrôles, le geste est toujours le même, en quatre temps :
- Observer : comprendre comment la fonctionnalité marche en usage normal.
- Formuler une hypothèse : « et si ce paramètre n’était pas vérifié côté serveur ? »
- Tester avec mesure : une expérience minimale, qui prouve le problème sans rien casser.
- Consigner : noter ce qu’on a fait, ce qu’on a vu, et pourquoi c’est un problème.
Le troisième temps mérite une insistance : un bon testeur prouve l’existence d’une faille avec la preuve la plus petite possible. Il ne cherche pas à « aller le plus loin possible », ce qui n’est pas son travail et peut causer des dégâts.
Les règles d’engagement
En mission réelle, un document précise ce qui est permis : les adresses et applications incluses (le périmètre), les techniques autorisées ou exclues, les horaires, la personne à prévenir en cas de problème. Ces règles d’engagement protègent à la fois le client et le testeur. Dans notre cadre d’entraînement, nous nous les imposons aussi, par discipline. Vous les écrirez dans un instant, dans votre carnet.
Votre fil rouge : le carnet de test
Tout au long du cours, vous allez auditer pas à pas une application d’entraînement légale et consigner chaque constat dans un carnet de test. Il vous suivra jusqu’au rapport final du chapitre 7. Voici le modèle d’une entrée, à reproduire dans un simple fichier texte ou un tableur :
Constat n° : 01
Date / heure :
Application / version d’entraînement :
Page ou fonction concernée :
Paramètre ou élément testé :
Ce que j’ai fait (étapes) :
Ce que j’ai observé :
Pourquoi c’est un problème :
Preuve (capture, extrait de réponse) :
Gravité estimée (faible / moyenne / élevée / critique) :
Correction suggérée :
Cette discipline paraît fastidieuse au début. Elle devient vite un réflexe, et c’est elle qui distingue un professionnel d’un amateur.
Astuce
Notez aussi ce que vous avez testé sans rien trouver. Un rapport qui dit « ces dix contrôles ont été réalisés et n’ont rien révélé » est précieux : il rassure sur les zones saines.
À vous de jouer
Créez le fichier de votre carnet et rédigez la première page : l’en-tête de mission. Il doit contenir :
- l’environnement d’entraînement que vous allez utiliser (vous le choisirez dans la leçon 3, notez pour l’instant « à définir ») ;
- une phrase de périmètre : ce que vous avez le droit de tester ;
- trois règles que vous vous engagez à respecter.
Voir une solution
Un en-tête possible :
CARNET DE TEST - Audit d’une application d’entraînement
Environnement : à définir (laboratoire personnel, hors Internet)
Périmètre : uniquement l’application d’entraînement installée sur ma machine
virtuelle ; aucune autre adresse, aucun autre site.
Règles :
1. Je ne teste que ce qui est dans le périmètre ci-dessus.
2. Je fais le test minimal qui prouve un problème, sans dégrader le service.
3. Je consigne chaque action et chaque constat dans ce carnet.
L’important est la précision du périmètre : « tout ce qui est sur mon labo » est correct, « tout site qui m’intéresse » ne l’est pas.
À retenir
- Tester sans autorisation écrite et sans périmètre est illégal (articles 323-1 à 323-3-1 du Code pénal en France) : on s’entraîne uniquement sur des environnements prévus pour cela.
- Une méthodologie garantit exhaustivité, reproductibilité et preuve.
- Le Top 10 de l’OWASP sensibilise aux risques ; le WSTG est le guide de test détaillé.
- Le cycle du testeur : observer, formuler une hypothèse, tester avec mesure, consigner.
- Votre carnet de test est le fil rouge du cours, jusqu’au rapport du chapitre 7.
Dans la leçon suivante, vous allez découvrir l’outil central du testeur web : le proxy d’interception, qui permet de voir et de rejouer les échanges entre un navigateur et une application.