Threat modeling : Quelle méthode choisir pour votre entreprise ? (Stride, Dread, QTMM, LINDDUN, PASTA)

Threat modeling : Quelle méthode choisir pour votre entreprise ? (Stride, Dread, QTMM, LINDDUN, PASTA)

Il existe plusieurs méthodes de threat modeling. Le modèle le plus adapté aux besoins de votre organisation dépendra des types de menaces que vous essayez de modéliser et de l’objectif poursuivi. Toutes les méthodes ne sont pas complètes. Certaines sont abstraites, d’autres se concentrent sur les personnes, sur les risques ou les problèmes de confidentialité.

Cependant, elles peuvent être combinées pour créer une vision plus solide et plus complète des menaces potentielles auxquelles sont confrontés vos actifs informatiques. Dans cet article nous donnerons un aperçu sur 5 d’entres elles.

Qu’est-ce que le threat modeling ?

Le threat modeling (parfois francisé en modélisation des menaces) est une activité initialement technique, limitée aux développements d’envergure, dans un contexte agile.

Depuis une dizaine d’années cette activité s’est développée au point de désormais faire partie des contrôles attendus pour respecter le standard de cybersécurité ISO 27002 en version 2022.

Cette activité, relativement simple, permet de placer la sécurité au début des projets, là où les changements sont les moins coûteux en ressources. C’est la première brique afin de poser le concept de security by design.

Pourquoi le threat modeling est-il important ?

L’objectif est de découvrir par une analyse simple les points structurels, en risque vis-à-vis de la sécurité de l’information, tant à la fois d’une architecture que d’un système comme une application développée.

Dans le cadre d’un nouveau déploiement, cette étude préalable permet de garantir qu’il n’y ait pas de points bloquants dans la mise en place de mesures de sécurité, comme la dépendance à des systèmes non sécurisés, à une authentification ou encore à des protocoles faibles.

Traditionnellement le threat modeling est surtout orienté développement applicatif. Néanmoins, il est également possible d’étendre l’étude vers des problématiques de disponibilité, comme par exemple avec des déploiements à l’échelle (e.g. redondance), des authentifications ou des mises-à-jour voire des problématiques de transferts transfrontaliers de données. Une approche pour des systèmes entiers peut être calquée sur celle des architectures applicatives sans aucune difficulté.

Quand faut-il commencer le threat modeling ?

La validation du design ou de l’architecture nécessite, là encore selon les bonnes pratiques, de définir en amont des critères de sécurité nécessaires.

Cette étude permet de valider non seulement que les critères génériques soient respectés, mais également les choix techniques déterminés dans cette phase de design/d’architecture.

Cette activité de sécurité peut donc être réalisée tout au long du projet. Néanmoins, elle doit être entreprise dans le meilleur des cas avant la validation du design ou de l’architecture considérée. De la sorte, les modifications à entreprendre si nécessaire sont les moins couteuses. Il est possible également de faire des modélisations intermédiaires ou partielles afin d’identifier les problèmes de sécurité au plus tôt et là encore de diminuer les coûts de conception.

Quelles sont les ressources nécessaires ?

Les ressources humaines nécessaires sont peu nombreuses mais peuvent être difficiles à trouver selon le contexte de l’entreprise.

Il est nécessaire d’avoir tout d’abord au moins une personne connaissant la structure à analyser (logiciel, infrastructure) et le déploiement sous-jacent.

Selon la méthode et l’outil choisi, il est nécessaire/indispensable d’avoir une personne connaissant les attaques de cybersécurité et apte à les transcrire, dans un contexte défensif, en mesures de protection.

Il est nécessaire d’avoir le responsable de l’élément analysé (application, infrastructure) et normalement le responsable de l’évolution de cet élément (e.g. SCRUM master) pour intégrer les remarques aux évolutions en cours.

Il est souhaitable que le responsable des risques assiste aux réunions pour identifier les risques techniques et ainsi de permettre de mieux estimer ceux-ci.

Pour des analyses plus larges, il est nécessaire d’avoir un responsable légal apte à maitriser les exigences légales dans les pays concernés.

Dans le cadre de certifications ISO 27001, il est nécessaire que le responsable du SMSI soit informé et encadre l’activité (e.g. planification, comptes-rendus, collecte des livrables, suivi des changements) afin de s’assurer que la démarche respecte les attentes du standard.

Quelques méthodes de threat modeling existantes

Différentes méthodes sont envisageables pour définir les risques, toutes avec avantages et inconvénients. En fonction des objectifs, de la maturité de l’entreprise dans l’exercice et des pratiques déjà en cours telle ou telle méthode doit être privilégiée.

Pour résumer les méthodes les plus pertinentes, une courte description suit.

Méthode de threat modeling n°1 : STRIDE

La méthodologie de référence par le passé était la méthode STRIDE :

Pour chacun des composants, il est nécessaire d’identifier les possibilités dans chacune des catégories qui forme l’acronyme. Afin d’avoir une exhaustivité des scénarios d’attaques, il est souhaitable de se confronter à une base de connaissances (Cf. chapitre ci-dessous).

Ces points représentent les techniques d’attaques utilisées pour atteindre la sécurité de l’information.

Cette méthode est largement connue et encore appliquée car facile à assimiler. Elle n’est cependant plus maintenue par Microsoft qui lui préfère DREAD.

Méthode de threat modeling n°2 : DREAD

Comme précédemment, les concepts étant élargis pour définir ce nouvel acronyme :

Bien que plus facile à comprendre pour tous, le scoring de chacune de ces catégories est d’avantage soumis à interprétation. Il faut aussi prendre en compte le dernier D qui promeut la sécurité par obscurité. Or cette pratique est au contraire très fortement déconseillée, induisant un faux sentiment de sécurité.

Cette méthode n’est pas aisée à promouvoir, à cause des biais suivants :

L’analyse porte donc principalement sur l’impact et l’exploitabilité, valeurs usuellement utilisées pour les risques : la méthode aide peu à identifier les menaces et vulnérabilités.

Méthode de threat modeling n°3 : Quantitative threat modeling

L’approche consiste à identifier la sévérité des vulnérabilités à partir des scores CVSS. Les menaces sont identifiées au moyen d’arbres d’attaques dont la racine est chacune des catégories de la méthode STRIDE (citée plus haut).

Les arbres d’attaques peuvent néanmoins être longs à établir et les scores CVSS ne prennent pas en compte le contexte de l’entreprise (et les éventuelles mesures en place qui en limiterait l’impact).

Cette méthode très technique est à considérer pour de petits développements/architecture très critiques, où les vulnérabilités auraient de forts impacts quel que soit le contexte.

Méthode de threat modeling n°4 : LINDDUN

Il est encore une fois fait usage d’un acronyme pour :

Cette approche peut être intéressante pour identifier les écarts avec EU 2016/679 GDPR et le respect des concepts clés de « privacy by design » et « privacy by default » définis dans ce règlement.

L’évaluation de l’impact d’une vulnérabilité avec ces critères reste difficile. Cette méthode est davantage destinée à une analyse de compatibilité vis-à-vis de règlements sur la vie privée que sur une recherche de vulnérabilités techniques.

Méthode de threat modeling n°5 : PASTA

Cette méthode associe les objectifs business et les risques techniques au moyen d’un processus relativement logique.

Cette méthode est cependant peu répandue et longue à mettre en place. Le résultat est néanmoins complet et s’intègre aux autres activités métiers (e.g. opérations IT, évaluation des risques).

Threat Modeling : Etapes de la méthode PASTA

Source : Shevchenko, N. , 2018: Threat Modeling: 12 Available Methods. Carnegie Mellon University’s Software Engineering Institute Blog

Quelle méthode de threat modeling choisir pour votre organisation ?

La méthode utilisée dépend à la fois des objectifs de découverte et de l’intégration de l’activité au sein du projet (comme l’intégration à l’analyse de risques avec la méthode PASTA ou les besoins de conformité avec LINDDUN).

Bien que datée, la méthode STRIDE est facilement compréhensible et permet d’obtenir des résultats pertinents. Dans le cas où l’activité de threat modeling est nouvelle, elle permet au travers de ses résultats concrets d’assurer la pérennité de la démarche dans les processus projets, à l’avenir selon d’autres méthodes éventuellement.

Dans les contextes où l’activité est d’ores et déjà usuelle, une approche plus intégrée comme PASTA peut être recommandée en synergie avec le service de gestion des risques par exemple.

Outils de threat modeling

Bien que ces analyses n’imposent aucun outil, et qu’une simple feuille de papier pourrait suffire, des outils permettent de cadrer certaines des méthodes proposées ci-avant. Ils permettent le plus souvent d’obtenir un visuel clair et une liste des vulnérabilités et des menaces associées qui soit lisible par le plus grand nombre.

Outils automatisés

Il existe de nombreux outils. On peut identifier deux outils qui pourraient permettre de travailler avec des outils open-source ou gratuit :

Outils de threat modeling automatisés avantages et inconvénients

Outils manuels

Les approches manuelles nécessitent en revanche de se conformer à une base de connaissances et/ou des personnes qui maitrisent et donc justifie une prestation parfois externe afin d’avoir les profils souhaités.

Les outils open-source sont :  

Outils de threat modeling manuels avantages inconvénients
Outils de threat modeling manuels avantages et inconvénients

Base de connaissances des menaces et des scénarios d’attaques

Les attaques possibles sur chacun des systèmes peuvent être identifiées au moyen de la base de connaissance MITRE ATT&CK (https://attack.mitre.org/matrices/enterprise/).

Il existe également les taxonomies CAPEC (https://capec.mitre.org/data/index.html) et CWE (https://cwe.mitre.org/data/index.html) qui sont plus techniques et orientées par produit. Cela peut être utile pour un threat modeling détaillé sur un ou plusieurs systèmes clés qui n’évoluent pas souvent. Pour la plupart des systèmes cela peut être un peu trop laborieux et peu pérenne.

Il est néanmoins nécessaire d’effectuer un choix dans le niveau de détail souhaité afin de limiter l’étude dans le temps. Cet arbitrage dépend évidemment des ressources disponibles et de la criticité de l’élément analysé (selon qu’il s’agisse de l’infrastructure globale de l’entreprise ou d’un outil pour un service, outil non accessible depuis Internet).

Inputs envisageables

En entrée, les documents suivants peuvent être utiles à l’analyse :

Livrables envisageables

L’activité permet d’obtenir (selon la méthode employée et les objectifs de l’activité) :

Approche générale de threat modeling utilisée

Approche générale de threat modeling
Approche générale de threat modeling

Les menaces sont identifiées selon la méthodologie utilisée selon les différents paradigmes (vulnérabilité/concepts d’attaques/privacy). Seule la méthode PASTA est plus complète, peut-être trop d’ailleurs dans de nombreux contextes.

Selon la méthode utilisée, l’impact est principalement sur la détection des menaces.

Exemples de diagrammes de flux de données

A partir de ces diagrammes, on identifie non seulement les frontières (ou « boundaries ») mais également les flux (potentiellement techniques i.e. avec les protocoles, le chiffrement etc. comme sur le troisième diagramme).  

Ces diagrammes permettent aux développeurs et aux business analystes techniques d’avoir souvent une vision plus synthétique de leur produit. Cette visibilité est un des premiers atouts de la méthode.

OWASP Threat Modeling Data flow diagram
OWASP Threat Modeling Data flow diagram

Source : OWASP Application Threat Modeling

OWASP Threat Modeling Data flow diagram 2
OWASP Threat Modeling Data flow diagram 2

Source : OWASP Application Threat Modeling

Exemple de diagramme de déploiement technique

Pour commencer un diagramme mixte :

Threat Model Hybrid-Hybrid generic threat modeling
Threat Model Hybrid-Hybrid generic threat modeling

Source : Threat Modeling – Secodis GmbH

Engineering-based Data flow diagram
Engineering-based Data flow diagram

Source : OWASP Application Threat Modeling

Les flux peuvent être définis techniquement i.e. avec les protocoles, le chiffrement etc. comme sur le diagramme précédent.

Il y est également possible d’y faire figurer les frontières des pays (pour identifier les contraintes légales) et les contraintes réglementaires (e.g. PCI-DSS ou la FINMA sur le dernier schéma, s’il s’agissait de la Suisse).

Comment le threat modeling peut-il impacter votre démarche GRC ?

Cette activité peut être intégrée à une démarche GRC au niveau de l’accompagnement de la mise en place de mesures de sécurité, spécialement pour les équipes DevSecOps, mais également pour renforcer l’analyse de risques concernant les applicatifs et les infrastructures sur lesquelles ils sont déployés.

Cela peut également être pertinent dans le cas d’amélioration de la sécurité organisationnelle, en définissant par exemple des schémas de flux de données personnelles. Les processus sont rarement actualisés et peuvent au moyen de cette démarche être améliorés.

Il y a possibilité d’utiliser, en particulier PASTA, pour identifier les risques techniques, mais cette approche nécessite une certaine maturité des structures et une volonté d’implication importante.

Ces diagrammes, lisibles par tous, peuvent être utilisés pour avoir une approche commune entre les équipes.

Enfin cette activité est une réponse pour sécuriser l’architecture des systèmes attendue dans le standard ISO 27002 en version 2022.