CaenHackYouAcademy
DevSecOps

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égorieContre quoiContrôle associé
SSpoofingusurpation d'identitéauthentification forte
TTamperingaltération de donnéesintégrité, signatures
RRepudiationnon-traçabilité des actionsjournalisation, pistes d'audit
IInformation Disclosureexposition de données sensibleschiffrement, contrôle d'accès
DDenial of Serviceindisponibilitélimitation de débit, coupe-circuits
EElevation of Privilegeescalade de droitsmoindre 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.

ÉtapeCe qu'on faitDurée
Décrire le systèmeconstruire un diagramme de flux simple : composants, flux de données, limites de confiance10 min
Identifier les menacespour chaque flux et chaque composant, passer les six catégories20 min
Évaluer et priorisernoter probabilité et impact, ou simplement critique / élevé / moyen / faible10 min
Décider des mitigationsaccepter, corriger, transférer — les corrections deviennent des tickets10 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é.

MomentCe qu'on faitFormat
Affinage du backlogpour 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 Doneun critère pour les fonctionnalités touchant des données sensibles ou des accèsune case à cocher
Conception d'architecturesession dédiée : construire le diagramme, parcourir STRIDE, prioriser, documenter la décision90 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 urgentes

Les 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 STRIDEVé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.

VérificationQuestion 1 / 3

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 ]

On this page