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

Memahami Penguncian SQL Server ke Lingkungan Basis Data yang Aman

Keamanan adalah perhatian utama hari ini di setiap sektor. Keamanan Basis Data juga merupakan kekhawatiran utama bagi pelanggan mana pun. SQL Server dirancang untuk mengamankan semua data Anda yang tersimpan di database tetapi terkadang kami gagal menerapkan set konfigurasi yang tepat dan meninggalkan lubang di sistem kami. Peretas dan orang asing yang tidak sah mungkin menggunakan celah ini untuk menembus sistem Anda. Data Anda dapat disusupi atau difitnah, sumber daya sistem Anda dapat dihapus untuk menghentikan aktivitas bisnis Anda, data klien Anda mungkin diekspos ke pesaing, dll.

Penguncian atau Pengerasan SQL Server

Seluruh proses untuk mengamankan lingkungan basis data Anda dikenal sebagai penguncian basis data \ SQL Server. Saya akan menjelaskan berbagai parameter dan detail konfigurasi yang dapat Anda terapkan untuk mengamankan lingkungan database Anda.

Instal Hanya Komponen yang Diperlukan

Mari kita mulai praktik penguncian dengan instalasi SQL Server. SQL Server menawarkan berbagai komponen dan fitur yang dipilih DBA untuk berbagai persyaratan. Beberapa komponen dan fitur ini diberikan di bawah ini:

  1. Mesin Basis Data
  2. Layanan Pelaporan
  3. Layanan Integrasi
  4. Mesin Layanan Analisis
  5. Layanan Pemberitahuan
  6. Dokumentasi dan Sampel (Contoh database &kode)
  7. Penelusuran Teks Lengkap
  8. Fitur lain seperti replikasi, layanan pembelajaran mesin, layanan kualitas data, dll.

Ini adalah praktik yang baik untuk menginstal hanya fitur yang diperlukan karena dengan melakukannya Anda mengurangi atau membatasi kemungkinan serangan permukaan. Selain itu, Anda akan memiliki pemanfaatan sumber daya sistem yang rendah.

Instal Pembaruan Terbaru

Pastikan untuk memperbarui sistem Anda tepat waktu. Jika ada kerentanan baru yang ditemukan, kerentanan tersebut akan diposting di buletin keamanan oleh vendor produk Anda.

Saya tidak berbicara tentang memperbarui hanya tambalan SQL Server tetapi semua yang berjalan di sistem Anda mulai dari sistem operasi hingga aplikasi lain yang diinstal pada mesin Anda. Selalu terapkan tambalan agar perangkat lunak Anda selalu terbarui guna mencegah ancaman atau serangan eksternal.

Gunakan Mode Otentikasi Windows

Selalu pilih mode otentikasi Windows untuk koneksi pengguna jika Anda tidak memiliki ketergantungan untuk menggunakan mode otentikasi SQL Server. Ini lebih aman dan mengotentikasi login Windows dengan direktori Windows Active selama setiap upaya login. SQL Server memiliki dua jenis mode otentikasi.

  • Otentikasi Windows
  • Mode Campuran (Windows + SQL Server)

Mode Otentikasi Windows: Ini adalah mode otentikasi default untuk SQL Server. Mode otentikasi Windows memanfaatkan akun lokal, akun pengguna direktori aktif, dan grup saat memberikan akses ke SQL Server. Dalam mode ini, Anda, sebagai administrator database, dapat memberikan akses kepada pengguna domain atau server lokal ke server database tanpa membuat dan mengelola akun SQL Server terpisah.

Mode Campuran: Mode otentikasi campuran memiliki kedua opsi. Anda dapat menggunakan otentikasi berbasis Windows serta otentikasi berbasis login SQL Server. Mekanisme otentikasi SQL Server didasarkan pada akun yang dikelola di dalam SQL Server termasuk kebijakan kata sandi. Otentikasi campuran mungkin diperlukan jika Anda memiliki beberapa dependensi untuk mendukung aplikasi lama.

Anda dapat mengikuti langkah-langkah di bawah ini untuk memilih atau mengubah mode otentikasi server:

  1. Luncurkan SQL Server Management Studio dan sambungkan ke instance SQL Server target Anda.
  2. Di SQL Server Management Studio, klik kanan instance SQL Server, lalu klik Properties .
  3. Klik Keamanan halaman di panel sisi kiri, Anda dapat melihat kedua opsi otentikasi di panel sisi kanan di bawah Otentikasi server bagian. Jika Anda ingin mengamankan instans Anda, pastikan untuk beralih ke mode autentikasi Windows. Anda hanya perlu mengeklik tombol radio mode autentikasi Windows, lalu klik OK untuk menerapkan perubahan.
  1. Dalam kotak dialog SQL Server Management Studio, klik OK untuk mengakui perlunya memulai ulang SQL Server.

Mode otentikasi Windows adalah pilihan yang lebih aman. Namun, jika otentikasi mode campuran diperlukan, Anda harus memberikan kata sandi yang rumit untuk login SQL Server dan menerapkan kebijakan keamanan\penguncian untuk keamanan yang lebih baik. Disarankan juga untuk menonaktifkan akun sa SQL Server jika Anda menggunakan mode otentikasi campuran. Saya akan membahas ini di bagian selanjutnya.

Ganti Nama/Nonaktifkan Akun sa

Login sa dibuat secara default saat menginstal SQL Server, jadi ini bisa menjadi salah satu alasan potensial bagi penyerang untuk meretas atau mengambil kendali akun ini. Ingat login ini memiliki hak istimewa administrasi sistem sehingga siapa pun yang memiliki akses ke akun ini dapat mengelola database dan instance SQL Server Anda.

Anda harus menjalankan perintah di bawah ini untuk menonaktifkan akun sa.

--Disable sa login
USE MASTER
GO
ALTER LOGIN sa DISABLE;
GO

Anda dapat melihat eksekusinya pada gambar di bawah ini.

Sebelum mengganti nama atau menonaktifkan akun sa, verifikasi bahwa akun lain dengan hak administratif ada di instance SQL Server.

Ubah Port SQL Server Default

Kita semua tahu bahwa SQL Server menggunakan port 1433 untuk setiap permintaan dan komunikasi klien. Karena konfigurasi ini berada dalam domain publik, peretas dapat menargetkan konfigurasi ini untuk terhubung ke instance SQL Server Anda.

Anda dapat mengubah port SQL Server dengan mengikuti langkah-langkah di bawah ini.

  1. Masuk ke mesin target Anda tempat SQL Server diinstal.
  2. Luncurkan Pengelola Konfigurasi Server alat.
  3. Perluas Konfigurasi Jaringan SQL Server simpul dari panel sisi kiri dan pilih Protokol untuk contoh SQL Server yang akan dikonfigurasi.
  4. Di panel kanan, klik kanan nama protokol TCP/IP dan pilih Properti .
  5. Di Properti TCP/IP kotak dialog, pilih Alamat IP tab. Ada entri yang sesuai untuk setiap alamat IP yang ditetapkan ke server.
  6. Hapus nilai untuk Port Dinamis TCP dan Port TCP untuk setiap alamat IP kecuali untuk alamat IP di bawah IPAll .
  7. Di IPAll bagian untuk setiap instance, masukkan port baru yang Anda inginkan agar SQL Server mendengarkan.
  8. Klik Terapkan dan mulai ulang Layanan SQL Server.

Nonaktifkan Layanan Peramban SQL

Layanan SQL Server Browser diinstal dengan instalasi contoh SQL Server. Layanan ini mengalihkan koneksi Anda ke port yang menjalankan SQL Server. Jika layanan ini berjalan, itu akan menjadi satu langkah lebih mudah bagi penyerang karena memungkinkan mereka untuk terhubung ke SQL Server tanpa melewati nomor portnya. Jadi, sebaiknya nonaktifkan layanan ini setelah mengubah port.

Nonaktifkan Opsi xp_cmdshell

SQL Server menawarkan prosedur tersimpan diperpanjang xp_cmdshell untuk menjalankan dan menjalankan perintah sistem operasi dari SQL Server. Itu harus dinonaktifkan untuk mencegah risiko keamanan apa pun. Anda dapat menemukan prosedur tersimpan yang diperluas ini di konfigurasi tingkat server atau dengan menjalankan prosedur tersimpan sp_configure T-SQL. Anda dapat menjalankan pernyataan T-SQL di bawah ini untuk menonaktifkan konfigurasi ini.

-- Enable advanced options to display configure xp_cmdshell
sp_configure 'show advanced options', '1'
RECONFIGURE

-- Disable xp_cmdshell
sp_configure 'xp_cmdshell', '0' 
RECONFIGURE
GO

Gunakan Enkripsi atau Penyembunyian Data

SQL Server menawarkan berbagai metodologi enkripsi untuk melindungi data Anda. Enkripsi disarankan jika pengguna Anda mengakses data melalui jaringan publik. SQL Server memiliki beberapa opsi untuk menerapkan rangkaian enkripsi yang tepat dengan mempertimbangkan kebutuhan bisnis Anda. Ini adalah daftar opsi enkripsi atau penyamaran data yang dapat kami gunakan untuk mengamankan data kami:

  • TDE (Enkripsi Data Transparan)
  • Amankan data menggunakan kunci Enkripsi
  • Selalu Enkripsi
  • Penutupan Data Dinamis

Hapus BUILTIN\Administrator dari SQL Server

Kami harus selalu menghapus akun BUILTIN\Administrator dari contoh SQL Server untuk membatasi akses yang tidak diinginkan ke contoh database. Cara terbaik adalah memberi pengguna akses ke SQL Server satu per satu. Anda juga dapat menambahkan sekelompok orang di grup Windows dan memberi mereka akses ke SQL Server. Anda dapat menggunakan pernyataan T-SQL di bawah ini untuk menghapus login ini dari instance SQL Server.

Anda juga dapat menghapus login ini menggunakan GUI melalui SQL Server Management Studio. Anda hanya perlu terhubung ke instance SQL Server Anda, lalu perluas folder keamanan tingkat instance. Di sini Anda dapat mengklik kanan login ini untuk menghapusnya dari instance SQL Server.

--DROP Login
DROP LOGIN [BUILTIN\Administrators]

Sandi Kuat dan Hak Pengguna yang Memadai

Selalu berikan hak yang memadai untuk setiap pengguna, mereka harus minimal, mengingat peran mereka saat mengakses database. Juga, kita tidak boleh menggunakan kata sandi yang lemah untuk login apa pun atau login dan kata sandi yang sama. Selalu gunakan kebijakan kata sandi untuk login SQL apa pun.

Mengonfigurasi Audit Masuk SQL Server

SQL Server telah menyediakan fitur audit untuk menangkap detail tentang semua login yang gagal dan berhasil. Ini adalah konfigurasi yang sangat berguna jika Anda ingin mengaudit siapa yang terhubung atau mencoba terhubung ke database Anda. Kita dapat mengonfigurasi peringatan SQL Server yang akan mengirimkan pemberitahuan email pada setiap login yang gagal dan berhasil ke SQL Server. Anda dapat mengikuti langkah-langkah di bawah ini untuk mengaktifkan audit login.

  • Hubungkan ke instance SQL Server target Anda di SQL Server Management Studio
  • Klik kanan nama instance SQL Server, lalu klik Properties .
  • Klik Keamanan tab di panel sisi kiri. Anda akan mendapatkan Audit masuk di panel sisi kanan seperti yang ditunjukkan pada tangkapan layar pertama artikel ini
  • Pilih opsi yang diinginkan dan tutup Properti Server halaman
  • Mulai ulang layanan SQL Server untuk menerapkan perubahan ini

Hapus Login SQL Server yang Tidak Digunakan

Selalu awasi login SQL Server Anda. Anda harus berhati-hati dalam menghapus semua akun login yang tidak lagi digunakan. Saya tahu ini sulit untuk dikelola secara manual, tetapi Anda dapat mengonfigurasi peringatan email untuk mengirim email tentang semua login SQL Server dan hak istimewanya.

Kesimpulan

Saya telah menjelaskan beberapa kemungkinan konfigurasi yang dapat kita terapkan untuk mengamankan database kita dari ancaman eksternal. Pertimbangkan semua poin di atas saat menerapkan kebijakan pengerasan basis data ke lingkungan.

Silakan bagikan artikel ini dan berikan tanggapan Anda di bagian komentar agar kami dapat meningkatkannya.


  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 Mengaktifkan SQL Server Agent XPs menggunakan T-SQL

  2. Bagaimana memulihkan database dari C#

  3. 3 Cara Mengekstrak Tahun dari Tanggal di SQL Server (T-SQL)

  4. Bagaimana cara mendapatkan Paket Eksekusi Kueri di SQL Server?

  5. Bagaimana cara mendapatkan perbedaan antara dua baris untuk bidang kolom?