Serveur MCP de modélisation des menaces
Un serveur Model Context Protocol (MCP) pour une modélisation complète des menaces avec validation guidée du code.
Table des matières
Vue d'ensemble
Ce serveur fournit des outils pour la modélisation des menaces, notamment l'analyse du contexte métier, l'analyse de l'architecture, l'analyse des acteurs de menace, l'analyse des frontières de confiance, l'analyse des flux d'actifs, la validation de la sécurité du code et la génération de rapports complets.
Architecture et approche
Ce serveur MCP appelle le LLM de l'agent existant au lieu d'effectuer un appel API externe ou réseau vers un autre service. Il s'appuie sur le LLM du client existant, qui peut être Amazon-Q, Kiro ou Cline.
Ce serveur MCP de modélisation des menaces possède trois fonctionnalités principales :
- Gestion des phases ou des états de modélisation des menaces et contrôle des invites.
- Pilotage des invites, qui amène l'agent à suivre une approche méthodique de modélisation des menaces en utilisant des définitions intégrées des risques métier, des expositions, des acteurs de menace et en appliquant STRIDE dans un ordre séquentiel.
- Validation structurée des entrées et vérifications d'achèvement des phases qui soutiennent un rapport de modèle de menace exploitable.
Il dispose également d'outils pour générer un rapport final dans des formats exportables Markdown et JSON.
Principaux avantages de cette approche
- Ce modèle de menace suit l'approche STRIDE standard de modélisation des menaces par phases plutôt qu'une conclusion rapide sur les actifs, les frontières et les menaces, ce qui peut entraîner des hallucinations ou une sortie de faible qualité.
- Le LLM s'efforce de comprendre le contexte métier du projet et de formuler des hypothèses valides qui peuvent être contrôlées par l'utilisateur.
- Ce serveur local s'appuie sur le LLM configuré du client MCP (Cline, Amazon Q, Kiro) plutôt que d'appeler une API de modèle distincte. L'exposition des données dépend du client et de tout autre serveur MCP que le client invoque.
- Le serveur conserve le modèle de menace de travail en mémoire pour le processus en cours. Les outils d'exportation peuvent écrire des instantanés JSON et Markdown dans un répertoire
.threatmodel, mais ces instantanés ne sont pas automatiquement rechargés lors d'une session ultérieure.
- L'outil de validation du code enregistre les preuves fournies par le client après inspection de l'implémentation, applique les transitions de statut de manière atomique et fait échouer la phase tant que chaque menace et atténuation en cours n'est pas couverte.
Invites de démarrage rapide et exemples sur la manière de modéliser les menaces avec ce serveur MCP
Remarque : Avant d'utiliser ces invites, vous devez d'abord terminer le processus d'Installation pour configurer le serveur MCP.
Démarrer un modèle de menace
"Threat model this project using the threat modeling MCP Server"
Être précis dans l'invite pour utiliser le serveur MCP de modélisation des menaces garantit que le client (Cline/Kiro/etc.) suivra les phases et la méthodologie exactes plutôt que de prendre un raccourci et d'introduire des hallucinations dans les résultats.
Modéliser les menaces d'un sous-projet ou réduire la portée à un sous-dossier
"Threat model this subfolder using the threat modeling MCP Server"
L'exécution sur un sous-dossier limite la portée d'analyse prévue. Pour y enregistrer les exportations, demandez un chemin de sortie à l'intérieur de ce sous-dossier ; l'emplacement d'exportation n'est pas déduit automatiquement de la portée d'analyse.
Enregistrer le résultat du modèle de menace
"Save the threat model report"
Valider l'exhaustivité du processus de modélisation des menaces
"Please complete all the phases in the threat model plan and then generate the final report."
Fournir une image de diagramme d'architecture en entrée
"Threat model this project using the threat model MCP server and consider this architecture_image.png attached for this review"
Tenter de remédier aux menaces
"Can you see if you can implement mitigation controls in the code based on the threats reported in the threat model"
Régénérer le modèle de menace en fonction des correctifs du code
"Can you updated the threat model based on the code fixes which mitigated the reported threats"
Autres exemples
# Set up context
"Set business context for an e-commerce payment system"
# Add architecture
"Add a web server component using AWS EC2"
"Add a database component using AWS RDS"
# Identify threats
"Add a threat where an attacker with network access performs SQL injection"
# Add mitigations
"Add a mitigation for input validation"
# Export results
"Export the threat model to my_model.tc.json"
Fonctionnalités clés
- Modélisation complète des menaces : Approche structurée pour identifier, évaluer et traiter les risques de sécurité
- Validation du code basée sur les preuves : Enregistre les preuves d'implémentation, met à jour les statuts et produit un rapport déterministe
- Analyse du contexte métier : Comprendre la valeur métier et la criticité du système
- Analyse de l'architecture : Documenter l'architecture technique du système et les flux de données
- Analyse des acteurs de menace : Identifier les adversaires potentiels et évaluer leurs capacités
- Analyse des frontières de confiance : Identifier les zones de confiance et valider les contrôles de sécurité aux frontières
- Analyse des flux d'actifs : Suivre les actifs critiques à travers le système
- Identification des menaces : Identifier systématiquement les menaces potentielles à l'aide de la méthodologie STRIDE
- Planification des atténuations : Élaborer des stratégies pour traiter les menaces identifiées
- Gestionnaires de domaine compacts : Outils basés sur des actions pour les hypothèses, l'architecture, les acteurs, les frontières, les actifs, les menaces et les atténuations
- Guide de modélisation des menaces : Orientation étape par étape tout au long du processus de modélisation des menaces
- Inspection du modèle de données : Un outil pour lister les modèles d'énumération et inspecter les valeurs acceptées
Prérequis
Avant d'installer le serveur MCP de modélisation des menaces, assurez-vous de disposer des exigences suivantes :
Exigences d'installation
- Installez
uvx depuis Astral ou le README GitHub
- uvx fait partie du gestionnaire de paquets uv
- Vérifiez l'installation :
uvx --version
Installation
Une fois uvx installé et vérifié comme fonctionnel, ajoutez la configuration ci-dessous à votre fichier de configuration mcp.json. Selon le type de client que vous utilisez (kiro/cline/amazon-q), l'emplacement de ce mcp.json sera différent. Une fois que vous ajoutez la configuration et redémarrez votre IDE, le serveur MCP de modélisation des menaces sera automatiquement installé directement depuis ce dépôt GitHub à l'aide de uvx.