Pada artikel ini dibahas secara ringkas mengendai keamanan pada basis data (database).
Apa yang dimaksud dengan Keamanan Basis Data?
Keamanan basis data adalah berbagai tindakan yang digunakan untuk mengamankan DBMS (Database Management System) dari serangan siber yang berbahaya dan penggunaan yang tidak sah oleh pihak lain.
Program-program pengamanan basis data dirancang untuk melindungi data di dalam basis data, sistem aplikasi manajemen basis data itu sendiri, dan setiap aplikasi yang mengaksesnya, dari penyalahgunaan, perusakan, dan penyusupan.
Contoh aplikasi manajemen basis data adalah Oracle, MySQL, MSQL , PostgreSQL dan sebagainya.
Contoh aplikasi yang mengakses basis data adalah Apache web server.
Keamanan basis data mencakup alat, proses, dan metodologi untuk mewujudkan keamanan di dalam lingkungan basis data.
Ancaman Terhadap Keamanan Basis Data
Banyak kerentanan perangkat lunak, kesalahan konfigurasi, atau pola penyalahgunaan atau kecerobohan dapat mengakibatkan pelanggaran. Berikut adalah sejumlah penyebab dan jenis ancaman cyber keamanan database yang paling dikenal.
- Ancaman orang dalam
- Kesalahan manusia
- Eksploitasi kerentangan perangkat lunak basis data
Ancaman Orang Dalam
Ancaman orang dalam adalah risiko keamanan dari salah satu dari tiga sumber berikut, yang masing-masing memiliki sarana khusus untuk masuk ke database:
- Orang dalam yang jahat dengan niat buruk
- Orang dalam lalai yang tidak sengaja mengekspos database sehingga rentan untuk diserang orang luar
- Orang luar yang memperoleh kredensial melalui rekayasa sosial (social engineering) atau metode lain, atau memperoleh akses ke kredensial pada basis data
Ancaman dari orang dalam adalah salah satu penyebab paling umum dari pembobolan keamanan basis data. Hal ini sering terjadi karena banyak anggota organisasi yang mendapatkan akses istimewa ke basis data. Permasalahan ini dapat dihindari jika setiap orang di organisasi hanya mendapatkan hak akses secukupnya.
Kesalahan Manusia
Kesalahan manusia meliputi:
- Kata sandi yang lemah sehingga mudah ditebak
- berbagi kata sandi antara sesama pengguna
- penghapusan atau kerusakan data yang tidak disengaja oleh user ataupun administrator
- macam-macam perilaku lain dari pengguna yang tidak diinginkan
Eksploitasi Kerentanan Perangkat Lunak Basis Data
Hampir semua perangkat lunak memiliki kerentanan (vulnerability). Penyerang (attackers) selalu berusaha untuk menemukan dan menargetkan kerentanan dalam perangkat lunak. Perangkat lunak manajemen basis data adalah target yang sangat bernilai bagi penyerang. Kerentanan baru pada perangkat lunak ditemukan setiap hari, dan semua platform manajemen database open source dan vendor perangkat lunak database komersial mengeluarkan patch keamanan secara teratur.
Patch keamanan dari vendor perlu diterapkan secepatnya. Jika patch ini tidak segera diterapkan, aplikasi basis data rentan terhadap serangan.
Kadang-kadang ada kerentanan yang belum ditemukan ataupun belum sempat dibuat patchnya. Kerentanan ini memungkinkan adanya serangan zero-day yaitu serangan sebelum ada patch yang tersedia.
Serangan Injeksi SQL/NoSQL
Salah satu ancaman khusus pada sistem basis data melibatkan penggunaan string serangan non-SQL dan SQL ke dalam kueri basis data. Biasanya, ini adalah kueri yang dibuat untuk melayani formulir aplikasi web, atau permintaan layanan yang diterima melalui permintaan HTTP/HTTPS.
Setiap sistem basis data rentan terhadap serangan injeksi SQL/NoSQL, jika :
- pengembang aplikasi tidak mematuhi praktik pengkodean yang aman, dan
- organisasi tidak melakukan pengujian kerentanan secara teratur.
Serangan Buffer Overflow
Buffer overflow terjadi ketika suatu proses mencoba untuk menulis sejumlah besar data ke blok memori dengan ukuran terbatas. Kelebihan data yang ditulis tersebut dapat mengganggu sistem dan juga dapat membocorkan data.
Serangan Denial of Service (DoS/DDoS)
Dalam serangan penolakan layanan (Denial of Service / DoS), penjahat dunia maya menguasai layanan target—dalam hal ini server database—menggunakan sejumlah besar permintaan palsu. Permintaan palsu yang sangat banyak ini membebani server melebihi kapasitasnya. Akibatnya, server tidak dapat melayani permintaan dari pengguna sesungguhnya.
Dalam serangan penolakan layanan terdistribusi (Distributed Denial of Service/DDoS), permintaan layanan palsu dihasilkan oleh sejumlah besar komputer dalam bentuk jaringan botnet yang dikendalikan oleh penyerang. Serangan DDoS ini menghasilkan volume permintaan layanan yang sangat besar, yang sulit dihentikan oleh pertahanan biasa. Perlindungan terhadap DDoS memerlukan arsitektur pertahanan yang dapat diperbesar kapasitasnya (scalable).
Contoh layanan perlindungan DDoS berbasis cloud adalah Cloudflare.
Perangkat lunak perusak
Malware adalah perangkat lunak yang dibuat untuk masuk dengan memanfaatkan kerentanan pada sistem ataupun untuk merusak database. Malware dapat masuk melalui perangkat endpoint apa pun yang terhubung ke jaringan database. Perlindungan malware penting pada endpoint mana pun, tetapi terutama pada server basis data, karena nilai dan sensitivitasnya yang tinggi.
Contoh perangkat endpoint: komputer desktop, smartphone, tablet, laptop, perangkat IoT (Internet of Things)
Contoh perangkat yang tidak termasuk endpoint: router, switch, network gateway, firewall, load balancer [sumber]
Lingkungan TI yang Berkembang
Lingkungan TI yang berkembang dengan cepat membuat database lebih rentan terhadap ancaman. Berikut adalah tren yang dapat menyebabkan jenis serangan baru pada database, atau mungkin memerlukan tindakan defensif baru:
- Volume data yang terus bertambah—penyimpanan, pengambilan data, dan pemrosesan tumbuh secara eksponensial di hampir semua organisasi. Setiap praktik atau alat keamanan data harus sangat skalabel untuk memenuhi persyaratan yang jauh dan yang akan datang.
- Infrastruktur terdistribusi—lingkungan jaringan semakin kompleks, terutama karena organisasi memindahkan beban kerja sistem informasi ke arsitektur hybrid cloud atau multi-cloud yang tersebar. Hal ini membuat penerapan, manajemen, dan pilihan solusi keamanan menjadi lebih sulit.
- Persyaratan peraturan yang semakin ketat—lanskap kepatuhan peraturan di seluruh dunia semakin kompleks, sehingga mengikuti semua mandat menjadi lebih menantang.
- Kekurangan tenaga terampil di bidang keamanan siber—ada kekurangan global profesional keamanan siber yang terampil, dan organisasi merasa kesulitan untuk mengisi peran keamanan. Hal ini dapat membuat lebih sulit untuk mempertahankan infrastruktur penting, termasuk database.
Bagaimana Cara Mengamankan Server Database?
Server database adalah mesin fisik atau virtual yang menjalankan aplikasi database. Mengamankan server database, juga dikenal sebagai “pengerasan” (hardening), adalah proses yang mencakup keamanan fisik, keamanan jaringan, dan konfigurasi sistem operasi yang aman.
Memastikan Keamanan Basis Data Fisik
Hindari pemakaian server yang sama untuk aplikasi web dan aplikasi database, jika database Anda berisi data sensitif.
Hosting server di penyedia hosting berarti menjadikan tanggung jawab keamanan server anda di tangan orang lain. Solusi hosting di pihak ketiga dapat lebih murah dibandingkan mengurus server sendiri, namun ada resiko keamanan.
Jika Anda mengandalkan layanan hosting web untuk mengelola basis data Anda, Anda harus memastikan bahwa itu adalah perusahaan dengan rekam jejak keamanan yang kuat. Lebih baik kalau hosting memiliki sertifikasi keamanan misalnya ISO-27001.
Jika Anda mengelola database di pusat data lokal, perlu diingat bahwa pusat data Anda juga rentan terhadap serangan dari pihak luar atau ancaman orang dalam. Pastikan Anda memiliki langkah-langkah keamanan fisik, termasuk kunci, kamera, dan personel keamanan di fasilitas fisik Anda. Setiap akses ke server fisik harus dicatat dan hanya diberikan kepada individu yang berwenang.
Selain itu, jangan tinggalkan cadangan database di lokasi yang dapat diakses publik, seperti partisi sementara, folder web, atau keranjang penyimpanan cloud yang tidak aman.
Kunci Akun dan Hak Istimewa
Mari kita pertimbangkan server database Oracle. Setelah database diinstal, asisten konfigurasi database Oracle (DBCA) secara otomatis kedaluwarsa dan mengunci sebagian besar akun pengguna database default.
Jika Anda menginstal database Oracle secara manual, ini tidak akan terjadi dan akun istimewa default tidak akan kedaluwarsa atau dikunci. Kata sandi mereka tetap sama dengan nama pengguna mereka, secara default. Penyerang akan mencoba menggunakan kredensial ini terlebih dahulu untuk terhubung ke database.
Sangat penting untuk memastikan bahwa setiap akun istimewa di server database dikonfigurasi dengan kata sandi yang kuat dan unik. Jika akun tidak diperlukan, akun tersebut harus kedaluwarsa dan dikunci.
Untuk akun yang tersisa, akses harus dibatasi hingga minimum mutlak yang diperlukan. Setiap akun hanya boleh memiliki akses ke tabel dan operasi (misalnya, SELECT atau INSERT) yang diperlukan oleh pengguna. Hindari membuat akun pengguna dengan akses ke setiap tabel dalam database.
Menambal server Database secara teratur
Pastikan bahwa tambalan tetap terkini. Manajemen tambalan basis data yang efektif adalah praktik keamanan yang penting karena penyerang secara aktif mencari kelemahan keamanan baru dalam basis data, dan virus serta malware baru muncul setiap hari.
Penyebaran tepat waktu versi terbaru dari paket layanan database, hotfix keamanan kritis, dan pembaruan kumulatif akan meningkatkan stabilitas kinerja database.
Nonaktifkan Akses Jaringan Publik
Organisasi menyimpan aplikasi mereka dalam database. Dalam sebagian besar skenario dunia nyata, pengguna akhir tidak memerlukan akses langsung ke database. Jadi, Anda harus memblokir semua akses jaringan publik ke server database kecuali Anda adalah penyedia hosting. Idealnya, organisasi harus menyiapkan server gateway (terowongan VPN atau SSH) untuk administrator jarak jauh.
Enkripsi Semua File dan Cadangan
Terlepas dari seberapa kuat pertahanan Anda, selalu ada kemungkinan peretas dapat menyusup ke sistem Anda. Namun, penyerang bukanlah satu-satunya ancaman terhadap keamanan database Anda. Karyawan Anda juga dapat menimbulkan risiko bagi bisnis Anda. Selalu ada kemungkinan bahwa orang dalam yang jahat atau ceroboh akan mendapatkan akses ke file yang mereka tidak memiliki izin untuk mengaksesnya.
Mengenkripsi data Anda membuatnya tidak dapat dibaca oleh penyerang dan karyawan. Tanpa kunci enkripsi, mereka tidak dapat mengaksesnya, ini memberikan garis pertahanan terakhir terhadap gangguan yang tidak diinginkan. Enkripsi semua file aplikasi, file data, dan cadangan yang sangat penting sehingga pengguna yang tidak berwenang tidak dapat membaca data penting Anda.
Praktik Terbaik Keamanan Basis Data
Berikut adalah beberapa praktik terbaik yang dapat Anda gunakan untuk meningkatkan keamanan database sensitif.
Kelola Kata Sandi dan Akses Pengguna secara Aktif
Jika Anda memiliki organisasi besar, Anda harus memikirkan untuk mengotomatisasi manajemen akses melalui manajemen kata sandi atau perangkat lunak manajemen akses. Ini akan memberi pengguna yang diizinkan dengan kata sandi jangka pendek dengan hak yang mereka butuhkan setiap kali mereka perlu mendapatkan akses ke database.
Itu juga melacak aktivitas yang diselesaikan selama jangka waktu itu dan menghentikan administrator dari berbagi kata sandi. Meskipun administrator mungkin merasa bahwa berbagi kata sandi itu nyaman, namun, hal itu membuat akuntabilitas dan keamanan basis data yang efektif hampir tidak mungkin.
Selain itu, langkah-langkah keamanan berikut direkomendasikan:
- Kata sandi yang kuat harus ditegakkan
- Kata sandi disimpan dalam bentuk hash, bukan cleartext. Hash juga mesti disertai dengan ‘salt’ untuk mencegah ‘rainbow attack‘.
- Jika ada beberapa kali percobaan masuk yang gagal, maka akun harus dikunci sementara. Hal ini untuk mencegah serangan ‘brute force‘ untuk menebak kata sandi.
- Akun harus ditinjau dan dinonaktifkan secara berkala jika ada staf di organisasi yang pindah ke bagian lain, berhenti dari perusahaan atau sudah tidak memerlukan lagi hak akses tertentu.
Uji Keamanan Basis Data Anda
Setelah Anda menempatkan infrastruktur keamanan database Anda, Anda harus mengujinya terhadap ancaman nyata. Mengaudit atau melakukan tes penetrasi terhadap database Anda sendiri akan membantu Anda masuk ke pola pikir penjahat dunia maya dan mengisolasi setiap kerentanan yang mungkin Anda abaikan.
Untuk memastikan pengujian komprehensif, libatkan peretas etis atau layanan pengujian penetrasi yang diakui dalam pengujian keamanan Anda. Penguji penetrasi memberikan laporan ekstensif yang mencantumkan kerentanan basis data, dan penting untuk segera menyelidiki dan memulihkan kerentanan ini. Jalankan uji penetrasi pada sistem database penting setidaknya sekali per tahun.
Gunakan Pemantauan Basis Data Secara Waktu Nyata (Real Time)
Percobaan serangan basis data biasanya meninggalkan jejak pada catatan (log) di sistem basis data. Jika catatan serangan dipindai terus menurs, maka keamanan pada basis data akan meningkat. Peringatan dari pemindaian tersebut memungkinkan reaksi cepat terhadap adanya serangan terhadap basis data.
Secara khusus, File Integrity Monitoring (FIM) dapat membantu Anda mencatat semua tindakan yang dilakukan di server database dan untuk memperingatkan Anda tentang potensi pelanggaran. Saat FIM mendeteksi perubahan pada file basis data penting, pastikan tim keamanan diberi tahu dan dapat menyelidiki serta merespons ancaman tersebut.
Gunakan Aplikasi Web dan Firewall Database
Firewall sangat penting untuk server basis data dari ancaman keamanan. Umumnya akses ke server basis data hanya diperlukan dari/ke server lain secara internal. Server di luar jaringan organisasi umumnya tidak perlu mengakses basis data secara langsung.
Secara default, firewall tidak mengizinkan akses dari luar sistem ke basis data di dalam organisasi. Firewall juga mencegah aplikasi basis data untuk membuat akses keluar jaringan komputer organisasi kecuali ada alasan kuat untuk melakukannya.
Akses dari luar ke basis data membahayakan karena memungkinkan serangan terutama jika ada zero day exploit atau kesalahan konfigurasi internal.
Akses dari basis data ke luar jaringan juga membahayakan karena memberitahu orang luar bahwa ada aplikasi basis data versi tertentu di dalam jaringan. Akse ke luar juga dapat dimanfaatkan untuk mengeluarkan data yang berhasil dicuri (exfiltration).
Selain menjaga database dengan firewall, Anda harus menerapkan Web Application Firewall (WAF). Ini karena serangan yang ditujukan pada aplikasi web, termasuk injeksi SQL, dapat digunakan untuk mendapatkan akses ilegal ke database Anda.
Firewall database tidak akan menghentikan sebagian besar serangan aplikasi web, karena firewall tradisional beroperasi pada lapisan jaringan, sedangkan lapisan aplikasi web beroperasi pada lapisan aplikasi (lapisan 7 model OSI). WAF beroperasi pada lapisan 7 dan mampu mendeteksi lalu lintas aplikasi web berbahaya, seperti serangan injeksi SQL, dan memblokirnya sebelum dapat membahayakan database Anda.
Referensi
- Imperva: Database Security
- Venafi: 7 Data Breaches Caused by Human Error
- Wikipedia: File Integrity Monitoring
- Wikipedia: Web Application Firewall
- Wikipedia: Zero Day (computing)
- Wikipedia: Database Security
- Cloudflare: What is an endpoint in networking
- What is a Hybrid Cloud
- Multi Cloud
- Wikipedia: Standar keamanan iSO 27001