Threat modeling avec STRIDE
Une méthode systématique pour trouver les menaces d'une conception.
Le threat modeling avec STRIDE est la technique la plus employée pour anticiper les menaces sur un système avant de l'avoir construit. En 45 minutes d'atelier, une équipe identifie des failles architecturales que les outils automatiques ne détecteront jamais — parce que ce sont des choix de conception, pas des bogues de code. Le chapitre en a posé le cadre conceptuel celui-ci en fait une pratique.
Pourquoi STRIDE plutôt qu'autre chose
STRIDE est simple à enseigner, simple à appliquer en équipe, et couvre les menaces les plus courantes des systèmes web et natifs du cloud. Ses six catégories correspondent directement à des contrôles techniques que les développeurs connaissent déjà, ce qui évite d'introduire un vocabulaire de sécurité déconnecté du code.
| Catégorie | Contre quoi | Contrôle associé | |
|---|---|---|---|
| S | Spoofing | usurpation d'identité | authentification forte |
| T | Tampering | altération de données | intégrité, signatures |
| R | Repudiation | non-traçabilité des actions | journalisation, pistes d'audit |
| I | Information Disclosure | exposition de données sensibles | chiffrement, contrôle d'accès |
| D | Denial of Service | indisponibilité | limitation de débit, coupe-circuits |
| E | Elevation of Privilege | escalade de droits | moindre privilège, gestion des rôles |
Six lettres, six contrôles — le vocabulaire reste celui des développeurs.
Quand l'utiliser
STRIDE convient aux nouvelles fonctionnalités, aux changements d'architecture et aux intégrations avec des systèmes externes. Pas pour auditer du code déjà en production : les scanners statiques du chapitre font mieux pour cela.
Une session en quatre étapes
Une session efficace suit toujours le même déroulé, qu'elle dure trente minutes ou une demi-journée. Le chronométrage ci-dessous correspond à une fonctionnalité de taille moyenne il se multiplie pour un changement d'architecture complet.
| Étape | Ce qu'on fait | Durée |
|---|---|---|
| Décrire le système | construire un diagramme de flux simple : composants, flux de données, limites de confiance | 10 min |
| Identifier les menaces | pour chaque flux et chaque composant, passer les six catégories | 20 min |
| Évaluer et prioriser | noter probabilité et impact, ou simplement critique / élevé / moyen / faible | 10 min |
| Décider des mitigations | accepter, corriger, transférer — les corrections deviennent des tickets | 10 min |
Quatre étapes qui répondent aux quatre questions du Threat Modeling Manifesto.
Le diagramme de flux minimal
Nul besoin d'outil dédié pour démarrer : un tableau blanc suffit largement pour la première session. Ce qui compte est de représenter clairement les éléments qui traversent une frontière de confiance, pas de produire un schéma esthétique. Un diagramme utile fait apparaître les acteurs (utilisateur, service externe, administrateur), les composants (application, base de données, cache, file), les flux de données (requêtes HTTP, appels SQL, messages) et les limites de confiance.
[Utilisateur] --HTTPS--> [Passerelle API] --appel interne--> [Service Auth]
| |
limite de confiance [Base de données]
|
[Service Profil] --------------> [Base de données]Chaque flux qui franchit une limite de confiance est candidat à une analyse STRIDE. Un flux interne entre deux composants qui se font mutuellement confiance mérite moins d'attention qu'un flux traversant la frontière entre l'utilisateur et votre système.
Exemple appliqué : une API d'authentification
Prenons une API d'authentification classique fondée sur des jetons JWT — des jetons signés qui transportent l'identité de l'utilisateur. L'exemple suivant traite une catégorie de bout en bout, pour montrer le niveau de détail attendu.
S, Spoofing — usurpation d'identité
Menace : un attaquant usurpe l'identité d'un utilisateur en rejouant un jeton expiré ou volé.
Questions à poser : les jetons ont-ils une expiration courte, de l'ordre du quart d'heure ? Les jetons de rafraîchissement sont-ils révocables ? Vérifie-t-on une empreinte du client — adresse, agent utilisateur ?
Mitigation : jeton à expiration courte, jeton de rafraîchissement stocké dans un cookie inaccessible au script, révocation via une liste de blocage. Ticket associé : « en tant que système, je dois invalider tous les jetons actifs d'un utilisateur sur demande ou sur détection d'anomalie ».
Le même travail se répète sur les cinq autres lettres : altération des données en transit, absence de trace exploitable en cas de contestation, exposition de données sensibles dans les réponses ou les logs, saturation du service d'authentification, et escalade de privilèges par manipulation des rôles portés par le jeton. Aucune catégorie ne doit être sautée par habitude.
Intégrer STRIDE au flux agile
L'enjeu est de le répéter souvent, en petit format, plutôt que d'organiser un grand exercice annuel vite oublié.
| Moment | Ce qu'on fait | Format |
|---|---|---|
| Affinage du backlog | pour une story qui introduit un flux ou une intégration : dessiner le flux, passer les six lettres, créer les tickets de sécurité | 10 à 15 min |
| Definition of Done | un critère pour les fonctionnalités touchant des données sensibles ou des accès | une case à cocher |
| Conception d'architecture | session dédiée : construire le diagramme, parcourir STRIDE, prioriser, documenter la décision | 90 min |
Trois moments, trois formats — le plus fréquent est aussi le plus court.
Definition of Done (extrait)
[ ] threat modeling STRIDE réalisé et documenté dans le ticket
[ ] menaces critiques mitigées, ou acceptées explicitement
[ ] tickets de sécurité créés pour les mitigations non urgentesLes erreurs courantes
Quatre pièges fréquents
Trop vouloir en faire : quatre heures de modélisation pour une fonctionnalité de connexion n'ont pas de sens — 30 à 60 minutes pour une fonctionnalité, 90 pour un module, une journée pour un système complet. Modéliser sans décider : identifier des menaces sans les prioriser ni les traiter, c'est du théâtre de sécurité. Ne pas impliquer les développeurs : un exercice mené par la seule équipe sécurité n'est pas connu de ceux qui écrivent le code. Traiter STRIDE comme un audit : c'est un outil de conception, il se pratique avant ou pendant le développement, pas après.
Les outils assistés par IA
Depuis 2023, des outils fondés sur des modèles de langage accélèrent la première étape : transformer une description d'architecture en un premier jet de menaces, de scores et de tests à écrire, dans des formats exploitables. Ils ne remplacent pas la session collaborative : un modèle qui reçoit une description vague produit des menaces génériques, sans lien avec les vraies limites de confiance, et peut manquer un flux critique que l'équipe connaît par cœur.
À retenir
La pratique qui se stabilise : utiliser l'IA comme générateur de brouillon et validateur de complétude — a-t-on couvert les six catégories sur chaque flux sensible ? — puis laisser l'équipe trancher la priorisation et les mitigations.
Quant au passage du tableau blanc à un outil dédié, il devient pertinent quand deux signaux apparaissent ensemble : l'équipe maîtrise les quatre étapes sans les relire, et le volume de sessions augmente sur des systèmes qui partagent des composants. Un outil permet alors de conserver l'historique des diagrammes et des menaces d'une session à l'autre.
Du threat modeling au pipeline
Le threat modeling identifie des risques de conception. Beaucoup peuvent être traduits en vérifications automatiques, ce qui transforme une décision ponctuelle en garde-fou permanent.
| Menace STRIDE | Vérification automatisable |
|---|---|
| secrets exposés dans les logs (I) | scanner de secrets dans le code |
| dépendances vulnérables (T, I) | analyse de composition logicielle |
| en-têtes de sécurité absents (I) | tests dynamiques |
| point d'entrée sans authentification (S, E) | tests d'intégration sur l'autorisation |
| absence de limitation de débit (D) | tests de charge sur les points sensibles |
| processus exécuté sans isolation (E) | analyse statique de la configuration |
Chaque menace de conception peut devenir une vérification permanente.
À retenir de cette séance
STRIDE est efficace en 30 à 60 minutes : au-delà, c'est qu'on cherche à tout modéliser. Les six catégories couvrent la majorité des menaces des systèmes web et natifs du cloud. Les résultats se traduisent en tickets de sécurité, pas en documents. Commencez par les flux qui franchissent les limites de confiance : c'est là que les risques sont les plus élevés. Un threat modeling sans décision est un coût sans valeur. Les outils assistés par IA accélèrent le brouillon, mais la priorisation reste une décision d'équipe.
Réponse unique
Par où commencer une séance de threat modeling STRIDE ?
Indice · Où le risque est-il structurellement le plus fort ?
[ METTRE EN PRATIQUE ]
Mener une séance STRIDE
3 étapes · 30 min · 120 XP
[ CETTE LEÇON DANS LES PARCOURS ]
- Cybersécuritéétape 5 / 13suivant — DevSecOps →