MongoDB, basis data NoSQL berbasis dokumen, merupakan salah satu basis data paling populer saat ini karena fleksibilitas, skalabilitas, dan kemudahan konfigurasinya. Namun, seperti halnya semua hal yang memiliki kekuatan besar, masukan yang besar juga memiliki tanggung jawab yang besar, terutama dalam hal mengamankan data Anda. Penerapan MongoDB yang tidak diamankan dengan cukup baik dapat menjadi target utama bagi para penyerang, yang mengakibatkan kehilangan data, serangan ransomware, dan dampak lainnya. Dalam artikel ini, kami akan membahas beberapa praktik terbaik keamanan penting yang membantu mengamankan instans MongoDB Anda dari berbagai ancaman.
1. Aktifkan Autentikasi
Mengaktifkan Autentikasi:
use admindb.createUser({user: "admin",pwd: "securepassword",roles: [ { role: "userAdminAnyDatabase", db: "admin" } ]});
2. Mulai ulang instans MongoDB dengan autentikasi diaktifkan.
sumber: palcomtech.ac.id |
2. Menerapkan Kontrol Akses Berbasis Peran (RBAC)
Kontrol Akses Berbasis PeranMongoDB memungkinkan kontrol akses berbasis peran, yang memberi Anda untuk mengeluarkan izin spesifik dari tindakan pengguna berdasarkan peran mereka. Hal ini mencegah akses yang tidak disengaja dan mengurangi kerusakan setiap kali akun diretas!
Rekomendasi untuk RBAC:
- Tetapkan hak istimewa yang paling sedikit yang dibutuhkan pengguna.
- Hal ini untuk memastikan peran Anda untuk pengguna diperbarui dan sesuai dengan persyaratan operasional saat ini.
- Gunakan peran bawaan seperti read, readWrite, dan dbAdmin atau tentukan peran khusus yang disesuaikan dengan lingkungan Anda.
3. Gunakan TLS/SSL untuk Mengenkripsi Data Anda
Enkripsi ini mencegah penyadapan data saat transit, yang membantu mengamankan data. Transport Layer Security (TLS) atau Secure Sockets Layer (SSL): MongoDB mendukung protokol TLS atau SSL untuk mengenkripsi komunikasi server-klien.
Langkah-langkah untuk Mengaktifkan TLS/SSL:
- Dapatkan Sertifikat SSL yang Valid dari Otoritas Sertifikat (CA) tepercaya.
- Konfigurasikan berkas konfigurasi net.mongodb sebagai pengaturan ssl.
- Klien MongoDB: sambungkan dengan bendera --ssl
4. Mengamankan File Konfigurasi MongoDB
Pastikan untuk mengamankan file konfigurasi mongoDB Anda. Simpan di tempat yang hanya Anda yang dapat mengaksesnya, dan dengan izin seminimal mungkin.
Tips:
- Jangan jalankan proses MongoDB sebagai pengguna root.
- Inilah kiat ke-16 dari 20 kiat pengokohan keamanan dalam presentasi Penyiapan Keamanan Kubernetes: Membatasi izin berkas pada berkas konfigurasi.
- Jangan menyertakan informasi sensitif (seperti kata sandi plainteks dalam berkas konfigurasi).
5. Membatasi Eksposur Jaringan
Jangan pernah mengekspos MongoDB secara langsung ke internet kecuali jika memang harus. Sebaliknya, gunakan firewall, VPN, dan jaringan privat untuk membatasi akses ke instans MongoDB Anda.
Langkah-langkah untuk Membatasi Keterpaparan:
- Tolak akses jarak jauh ke MongoDB dengan menentukan 127.0.0.1 dalam opsi konfigurasi bindIp.
- Hanya izinkan koneksi dari alamat IP tepercaya menggunakan grup keamanan atau firewall.
- Jika harus dapat diakses publik, pertimbangkan langkah-langkah keamanan lebih lanjut seperti daftar putih IP dan kanalisasi VPN.
6. Pastikan untuk mengaktifkan Audit dan Pemantauan
Adalah suatu keharusan untuk memantau dan mengaudit secara proaktif untuk mendeteksi pengguna jahat dan aktivitas anomali. MongoDB menyediakan fungsi audit dan bekerja dengan instrumen pengamatan seperti MongoDB Atlas, Datadog, dan Prometheus.
Rekomendasi:
- Aktifkan fitur audit asli MongoDB untuk mencatat akses dan perubahan konfigurasi.
- Alat pemantauan real-time seperti mongostat dan mongotop.
- Konfigurasikan peringatan untuk aktivitas seperti itu, seperti upaya login yang gagal berulang kali atau lonjakan kueri basis data secara tiba-tiba.
7. Mengenkripsi Data saat Istirahat
Melindungi data saat tidak aktif digunakan untuk mencegah akses ke data di perangkat penyimpanan fisik. Data yang tidak aktif dienkripsi secara native dengan MongoDB Enterprise dan Atlas.
Praktik Terbaik:
- Aktifkan enkripsi disk dengan enkripsi asli MongoDB atau gunakan alat bantu pihak ketiga.
- Enkripsi Data yang Aman: Enkripsi data sensitif saat transit dan saat tidak aktif.
8. Perbarui MongoDB secara teratur
Aplikasi sering kali menjadi pintu masuk serangan melalui perangkat lunak yang sudah ketinggalan zaman. Tingkatkan versi MongoDB Anda secara teratur ke rilis minor terbaru.
Kiat untuk Pembaruan:
- Ikuti peringatan keamanan MongoDB agar Anda mengetahui kerentanan.
- Jika Anda menerapkan pengujian, pastikan perubahan bekerja dalam pementasan terlebih dahulu.
- Otomatiskan pembaruan jika memungkinkan untuk mengurangi waktu henti.
9. Pencadangan dan Pemulihan Bencana
Menerapkan strategi pencadangan dan pemulihan yang tangguh untuk mengatasi kegagalan yang tak terduga. Buat dan kelola cadangan dengan mongodump dan mongorestore.
Rekomendasi:
- Lakukan pencadangan secara teratur dan periksa integritasnya.
- Cadangkan ke lokasi terpencil yang tepercaya.
- Uji prosedur pemulihan secara berkala untuk memverifikasi bahwa prosedur tersebut bekerja sesuai rancangan.
10. Batasi Antarmuka Administratif
Antarmuka administratif MongoDB, seperti Manajer Operasi MongoDB atau GUI berbasis web, hanya dapat diakses oleh pengguna tepercaya.
Tips:
- Gunakan daftar putih IP untuk membatasi akses.
- Lindungi antarmuka dengan kata sandi yang kuat dan autentikasi multi-faktor (MFA).
- Nonaktifkan antarmuka yang tidak digunakan untuk mengurangi permukaan serangan.
Kesimpulan
Mengamankan penerapan MongoDB Anda membutuhkan pendekatan berlapis-lapis yang menggabungkan autentikasi, enkripsi, kontrol akses, dan pemantauan proaktif. Dengan menerapkan praktik-praktik terbaik ini, Anda dapat melindungi data Anda dan memelihara lingkungan basis data yang aman. Ingat, keamanan adalah proses yang berkelanjutan, jadi secara teratur nilai dan perbarui langkah-langkah keamanan Anda untuk beradaptasi dengan ancaman yang terus berkembang.
Kembali ke>>>> Basis Data NoSQL: Pengantar ke MongoDB