Qu'est-ce que la modélisation des menaces ?

La modélisation des menaces est une méthode permettant d'identifier à l'avance les vulnérabilités possibles dans l'architecture d'une application. Il s'agit de schématiser une application, d'identifier les failles de sécurité et de les atténuer.

Objectifs d’apprentissage

Cet article s'articule autour des points suivants :

  • Définir la modélisation des menaces
  • Décrire les quatre principales étapes de la modélisation des menaces
  • Comparer les méthodes courantes de modélisation des menaces

Contenu associé


Vous souhaitez continuer à enrichir vos connaissances ?

Abonnez-vous à theNET, le récapitulatif mensuel de Cloudflare des idées les plus populaires concernant Internet !

Consultez la politique de confidentialité de Cloudflare pour en savoir plus sur la manière dont nous collectons et traitons vos données personnelles.

Copier le lien de l'article

Qu'est-ce que la modélisation des menaces ?

La modélisation des menaces est un exercice qui permet de trouver des failles de sécurité dans une application et son environnement. Il s'agit de créer une représentation d'une application avec tous ses composants, puis d' en identifier les points faibles. Idéalement, les développeurs et les ingénieurs en sécurité utilisent la modélisation des menaces tout au long du processus de développement des logiciels ; pas seulement après la mise en service d'une application, mais en commençant avant. Avec la modélisation des menaces, une application a des chances d'être beaucoup plus sûre qu'elle ne l'aurait été autrement, elle ne sera toutefois pas inviolable pour autant.

Dans les films de braquage, les personnages principaux étudient souvent les plans de l'installation qu'ils prévoient de cambrioler, afin d'en déceler les points faibles ; les issues par lesquelles il est plus facile de pénétrer dans le bâtiment, les angles morts des caméras de sécurité ne peuvent pas voir, etc. Dans le même esprit, la modélisation des menaces consiste à étudier les « plans » de l'application. À la différence près que la modélisation des menaces est effectuée par des personnes qui souhaitent sécuriser l'application, et non par les voleurs potentiels.

La modélisation des menaces exige des équipes qu'elles créent une vue complète de l'application.Il s'agit ensuite de se mettre dans l'état d'esprit d'une personne qui voudrait compromettre l'application.Comment agirait un attaquant ?Profiterait-il des faiblesses de la sécurité de l'API? Aurait-il recours à une attaque sur la chaîne d'approvisionnement pour infecter la bibliothèque système intégrée ?Si les attaques ne peuvent pas toutes être anticipées, la modélisation des menaces permet d'en bloquer certaines avant qu'elles ne se produisent.

Quelles sont les étapes de la modélisation des menaces ?

Il existe de nombreuses méthodes applicables pour la modélisation des menaces, et aucune de ces méthodes ne convient à toutes les situations. Cependant, en règle générale, les quatre étapes principales sont les suivantes :

1. Analyser et représenter graphiquement l'application

Les modélisateurs de menaces tentent d'identifier et de décrire :

  • Les composants d'une application, y compris les serveurs de base de données, les serveurs web, les passerelles, les bibliothèques et l'interface utilisateur.
  • Les modes de connexion de ces composants, tels que les protocoles utilisés pour l'échange de données et toutes les formes de chiffrement protégeant ces données en transit.

Si Terry écrit une application simple qui affiche des images de ballons, son diagramme de l'application pourrait ressembler à ce qui suit :

Exemple simple de modélisation des menaces : diagramme de l'interface de l'application, de la passerelle, du serveur web, de la base de données et des connexions.

Il s'agit évidemment d'un exemple très simplifié, et le diagramme d'application de la modélisation pourrait être beaucoup plus complexe pour une menace réelle.

2. Identifier les failles de sécurité dans la conception de l'application

Avec ce type de représentation des applications, il peut être plus facile d'identifier les failles. Terry, remarquera par exemple que les communications entre sa base de données de photos de ballons et son serveur web se font sans Transport Layer Security (TLS). Cela signifie qu'aucun des deux serveurs ne vérifie l'identité de l'autre à l'aide de signatures numériques, il est donc possible pour un acteur malveillant d'usurper l'identité du serveur de base de données et d'envoyer un contenu malveillant au serveur web.

Exemple simple de modélisation des menaces : la connexion entre le serveur web et la base de données n'est pas chiffrée.

3. Apporter des modifications qui comblent ces failles

La modélisation des menaces s'effectuant tout au long du processus de développement, il peut être nécessaire pour atténuer ces failles de modifier le plan de l'architecture d'une application, ou de déployer un correctif dans une application en cours de développement.

Pour atténuer la menace qu'il a identifiée, Terry peut reconfigurer son serveur de base de données et son serveur web de façon que leur connexion s'appuie sur TLS ou mieux encore mutual TLS (mTLS) afin qu'ils se vérifient l'un l'autre.

Exemple simple de modélisation des menaces : la connexion entre le serveur web et la base de données est désormais sécurisée.

4. Vérifier que ces changements ont été appliqués et qu'ils atténuent correctement la menace

À ce stade, Terry peut exécuter l'application dans un environnement de test et observer si 1) les serveurs utilisent TLS conformément à la configuration et si 2) le serveur web accepte le trafic HTTP provenant d'un serveur non vérifié au lieu du serveur de base de données. Il effectuera des contrôles similaires pour toutes les autres mesures d'atténuation qu'il a appliquées.

Quelles sont les différentes méthodes de modélisation des menaces ?

Une méthodologie de modélisation des menaces est une technique permettant d'identifier les menaces. Les méthodologies permettent de structurer le processus de modélisation des menaces, auquel il serait autrement impossible de faire face dans un système complexe. Les organisations ont le choix parmi un large éventail de méthodologies de modélisation des menaces, mais elles peuvent également développer leurs propres méthodologies. Parmi les méthodologies les plus courantes, on peut citer :

  • STRIDE : cette méthodologie, mise au point par Microsoft, repose sur un moyen mnémotechnique permettant d'identifier les menaces pour la sécurité. Les lettres de « STRIDE » correspondent à « Spoofing (Usurpation) », Tampering (falsification), Repudiation, Information disclosure (Divulgation d'information), Denial of service (Déni de service), Elevation of privilege (Augmentation des privilèges). » (« Répudiation » signifie ici l'incapacité de vérifier l'origine et l'intégrité des données). L'idée est de rechercher ces six types de menaces spécifiques dans l'architecture d'une application.
  • PASTA : il s'agit du « Process for Attack Simulation and Threat Analysis (processus de simulation d'attaques et d'analyse des menaces). » PASTA est un processus en sept étapes qui permet d'identifier, d'énumérer et de jauger les menaces.
  • VAST : la méthodologie VAST (Visual, Agile and Simple Threat) est associée à ThreatModeler, un logiciel de modélisation automatisée des menaces.
  • SQUARE : la méthodologie SQUARE (Security Quality Requirements Engineering) permet d'identifier les problèmes de sécurité dès le début du processus de développement.

Il existe également plusieurs autres méthodes de modélisation des menaces. Certaines, telles que « Trike » et différentes méthodologies hybrides, ne sont désignées par aucun acronyme.

Quand la modélisation des menaces intervient-elle ?

La modélisation des menaces doit être réalisée avant et pendant le développement du logiciel, tout au long du cycle de vie de l'application. Si une application est publiée sans modélisation ou atténuation des menaces, ce sont les utilisateurs (ou les attaquants) qui risquent de découvrir les failles de sécurité avant les équipes de sécurité. Cela peut entraîner une violation des données et augmente le risque de menaces de type "zero-day".

Cependant, la modélisation des menaces ne permettant pas de découvrir tous les risques au sein d'un système, les développeurs et les organisations doivent poursuivre ce processus même après le lancement. Parallèlement à la modélisation des menaces, il y a toujours la possibilité de :

  • Recherche de menaces : Il s'agit de rechercher de manière proactive les menaces qui pèsent sur un système. Le processus d'investigation peut être manuel, effectué par un analyste de sécurité, ou automatisé, réalisé par un outil de sécurité, ou encore une combinaison des deux.
  • Test de pénétration : également appelé pen testing, il s'agit d'un exercice de sécurité au cours duquel un pirate éthique tente de trouver et d'exploiter les vulnérabilités d'un système informatique. Pour être efficaces, les tests de pénétration doivent être réalisés par une personne n'ayant pas de connaissance préalable du système et doivent donc être effectués de manière totalement distincte du processus de modélisation des menaces. Souvent, ceux qui ont construit l'application en sont trop proches pour identifier toutes ses failles, à l'instar de l'architecte d'un bâtiment sécurisé qui ne pourrait pas anticiper les failles grâce auxquelles les voleurs peuvent entrer.
  • Autres mesures de sécurité des applications : la sécurité des applications est une discipline complexe. Aucun système ou application ne peut être considéré comme totalement sûr.Un pare-feu d'application web (WAF) peut contribuer grandement à la sécurisation des applications web.

Cloudflare propose également un service d'informations et d'opérations sur les menaces, Cloudforce One, dont l'objectif est de protéger les clients contre les dernières menaces. Cloudforce One est dirigé par une équipe de recherche sur les menaces constituée de spécialistes très expérimentés dans le blocage des attaquants à l'échelle mondiale. Pour en savoir plus sur Cloudforce One, cliquez ici.