Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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.
Berhati-hatilah saat melampirkan ke proses pengguna yang tidak tepercaya: ketika Anda melakukannya, Anda berasumsi bahwa itu dapat dipercaya. Saat Anda mencoba melampirkan ke proses pengguna yang tidak tepercaya, konfirmasi kotak dialog peringatan keamanan akan muncul menanyakan apakah Anda ingin melampirkan ke proses tersebut. "Pengguna tepercaya" mencakup Anda, dan sekumpulan pengguna standar yang biasanya ditentukan pada komputer yang telah menginstal .NET Framework, seperti aspnet, localsystem, networkservice, dan localservice. Untuk informasi selengkapnya, lihat Peringatan Keamanan: Melampirkan ke proses yang dimiliki oleh pengguna yang tidak tepercaya bisa berbahaya. Jika informasi berikut terlihat mencurigakan atau Anda tidak yakin, jangan lampirkan ke proses ini.
Berhati-hatilah saat mengunduh proyek dari Internet dan memuatnya ke Visual Studio. Ini sangat berisiko dilakukan meskipun tanpa debugging. Ketika Anda melakukan ini, Anda berasumsi bahwa proyek dan kode yang dikandungnya dapat dipercaya.
Untuk informasi selengkapnya, lihat Men-debug Kode 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.
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:
Server Sumber, yang memberi Anda versi kode sumber dari repositori kode sumber. Ini berguna ketika Anda tidak memiliki versi kode sumber program saat ini. Peringatan Keamanan: Debugger Harus Menjalankan Perintah Tidak Tepercaya.
Server Simbol, yang digunakan untuk menyediakan simbol yang diperlukan untuk men-debug crash selama panggilan sistem.
Konten terkait
- Pengaturan dan Persiapan Debugger
- Pertama-tama lihatlah debugger
- Peringatan Keamanan: Mengaitkan ke proses yang dimiliki oleh pengguna yang tidak dipercaya dapat berbahaya. Jika informasi berikut terlihat mencurigakan atau Anda tidak yakin, jangan lampirkan ke proses ini
- Peringatan Keamanan: Debugger Harus Menjalankan Perintah Tidak Tepercaya