Trusted Design
Categories:
Arsitektur Keamanan dan Prinsip Desain
Tiga Elemen Keamanan dan Prinsip Desain Keamanan
- Integritas Integrity
- Ketersediaan Availability
- Kerahasiaan Confidentiality
Prinsip Desain Terbuka
Open Design
- Desain tidak boleh menjadi rahasia; desain terbuka lebih aman.
- Keamanan tidak bergantung pada kerahasiaan.
Prinsip Keamanan Default Gagal
Fail-safe defaults
- Keputusan akses didasarkan pada “izinkan”, bukan “tolak”.
- Secara default, akses tidak diizinkan; mekanisme perlindungan hanya digunakan untuk mengidentifikasi kasus akses yang diizinkan.
- Keamanan gagal aman: Setiap sistem kompleks harus memiliki mekanisme keamanan darurat setelah kegagalan fungsi, dan berhati-hati terhadap pesan kesalahan dan log untuk mencegah kebocoran informasi.
- Keamanan default: Konfigurasi default sistem dalam keadaan awal adalah aman, dengan menggunakan sistem dan layanan paling sedikit untuk memberikan keamanan maksimal.
Prinsip Pemisahan Hak Akses
Separation of Privilege
- Mekanisme perlindungan yang memerlukan dua kunci untuk membuka lebih kuat dan fleksibel daripada menggunakan satu kunci.
- Tujuan pemisahan hak akses
- Mencegah konflik kepentingan, penyalahgunaan kekuasaan individu
- Memecah satu hak akses penting menjadi beberapa hak akses, sehingga objek yang perlu dilindungi lebih sulit diakses secara ilegal, sehingga lebih aman.
- Memisahkan tanggung jawab dan wewenang proses yang berbeda
Sistem dapat menetapkan 3 peran secara default, dengan hak akses akun sistem yang independen antar peran, dan pemisahan tanggung jawab:
- Administrator sistem: Bertanggung jawab atas manajemen pengguna sehari-hari dan manajemen konfigurasi sistem.
- Administrator keamanan: Bertanggung jawab atas manajemen status pengguna, aktivasi dan deaktivasi konfigurasi keamanan.
- Auditor keamanan: Bertanggung jawab atas audit log operasi dua pihak sebelumnya, dan memiliki hak untuk mengekspor log, memastikan semua operasi pengguna sistem dapat dilacak.
Prinsip Hak Akses Minimum
Least Privilege
- Setiap pengguna dan program dalam sistem harus menggunakan set hak akses paling sedikit yang diperlukan untuk menyelesaikan tugas.
- Pastikan aplikasi berjalan dengan hak akses terendah.
- Saat pengguna menjalankan berbagai program dalam sistem, seperti database, server web, dll., perhatikan penggunaan akun dengan hak akses minimal untuk menjalankan atau terhubung, bukan akun dengan hak akses tertinggi sistem.
- Saat membuat akun baru, berikan peran dengan hak akses minimal secara default.
Prinsip Ekonomi Penggunaan
Economy of Mechanism
- Pertahankan desain sistem dan kode agar tetap sederhana dan ringkas.
- Semakin kompleks desain perangkat lunak, semakin tinggi kemungkinan munculnya bug dalam kode; jika desain sesempurna mungkin, maka kemungkinan munculnya masalah keamanan semakin kecil.
- Hapus kode dan modul fungsi yang tidak diperlukan; mempertahankan kode tersebut hanya akan meningkatkan permukaan serangan sistem.
- Desain komponen yang dapat digunakan kembali untuk mengurangi kode yang berlebihan.
- Ekonomis dan praktis: sederhana, elegan, dan modular.
- Jangan terlalu berlebihan dalam desain.
Prinsip Mekanisme Umum Minimum
Least Common Mechanism
- Hindari menyediakan skenario di mana beberapa objek berbagi sumber daya yang sama; jumlah dan penggunaan akses sumber daya bersama harus seminimal mungkin.
- Objek bersama menyediakan saluran potensial untuk aliran informasi dan interaksi yang tidak disengaja yang berbahaya; hindari menyediakan skenario di mana beberapa objek berbagi sumber daya yang sama.
- Jika satu atau beberapa objek tidak puas dengan layanan yang disediakan oleh mekanisme bersama, mereka dapat memilih untuk tidak menggunakan mekanisme bersama sama sekali, untuk menghindari serangan tidak langsung dari bug objek lain.
- Minimalkan memori bersama
- Minimalkan pengikatan port
- Kurangi koneksi, lindungi dari serangan DoS
Prinsip Mediasi Lengkap
Complete Mediation
- Prinsip mediasi lengkap mengharuskan bahwa setiap akses ke objek harus melalui pemeriksaan keamanan.
- Saat subjek mencoba mengakses objek, sistem memeriksa setiap kali apakah subjek memiliki izin tersebut.
- Sebisa mungkin, biarkan pemilik sumber daya membuat keputusan kontrol akses, misalnya, jika itu adalah URL, biarkan server belakang memeriksa, jangan lakukan penilaian di frontend.
- Perhatikan penggunaan dan pemeriksaan cache secara khusus; tidak dapat dijamin bahwa informasi dalam cache tidak dimanipulasi oleh peretas setiap kali diakses. e.g., DNS cache spoofing.
Prinsip Psikologis yang Dapat Diterima
Psychological Acceptability
- Mekanisme keamanan mungkin menambah beban bagi pengguna, tetapi beban tersebut harus seminimal mungkin dan masuk akal.
- Mekanisme keamanan harus sebisa mungkin ramah pengguna, memudahkan mereka menggunakan dan memahami sistem.
- Jika metode konfigurasi terlalu rumit dan membosankan, administrator sistem mungkin secara tidak sengaja mengonfigurasi opsi yang salah, sehingga membuat sistem tidak aman.
- Prinsip ini umumnya berkaitan dengan antarmuka interaksi manusia-komputer, UCD (User Centered Design).
Prinsip Pertahanan Berlapis
Defense in Depth Pertahanan berlapis adalah prinsip pertahanan yang sangat komprehensif, umumnya mengharuskan arsitek sistem untuk menggabungkan berbagai prinsip desain keamanan lainnya, mengadopsi mekanisme verifikasi keamanan multi-titik dan multi-lapis, dan memperhatikan mekanisme pertahanan keamanan tingkat sistem secara menyeluruh dari tingkat arsitektur sistem, bukan hanya bergantung pada satu mekanisme keamanan.