Bagikan melalui


Pertimbangan Keamanan Visualizer

Menulis Visualizer melibatkan kemungkinan ancaman keamanan. Tidak ada eksploitasi yang diketahui saat ini untuk potensi ancaman ini, tetapi pengembang harus menyadarinya dan mengambil tindakan pencegahan keamanan yang sesuai, seperti yang dijelaskan di sini, untuk menjaga dari eksploitasi di masa mendatang.

Visualizer debugger memerlukan hak istimewa yang lebih besar daripada yang diizinkan oleh aplikasi kepercayaan parsial. Visualizers tidak akan dimuat ketika Anda dihentikan dalam kode dengan kepercayaan parsial. Untuk mendebug menggunakan visualizer, Anda harus menjalankan kode dengan kepercayaan penuh.

Catatan

Keamanan Akses Kode (CAS) tidak digunakan lagi di semua versi .NET Framework dan .NET. Versi terbaru .NET tidak mematuhi anotasi CAS dan menghasilkan kesalahan jika API terkait CAS digunakan. Pengembang harus mencari cara alternatif untuk menyelesaikan tugas keamanan.

Kemungkinan Komponen Debuggee Berbahaya

Visualizers terdiri dari setidaknya dua kelas: satu di sisi debugger dan satu di sisi debuggee. Visualizers sering disebarkan dalam rakitan terpisah yang dimasukkan ke dalam direktori khusus, tetapi mereka juga dapat dimuat dari debuggee. Ketika ini terjadi, debugger mengeluarkan kode dari debuggee dan menjalankannya di dalam debugger dengan kepercayaan penuh.

Menjalankan kode sisi debuggee dengan kepercayaan penuh menjadi bermasalah ketika debuggee tidak sepenuhnya dipercaya. Jika visualizer mencoba memuat sebagian rakitan kepercayaan dari debuggee ke debugger, Visual Studio akan menghentikan visualizer.

Namun, kerentanan kecil masih ada. Sisi debuggee dapat dikaitkan dengan sisi debugger yang dimuat dari sumber lain (bukan debuggee). Sisi debuggee kemudian dapat memberi tahu sisi debugger tepercaya tersebut untuk melakukan tindakan atas namanya. Jika kelas sisi debugger tepercaya mengekspos mekanisme "hapus file ini", misalnya, debuggee kepercayaan parsial dapat menjalankan mekanisme tersebut saat pengguna memanggil visualizernya.

Untuk mengurangi kerentanan ini, perhatikan antarmuka yang diekspos oleh visualizer Anda.