Често съм чел мнението, че поддържането на RDP (протокол за отдалечен работен плот) порт отворен към интернет е много опасно и не трябва да се прави. Но трябва да дадете достъп до RDP или чрез VPN, или само от определени „бели“ IP адреси.
Администрирам няколко Windows сървъра за малки фирми, където ми беше възложено да осигуря отдалечен достъп до Windows Server за счетоводители. Това е съвременната тенденция – работа от вкъщи. Много бързо разбрах, че измъчването на VPN счетоводители е неблагодарна задача и събирането на всички IP адреси за белия списък няма да работи, защото IP адресите на хората са динамични.
Затова предприех най-простия път - препратих RDP порта навън. За да получат достъп, счетоводителите сега трябва да стартират RDP и да въведат името на хоста (включително порт), потребителското име и паролата.
В тази статия ще споделя моя опит (положителен и не толкова) и препоръки.
Рискове
Какво рискувате, като отворите RDP порта?
1) Неоторизиран достъп до чувствителни данни
Ако някой познае паролата за RDP, той ще може да получи данни, които искате да запазите поверителни: състояние на акаунта, баланси, данни за клиенти, ...
2) Загуба на данни
Например в резултат на ransomware вирус.
Или умишлено действие от нападател.
3) Загуба на работна станция
Работниците трябва да работят, но системата е компрометирана и трябва да бъде преинсталирана/възстановена/конфигурирана.
4) Компрометиране на локалната мрежа
Ако нападателят е получил достъп до компютър с Windows, тогава от този компютър той ще може да получи достъп до системи, които са недостъпни отвън, от Интернет. Например към споделени файлове, към мрежови принтери и т.н.
Имах случай, при който Windows Server хвана ransomware
и този ransomware първо криптира повечето от файловете на C: устройството и след това започна да криптира файловете на NAS през мрежата. Тъй като NAS беше Synology, с конфигурирани моментни снимки, възстанових NAS за 5 минути и преинсталирах Windows Server от нулата.
Наблюдения и препоръки
Наблюдавам Windows сървъри с помощта на
Мониторингът сам по себе си не защитава, но помага да се определят необходимите мерки.
Ето някои наблюдения:
a) RDP ще бъде грубо форсиран.
На един от сървърите инсталирах RDP не на стандартния порт 3389, а на 443 - добре, ще се маскирам като HTTPS. Вероятно си струва да смените порта от стандартния, но няма да свършите много работа. Ето статистиката от този сървър:
Вижда се, че за седмица има почти 400 000 неуспешни опита за влизане през RDP.
Вижда се, че има опити за влизане от 55 001 IP адреса (някои IP адреси вече бяха блокирани от мен).
Това директно подсказва заключението, че трябва да зададете fail2ban, но
Няма такава помощна програма за Windows.
Има няколко изоставени проекта в Github, които изглежда правят това, но дори не съм се опитвал да ги инсталирам:
Има и платени комунални услуги, но не съм ги разглеждал.
Ако знаете помощна програма с отворен код за тази цел, моля, споделете я в коментарите.
Актуализация: Коментарите предполагат, че порт 443 е лош избор и е по-добре да изберете високи портове (32000+), защото 443 се сканира по-често и разпознаването на RDP на този порт не е проблем.
b) Има определени потребителски имена, които нападателите предпочитат
Вижда се, че търсенето се извършва в речник с различни имена.
Но ето какво забелязах: значителен брой опити използват името на сървъра като вход. Препоръка: Не използвайте едно и също име за компютъра и потребителя. Освен това понякога изглежда, че се опитват да анализират името на сървъра по някакъв начин: например за система с име DESKTOP-DFTHD7C най-много опити за влизане са с името DFTHD7C:
Съответно, ако имате компютър DESKTOP-MARIA, вероятно ще се опитвате да влезете като потребител на MARIA.
Друго нещо, което забелязах от регистрационните файлове: в повечето системи повечето опити за влизане са с името „администратор“. И това не е без причина, защото в много версии на Windows този потребител съществува. Освен това не може да бъде изтрит. Това опростява задачата за нападателите: вместо да познаете име и парола, трябва само да познаете паролата.
Между другото, системата, която улови рансъмуера, имаше потребителски администратор и парола Murmansk#9. Все още не съм сигурен как тази система е била хакната, защото започнах да наблюдавам точно след този инцидент, но мисля, че е вероятно прекаляването.
Така че, ако потребителят на администратора не може да бъде изтрит, тогава какво трябва да направите? Можете да го преименувате!
Препоръки от този параграф:
- не използвайте потребителското име в името на компютъра
- уверете се, че в системата няма администраторски потребител
- използвайте силни пароли
И така, наблюдавам как няколко Windows сървъра под мой контрол се форсират грубо от около няколко години и без успех.
Как да разбера, че е неуспешно?
Тъй като на екранните снимки по-горе можете да видите, че има регистрационни файлове на успешни RDP извиквания, които съдържат информацията:
- от кой IP
- от кой компютър (име на хост)
- потребителско име
- 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, също има
Е, последни препоръки:
- Правете редовно автоматично архивиране.
- инсталирайте своевременно актуализации за защита
Бонус: списък с 50 потребители, които най-често са били използвани за RDP опити за влизане
"user.name: Низходящо"
Броя
dfthd7c (име на хост)
842941
winsrv1 (име на хост)
266525
АДМИНИСТРАТОР
180678
администратор
163842
администратор
53541
Майкъл
23101
сървър
21983
стив
21936
клозет
21927
Paul
21913
прием
21909
микрофон
21899
офис
21888
скенер
21887
сканира
21867
Дейвид
21865
Крис
21860
собственик
21855
мениджър
21852
administrateur
21841
Брайън
21839
администратор
21837
марка
21824
персонал
21806
ADMIN
12748
ROOT
7772
АДМИНИСТРАДОР
7325
ПОДКРЕПА
5577
ПОДПОМАГАНЕ
5418
ПОТРЕБИТЕЛЯ
4558
администратор
2832
TEST
1928
mysql
1664
Admin
1652
ГОСТИ
1322
ПОТРЕБИТЕЛ 1
1179
Скенери
1121
SCAN
1032
АДМИНИСТРАТОР
842
АДМИНИСТРАТОР1
525
BACKUP
518
MySqlAdmin
518
ПРИЕМ
490
ПОТРЕБИТЕЛ 2
466
TEMP
452
SQLADMIN
450
ПОТРЕБИТЕЛ 3
441
1
422
МЕНИДЖЪР
418
СОБСТВЕНИК
410
Източник: www.habr.com