Database Security
Keamanan Data & Perangkat Lunak — Chapter 15
Untuk melindungi data yang ada pada database, perlu mengetahui apa saja security feature dari database tersebut, seperti misalnya access control (role, privilege) dan encryption.
Defense in Depth
Bagaimana Aplikasi Web Dieksekusi
Berbagai Threat dan Risiko
- T1 — Kehilangan sistem DB atau media storage.
- T2 — Kehilangan media backup DB.
- T3 — Kehilangan media backup OS.
- T4 — Eksploitasi akses DB secara langsung.
- T5 — Sistem DB terkompromi.
- T6 — DBA insider atau akun DBA terkompromi.
- T7 — Akun pengguna DB atau aplikasi terkompromi.
- T8 — Aplikasi atau middleware terkompromi.
- T9 — Eksploitasi aplikasi dengan akun restricted (terbatas).
- T10–Eksploitasi aplikasi dengan akun unrestricted (tidak terbatas).
Countermeasure
- T1 — T3 dengan file encryption.
- T4 dan T7 dengan access control (pemisahan role).
- Namun masih banyak yang tidak selesai di database seperti T6, T8, T9, T10.
Get Radinal Dwiki Novendra, S.T., M.T.’s stories in your inbox
Join Medium for free to get updates from this writer.
Fitur Create, Drop dan Delete pada dbms sebenarnya sangat jarang digunakan. Contoh kasus pada pentest, meskipun sistem sudah dilindungi sedemikian rupa tapi mungkin ada beberapa bagian yang rentan diserang seperti bagian backup.
Database Activity Monitoring and Prevention (DAMP)
Pendekatan keamanan data ini melibatkan pemantauan dan pencegahan terhadap aktivitas tidak sah atau berisiko di dalam basis data (mirip dengan IDS). Sistem DAMP berfungsi untuk melindungi integritas, kerahasiaan, dan ketersediaan data dengan menggunakan teknologi deteksi untuk mengidentifikasi perilaku mencurigakan dan melibatkan tindakan pencegahan, seperti memblokir akses tidak sah atau memperingatkan terhadap ancaman keamanan. Pendekatan ini semakin penting untuk melawan serangan terhadap basis data dan menjaga keamanan data sensitif.
Teknik DAMP ini dapat mendeteksi query dijalankan oleh siapa (konteks yang lebih banyak), sehingga memungkinkan privilege user monitoring. Dan memungkinkan untuk membatasi saat menampilkan data ketika menjalankan query oleh user tertentu, misalnya query dijalankan oleh user biasa maka data sensitif seperti nomor hp akan muncul sebagai 0817******** (masking). Namun tentu saja teknik seperti ini membutuhkan cost yang lebih besar.
Full DB Encryption
Operating system tidak dienkrip, tapi hanya bagian volume hard drive (mysql) saja. Model ini direkomendasikan.
OS or File System Encryption
Seluruh sistem dienkrip termasuk OS dan File system. Karena dienkripsi (termasuk OS dan Filesystem) maka prosesnya akan sangat mahal. Sehingga model ini tidak direkomendasikan.
Field Level by DB or Middleware
Hanya enkrip bagian tertentu saja dilakukan oleh DB atau middleware, misalnya pada field tertentu di tabel tertentu (contoh field password, alamat, nomor hp) yang dienkrip. Model seperti ini direkomendasikan. Namun perlu diketahui juga bahwa koneksi antara db dan aplikasi biasanya hanya menggunakan plaintext biasa. Oleh sebab itu hal ini perlu diperhatikan.
Field Level by the Application
Hanya enkrip bagian tertentu saja dilakukan oleh aplikasi, sama seperti model di atas. Model ini juga direkomendasikan karena meskipun DBA itu malicious tapi dia tetap tidak bisa melihat isi datanya, yang dilihat hanya hash value dan salt. Sebaiknya gunakan 2 salt, yakni user salt (disimpan di database) dan system salt (disimpan di file system). Antara sysadmin dan DBA adalah 2 role berbeda, jadi system salt sama untuk semua user, dan user salt beda tiap user.
Password dan Autentikasi Level Aplikasi
Password user sebaiknya disimpan sebagai hash yang diberi salt. Salt terdiri dari 8 atau lebih random karakter, setiap password menggunakan salt yang berbeda, disimpan secara jelas dengan password, misalnya seperti gambar di bawah ini.
Password aplikasi digunakan untuk autentikasi aplikasi ke sistem lain, harus bisa di-retrieve oleh aplikasi, disimpan dengan enkripsi kriptografi simetris atau public key encryption.
Password dan key itu sama, tapi password kita yang membuatnya karena password harus ASCI, kalau key tidak harus ASCI. Kesimpulannya gunakan password manager.







