Share via


Keamanan Penelusuran Kesalahan

Kemampuan untuk men-debug proses lain memberi Anda kekuatan yang sangat luas yang tidak akan Anda miliki, terutama ketika men-debug dari jarak jauh. Debugger berbahaya dapat menyebabkan kerusakan luas pada mesin yang sedang di-debug.

Namun, banyak pengembang tidak menyadari bahwa ancaman keamanan juga dapat menuju ke arah yang berlawanan. Ada kemungkinan kode berbahaya dalam proses debuggee membahayakan keamanan mesin penelusuran kesalahan: ada sejumlah eksploitasi keamanan yang harus diwaspadai.

Praktik Terbaik Keamanan

Ada hubungan kepercayaan implisit antara kode yang Anda debug, dan debugger. Jika Anda bersedia men-debug sesuatu, Anda juga harus bersedia menjalankannya. Intinya adalah Anda harus dapat mempercayai apa yang Anda debug. Jika Anda tidak dapat mempercayainya, maka Anda tidak boleh men-debugnya, atau Anda harus men-debugnya dari mesin yang mampu Anda bahayakan, dan di lingkungan yang terisolasi.

Untuk mengurangi potensi permukaan serangan, penelusuran kesalahan harus dinonaktifkan pada mesin produksi. Untuk alasan yang sama, penelusuran kesalahan tidak boleh diaktifkan tanpa batas waktu.

Keamanan Penelusuran Kesalahan Terkelola

Berikut adalah beberapa rekomendasi umum yang berlaku untuk semua penelusuran kesalahan terkelola.

Keamanan Penelusuran Kesalahan Jarak Jauh

Penelusuran kesalahan lokal umumnya lebih aman daripada penelusuran kesalahan jarak jauh. Penelusuran kesalahan jarak jauh meningkatkan total luas permukaan yang dapat diperiksa.

Monitor Penelusuran Kesalahan Jarak Jauh Visual Studio (msvsmon.exe) digunakan dalam penelusuran kesalahan jarak jauh, dan ada beberapa rekomendasi keamanan untuk mengonfigurasinya. Cara yang disukai untuk mengonfigurasi mode autentikasi adalah Windows Autentikasi, karena Tidak ada mode Autentikasi yang tidak aman.

Error dialog

Saat menggunakan mode Autentikasi Windows, ketahuilah bahwa memberikan izin pengguna yang tidak tepercaya untuk terhubung ke msvsmon berbahaya, karena pengguna diberikan semua izin Anda di komputer yang menghosting msvsmon.

Jangan men-debug proses yang tidak diketahui pada komputer jarak jauh: ada potensi eksploitasi yang mungkin memengaruhi mesin yang menjalankan debugger, atau yang mungkin membahayakan msvsmon. Jika Anda benar-benar harus men-debug proses yang tidak diketahui, coba melakukan penelusuran kesalahan secara lokal, dan gunakan firewall untuk menjaga potensi ancaman dilokalkan.

Untuk informasi tentang mengonfigurasi msvsmon, lihat Menyiapkan debugger jarak jauh.

Keamanan Penelusuran Kesalahan Layanan Web

Lebih aman untuk melakukan debug secara lokal, tetapi karena Anda mungkin belum menginstal Visual Studio di server web, penelusuran kesalahan lokal mungkin tidak praktis. Umumnya, penelusuran kesalahan layanan Web dilakukan dari jarak jauh, kecuali selama pengembangan, sehingga rekomendasi untuk keamanan penelusuran kesalahan jarak jauh juga berlaku untuk penelusuran kesalahan layanan Web. Berikut ini beberapa praktik terbaik tambahan. Untuk informasi selengkapnya, lihat Penelusuran Kesalahan Layanan Web XML.

  • Jangan aktifkan penelusuran kesalahan pada server Web yang telah disusupi.

  • Pastikan Anda tahu server Web aman sebelum men-debug-nya. Jika Anda tidak yakin server Web tersebut aman, jangan men-debugnya.

  • Berhati-hatilah jika Anda men-debug layanan Web yang terekspos di Internet.

Komponen Eksternal

Ketahui status kepercayaan komponen eksternal yang berinteraksi dengan program Anda, terutama jika Anda tidak menulis kode. Perhatikan juga komponen yang mungkin digunakan Visual Studio atau debugger.

Simbol dan Kode Sumber

Dua alat Visual Studio yang memerlukan pemikiran tentang keamanan adalah sebagai berikut: