Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Questo articolo illustra il funzionamento di WinDbg MCP e ti aiuta a decidere se usarlo in base al supporto client e alle considerazioni sulla sicurezza e sulla privacy. WinDbg MCP usa il protocollo MCP (Model Context Protocol) per connettere un client di intelligenza artificiale supportato a una sessione WinDbg attiva, in cui il client può usare strumenti e contesto del debugger durante l'analisi.
È possibile usare questa connessione per analizzare un target di debug durante la revisione delle azioni del debugger avviate dall'intelligenza artificiale in WinDbg. I risultati generati dall'intelligenza artificiale non sono autorevoli. Convalida i risultati, le evidenze, i presupposti, lo stato di destinazione e i comandi rispetto all'output di WinDbg.
Funzionamento di MCP di WinDbg
WinDbg MCP usa un proxy locale tra un client di intelligenza artificiale e il server MCP in WinDbg. La connessione ha l'architettura seguente:
Il diagramma usa un layout a gradini compatto per visualizzare le connessioni bidirezionali. Il servizio del modello di IA e il client di intelligenza artificiale scambiano richieste e risposte di intelligenza artificiale. Il client di intelligenza artificiale e DbgX.Mcp.Proxy.exe comunicano tramite stdio MCP.
DbgX.Mcp.Proxy.exe e il server MCP WinDbg comunicano tramite una named pipe locale per processo. Il server MCP WinDbg fornisce strumenti, prompt e risorse.
Ogni sessione WinDbg usa una named pipe locale per processo.
DbgX.Mcp.Proxy.exe comunica con il client di intelligenza artificiale tramite input e output standard e connette il client a una sessione WinDbg selezionata.
Il client di intelligenza artificiale può inviare il contesto di debug al servizio modello configurato come parte delle richieste e delle risposte di intelligenza artificiale. Si mantiene il controllo della sessione di debug ed è possibile esaminare le azioni del debugger avviate dall'intelligenza artificiale in WinDbg.
Limiti di supporto client e sessione
WinDbg MCP supporta questi client di intelligenza artificiale:
- Visual Studio Code con GitHub Copilot
- interfaccia della riga di comando (CLI) di GitHub Copilot
Altri client di intelligenza artificiale compatibili con MCP potrebbero funzionare tramite una configurazione personalizzata senza garanzia, ma WinDbg non li supporta ufficialmente. Usare un client personalizzato solo dopo aver verificato che le funzionalità mcp e i controlli di sicurezza soddisfino i requisiti dell'organizzazione.
Solo un client MCP attivo può connettersi a una sessione WinDbg alla volta. Le sessioni WinDbg separate usano named pipe locali separate. Negli ambienti con restrizioni i criteri dell'organizzazione possono nascondere o disabilitare i controlli MCP.
Strumenti e prompt mcp di WinDbg
WinDbg MCP fornisce strumenti di connessione, strumenti di debugger e prompt predefiniti. L'azione Installa MCP in WinDbg registra WinDbg come server MCP con il client di intelligenza artificiale selezionato. Dopo che il proxy si connette a una sessione WinDbg, il client di intelligenza artificiale seleziona automaticamente gli strumenti appropriati.
Usare gli strumenti di connessione seguenti per trovare e selezionare una sessione WinDbg:
| Strumento di connessione | Purpose |
|---|---|
list_sessions |
Elenca le sessioni WinDbg con servizi MCP attivi e segnala se ogni sessione è disponibile. |
connect_session |
Connette il proxy a una sessione WinDbg in base all'ID processo. |
disconnect_session |
Disconnette il proxy dalla sessione WinDbg corrente. |
Dopo la connessione, chiedere al client di intelligenza artificiale di usare WinDbg MCP per:
- Ispezionare o controllare il target di debug.
- Eseguire i comandi di WinDbg.
- Esaminare la diagnostica e il codice sorgente.
- Visualizza i dati del debugger.
- Crea script di analisi.
Usare i prompt MCP predefiniti di WinDbg
Se il client di intelligenza artificiale supporta i prompt MCP, selezionare un prompt predefinito per avviare un flusso di lavoro di debug guidato.
| Prompt integrato | Purpose |
|---|---|
investigate_symbol_loading_issues |
Diagnosticare problemi di caricamento dei simboli. |
write_extension |
Creare un'estensione JavaScript WinDbg. |
create_graph |
Visualizzare i dati del debugger in un grafico. |
configure_ttd |
Configurare un workflow di Time Travel Debugging. |
Usare WinDbg MCP per il debug
Le istruzioni seguenti forniscono i punti di partenza per gli scenari di debug supportati:
| Scenario | Richiesta di esempio |
|---|---|
| Individuare la causa principale di un crash dump | Analizza questo dump e fornisci la probabile causa principale, le evidenze di supporto e i presupposti rimanenti |
| Analizzare un target attivo | Controllare lo stato target, interrompere, se necessario, ed esaminare lo stack di chiamate e i moduli per individuare i segnali di errore. |
| Correggi il caricamento del simbolo o della sorgente | Usare i log e la cronologia dei comandi per identificare il motivo per cui i simboli o il sorgente non vengono caricati correttamente e suggerire una correzione. |
| Analizzare una traccia di Time Travel Debugging | Analizzare questa traccia TTD e identificare transizioni chiave, evidenze e un probabile punto di divergenza. |
| Visualizzare i risultati delle query del debugger | Esegui query e visualizza l'output del modello di dati di questo debugger come albero, griglia o grafico. |
| Automatizzare le analisi ripetitive | "Creare e convalidare uno script che automatizza questo flusso di lavoro di analisi". |
Confrontare i risultati del client di intelligenza artificiale con lo stato di destinazione e l'output visibile del debugger prima di agire su di essi.
Considerazioni sulla sicurezza e la privacy di WinDbg MCP
Prima di usare WinDbg MCP, valutare il target, i relativi dati, il client di intelligenza artificiale selezionato e il servizio del modello configurato. Applica tutte le indicazioni seguenti:
- Uso autorizzato: Usare WinDbg MCP solo con target e dati per i quali si dispone dell'autorizzazione all'ispezione. Seguire i criteri di IA, sicurezza, privacy e gestione dei dati dell'organizzazione.
- Dati inviati ai servizi di intelligenza artificiale: Il client di intelligenza artificiale può inviare il contesto del debugger al servizio modello configurato. Verificare che l'organizzazione approvi il target e i relativi dati da usare con il client selezionato e il servizio modello selezionato.
- Log di diagnostica: I log di diagnostica MCP possono contenere comandi del debugger e dati del target. Archiviare, condividere e conservare questi log come dati sensibili in base ai criteri dell'organizzazione.
- Convalida dell'output dell'IA: Considerare l'output dell'IA come una proposta di indagine anziché un risultato definitivo. Verifica l'output in base alle informazioni visibili in WinDbg prima di agire su di esso.
-
Controlli amministratore: Le organizzazioni possono disabilitare WinDbg MCP abilitando la modalità con restrizioni WinDbg. Gli amministratori configurano la modalità con restrizioni impostando
EnableRestrictedModesu1. Riavviare WinDbg dopo aver modificato questa impostazione. La modalità con restrizioni influisce su altre funzionalità di WinDbg oltre a MCP.
Modalità protetta
La modalità sicura limita la funzionalità del debugger per ridurre il rischio di caricamento o esecuzione di codice non attendibile, l'avvio di processi o l'esecuzione di operazioni di file non sicure. Blocca i comandi ad alto rischio come .shell. Per impostazione predefinita, la modalità protetta viene attivata all'avvio del server MCP.
Per configurare se abilitare la modalità protetta per impostazione predefinita nel server MCP, in WinDbg selezionare File>Impostazioni>Impostazioni del servizio MCP, quindi selezionare o deselezionare Abilita modalità protetta per il server MCP.
Il comportamento della modalità protetta dipende dal fatto che si selezioni l'impostazione e se si avvii il servizio MCP prima o dopo essersi connessi a una destinazione:
- Modalità protetta completa: Avviare il servizio MCP prima di connettersi a una destinazione e lasciare attiva la modalità protetta all'avvio del server MCP selezionato.
- Modalità protetta parziale: Se si è già connessi a un target quando si avvia il servizio MCP, WinDbg entra in modalità protetta parziale e visualizza un avviso. Per ottenere la modalità sicura completa, riavviare WinDbg, avviare il servizio MCP e quindi connettersi al target.
- Senza modalità protetta: Nella finestra di dialogo di conferma, deselezionare Abilita modalità protetta all'avvio del server MCP e quindi selezionare Sì per confermare la selezione.
Se si deseleziona o si seleziona la casella di controllo nella finestra di dialogo di conferma, vengono aggiornate anche File>Impostazioni>Impostazioni del servizio MCP>Abilita modalità protetta per il server MCP. La selezione del dialogo diventa quindi l'impostazione predefinita per i futuri avvii di MCP.
Dopo l'attivazione della modalità protetta, non è possibile disattivarla e rimane attiva finché non si riavvia WinDbg. L'arresto del servizio MCP non lo disabilita. Dopo aver riavviato WinDbg, deselezionare Abilita la modalità protetta all'avvio del server MCP se si vuole usare MCP senza modalità protetta.
Per altre informazioni, vedere Funzionalità della modalità protetta.
Warning
Senza la modalità protetta, i comandi eseguiti direttamente dal client di intelligenza artificiale sono ancora limitati, ma le azioni indirette non sono. Ad esempio, se il client di intelligenza artificiale imposta un punto di interruzione che esegue un comando, tale comando viene eseguito con le autorizzazioni complete quando viene raggiunto il punto di interruzione.
La disabilitazione della protezione cross-prompt injection non disabilita la modalità protetta.
Usare script ed estensioni in modo sicuro
WinDbg MCP consente di creare o modificare script di debug e estensioni JavaScript WinDbg. Queste raccomandazioni si applicano a tutti gli script e le estensioni, indipendentemente dal fatto che siano generati dall'intelligenza artificiale, sviluppati dal team o forniti da un fornitore di terze parti. Trattare codice generato o modificato come codice da qualsiasi altra origine non attendibile. Esaminare e approvarlo prima di caricarlo o eseguirlo, in particolare quando si esegue il debug di ambienti dei clienti o destinazioni sensibili.
Prima di usare qualsiasi script o estensione, applicare queste raccomandazioni:
- Esaminare il codice: Esaminare il codice quando il codice sorgente è disponibile. In caso contrario, verificare l'editore, la firma digitale, l'origine del download, la versione, le dipendenze e il comportamento documentato.
- Comprendere il confine di attendibilità: Le estensioni WinDbg possono eseguire codice nel processo del debugger e accedere ai dati di debug. La modalità protetta limita determinate operazioni, ma non convalida, non isola in una sandbox né stabilisce l'affidabilità di un'estensione.
- Testare in modo sicuro: Eseguire test con destinazioni non sensibili in un ambiente isolato. Includi i dati del debugger in formato non valido o imprevisto, la gestione degli errori e l'utilizzo delle risorse nei test.
- Usare privilegi minimi: Eseguire WinDbg senza privilegi di amministratore, a meno che lo scenario di debug non richieda l'elevazione dei privilegi.
- Proteggere i dati dei clienti: Verificare che il codice non divulghi memoria, codice sorgente, simboli, percorsi di file, output di diagnostica o altri dati sensibili a destinazioni non approvate.
- Controllo della distribuzione: Usare solo le estensioni provenienti da origini approvate. Per gli ambienti gestiti o di produzione, usare pacchetti esaminati, firmati e bloccati a una versione specifica recapitati tramite un canale di distribuzione approvato. Esaminare e testare ogni aggiornamento prima della distribuzione.
Non disabilitare la modalità protetta esclusivamente per caricare o eseguire uno script o un'estensione. Se un'estensione richiede di disabilitare la modalità protetta, esaminarne il comportamento, comprendere quali restrizioni rimuove la modifica e ottenere l'approvazione dai revisori della sicurezza dell'organizzazione. Per altre informazioni, vedere Modalità protetta.
Protezione dall'iniezione cross-prompt
WinDbg classifica determinate operazioni come protette. Per un'operazione protetta, WinDbg usa il servizio del modello configurato dal client di intelligenza artificiale per classificare l'output del debugger dell'operazione rispetto agli attacchi di prompt injection incrociata (XPIA). WinDbg blocca l'output identificato dalla classificazione come potenzialmente non sicuro.
La protezione XPIA dipende dal campionamento MCP. Il client di intelligenza artificiale deve supportare e consentire il campionamento MCP in modo che WinDbg possa richiedere la classificazione dal servizio modello configurato. Se la classificazione non può essere eseguita, l'operazione protetta ha esito negativo senza restituire l'output.
L'impostazione Abilita mitigazione cross prompt injection controlla la protezione XPIA. Disabilitare questa protezione solo in un ambiente attendibile, per i target approvati dall'organizzazione, dopo che i revisori della sicurezza dell'organizzazione approvano la decisione e altri controlli rispondono al rischio di prompt injection.
Invia feedback su WinDbg MCP
Il feedback consente a Microsoft di migliorare mcp WinDbg e assegnare priorità alle correzioni e alle funzionalità. Per segnalare un bug o suggerire una funzionalità, creare un issue nel WinDbg Feedback repository.