Bagikan melalui


Keamanan Debugger

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 mengalir ke arah yang berlawanan. Kode berbahaya dalam proses debuggee dapat membahayakan keamanan komputer debugging: ada sejumlah kerentanan keamanan yang harus diwaspadai.

Praktik Terbaik Keamanan

Ada hubungan kepercayaan implisit antara kode yang Anda debugging, dan debugger. Jika Anda bersedia men-debug sesuatu, Anda juga harus bersedia menjalankannya. Intinya adalah Anda harus dapat mempercayai apa yang Anda debugging. 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, debugging tidak boleh diaktifkan tanpa batas waktu.

Keamanan Penelusuran Kesalahan Terkelola

Berikut adalah beberapa rekomendasi umum yang berlaku untuk semua debugging terkelola.

Keamanan Penelusuran Kesalahan Jarak Jauh

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

Pemonitor Debugging Jarak Jauh Visual Studio (msvsmon.exe) digunakan dalam debugging jarak jauh, dan ada beberapa rekomendasi keamanan untuk konfigurasinya. Cara yang disukai untuk mengonfigurasi mode autentikasi adalah Autentikasi Windows, karena tidak ada mode Autentikasi yang tidak aman.

Dialog kesalahan

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 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 melakukan debug pada proses yang tidak diketahui, coba lakukan debugging secara lokal, dan gunakan firewall untuk menjaga agar potensi ancaman tetap lokal.

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

Keamanan Pemecahan Masalah Layanan Web

Lebih aman untuk men-debug secara lokal, tetapi karena Anda mungkin tidak 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 adalah beberapa praktik terbaik tambahan. Untuk informasi selengkapnya, lihat Men-debug Layanan Web XML.

  • Jangan aktifkan debugging pada server Web yang telah disusupi.

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

  • Berhati-hatilah, terutama jika Anda memecahkan masalah 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: