Apakah berbahaya membiarkan RDP tetap terbuka di Internet?

Saya sering membaca pendapat bahwa membiarkan port RDP (Remote Desktop Protocol) tetap terbuka ke Internet sangat tidak aman dan tidak boleh dilakukan. Namun Anda perlu memberikan akses ke RDP baik melalui VPN, atau hanya dari alamat IP “putih” tertentu.

Saya mengelola beberapa Server Windows untuk perusahaan kecil tempat saya ditugaskan menyediakan akses jarak jauh ke Windows Server untuk akuntan. Ini adalah tren modern – bekerja dari rumah. Dengan segera, saya menyadari bahwa menyiksa akuntan VPN adalah tugas tanpa pamrih, dan mengumpulkan semua IP untuk daftar putih tidak akan berhasil, karena alamat IP orang bersifat dinamis.

Oleh karena itu, saya mengambil rute paling sederhana - meneruskan port RDP ke luar. Untuk mendapatkan akses, akuntan sekarang perlu menjalankan RDP dan memasukkan nama host (termasuk port), nama pengguna dan kata sandi.

Pada artikel ini saya akan berbagi pengalaman saya (positif dan tidak terlalu positif) dan rekomendasi.

Risiko

Apa risikonya dengan membuka port RDP?

1) Akses tidak sah ke data sensitif
Jika seseorang menebak kata sandi RDP, mereka akan dapat memperoleh data yang ingin Anda rahasiakan: status akun, saldo, data pelanggan, ...

2) Kehilangan data
Misalnya akibat virus ransomware.
Atau tindakan yang disengaja oleh penyerang.

3) Hilangnya stasiun kerja
Pekerja perlu bekerja, tetapi sistem telah disusupi dan perlu diinstal ulang/dipulihkan/dikonfigurasi.

4) Kompromi jaringan lokal
Jika penyerang telah memperoleh akses ke komputer Windows, maka dari komputer tersebut ia akan dapat mengakses sistem yang tidak dapat diakses dari luar, dari Internet. Misalnya, untuk berbagi file, ke printer jaringan, dll.

Saya punya kasus di mana Windows Server menangkap ransomware

dan ransomware ini pertama-tama mengenkripsi sebagian besar file di drive C: dan kemudian mulai mengenkripsi file di NAS melalui jaringan. Karena NASnya adalah Synology, dengan snapshot yang dikonfigurasi, saya memulihkan NAS dalam 5 menit, dan menginstal ulang Windows Server dari awal.

Pengamatan dan Rekomendasi

Saya memantau Server Windows menggunakan Winlogbeat.dll, yang mengirimkan log ke ElasticSearch. Kibana memiliki beberapa visualisasi, dan saya juga menyiapkan dashboard khusus.
Pemantauan itu sendiri tidak melindungi, namun membantu menentukan tindakan yang diperlukan.

Berikut beberapa pengamatannya:
a) RDP akan dipaksakan.
Di salah satu server, saya menginstal RDP bukan pada port standar 3389, tetapi pada 443 - saya akan menyamar sebagai HTTPS. Mungkin ada baiknya mengubah port dari yang standar, tetapi tidak akan banyak gunanya. Berikut statistik dari server ini:

Apakah berbahaya membiarkan RDP tetap terbuka di Internet?

Terlihat dalam seminggu terdapat hampir 400 upaya login melalui RDP yang gagal.
Terlihat ada upaya login dari 55 alamat IP (beberapa alamat IP sudah saya blokir).

Ini secara langsung menunjukkan kesimpulan bahwa Anda perlu mengatur fail2ban, tapi

Tidak ada utilitas seperti itu untuk Windows.

Ada beberapa proyek terbengkalai di Github yang tampaknya dapat melakukan hal ini, tetapi saya bahkan belum mencoba menginstalnya:
https://github.com/glasnt/wail2ban
https://github.com/EvanAnderson/ts_block

Ada juga utilitas berbayar, tapi saya belum mempertimbangkannya.

Jika Anda mengetahui utilitas open source untuk tujuan ini, silakan bagikan di komentar.

Memperbarui: Komentar menyarankan bahwa port 443 adalah pilihan yang buruk, dan lebih baik memilih port yang tinggi (32000+), karena 443 lebih sering dipindai, dan mengenali RDP pada port ini tidak menjadi masalah.

b) Ada nama pengguna tertentu yang disukai penyerang
Terlihat pencarian dilakukan pada kamus dengan nama yang berbeda-beda.
Namun inilah yang saya perhatikan: sejumlah besar upaya menggunakan nama server sebagai login. Rekomendasi: Jangan gunakan nama yang sama untuk komputer dan pengguna. Selain itu, terkadang sepertinya mereka mencoba mengurai nama server: misalnya, untuk sistem dengan nama DESKTOP-DFTHD7C, upaya login terbanyak adalah dengan nama DFTHD7C:

Apakah berbahaya membiarkan RDP tetap terbuka di Internet?

Oleh karena itu, jika Anda memiliki komputer DESKTOP-MARIA, Anda mungkin mencoba masuk sebagai pengguna MARIA.

Hal lain yang saya perhatikan dari log: pada sebagian besar sistem, sebagian besar upaya untuk masuk dilakukan dengan nama “administrator”. Dan ini bukan tanpa alasan, karena di banyak versi Windows, pengguna ini ada. Apalagi tidak bisa dihapus. Ini menyederhanakan tugas penyerang: alih-alih menebak nama dan kata sandi, Anda hanya perlu menebak kata sandinya.
Omong-omong, sistem yang menangkap ransomware memiliki pengguna Administrator dan kata sandi Murmansk#9. Saya masih tidak yakin bagaimana sistem itu bisa diretas, karena saya mulai memantaunya tepat setelah kejadian itu, tapi menurut saya tindakan tersebut mungkin berlebihan.
Lalu jika user Administrator tidak bisa dihapus, lalu apa yang harus dilakukan? Anda dapat mengganti namanya!

Rekomendasi dari paragraf ini:

  • jangan gunakan nama pengguna pada nama komputer
  • pastikan tidak ada pengguna Administrator di sistem
  • gunakan kata sandi yang kuat

Jadi, saya telah menyaksikan beberapa Server Windows di bawah kendali saya dipaksa secara paksa selama beberapa tahun sekarang, dan tidak berhasil.

Bagaimana saya tahu bahwa ini tidak berhasil?
Karena pada screenshot di atas terlihat terdapat log panggilan RDP yang berhasil, yang berisi informasi:

  • dari IP mana
  • dari komputer mana (nama host)
  • Nama pengguna
  • informasi GeoIP

Dan saya memeriksa di sana secara teratur - tidak ada anomali yang ditemukan.

Omong-omong, jika IP tertentu dipaksakan dengan sangat keras, Anda dapat memblokir IP individual (atau subnet) seperti ini di PowerShell:

New-NetFirewallRule -Direction Inbound -DisplayName "fail2ban" -Name "fail2ban" -RemoteAddress ("185.143.0.0/16", "185.153.0.0/16", "193.188.0.0/16") -Action Block

Omong-omong, Elastic, selain Winlogbeat, juga punya Auditbeat, yang dapat memantau file dan proses pada sistem. Ada juga aplikasi SIEM (Security Information & Event Management) di Kibana. Saya mencoba keduanya, tetapi tidak melihat banyak manfaatnya - sepertinya Auditbeat akan lebih berguna untuk sistem Linux, dan SIEM belum menunjukkan apa pun yang dapat saya pahami.

Nah, rekomendasi terakhir:

  • Buat cadangan otomatis secara teratur.
  • instal Pembaruan Keamanan tepat waktu

Bonus: daftar 50 pengguna yang paling sering digunakan untuk upaya login RDP

"nama pengguna: Menurun"
Menghitung

dfthd7c (nama host)
842941

winrv1 (nama host)
266525

ADMINISTRATOR
180678

administrator
163842

administrator
53541

michael
23101

Server
21983

steve
21936

john
21927

paul
21913

penerimaan
21909

mikropon
21899

kantor
21888

scanner
21887

pemindaian
21867

david
21865

chris
21860

pemilik
21855

manajer
21852

administrateur
21841

brian
21839

administrator
21837

tanda
21824

staf
21806

ADMIN
12748

ROOT
7772

ADMINISTRASI
7325

SUPPORT
5577

DUKUNGAN
5418

PENGGUNA
4558

admin
2832

UJI
1928

MySql
1664

admin
1652

TAMU
1322

PENGGUNA1
1179

PEMINDAI
1121

SCAN
1032

ADMINISTRATOR
842

ADMIN1
525

CADANGAN
518

Admin MySql
518

PENERIMAAN
490

PENGGUNA2
466

TEMP
452

SQLADMIN
450

PENGGUNA3
441

1
422

MANAGER
418

PEMILIK
410

Sumber: www.habr.com

Tambah komentar