Vue d’ensemble de WinDbg MCP

Cet article vous aide à comprendre le fonctionnement de WinDbg MCP et à décider s’il faut l’utiliser en fonction du support client et des considérations relatives à la sécurité et à la confidentialité. WinDbg MCP utilise le protocole MCP (Model Context Protocol) pour connecter un client IA pris en charge à une session WinDbg active, où le client peut utiliser les outils et le contexte du débogueur pendant l’analyse.

Vous pouvez utiliser cette connexion pour examiner une cible de débogage lors de l’examen des actions du débogueur initié par l’IA dans WinDbg. Les résultats générés par l’IA ne font pas autorité. Validez les constatations, les preuves, les hypothèses, l’état cible et les commandes par rapport à la sortie dans WinDbg.

Fonctionnement de WinDbg MCP

WinDbg MCP utilise un proxy local entre un client IA et le serveur MCP dans WinDbg. La connexion a l’architecture suivante :

Diagramme montrant les connexions bidirectionnelles à partir d’un service de modèle IA via un client IA et un proxy vers le serveur MCP WinDbg.

Le diagramme utilise une disposition en escalier compacte pour afficher les connexions bidirectionnelles. Le service de modèle IA et le client AI échangent des demandes et réponses IA. Le client IA et DbgX.Mcp.Proxy.exe communiquent via stdio MCP. DbgX.Mcp.Proxy.exe et le serveur MCP WinDbg communiquent via un tube nommé local propre à chaque processus. Le serveur MCP WinDbg fournit des outils, des prompts et des ressources.

Chaque session WinDbg utilise un tube nommé local par processus. DbgX.Mcp.Proxy.exe communique avec le client IA via une entrée et une sortie standard et connecte le client à une session WinDbg sélectionnée.

Le client IA peut envoyer le contexte de débogage à son service de modèle configuré dans le cadre des demandes et réponses ia. Vous conservez le contrôle de la session de débogage et vous pouvez passer en revue les actions du débogueur initié par l’IA dans WinDbg.

Assistance client et limites de session

WinDbg MCP prend en charge ces clients IA :

  • Visual Studio Code avec GitHub Copilot
  • GitHub Copilot CLI

D’autres clients IA compatibles MCP peuvent fonctionner via une configuration personnalisée au mieux, mais WinDbg ne les prend pas officiellement en charge. Utilisez un client personnalisé uniquement après avoir confirmé que ses fonctionnalités MCP et ses contrôles de sécurité répondent aux exigences de votre organisation.

Un seul client MCP actif peut se connecter à une session WinDbg à la fois. Les sessions WinDbg distinctes utilisent des canaux nommés locaux distincts. Dans les environnements restreints, la stratégie organisationnelle peut masquer ou désactiver les contrôles MCP.

Outils et invites de commandes MCP WinDbg

WinDbg MCP fournit des outils de connexion, des outils de débogueur et des invites de commande intégrées. L’action Installer MCP dans WinDbg inscrit WinDbg en tant que serveur MCP avec le client IA sélectionné. Une fois que le proxy se connecte à une session WinDbg, le client IA sélectionne automatiquement les outils appropriés.

Utilisez les outils de connexion suivants pour rechercher et sélectionner une session WinDbg :

Outil de connexion Purpose
list_sessions Répertorie les sessions WinDbg avec des services MCP actifs et indique si chaque session est disponible.
connect_session Connecte le proxy à une session WinDbg par ID de processus.
disconnect_session Déconnecte le proxy de la session WinDbg actuelle.

Après la connexion, demandez au client IA d’utiliser WinDbg MCP pour :

  • Inspectez ou contrôlez la cible de débogage.
  • Exécutez des commandes WinDbg.
  • Passez en revue les diagnostics et le code source.
  • Visualisez les données du débogueur.
  • Créez des scripts d’analyse.

Utiliser des prompts MCP WinDbg intégrés

Si le client IA prend en charge les invites MCP, sélectionnez une invite intégrée pour démarrer un workflow de débogage guidé.

Prompt intégré Purpose
investigate_symbol_loading_issues Diagnostiquer les problèmes de chargement de symboles.
write_extension Créez une extension JavaScript WinDbg.
create_graph Visualisez les données du débogueur sous forme de graphique.
configure_ttd Configurez un workflow de Time Travel Debugging.

Utiliser WinDbg MCP pour le débogage

Les invites suivantes fournissent des points de départ pour les scénarios de débogage pris en charge :

Scenario Exemple d’invite
Rechercher la cause première d’un fichier de vidage sur incident « Analysez ce dump et fournissez la cause profonde probable, les preuves à l’appui et les hypothèses restantes. »
Examiner une cible en direct Vérifiez l’état cible, arrêtez si nécessaire et inspectez la pile des appels et les modules pour détecter des signaux de défaillance.
Corriger le symbole ou le chargement de la source Utilisez les journaux d’activité et l’historique des commandes pour identifier pourquoi les symboles ou la source ne sont pas chargés correctement et suggérez un correctif.
Analyser une trace de débogage temporel « Analysez cette trace TTD et identifiez les transitions clés, les preuves et un point de divergence probable. »
Visualiser les résultats de requête du débogueur « Interrogez et visualisez cette sortie de modèle de données du débogueur sous la forme d’une arborescence, d’une grille ou d’un graphique ».
Automatiser l’analyse répétable « Créez et validez un script qui automatise ce flux de travail d’analyse ».

Comparez les résultats du client IA avec l’état cible et la sortie du débogueur visible avant d’agir dessus.

Considérations relatives à la sécurité et à la confidentialité de WinDbg MCP

Avant d’utiliser WinDbg MCP, évaluez la cible, ses données, le client IA sélectionné et le service de modèle configuré. Appliquez toutes les instructions suivantes :

  • Utilisation autorisée : Utilisez WinDbg MCP uniquement avec des cibles et des données que vous avez l’autorisation d’inspecter. Suivez les stratégies d’IA, de sécurité, de confidentialité et de gestion des données de votre organisation.
  • Données envoyées aux services IA : Le client IA peut envoyer le contexte du débogueur à son service de modèle configuré. Vérifiez que votre organisation approuve la ressource cible et ses données pour une utilisation avec le client et le service de modèle sélectionnés.
  • Journaux de diagnostic : Les journaux de diagnostic MCP peuvent contenir des commandes de débogueur et des données cibles. Stockez, partagez et conservez ces journaux en tant que données sensibles en fonction des stratégies de votre organisation.
  • Validation de l’IA : Traitez la sortie de l’IA comme une proposition d’examen plutôt qu’un résultat définitif. Validez la sortie par rapport aux informations visibles dans WinDbg avant d’agir dessus.
  • Contrôles d’administrateur : Les organisations peuvent désactiver WinDbg MCP en activant le mode restreint WinDbg. Les administrateurs configurent le mode restreint en définissant EnableRestrictedMode sur 1. Redémarrez WinDbg après avoir modifié ce paramètre. Le mode restreint affecte d’autres fonctionnalités WinDbg en plus de MCP.

Mode sécurisé

Le mode sécurisé limite les fonctionnalités du débogueur pour réduire le risque de chargement ou d’exécution de code non approuvé, de lancement de processus ou d’opérations de fichier non sécurisées. Il bloque les commandes à haut risque telles que .shell. Par défaut, le mode sécurisé s’active au démarrage du serveur MCP.

Pour configurer si le serveur MCP active le mode sécurisé par défaut, dans WinDbg, sélectionnez Fichier>Paramètres>, puis sélectionnez ou désactivez Activer le mode sécurisé pour le serveur MCP.

Le comportement en mode sécurisé dépend du fait que vous sélectionnez ou non ce paramètre et du fait que vous démarrez le service MCP avant ou après vous être connecté à une cible :

  • Mode sécurisé complet : Démarrez le service MCP avant de vous connecter à une cible et laissez Activer le mode sécurisé lorsque le serveur MCP démarre sélectionné.
  • Mode sécurisé partiel : Si vous étiez déjà connecté à une cible lorsque vous démarrez le service MCP, WinDbg entre en mode sécurisé partiel et affiche un avertissement. Pour obtenir le mode sécurisé complet, redémarrez WinDbg, démarrez le service MCP, puis connectez-vous à la cible.
  • Sans mode sécurisé : Dans la boîte de dialogue de confirmation, désactivez activer le mode sécurisé au démarrage du serveur MCP, puis sélectionnez Oui pour confirmer la sélection.

Le fait de décocher ou de cocher la case dans la boîte de dialogue de confirmation met également à jour Fichier>Paramètres>>Activer le mode sécurisé pour le serveur MCP. La sélection de la boîte de dialogue devient donc la valeur par défaut pour les futurs lancements de MCP.

Une fois le mode sécurisé activé, vous ne pouvez pas le désactiver et il reste actif tant que vous n’avez pas redémarré WinDbg. L’arrêt du service MCP ne le désactive pas. Après avoir redémarré WinDbg, désactivez Activer le mode sécurisé lorsque le serveur MCP démarre si vous souhaitez utiliser MCP sans mode sécurisé.

Pour plus d’informations, consultez Fonctionnalités du mode sécurisé.

Avertissement

Sans mode sécurisé, les commandes exécutées directement par le client IA sont toujours restreintes, mais les actions indirectes ne le sont pas. Par exemple, si le client IA définit un point d’arrêt qui exécute une commande, cette commande s’exécute avec vos autorisations complètes lorsque le point d’arrêt est atteint.

La désactivation de la protection contre l’injection d’invite croisée ne désactive pas le mode sécurisé.

Utiliser des scripts et des extensions en toute sécurité

WinDbg MCP peut vous aider à créer ou modifier des scripts de débogage et des extensions JavaScript WinDbg. Ces recommandations s’appliquent à tous les scripts et extensions, qu’ils soient générés par l’IA, développés par votre équipe ou fournis par un fournisseur tiers. Traitez le code généré ou modifié comme le code provenant d’une autre source non fiable. Passez en revue et approuvez-le avant de le charger ou de l’exécuter, en particulier lorsque vous déboguez des environnements clients ou des cibles sensibles.

Avant d’utiliser un script ou une extension, appliquez ces recommandations :

  1. Passez en revue le code : Passez en revue le code lorsque la source est disponible. Sinon, vérifiez l’éditeur, la signature numérique, la source de téléchargement, la version, les dépendances et le comportement documenté.
  2. Comprendre la limite de confiance : Les extensions WinDbg peuvent exécuter du code dans le processus du débogueur et accéder aux données de débogage. Le mode sécurisé limite certaines opérations, mais il ne valide pas, n’isole pas en bac à sable et n’établit pas la confiance envers une extension.
  3. Testez en toute sécurité : Testez avec des cibles non sensibles dans un environnement isolé. Incluez des données de débogueur incorrectes ou inattendues, la gestion des défaillances et l’utilisation des ressources dans vos tests.
  4. Utilisez le privilège minimum : Exécutez WinDbg sans privilèges d’administrateur, sauf si le scénario de débogage nécessite une élévation.
  5. Protégez les données client : Vérifiez que le code ne divulgue pas la mémoire, le code source, les symboles, les chemins de fichier, la sortie de diagnostic ou d’autres données sensibles à des emplacements non approuvés.
  6. Déploiement de contrôle : Utilisez uniquement des extensions provenant de sources approuvées. Pour les environnements managés ou de production, utilisez les packages vérifiés, signés et épinglés par version remis via un canal de déploiement approuvé. Passez en revue et testez chaque mise à jour avant le déploiement.

Ne désactivez pas le mode sécurisé uniquement pour charger ou exécuter un script ou une extension. Si une extension vous oblige à désactiver le mode sécurisé, passez en revue son comportement, comprenez quelles restrictions cette modification supprime et obtenez l’approbation des réviseurs de sécurité de votre organisation. Pour plus d’informations, consultez mode sécurisé.

Protection contre l’injection inter-prompt

WinDbg classifie certaines opérations comme protégées. Pour une opération protégée, WinDbg utilise le service de modèle configuré du client IA pour classifier la sortie du débogueur de l’opération afin de détecter les attaques par injection d’invite croisée (XPIA). WinDbg bloque la sortie que la classification identifie comme potentiellement dangereuse.

La protection XPIA dépend de l’échantillonnage MCP. Le client IA doit prendre en charge et autoriser l’échantillonnage MCP afin que WinDbg puisse demander une inférence de classification au service de modèle configuré. Si la classification ne peut pas s’exécuter, l’opération protégée échoue sans retourner de sortie.

Le paramètre Activer l’atténuation des injections inter-invites contrôle la protection XPIA. Désactivez cette protection uniquement dans un environnement de confiance, pour les cibles approuvées par votre organisation, après que les réviseurs de sécurité de votre organisation ont approuvé la décision et que d’autres contrôles traitent le risque d’injection d’invite.

Fournir des commentaires sur WinDbg MCP

Vos commentaires aident Microsoft améliorer le MCP WinDbg et à hiérarchiser les correctifs et fonctionnalités. Pour signaler un bogue ou suggérer une fonctionnalité, créez une issue dans le WinDbg Feedback repository.

Étapes suivantes