Често чувам мнение, че оставянето на 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 с помощта на , които изпращат логове в ElasticSearch. В Kibana имам няколко визуализации, а също така настроих собствена табло.
Самото наблюдение не предпазва, но помага да се определи необходимото действие.
Ето някои наблюдения:
a) RDP ще бъде брутфорсван.
На един от сървърите не поставих RDP на стандартния порт 3389, а на 443 – уж минавайки за HTTPS. Замяната на стандартния порт вероятно е добра идея, но ползата от това е малка. Ето статистиката от този сървър:

Лесно се вижда, че за седмица е имало почти 400 000 неуспешни опити за достъп по RDP.
Видно е, че опитите за достъп са били от 55 001 IP адреса (някои IP адреси вече бяха блокирани от мен).
Тук направо се натрапва изводът, че трябва да се инсталира fail2ban, но
за Windows такава утилита няма.
Има няколко изоставени проекта в Гитхаб, които изглежда правят това, но дори не съм ги пробвал:
Има и платени утилити, но не съм ги разглеждал.
Ако знаете за отворена утилита за тази цел — споделете в коментарите.
Update: В коментарите подсказаха, че порт 443 е лош избор и е по-добре да се избират високи портове (32000+), защото 443 се сканира по-често и разпознаването на RDP на този порт не е проблем.
Актуализация: В коментарите подсказаха, че такава утилита съществува:
b) Има определени потребителски имена, които злоупотребители предпочитат.
Лицето е видно, че се прави брутфорс с различни имена.
Но ето какво забелязах: значителен брой опити — използват името на сървъра за логин. Препоръката: не използвайте едно и също име за компютъра и за потребителя. Освен това понякога се опитват да разберат името на сървъра: например за система с име DESKTOP-DFTHD7C, най-много опити за влизане с име DFTHD7C:

Съответно, ако имате компютър 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, има и , който може да следи файлове и процеси в системата. Има също така приложение 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
