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.
Mengamankan aplikasi adalah proses yang sedang berlangsung. Tidak akan pernah ada titik di mana pengembang dapat menjamin bahwa aplikasi aman dari semua serangan, karena tidak mungkin untuk memprediksi jenis serangan masa depan apa yang akan dibawa teknologi baru. Sebaliknya, hanya karena belum ada yang menemukan (atau menerbitkan) kelemahan keamanan dalam sistem tidak berarti bahwa tidak ada atau bisa ada. Anda perlu merencanakan keamanan selama fase desain proyek, serta merencanakan bagaimana keamanan akan dipertahankan selama masa pakai aplikasi.
Desain untuk Keamanan
Salah satu masalah terbesar dalam mengembangkan aplikasi yang aman adalah bahwa keamanan sering kali merupakan hal yang harus diimplementasikan setelah proyek selesai kode. Tidak membangun keamanan ke dalam aplikasi pada awal menyebabkan aplikasi yang tidak aman karena sedikit pemikiran telah diberikan untuk apa yang membuat aplikasi aman.
Implementasi keamanan pada menit-menit terakhir menyebabkan munculnya lebih banyak bug, karena perangkat lunak mengalami kerusakan di bawah batasan baru atau harus ditulis ulang untuk mengakomodasi fungsionalitas yang tidak diantisipasi. Setiap baris kode yang direvisi berisi kemungkinan memperkenalkan bug baru. Untuk alasan ini, Anda harus mempertimbangkan keamanan di awal proses pengembangan sehingga dapat dilanjutkan bersama dengan pengembangan fitur baru.
Pemodelan Ancaman
Anda tidak dapat melindungi sistem dari serangan kecuali Anda memahami semua potensi serangan yang diekspos. Proses mengevaluasi ancaman keamanan, yang disebut pemodelan ancaman, diperlukan untuk menentukan kemungkinan dan ramifikasi pelanggaran keamanan dalam aplikasi ADO.NET Anda.
Pemodelan ancaman terdiri dari tiga langkah tingkat tinggi: memahami tampilan lawan, mencirikan keamanan sistem, dan menentukan ancaman.
Pemodelan ancaman adalah pendekatan berulang untuk menilai kerentanan dalam aplikasi Anda untuk menemukan yang paling berbahaya karena mengekspos data yang paling sensitif. Setelah mengidentifikasi kerentanan, Anda memberi peringkat dalam urutan tingkat keparahan dan membuat serangkaian penanggulangan yang diprioritaskan untuk melawan ancaman.
Untuk informasi selengkapnya, lihat sumber daya berikut ini:
| Sumber Daya | Deskripsi |
|---|---|
| Situs Pemodelan Ancaman di Portal Teknik Keamanan | Sumber daya di halaman ini akan membantu Anda memahami proses pemodelan ancaman dan membangun model ancaman yang dapat Anda gunakan untuk mengamankan aplikasi Anda sendiri |
Prinsip Hak Istimewa Terkecil
Saat Anda merancang, membangun, dan menyebarkan aplikasi, Anda harus berasumsi bahwa aplikasi Anda akan diserang. Seringkali serangan ini berasal dari kode berbahaya yang dijalankan dengan izin pengguna yang menjalankan kode. Yang lain dapat berasal dari kode yang disengaja dengan baik yang telah dieksploitasi oleh penyerang. Saat merencanakan keamanan, selalu asumsikan skenario terburuk akan terjadi.
Salah satu tindakan balasan yang dapat Anda gunakan adalah mencoba untuk membuat dinding sebanyak mungkin di sekitar kode Anda dengan menjalankan dengan hak istimewa paling sedikit. Prinsip hak istimewa paling sedikit mengatakan bahwa hak istimewa yang diberikan harus diberikan kepada jumlah kode paling sedikit yang diperlukan untuk durasi waktu terpendek yang diperlukan untuk menyelesaikan pekerjaan.
Praktik terbaik untuk membuat aplikasi yang aman adalah memulai tanpa izin sama sekali dan kemudian menambahkan izin tersempit untuk tugas tertentu yang sedang dilakukan. Sebaliknya, dimulai dengan semua izin dan kemudian menolak masing-masing izin menyebabkan aplikasi yang tidak aman yang sulit diuji dan dipertahankan karena lubang keamanan mungkin ada dari memberikan lebih banyak izin secara tidak sengaja daripada yang diperlukan.
Untuk informasi selengkapnya tentang mengamankan aplikasi Anda, lihat sumber daya berikut:
| Sumber Daya | Deskripsi |
|---|---|
| Mengamankan Aplikasi | Berisi tautan ke topik keamanan umum. Juga berisi tautan ke topik untuk mengamankan aplikasi terdistribusi, aplikasi Web, aplikasi seluler, dan aplikasi desktop. |
Keamanan Akses Kode (CAS)
Keamanan akses kode (CAS) adalah mekanisme yang membantu membatasi akses yang dimiliki kode untuk melindungi sumber daya dan operasi. Dalam .NET Framework, CAS melakukan fungsi berikut:
Menentukan izin dan set izin yang mewakili hak untuk mengakses berbagai sumber daya sistem.
Memungkinkan administrator mengonfigurasi kebijakan keamanan dengan mengaitkan sekumpulan izin dengan grup kode (grup kode).
Memungkinkan kode untuk meminta izin yang diperlukan untuk dijalankan, serta izin yang akan berguna untuk dimiliki, dan menentukan izin mana yang tidak boleh dimiliki kode.
Memberikan izin kepada setiap rakitan yang dimuat, berdasarkan izin yang diminta oleh kode dan pada operasi yang diizinkan oleh kebijakan keamanan.
Memungkinkan kode untuk menuntut bahwa peneleponnya memiliki izin tertentu.
Memungkinkan kode untuk menuntut peneleponnya memiliki tanda tangan digital, sehingga hanya memungkinkan penelepon dari organisasi atau situs tertentu untuk memanggil kode yang dilindungi.
Memberlakukan pembatasan pada kode saat runtime dengan membandingkan izin yang diberikan untuk setiap pemanggil pada tumpukan panggilan dengan izin yang harus dimiliki oleh pemanggil.
Untuk meminimalkan jumlah kerusakan yang dapat terjadi jika serangan berhasil, pilih konteks keamanan untuk kode Anda yang memberikan akses hanya ke sumber daya yang diperlukan untuk menyelesaikan pekerjaannya dan tidak lebih.
Untuk informasi selengkapnya, lihat sumber daya berikut ini:
| Sumber Daya | Deskripsi |
|---|---|
| Keamanan Akses Kode dan ADO.NET | Menjelaskan interaksi antara keamanan akses kode, keamanan berbasis peran, dan lingkungan tepercaya sebagian dari perspektif aplikasi ADO.NET. |
| Keamanan Akses Kode |
Berisi tautan ke topik tambahan yang menjelaskan CAS dalam .NET Framework. |
Keamanan Database
Prinsip hak istimewa paling sedikit juga berlaku untuk sumber data Anda. Beberapa panduan umum untuk keamanan database meliputi:
Buat akun dengan hak istimewa serendah mungkin.
Jangan izinkan pengguna mengakses akun administratif hanya untuk membuat kode berfungsi.
Jangan mengembalikan pesan kesalahan sisi server ke aplikasi klien.
Validasi semua input di klien dan server.
Gunakan perintah berparameter dan hindari pernyataan SQL dinamis.
Aktifkan audit dan pengelogan keamanan untuk database yang Anda gunakan sehingga Anda diberi tahu tentang pelanggaran keamanan apa pun.
Untuk informasi selengkapnya, lihat sumber daya berikut ini:
| Sumber Daya | Deskripsi |
|---|---|
| Keamanan SQL Server | Memberikan gambaran umum keamanan SQL Server dengan skenario aplikasi yang memberikan panduan untuk membuat aplikasi ADO.NET aman yang menargetkan SQL Server. |
| Rekomendasi untuk Strategi Akses Data | Memberikan rekomendasi untuk mengakses data dan melakukan operasi database. |
Kebijakan dan Administrasi Keamanan
Mengelola kebijakan keamanan akses kode (CAS) yang tidak tepat dapat berpotensi menciptakan kelemahan keamanan. Setelah aplikasi disebarkan, teknik untuk memantau keamanan harus digunakan dan risiko dievaluasi saat ancaman baru muncul.
Untuk informasi selengkapnya, lihat sumber daya berikut ini:
| Sumber Daya | Deskripsi |
|---|---|
| Manajemen Kebijakan Keamanan | Menyediakan informasi tentang membuat dan mengelola kebijakan keamanan. |
| Praktik Terbaik Kebijakan Keamanan | Menyediakan tautan yang menjelaskan cara mengelola kebijakan keamanan. |