Modélisation des menaces ou Threat Modeling

La modélisation des menaces (Threat Modeling) est une activité fondamentale pour identifier et traiter les failles dès la conception avant la phase de développement d’un logiciel ou d’un système. Cette activité fait partie des connaissances requises par les programmes des certifications CISSP : domaine 8, CCSP et CCSK. Certaines méthodes se focalisent sur les menaces et les problèmes de sécurité alors que d’autres comprennent une évaluation des risques au travers leur impact et leur vraisemblance. L’idéal est de planifier cette activité le plus tôt possible dans le cycle de développement, dès que l’architecture est définie. La modélisation doit être mise à jour si nécessaire. Par exemple dans le cas de changement de classification des informations, de modification de l’architecture, de changement de mode d’authentification ou d’autorisation, de modification des exigences métier concernant les exigences de traçabilité ou encore de mise à jour des méthodes cryptographiques.

Méthodes

Différentes représentations peuvent être utilisées :

  • Schémas d’architecture.
  • Diagrammes de flot de données.
  • Arbres d’attaques.
  • Carte heuristique (mind mapping).
  • Vecteurs d’attaque.
  • Diagrammes séquentiel

Un outil graphique de modélisation très pratique est Mozilla SeaSponge.

Les exigences de sécurité dans ces méthodes sont abordées sous les angles suivants :

  • Classification des faiblesses, en utilisant par exemple le référentiel du MITRE.
  • Mesures de sécurité.
  • Recommandations d’implémentation.

Quelques méthodes pour modéliser les menaces :

  • Approche pas à pas de Microsoft avec un outil gratuit.
  • PASTA - Process for Attack Simulation and Threat Analysis : 7 étapes adaptables à la plupart des méthodes de développement.
  • TRIKE : se focalise sur le modèle de définition des exigences et de traitement du risque à un niveau acceptable.
  • ATASM - Architecture, Threats, Attack Surfaces, and Mitigations qui met en lumière l’importance de la modélisation fine du système.

Contrairement aux méthodes d’analyse des risques, comme EBIOS Risk Manager par exemple ou encore la méthode quantitative FAIR, le Threat Modeling se concentre sur la phase de conception du cycle de développement logiciel.

On retrouve aussi les moyens mnémotechniques d’énumération des menaces comme STRIDE – Spoofing, Tampering, Repudiation, Information disclosure, Denial of Service, Elevation of priviledges ainsi que les méthodes d’évaluation des vulnérabilités comme DREAD - Damage, Reproducibility , Exploitability, Affected users, Discoverability et CVSS - Common Vulnerability Scoring System.

Recommandations de mise en œuvre

Dans les méthodes de développement AGILE couramment utilisées par les équipes de développement l’activité de modélisation des menaces devra se tenir avant le Sprint 1, idéalement au cours du Sprint 0 de préparation du projet. La modélisation sera mise à jour au cours de sprints en cas de nouveaux scénarios (stories) ou de modification du code qui rendrait obsolète les choix de modélisation antérieurs. La modélisation des menaces peut également être inclus aux cycles DevSecOps et notamment dans le cadre des développements des API permettant l’automatisation des tâches dans les infrastructures actuelles. Plus globalement, on peut aussi faire le lien avec les grands principes de conception sécurisée (que l’on trouve dans la norme ISO 19249 et dans les critères communs - common criteria) et les bonnes pratiques de l'ISO 27034 sur la sécurisation des applications. On peut aussi citer dans ce domaine le référentiel de SAFECode et le modèle BISMM.

  Pour en savoir plus sur les 20 meilleures formations sur la sécurité des systèmes d’information, téléchargez gratuitement notre livre blanc ci-dessous :

CISSP, CCSP, CCSK, SécuritéCloud, SDLC, ThreatModeling, Modélisation