Опасно ли е да се оставя RDP отворен в интернет?

Често чувам мнение, че оставянето на RDP (Протокол за отдален работен плот) отворен в Интернет е много небезопасно и не бива да се прави. А достъпът до RDP трябва да се предоставя или чрез VPN, или само от определени "бели" IP адреси.

Аз администрирам няколко Windows Server за малки фирми, които ми поставиха задачата да осигуря отдалечен достъп до Windows Server за счетоводителите. Такъв е съвременният тренд – работа от вкъщи. Бързо осъзнах, че е неефективно да мъча счетоводителите с VPN, а и не е възможно да събера всички IP за бял списък, тъй като IP адресите на хората са динамични.

Затова реших да поема най-простия път – отвори RDP порта навън. Сега за достъп счетоводителите просто трябва да стартират RDP и да въведат името на хоста (включително порта), името на потребителя и парола.

В тази статия ще споделя опит (положителен и не много) и препоръки.

Рискове

Какви рискове поемате, когато отворите RDP порта?

1) Незапознат достъп до чувствителни данни
Ако някой открие паролата за RDP, той може да получи достъп до данните, които искате да запазите в тайна: състояние на сметките, баланси, данни на клиенти и др.

2) Загуба на данни
Например, в резултат на работа на вирус-шифровчик.
Или на целенасочено действие от страна на нападателя.

3) Загуба на работна станция
Работниците трябва да работят, а системата е компрометирана, необходимо е да се преинсталира/възстанови/конфигурира.

4) Компрометиране на локалната мрежа
Ако нападателят получи достъп до Windows компютър, той вече може да получи достъп до системи, които не са достъпни навън, от Интернет. Например до файлови споделяния, мрежови принтери и т.н.

Имам случай, когато Windows Server улови шифровчик

и този шифровчик първо шифрова повечето файлове на диск C:, а след това започна да шифрова файлове на NAS по мрежата. Тъй като NAS беше Synology с настроени snapshot-ове, успях да възстановя NAS за 5 минути, а Windows Server преинсталирах от нула.

Наблюдения и Препоръки

Наблюдавам Windows Servers с помощта на Winlogbeat, които изпращат логове в ElasticSearch. В Kibana имам няколко визуализации, а също така настроих собствена табло.
Самото наблюдение не предпазва, но помага да се определи необходимото действие.

Ето някои наблюдения:
a) RDP ще бъде брутфорсван.
На един от сървърите не поставих RDP на стандартния порт 3389, а на 443 – уж минавайки за HTTPS. Замяната на стандартния порт вероятно е добра идея, но ползата от това е малка. Ето статистиката от този сървър:

Опасно ли е да се оставя RDP отворен в интернет?

Лесно се вижда, че за седмица е имало почти 400 000 неуспешни опити за достъп по RDP.
Видно е, че опитите за достъп са били от 55 001 IP адреса (някои IP адреси вече бяха блокирани от мен).

Тук направо се натрапва изводът, че трябва да се инсталира fail2ban, но

за Windows такава утилита няма.

Има няколко изоставени проекта в Гитхаб, които изглежда правят това, но дори не съм ги пробвал:
https://github.com/glasnt/wail2ban
https://github.com/EvanAnderson/ts_block

Има и платени утилити, но не съм ги разглеждал.

Ако знаете за отворена утилита за тази цел — споделете в коментарите.

Update: В коментарите подсказаха, че порт 443 е лош избор и е по-добре да се избират високи портове (32000+), защото 443 се сканира по-често и разпознаването на RDP на този порт не е проблем.

Актуализация: В коментарите подсказаха, че такава утилита съществува:
https://github.com/digitalruby/ipban

b) Има определени потребителски имена, които злоупотребители предпочитат.
Лицето е видно, че се прави брутфорс с различни имена.
Но ето какво забелязах: значителен брой опити — използват името на сървъра за логин. Препоръката: не използвайте едно и също име за компютъра и за потребителя. Освен това понякога се опитват да разберат името на сървъра: например за система с име DESKTOP-DFTHD7C, най-много опити за влизане с име DFTHD7C:

Опасно ли е да се оставя RDP отворен в интернет?

Съответно, ако имате компютър DESKTOP-MARIA, вероятно ще има опити за влизане с потребител MARIA.

Още нещо, което забелязах от логовете: на повечето системи, повечето опити за влизане — са с име "administrator". И не е случайно, защото в много версии на Windows, този потребител съществува. Освен това — не може да бъде изтрит. Това улеснява задачата за злоупотребители: вместо да подбират име и парола, трябва само да подберат паролата.
Между другото, системата, която прихвана шифровальщика, имаше потребител Administrator и парола Murmansk#9. Все още не съм сигурен как е била хакната, защото започнах да следя точно след този случай, но мисля, че брутфорсът е вероятен.
Така, ако потребителят Administrator не може да бъде изтрит, какво да правим? Може да бъде преименуван!

Препоръките от този пункт:

  • не използвайте името на потребителя в името на компютъра
  • убедете се, че в системата няма потребител Administrator
  • използвайте надеждни пароли

Така наблюдавам как няколко Windows Server под моят контрол са брут-форснати вече около две години, и безуспешно.

Откъде знам, че е безуспешно?
Защото на скрийншотите по-горе се виждат логове на успешни входове по RDP, в които има информация:

  • от кой IP
  • от кой компютър (hostname)
  • име на потребителя
  • GeoIP информация

И редовно проверявам там — аномалии не са открити.

Между другото, ако от някой IP брутфорсват особено усърдно, можете да блокирате отделни IP (или подсистеми) така в 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

Между другото, в Elastic, освен Winlogbeat, има и Auditbeat, който може да следи файлове и процеси в системата. Има също така приложение SIEM (Управление на сигурноста на информацията и събитията) в Kibana. Пробвах и двете, но не видях особена полза — изглежда, че Auditbeat ще е по-полезен за Linux системи, а SIEM все още не ми показа нищо ясно.

Ето и последните препоръки:

  • правете редовни автоматични резервни копия.
  • своевременно инсталирайте актуализации за сигурност.

Бонус: списък с 50 потребители, които най-често са използвани за опити за вход по RDP.

"user.name: низходящо"
Брой

dfthd7c (домакинско име)
842941

winsrv1 (домакинско име)
266525

АДМИНИСТРАТОР
180678

administrator
163842

Administrator
53541

майкъл
23101

server
21983

стив
21936

john
21927

паул
21913

рецепция
21909

майк
21899

офис
21888

скенер
21887

сканиране
21867

давид
21865

крис
21860

собственик
21855

мениджър
21852

administrateur
21841

брайън
21839

administrador
21837

марк
21824

служител
21806

АДМИН
12748

ROOT
7772

АДМИНИСТРАТОР
7325

ПОДДРЪЖКА
5577

СОПОРТЕ
5418

USER
4558

админ
2832

ТЕСТ
1928

MySql
1664

Админ
1652

ГОСТ
1322

ПОТРЕБИТЕЛ1
1179

СКЕНЕР
1121

SCAN
1032

АДМИНИСТРАТОР
842

АДМИН1
525

РЕЗЕРВА
518

MySqlAdmin
518

РЕЦЕПЦИЯ
490

ПОТРЕБИТЕЛ2
466

TEMP
452

SQLADMIN
450

ПОТРЕБИТЕЛ3
441

1
422

МЕНИДЖЪР
418

СОБСТВЕНИК
410

Източник: habr.com

Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри 🔥 Купете надежден хостинг за сайтове с защита от DDoS, VPS VDS сървъри | ProHoster