Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

13 praktik terbaik keamanan SQL Server

Data adalah aset penting dari setiap organisasi, dan basis data yang tidak diamankan dengan baik sering kali menjadi penyebab pelanggaran keamanan. Artikel ini merinci praktik terbaik keamanan server SQL, serta pertimbangan keamanan penting untuk melindungi database Anda dari serangan berbahaya.

Keamanan data terdiri dari tiga pilar penting – kerahasiaan, integritas, dan ketersediaan (CIA) dan berurusan dengan proses khusus untuk melindungi data dari akses yang disengaja dan tidak disengaja. Mari kita uraikan berbagai area dan langkah yang harus diambil saat mendekati keamanan SQL Server, salah satu database relasional paling populer yang digunakan saat ini.

Praktik terbaik keamanan SQL Server

1. Pastikan keamanan fisik SQL Server Anda

Ketika datang ke keamanan SQL Server, keamanan fisik tidak dapat diabaikan. Keamanan fisik mengacu pada pembatasan akses tidak sah ke pusat data atau komponen server fisik lainnya. Misalnya, Anda dapat menerapkan ruang terkunci dengan akses terbatas menggunakan kartu pintar, sidik jari, atau pengenalan wajah. Anda juga dapat mengonfigurasi segmen jaringan terbatas untuk SQL Server.

Pusat data menampung infrastruktur organisasi seperti router, sakelar, server, firewall, dan perangkat penyimpanan. Keamanan fisik berkaitan dengan melindungi perangkat keras, perangkat lunak dan jaringan dari akses yang tidak sah atau bencana alam. Ini dapat melibatkan bidang-bidang berikut:

  • Mengamankan tempat dan akses peralatan hanya untuk pribadi yang berwenang
  • Memelihara sistem kontrol akses
  • Kewaspadaan 24x7x365 menggunakan penjaga keamanan di tempat atau pemantauan CCTV
  • Supply daya tak terputus (UPS)
  • Memiliki sistem alarm kebakaran dan sistem pendeteksi asap aspirasi
  • Memiliki panel pendeteksi kebocoran air yang aktif
  • Sistem pengusir hewan pengerat
  • Sistem pencegah kebakaran
  • Mengontrol dan memantau suhu dan kelembapan
  • Perawatan perangkat keras berkala

2. Lindungi sistem operasi Anda

SQL Server diinstal di atas sistem operasi yang ada seperti Windows atau Linux. Oleh karena itu, keamanan sistem operasi memainkan peran penting dalam keamanan SQL Server. Berikut adalah beberapa rekomendasi untuk melindungi sistem operasi Anda:

  • Terapkan patch keamanan sistem operasi dan paket layanan
  • Tentukan kebijakan patching sistem operasi yang menerapkan patch pada lingkungan yang lebih rendah diikuti dengan patch produksi
  • Selalu gunakan versi sistem operasi produk yang stabil dan didukung. Misalnya, Microsoft menghentikan dukungan untuk Windows Server 2003, oleh karena itu, Anda tidak boleh menggunakannya untuk hosting basis data
  • Jangan izinkan akses internet di server database Anda
  • Anda harus mencopot pemasangan, menghentikan, atau menonaktifkan aplikasi dan drive yang tidak digunakan untuk memastikan lebih sedikit kemungkinan serangan
  • Menerapkan firewall dengan akses terbatas ke server basis data sehingga hanya server aplikasi yang memerlukan akses ke server basis data yang boleh melewati lalu lintas dari firewall
  • Buka port tertentu di firewall. Misalnya, secara default, SQL Server berjalan pada port 1433. Oleh karena itu, Anda dapat mengizinkan TCP port 1433 dan 3389 untuk akses server jauh jika tidak ada aplikasi lain yang berjalan di server. Demikian pula, layanan analisis menggunakan port default 2383 sebagai port standar. Untuk daftar lengkap port di SQL Server, lihat dokumentasi ini di port yang digunakan oleh SQL Server. Anda juga dapat menggunakan sertifikat SSL atau TLS untuk mengamankan akses ke SQL Server. Sertifikat ini dapat mengenkripsi transfer data antara SQL Server dan aplikasi klien. Konfigurasi SQL Server diperlukan untuk sertifikat yang ditandatangani sendiri atau sertifikat yang dikeluarkan oleh otoritas sertifikat (CA). Anda dapat melihat artikel: Cara menyetel dan menggunakan koneksi SQL Server terenkripsi untuk detail selengkapnya.
  • Manfaatkan opsi Extended Protection for Authentication untuk mencegah serangan relai autentikasi menggunakan service binding dan channel binding. Untuk mengaktifkan perlindungan yang diperluas, buka Manajer Konfigurasi SQL Server, perluas layar, klik kanan pada Protokol, lalu buka Lanjutan, Perlindungan yang diperluas. Perhatikan, secara default, ini dimatikan.

Demikian pula, Anda dapat memaksa koneksi terenkripsi ke SQL Server menggunakan opsi berikut.

Anda juga dapat merujuk ke perlindungan yang diperluas untuk detail selengkapnya.

3. Kurangi luas permukaan Anda

Area permukaan SQL Server terdiri dari fitur mesin database yang menyediakan fungsionalitas tambahan seperti mengirim email. Komponen ini mungkin menjadi target potensial untuk mendapatkan akses ke SQL Server untuk aktivitas berbahaya. Oleh karena itu, Anda harus menonaktifkan komponen dan fitur di SQL Server yang tidak digunakan, karena ini akan membatasi kemungkinan serangan potensial. Komponen utama yang dapat Anda tinjau dan nonaktifkan tercantum di bawah ini.

  • Pindai proses startup
  • Prosedur Otomatisasi OLE
  • CLR diaktifkan
  • Rantai kepemilikan lintas DB
  • xp_cmdshell
  • XP Email Basis Data

Anda dapat merujuk ke artikel ini untuk informasi mendetail tentang opsi konfigurasi server.

4. Konfigurasikan server untuk mendengarkan pada port yang berbeda

Microsoft SQL Server menggunakan port default 1433 untuk semua koneksi database. Ini adalah risiko keamanan umum di banyak lingkungan database karena profesional database biasanya tidak mengubah port default. Ini adalah port yang terkenal, dan penyusup dapat memanfaatkan kesempatan ini untuk mengakses SQL Server. Oleh karena itu, Anda harus menggunakan port non-default untuk memperkuat keamanan SQL Server Anda. Anda dapat memodifikasi ini menggunakan SQL Server Configuration Manager.

5. Sesuaikan otentikasi SQL Server

Perlindungan data Anda bergantung pada kemampuan untuk mengotentikasi akses ke data tertentu. SQL Server menyediakan dua opsi untuk otentikasi basis data.

  • Otentikasi Windows
  • Otentikasi Windows dan SQL (Mode Campuran)

Untuk memverifikasi model otentikasi server, klik kanan pada instance SQL Server dan navigasikan ke Keamanan.

Autentikasi Windows menggunakan akun direktori aktif untuk autentikasi. Anda dapat memiliki kontrol kebijakan terpusat untuk kompleksitas kata sandi, kedaluwarsa kata sandi, penguncian akun, dan grup direktori aktif di direktori aktif. Oleh karena itu, Anda harus menggunakan otentikasi Windows alih-alih otentikasi SQL Server. Di sini, pengguna terhubung menggunakan akun Windows, dan SQL Server memvalidasi kredensial menggunakan token utama Windows. Ia menggunakan protokol keamanan Kerberos untuk otentikasi. Lihat mode autentikasi untuk detail selengkapnya.

Namun, jika Anda perlu menggunakan login SQL Server, Anda masih dapat menerapkan kebijakan sandi seperti yang disorot di bawah ini.

6. Ingat izin akun layanan

Layanan SQL menggunakan akun Windows untuk menjalankan layanannya. Anda tidak boleh menggunakan akun built-in dengan hak istimewa tinggi seperti Layanan Jaringan atau Sistem Lokal. Demikian pula, untuk akun layanan domain, Anda harus menetapkan hak istimewa yang sesuai dengan peran.

Oleh karena itu, saya sarankan untuk merujuk ke mengonfigurasi akun layanan dan izin Windows untuk mengetahui lebih spesifik tentang izin akun layanan SQL Server.

7. Terapkan patching SQL Server dalam produksi

Microsoft merilis paket layanan reguler (SQL Server 2016 atau yang lebih lama) dan paket kumulatif (SQL Server 2017 dan seterusnya) untuk memperbaiki masalah yang diketahui dan masalah keamanan. Oleh karena itu, Anda harus selalu merencanakan untuk menerapkan patching SQL Server pada instans produksi. Namun, jangan langsung menerapkan patch pada instans produksi. Selalu terapkan terlebih dahulu di lingkungan pengujian, validasi, dan rencanakan penerapan produksi.

Anda dapat merujuk ke pembaruan terbaru untuk Microsoft SQL Server untuk menemukan detail tentang paket layanan dan paket kumulatif terbaru.

8. Amankan cadangan Anda

Ketika datang ke keamanan SQL Server, mengamankan cadangan Anda sangat penting. Biasanya, profesional database tidak mempertimbangkan semua persyaratan untuk mengamankan backup database. Pencadangan basis data adalah proses membuat salinan status operasional, arsitektur, dan data yang disimpan dari basis data. Oleh karena itu, sama pentingnya untuk melindunginya. Ini berarti membatasi akses ke file cadangan dan mengenkripsinya dengan benar. Untuk mengamankan cadangan, berikut beberapa pengingatnya.

  • Jangan berikan semua orang hak atas folder cadangan untuk membuat, melihat, mengubah, dan menghapus file cadangan
  • Gunakan backup database dengan enkripsi; lihat artikel ini tentang enkripsi cadangan untuk detail selengkapnya

9. Ingat enkripsi SQL Server dan teknik penyamaran data

Area kunci dalam keamanan SQL Server adalah enkripsi. Anda dapat menggunakan berbagai mekanisme enkripsi untuk melindungi data sensitif di database SQL Server Anda. Opsi enkripsi yang berbeda adalah sebagai berikut.

  • Selalu Dienkripsi:Teknik selalu terenkripsi membantu mengenkripsi data sensitif di dalam aplikasi klien. Driver yang selalu diaktifkan dengan enkripsi secara otomatis mengenkripsi dan mendekripsi data sensitif di aplikasi klien. Kunci enkripsi tidak pernah diungkapkan ke mesin database SQL Server. Ini melindungi data rahasia.
  • Enkripsi data transparan (TDE):TDE mengenkripsi data saat istirahat. Ini membantu mengamankan file data, file log, dan file cadangan.
  • Enkripsi tingkat kolom:Enkripsi tingkat kolom membantu mengenkripsi data kolom tertentu, misalnya, nomor kartu kredit dan nomor jaminan sosial.
  • Penutupan data statis:Penyembunyian data statis menggantikan data sensitif menggunakan aturan transformasi data yang ditentukan.
  • Penutupan data dinamis:Penyembunyian data dinamis membantu membatasi paparan data sensitif kepada pengguna yang tidak memiliki hak istimewa.
  • Keamanan tingkat baris:Keamanan tingkat baris membatasi akses baris data.

10. Buat sandi administrator sistem menjadi rumit

Jika Anda menggunakan otentikasi SQL, itu membuat SA login dengan izin sysadmin. Untuk mengamankan SQL Server Anda, lakukan hal berikut.

  • Ganti nama login bernama SA menjadi nama lain
  • Nonaktifkan akun jika Anda tidak berencana menggunakannya
  • Gunakan sandi yang rumit
  • Jangan izinkan aplikasi menggunakan akun SA di string koneksi

11. Audit login basis data

Audit sering diabaikan dalam hal keamanan SQL Server. Anda harus melakukan audit SQL Server reguler untuk login yang gagal. Anda dapat menggunakan mekanisme audit masuk default untuk meninjau akun. Misalnya, anggaplah setiap pengguna mencoba menyambung ke SQL Server dengan akun hak istimewa tinggi. Dalam hal ini, Anda dapat melihat kegagalan login dan alamat IP permintaan (klien) yang masuk. Ini dapat membantu Anda menangkap dan menghilangkan aktivitas yang mencurigakan.

Anda dapat menggunakan peristiwa yang diperluas, pelacakan SQL, perubahan pengambilan data, pemicu (DDL, DML, atau Logon), database atau spesifikasi audit tingkat server untuk audit SQL Server.

12. Perhatikan izin tingkat server dan basis data

Profesional basis data harus berhati-hati saat menetapkan izin tingkat server atau tingkat basis data. Terkadang, kita melihat bahwa pengembang mendapatkan sysadmin di tingkat server atau izin pemilik database di tingkat database. Ini adalah izin tertinggi yang dapat dimiliki pengguna pada tingkat instance atau database, masing-masing.

  • Lihat peran tingkat server tetap untuk memahami peran tingkat server tetap dan kemampuannya.
  • Lihat peran tingkat database untuk lebih memahami peran tingkat database tetap.

13. Matikan layanan browser SQL Server

SQL Server menggunakan layanan browser untuk instance bernama. Itu mendengarkan semua permintaan masuk untuk koneksi SQL Server. Ini menggunakan port UDP 1434 dan menanggapi permintaan dengan nomor port TCP/IP yang diperlukan untuk menyambung ke SQL Server. Oleh karena itu, Anda dapat mematikan layanan browser dan secara eksplisit menentukan nomor port dalam string aplikasi. Ini menghindari paparan nomor port ke permintaan koneksi masuk dan membantu keamanan SQL Server.

Anda dapat merujuk ke artikel Cara kerja browser SQL Server untuk lebih memahami layanan browser SQL Server.

Pertimbangan keamanan SQL Server lebih lanjut

Sebagaimana diuraikan, keamanan SQL Server adalah proses yang berkelanjutan dengan berbagai faktor dan langkah. Anda harus secara teratur mengunjungi kembali instans SQL Server, kebijakan keamanan, dan memperbaruinya secara rutin di tingkat sistem operasi dan SQL Server Anda. Dengan menerapkan praktik terbaik ini secara teratur, Anda akan membantu menciptakan layanan database yang lebih aman dan tidak mengganggu untuk bisnis Anda.


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara mendapatkan daftar semua Batasan Pemeriksaan di Database SQL Server - Tutorial SQL Server / TSQL Bagian 85

  2. Fungsi LEN tidak termasuk spasi tambahan di SQL Server

  3. Aktifkan Agen SQL Server melalui SSMS

  4. Cara Memahami Tipe Data Geografi SQL Server

  5. T-SQL mendapatkan jumlah hari kerja antara 2 tanggal