Gambaran umum WinDbg MCP

Artikel ini membantu Anda memahami cara kerja WinDbg MCP dan memutuskan apakah akan menggunakannya berdasarkan dukungan klien dan pertimbangan keamanan dan privasi. WinDbg MCP menggunakan Model Context Protocol (MCP) untuk menghubungkan klien AI yang didukung ke sesi WinDbg aktif, di mana klien dapat menggunakan alat dan konteks debugger selama analisis.

Anda dapat menggunakan koneksi ini untuk menyelidiki target debug saat meninjau tindakan debugger yang dimulai AI di WinDbg. Temuan yang dihasilkan AI tidak otoritatif. Validasi temuan, bukti, asumsi, kondisi target, dan perintah terhadap output di WinDbg.

Cara kerja WinDbg MCP

WinDbg MCP menggunakan proksi lokal antara klien AI dan server MCP di WinDbg. Koneksi memiliki arsitektur berikut:

Diagram yang menunjukkan koneksi dua arah dari layanan model AI melalui klien AI dan proksi ke server WinDbg MCP.

Diagram menggunakan tata letak bertingkat yang ringkas untuk memperlihatkan koneksi dua arah. Layanan model AI dan klien AI bertukar permintaan dan respons AI. Klien AI dan DbgX.Mcp.Proxy.exe berkomunikasi melalui STDIO MCP. DbgX.Mcp.Proxy.exe dan server WinDbg MCP berkomunikasi melalui pipa bernama per proses lokal. Server WinDbg MCP menyediakan alat, prompt, dan sumber daya.

Setiap sesi WinDbg menggunakan pipa bernama lokal per proses. DbgX.Mcp.Proxy.exe berkomunikasi dengan klien AI melalui input dan output standar dan menghubungkan klien ke satu sesi WinDbg yang dipilih.

Klien AI dapat mengirim konteks debugging ke layanan model yang dikonfigurasi untuknya sebagai bagian dari permintaan dan respons AI. Anda tetap memegang kendali atas sesi debugging, dan Anda dapat meninjau tindakan debugger yang dimulai AI di WinDbg.

Dukungan klien dan batas sesi

WinDbg MCP mendukung klien AI ini:

  • Visual Studio Code dengan GitHub Copilot
  • CLI GitHub Copilot

Klien AI lain yang kompatibel dengan MCP mungkin bekerja melalui konfigurasi kustom dengan upaya terbaik, tetapi WinDbg tidak secara resmi mendukungnya. Gunakan klien kustom hanya setelah Anda mengonfirmasi bahwa kemampuan MCP dan kontrol keamanannya memenuhi persyaratan organisasi Anda.

Hanya satu klien MCP aktif yang dapat terhubung ke sesi WinDbg pada satu waktu. Sesi WinDbg terpisah menggunakan pipa bernama lokal terpisah. Di lingkungan terbatas, kebijakan organisasi dapat menyembunyikan atau menonaktifkan kontrol MCP.

Alat dan perintah WinDbg MCP

WinDbg MCP menyediakan alat koneksi, alat debugger, dan perintah bawaan. Tindakan Instal MCP di WinDbg mendaftarkan WinDbg sebagai server MCP dengan klien AI yang dipilih. Setelah proksi tersambung ke sesi WinDbg, klien AI memilih alat yang sesuai secara otomatis.

Gunakan alat koneksi berikut untuk menemukan dan memilih sesi WinDbg:

Alat Sambungan Kegunaan
list_sessions Mencantumkan sesi WinDbg dengan layanan MCP aktif dan melaporkan apakah setiap sesi tersedia.
connect_session Menyambungkan proksi ke sesi WinDbg berdasarkan ID proses.
disconnect_session Memutuskan sambungan proksi dari sesi WinDbg saat ini.

Setelah koneksi, minta klien AI untuk menggunakan WinDbg MCP untuk:

  • Periksa atau kontrol target debug.
  • Jalankan perintah WinDbg.
  • Tinjau diagnostik dan kode sumber.
  • Visualisasikan data debugger.
  • Buat skrip analisis.

Gunakan perintah MCP WinDbg bawaan

Jika klien AI mendukung prompt MCP, pilih prompt bawaan untuk memulai alur kerja penelusuran kesalahan terpandu.

Prompt bawaan Kegunaan
investigate_symbol_loading_issues Diagnosis masalah pemuatan simbol.
write_extension Buat ekstensi WinDbg JavaScript.
create_graph Visualisasikan data debugger sebagai grafik.
configure_ttd Mengonfigurasi alur kerja Time Travel Debugging.

Gunakan WinDbg MCP untuk penelusuran kesalahan

Perintah berikut menyediakan titik awal untuk skenario penelusuran kesalahan yang didukung:

Scenario Contoh tanggapan
Temukan akar penyebab crash dump Analisis dump ini dan berikan kemungkinan akar penyebab, bukti pendukung, dan asumsi yang tersisa.
Menyelidiki target aktif Periksa status target, hentikan jika perlu, dan periksa tumpukan panggilan dan modul untuk sinyal kesalahan.
Perbaiki pemuatan simbol atau sumber Gunakan log dan riwayat perintah untuk mengidentifikasi mengapa simbol atau kode sumber tidak dimuat dengan benar dan menyarankan perbaikan.
Analisis rekam jejak debug perjalanan waktu Analisislah jejak TTD ini dan identifikasi transisi kunci, bukti, dan titik divergensi yang mungkin.
Memvisualisasikan hasil kueri debugger "Mengkueri dan memvisualisasikan output model data debugger ini sebagai pohon, kisi, atau grafik."
Mengotomatisasi analisis berulang "Buat dan validasi skrip yang mengotomatiskan alur kerja analisis ini."

Bandingkan hasil klien AI dengan keadaan target dan output debugger yang terlihat sebelum Anda bertindak atasnya.

Pertimbangan keamanan dan privasi WinDbg MCP

Sebelum Anda menggunakan WinDbg MCP, evaluasi target, datanya, klien AI yang dipilih, dan layanan model yang dikonfigurasi. Terapkan semua panduan berikut:

  • Penggunaan resmi: Gunakan WinDbg MCP hanya dengan target dan data yang diizinkan untuk Anda periksa. Ikuti kebijakan AI, keamanan, privasi, dan penanganan data organisasi Anda.
  • Data yang dikirim ke layanan AI: Klien AI dapat mengirim konteks debugger ke layanan model yang telah dikonfigurasi. Konfirmasikan bahwa organisasi Anda menyetujui target dan datanya untuk digunakan dengan klien dan layanan model yang dipilih.
  • Log diagnostik: Log diagnostik MCP dapat berisi perintah debugger dan data target. Simpan, bagikan, dan simpan untuk jangka waktu tertentu log ini sebagai data sensitif sesuai dengan kebijakan organisasi Anda.
  • Validasi AI: Perlakukan output AI sebagai proposal untuk penyelidikan daripada hasil definitif. Validasi output terhadap informasi yang terlihat di WinDbg sebelum Anda menindaklanjutinya.
  • Kontrol administrator: Organisasi dapat menonaktifkan WinDbg MCP dengan mengaktifkan mode terbatas WinDbg. Administrator mengonfigurasi mode terbatas dengan mengatur EnableRestrictedMode ke 1. Mulai ulang WinDbg setelah Anda mengubah pengaturan ini. Mode terbatas memengaruhi fitur WinDbg lainnya selain MCP.

Mode Aman

Mode aman membatasi fungsionalitas debugger untuk mengurangi risiko memuat atau menjalankan kode yang tidak tepercaya, meluncurkan proses, atau melakukan operasi file yang tidak aman. Ini memblokir perintah berisiko tinggi seperti .shell. Secara default, mode aman diaktifkan saat server MCP dimulai.

Untuk mengonfigurasi apakah server MCP mengaktifkan mode aman secara default, di WinDbg, pilih File>Pengaturan>pengaturan layanan MCP, lalu pilih atau hapus Aktifkan Mode Aman untuk Server MCP.

Perilaku mode aman bergantung pada apakah Anda memilih pengaturan dan apakah Anda memulai layanan MCP sebelum atau sesudah Anda terhubung ke target:

  • Mode aman penuh: Mulai layanan MCP sebelum Anda tersambung ke target, dan biarkan Aktifkan mode aman saat server MCP mulai dipilih.
  • Mode aman parsial: Jika Anda sudah terhubung ke target saat memulai layanan MCP, WinDbg memasuki mode aman parsial dan menunjukkan peringatan. Untuk mendapatkan mode aman penuh, mulai ulang WinDbg, mulai layanan MCP, lalu sambungkan ke target.
  • Tanpa mode aman: Dalam dialog konfirmasi, hapus centang pada Aktifkan mode aman saat server MCP dimulai, lalu pilih Ya untuk mengonfirmasi pilihan.

Menghapus centang atau memilih kotak centang dalam dialog konfirmasi juga memperbarui File>Pengaturan>pengaturan layanan MCP>Aktifkan Mode Aman untuk Server MCP. Oleh karena itu, pilihan dialog menjadi default untuk startup MCP di masa mendatang.

Setelah mode aman diaktifkan, Anda tidak dapat menonaktifkannya, dan tetap aktif hingga Anda memulai ulang WinDbg. Menghentikan layanan MCP tidak menonaktifkannya. Setelah Anda memulai ulang WinDbg, hapus centang pada Aktifkan mode aman saat server MCP dimulai jika Anda ingin menggunakan MCP tanpa mode aman.

Untuk informasi selengkapnya, lihat Fitur mode aman.

Warning

Tanpa mode aman, perintah yang dijalankan klien AI secara langsung masih dibatasi, tetapi tindakan tidak langsung tidak dibatasi. Misalnya, jika klien AI mengatur titik henti yang menjalankan perintah, perintah tersebut berjalan dengan izin penuh Anda saat breakpoint tercapai.

Menonaktifkan perlindungan injeksi lintas perintah tidak menonaktifkan mode aman.

Gunakan skrip dan ekstensi dengan aman

WinDbg MCP dapat membantu Anda membuat atau memodifikasi skrip debugging dan ekstensi JavaScript WinDbg. Rekomendasi ini berlaku untuk semua skrip dan ekstensi, baik yang dihasilkan AI, dikembangkan oleh tim Anda, atau disediakan oleh vendor pihak ketiga. Perlakukan kode yang dihasilkan atau dimodifikasi seperti kode dari sumber lain yang tidak tepercaya. Tinjau dan setujui sebelum Anda memuat atau menjalankannya, terutama saat Anda men-debug lingkungan pelanggan atau target sensitif.

Sebelum Anda menggunakan skrip atau ekstensi apa pun, terapkan rekomendasi ini:

  1. Tinjau kode: Tinjau kode saat sumber tersedia. Jika tidak, verifikasi penerbit, tanda tangan digital, sumber unduhan, versi, dependensi, dan perilaku yang didokumenkan.
  2. Pahami batas kepercayaan: Ekstensi WinDbg dapat menjalankan kode dalam proses debugger dan mengakses data debugging. Mode aman membatasi operasi tertentu, tetapi tidak memvalidasi, melakukan sandbox, atau menetapkan kepercayaan terhadap ekstensi.
  3. Uji dengan aman: Uji dengan target yang tidak sensitif di lingkungan yang terisolasi. Sertakan data debugger yang salah atau tidak terduga, penanganan kegagalan, dan penggunaan sumber daya dalam pengujian Anda.
  4. Gunakan hak istimewa paling sedikit: Jalankan WinDbg tanpa hak istimewa administrator kecuali skenario penelusuran kesalahan memerlukan elevasi.
  5. Lindungi data pelanggan: Konfirmasikan bahwa kode tidak mengungkapkan memori, kode sumber, simbol, jalur file, output diagnostik, atau data sensitif lainnya ke lokasi yang tidak disetujui.
  6. Penyebaran kontrol: Gunakan hanya ekstensi dari sumber yang disetujui. Untuk lingkungan terkelola atau produksi, gunakan paket yang ditinjau, ditandatangani, dan dengan versi yang dikunci yang dikirimkan melalui saluran penyebaran yang disetujui. Tinjau dan uji setiap pembaruan sebelum penyebaran.

Jangan nonaktifkan mode aman hanya untuk memuat atau menjalankan skrip atau ekstensi. Jika ekstensi mengharuskan Anda menonaktifkan mode aman, tinjau perilakunya, pahami pembatasan apa yang dihapus oleh perubahan tersebut, dan dapatkan persetujuan dari peninjau keamanan organisasi Anda. Untuk informasi selengkapnya, lihat Mode aman.

Perlindungan injeksi lintas prompt

WinDbg mengklasifikasikan operasi tertentu sebagai dilindungi. Untuk operasi yang dilindungi, WinDbg menggunakan layanan model klien AI yang dikonfigurasi untuk mengklasifikasikan output debugger dari operasi tersebut untuk serangan injeksi lintas prompt (XPIA). WinDbg memblokir output yang diidentifikasi oleh klasifikasi sebagai berpotensi tidak aman.

Perlindungan XPIA tergantung pada pengambilan sampel MCP. Klien AI harus mendukung dan mengizinkan sampling MCP sehingga WinDbg dapat meminta klasifikasi dari layanan model yang dikonfigurasi. Jika klasifikasi tidak dapat berjalan, operasi yang dilindungi gagal tanpa mengembalikan output.

Pengaturan Aktifkan Mitigasi Injeksi Cross Prompt mengontrol perlindungan XPIA. Nonaktifkan perlindungan ini hanya di lingkungan tepercaya, untuk target yang disetujui organisasi Anda, setelah peninjau keamanan organisasi Anda menyetujui keputusan dan kontrol lain mengatasi risiko injeksi prompt.

Berikan umpan balik tentang WinDbg MCP

Umpan balik Anda membantu Microsoft meningkatkan WinDbg MCP dan memprioritaskan perbaikan dan fitur. Untuk melaporkan bug atau menyarankan fitur, buat isu di repositori Umpan Balik WinDbg.

Langkah berikutnya