Apa pun jenis teknologi atau sistem keamanan yang Anda miliki, selalu ada risiko diretas karena tidak ada sistem yang 100% aman. Karena data mungkin merupakan aset terpenting dalam sebuah perusahaan, Anda harus mengamankan sistem Anda semaksimal mungkin untuk meminimalkan risiko ini.
Blog ini akan menyebutkan beberapa pemeriksaan penting yang harus dilakukan di lingkungan PostgreSQL Anda untuk menutup celah kerentanan dan menghindari beberapa masalah keamanan paling umum.
Mengamankan Komunikasi
Jika Anda menggunakan Penyedia Cloud yang berbeda, kombinasi Penyedia Cloud dan On-Prem, atau bahkan hanya lingkungan On-Prem, komunikasi di semua sistem Anda harus dienkripsi, dan Anda harus membatasi lalu lintas hanya dari sumber yang dikenal untuk mengurangi risiko akses tidak sah ke jaringan Anda.
Penggunaan VPN, SSH, atau Aturan Firewall, atau bahkan kombinasinya, adalah solusi yang baik untuk poin ini.
Mengontrol Akses Basis Data
Anda perlu membatasi akses fisik dan jarak jauh.
-
Akses fisik (on-prem):Membatasi akses fisik yang tidak sah ke server database.
-
Akses jarak jauh:Batasi akses jarak jauh hanya untuk orang-orang yang diperlukan, dan dari sumber sesedikit mungkin. Menggunakan VPN untuk mengaksesnya pasti berguna di sini, tetapi ada juga opsi lain seperti SSH Tunneling. Anda harus menemukan solusi terbaik untuk perusahaan Anda.
Mengelola Akun Pengguna Basis Data
Ada banyak cara untuk meningkatkan keamanan akun pengguna Anda di PostgreSQL.
-
Hapus pengguna yang tidak aktif. Untuk ini, Anda harus menentukan jangka waktu untuk mempertimbangkan pengguna sebagai tidak aktif, dan Anda dapat menjadwalkannya untuk menghapusnya secara otomatis.
-
Hanya berikan hak istimewa yang diperlukan saat Anda membuat akun pengguna baru.
-
Batasi sumber untuk setiap koneksi pengguna menggunakan file konfigurasi pg_hba.conf.
-
Tentukan kebijakan sandi yang aman (atau aktifkan plugin untuk ini, misalnya pemeriksaan sandi).
Penginstalan dan Konfigurasi Aman
Ada beberapa perubahan yang harus dilakukan untuk mengamankan instalasi PostgreSQL Anda.
-
Instal hanya paket dan layanan yang diperlukan di server.
-
Ubah kata sandi pengguna admin default dan batasi penggunaan hanya dari localhost.
-
Ubah port default dan tentukan antarmuka untuk mendengarkan.
-
Aktifkan plugin kebijakan keamanan sandi.
-
Konfigurasikan sertifikat SSL untuk mengenkripsi data-in-transit.
-
Enkripsi data saat istirahat.
-
Konfigurasikan firewall lokal untuk mengizinkan akses ke port database hanya dari jaringan lokal.
Jika Anda menggunakan database PostgreSQL terkelola, beberapa poin yang disebutkan di atas tidak diperlukan.
Audit dan Logging
Pernyataan logging dapat membantu Anda mendeteksi masalah keamanan atau menghindarinya jika Anda menyelesaikannya tepat waktu.
Anda dapat menggunakan fasilitas PostgreSQL logging standar menggunakan parameter log_statement, tetapi Anda juga dapat menggunakan ekstensi seperti pgAudit untuk mendapatkan sesi yang lebih rinci dan logging audit objek.
Menerapkan WAF (Firewall Aplikasi Web)
SQL Injection atau serangan DoS (Denial of Service) adalah serangan paling umum ke database, dan cara paling aman untuk menghindarinya adalah dengan menggunakan WAF untuk menangkap jenis kueri SQL atau SQL Proxy untuk menganalisis lalu lintas.
Periksa CVE (Kerentanan Umum dan Eksposur) Secara Sering
Setiap hari, kerentanan baru terdeteksi untuk server database Anda. Anda harus sering memeriksanya untuk mengetahui apakah Anda perlu menerapkan tambalan atau mengubah sesuatu dalam konfigurasi Anda. Salah satu cara untuk mengetahuinya adalah dengan meninjau situs web CVE, di mana Anda dapat menemukan daftar kerentanan dengan deskripsi, dan Anda dapat mencari versi database dan vendor Anda, untuk mengonfirmasi jika ada sesuatu yang penting untuk diperbaiki secepatnya.
Untuk lebih spesifik, Anda dapat memeriksa bagian PostgreSQL untuk mencoba menemukan masalah untuk versi database Anda.
Selalu Perbarui OS dan Basis Data Anda
Ada beberapa perbaikan dan peningkatan yang dirilis oleh vendor database atau sistem operasi untuk memperbaiki atau menghindari kerentanan. Penting untuk menjaga agar sistem Anda tetap mutakhir dengan menerapkan patch dan peningkatan keamanan.
Pemantauan
Untuk mengetahui status sistem Anda, Anda harus memiliki sistem pemantauan yang baik. Ini bisa berguna untuk menemukan masalah keamanan atau bahkan menghindarinya.
Untuk ini, ClusterControl adalah pilihan yang baik karena merupakan sistem manajemen dan pemantauan yang membantu Anda menerapkan, mengelola, memantau, dan menskalakan database Anda dari antarmuka yang ramah. Ini memiliki dukungan untuk teknologi database open-source teratas dan Anda dapat mengotomatiskan banyak tugas database yang harus Anda lakukan secara teratur seperti menambahkan dan menskalakan node baru, menjalankan pencadangan dan pemulihan, dan banyak lagi.
ClusterControl memungkinkan Anda memantau server secara real-time dengan kumpulan dasbor yang telah ditentukan sebelumnya untuk menganalisis beberapa metrik yang paling umum.
Ini memungkinkan Anda untuk menyesuaikan grafik yang tersedia di cluster, dan Anda dapat mengaktifkan pemantauan berbasis agen untuk menghasilkan dasbor yang lebih detail.
Anda juga dapat membuat lansiran, yang memberi tahu Anda tentang peristiwa di kluster Anda, atau berintegrasi dengan berbagai layanan seperti PagerDuty atau Slack.
Di bagian monitor kueri, Anda dapat menemukan kueri teratas, kueri yang berjalan, outlier kueri, dan statistik kueri untuk memantau lalu lintas database Anda.
Dengan fitur ini, Anda dapat melihat bagaimana database PostgreSQL Anda berjalan.
Kesimpulan
Poin yang disebutkan di atas akan membantu Anda menutup celah kerentanan di database PostgreSQL Anda, tetapi seperti yang kami sebutkan, selalu ada risiko diretas.
Selain itu, Anda harus memiliki sistem pemantauan yang baik seperti ClusterControl, dan menjalankan beberapa alat pemindaian keamanan secara berkala yang mencari kerentanan seperti Nessus untuk meminimalkan risiko keamanan lebih jauh lagi.