Cara melindungi SQL Server dari Peretas

9

Saya mengalami masalah dan tidak tahu cara menanganinya. Saya memiliki SQL Server di server Windows 2008 R2. SQL Server 2005 ini digunakan untuk menerima langganan DB dari SQL Server lain yang berlokasi di tempat lain di Internet. Saya memiliki port sql server terbuka melalui firewall, namun dalam cakupannya, saya telah memasukkan IP dari SQL Server lainnya. Melakukan hal itu saya berharap permintaan koneksi melalui port itu tidak akan mencapai SQL Server kecuali permintaan tersebut berasal dari SQL Server lainnya (yang IP-nya terdaftar dalam lingkup aturan firewall). Tetapi, ketika saya melihat log, ada ratusan entri "masuk gagal pengguna sa" (dan mereka datang setiap detik). Tampaknya beberapa peretas sedang berusaha keras untuk menebak kata sandi pengguna. Namun pertanyaannya adalah, mengapa Windows membiarkan permintaan ini mencapai SQL Server meskipun mereka tidak berasal dari alamat IP yang tercantum dalam lingkup firewall? Apa cara yang tepat untuk melindungi SQL Server ini. Tidak ada IP lain selain IP dari SQL Server lain yang perlu terhubung ke server sql ini.

EDIT - Info Lebih Lanjut:

Saya menjalankan telnet pada port server sql dari mesin yang berbeda. Telnet gagal kecuali ketika dijalankan dari mesin yang secara khusus disebutkan dalam lingkup firewall. Jadi tampaknya firewall memblokir port server sql baik-baik saja. Tapi mengapa saya melihat permintaan login yang gagal itu ke pengguna "sa" dari berbagai alamat IP di log SQL Server? Apakah mungkin peretas memasuki mesin melalui port 80 dan kemudian mencoba menghubungkan ke server sql? Port 80 dan 443 terbuka untuk semua orang. Semua port lain ditutup dengan pengecualian port server sql (dan itu terbuka hanya untuk satu IP tertentu). Tidak ada yang berjalan di server Web pada port 80 yang dapat mengarahkan pengunjung ke SQL server. Bahkan, hanya ada satu file index.html (HTML murni tanpa koneksi ke SQL) di server Web. Ini hanyalah server uji yang sedang disiapkan untuk penggunaan di masa mendatang. Hanya menguji data dalam SQL Server.

EDIT:

Saya menyalakan penelusuran firewall untuk menyertakan koneksi drop dan koneksi berhasil. Sekarang melacak segalanya. Lalu saya pergi ke log SQL Server di mana saya melihat upaya login gagal ini dari berbagai alamat IP di Cina Tetapi tidak ada entri untuk alamat IP ini di log firewall. Bagaimana ini mungkin? Bisakah mereka sampai ke server SQL melewati firewall sepenuhnya? Jika seandainya beberapa port firewall terbuka sehingga mereka dapat masuk, log firewall harus menunjukkan entri untuk alamat IP tersebut. Saya benar-benar bingung.

Allen King
sumber
Bagaimana kalau menggunakan Logon Trigger ? Juga, SQL Server tidak boleh terkena Internet (menghadap publik). Anda juga dapat menggunakan Aturan Program di Windows Firewall untuk membatasi rentang alamat IP.
Kin Shah
Ya saya bisa, tetapi dalam hati ini sebenarnya bukan tentang SQL Server. Saya mencoba mencari tahu mengapa firewall Windows tidak melakukan apa yang seharusnya dilakukan, yaitu, tidak membiarkan permintaan ini lewat karena mereka tidak datang dari satu-satunya alamat IP yang diizinkan.
1
Ya, sepertinya Windows Firewall Anda salah konfigurasi. Mungkin Anda memiliki aturan lain yang lebih umum yaitu mengizinkan port 1433 (atau mengizinkan semuanya), atau mungkin Windows Firewall dinonaktifkan pada NIC yang menghadap internet. Sulit dikatakan tanpa melihat konfigurasi. Tapi ini benar-benar lebih dari pertanyaan untuk ServerFault seperti kata Max. Apakah maksud Anda Windows 2008 R2, btw? 'RC' adalah Release Candidate, perangkat lunak pra-rilis untuk pengujian.
James L
1
Apakah Anda benar-benar menggunakan sistem operasi kandidat rilis lama ?! Perbaiki itu dulu.
Michael Hampton

Jawaban:

12

Kedengarannya seperti firewall Anda tidak dikonfigurasi dengan benar. Ini adalah langkah pertama.

Biasanya saya tidak akan germo buku yang saya tulis, tetapi dalam hal ini saya akan membuat pengecualian. Ini disebut Mengamankan SQL Server dan itu akan memberi Anda awal yang baik.

mrdenny
sumber
Nah, buku Anda sangat pas untuk pertanyaan ini :-)
mfinni
Keren! Apakah ia memiliki panduan preskriptif tentang penggunaan sertifikat alih-alih autor lokal / Windows untuk server yang menghadapi internet? ;-)
Greg Askew
Lihat hasil edit saya. Firewall sepertinya berfungsi ok. Ini adalah beberapa trik lain yang dimainkan peretas Cina ini untuk sampai ke SQL Server.
Allen King
1
Jika seseorang terhubung ke port SQL dari Alamat IP publik, maka firewall tidak dikonfigurasi dengan benar. Jika mereka berasal dari IP internal maka Anda punya masalah lain. SQL sendiri tidak mendukung sertifikat. Anda harus melakukan ini melalui pemetaan AD dan sertifikat.
mrdenny
Kembali ke gambar memang untuk firewall. Saya akan menarik server SQL dari internet sampai Anda menyelesaikan situasi firewall Anda. Dengan begitu Anda akan dapat melarang IP seluruh rentang alamat IP dengan relatif mudah.
Techie Joe
4

Cukup katakan - Anda tidak. Saya tidak akan menggunakan afirewall dll - server SQL tidak memiliki hak untuk berada di internet. SANGAT SANGAT beberapa pengecualian.

Untuk replikasi, siapkan VPN yang tepat.

TomTom
sumber
Saya sedikit bingung. Jika server DB tidak ada di Internet, bagaimana server backend Aplikasi Web akan mencapai server DB?
Allen King
Melalui jaringan internal. Pengaturan dasar. Aplikasi web duduk di kedua jaringan.
TomTom
3

Selain mengkonfigurasi firewall dengan benar, berikut adalah beberapa rekomendasi umum untuk menjaga SQL Server aman dari serangan brute force:

  • Nonaktifkan akun 'sa'. Mengetahui nama login yang tepat akan membuat serangan lebih mudah

    ALTER LOGIN sa DISABLE
    

Pilihan lain adalah mengubah nama akun 'sa' menjadi nama yang kurang jelas

ALTER LOGIN sa WITH NAME = SimonXZY
  • Gunakan otentikasi Windows alih-alih otentikasi mode campuran. Otentikasi Windows memberlakukan kebijakan kata sandi Windows dan mengunci login jika terjadi upaya login yang gagal berturut-turut
  • Audit gagal login. Cara termudah untuk melakukan ini adalah dengan mengatur opsi audit masuk di properti Server, tab Keamanan hanya untuk login Gagal atau Keduanya gagal dan login berhasil. Ini tidak akan membantu Anda melindungi dari serangan brute force, tetapi akan membantu Anda mewaspadai serangan tersebut

Rekomendasi yang lebih berguna di sini: Mencegah Serangan Brute atau Kamus: Cara Menghindari Brute dari Loot Anda

Milena Petrovic
sumber