Как обезопасить себя от взлома через Microsoft RDP

С 2020 года, после начала пандемии и массовым «переездом» на удаленку, участились случаи взлома серверов через RDP. И вот, случилось то, с чем надеется никогда не встретиться любой системный администратор. Взломали Сервер через RDP и зашифровали все данные. Сразу оговорюсь, что речь идёт именно о взломе через MS RDP (удаленный рабочий стол). Здесь не будем даже упоминать о ситуациях, когда пользователь запускает «суперсрочное и мегаважное письмо из налоговой», которое пришло на почту от неизвестного отправителя или попало на компьютер каким-либо другим способом. Почему это произошло и как обезопасить себя от этого? Несколько действенных рекомендаций ниже.

взломали через RDP

Простые правила, которые могут помочь, если RDP смотрит прямо в Интернет:

  • нестандартный порт для RDP больше не помогает (раньше этого было практически достаточно, но сегодня это задерживает злоумышленника менее, чем на минуту)
    HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp PortNumber. После изменения стандартного RDP порта не забываем открыть новый порт в Фаерволе/Брандмауэре;
  • никаких стандартных имен пользователей (администратор/administrator, admin, manager, buh, glavbuh и т.д.). Хорошо подойдёт связка NameLastname для пользователя и что-то сгенерированное генератором случайных символов и чисел для админа;
  • стандартную учетную запись администратора блокируем и отключаем;
  • пароль — обязательно генератором с использованием строчных и прописных символов, цифр и специальных символов. Длина пароля — от 16 символов;
  • блокировка учетной записи при вводе неправильного пароля на 10+ минут:
    secpol.msc -> Политики учетных записей -> Политика блокировки учетной записи -> Пороговое значение блокировки (3-5 неправильных вводом пароля — достаточно).

Всё вышеперечисленное не является панацеей. Но, вышеперечисленные действия если не остановят, то задержат злоумышленника надолго.

Зачем нужен нестандартный порт

Скрипт, написанный за 1 минуту школьником может начать сканировать пул ip адресов на наличие открытого стандартного порта 3389. В случае нахождения этого открытого порта — на вас будет открыта охота.

Раньше, изменения порта, было в принципе достаточно. Но, сегодня, это не особенно помогает: скрипт, написанный за 10 минут студентом будет сканировать все порты в пуле ip адресов. И абсолютно точно укажет, какой из портов является портом для RDP.

Вывод. Смена RDP порта задержит только самого начинающего «хакера».

Как поменять порт?
win+r -> regedit

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\Terminal Server\WinStations\RDP-Tcp

Нужно изменить десятичное значение параметра PortNumber

смена стандартного порта rdp

После изменения порта, не забудьте добавить правило исключения для входящего подключения для нового порта TCP в вашем фаерволе. Иначе после перезагрузки компьютера вы не сможете получить доступ к серверу.

*Чтобы подключиться через новый порт, следует указать его в строке подключения после двоеточия:
192.168.1.24:12345

Для чего придумывать замороченные имена пользователей и отключать стандартную учетную запись администратора

Если злоумышленник добрался до открытого RDP порта на Вашем выделенном ip адресе, дальше дело техники. Первым делом злоумышленник получает информацию о системе и … пробует войти под учетной записью Администратор или Administrator. Если имя учетной записи присутствует — сервер уведомляет злоумышленника о том, что пароль введен неверно. Дальше простой брутфорс или перебор стандартных паролей по словарю позволит вымогателю войти в систему с привилегированными правами в систему и делать в ней, всё что угодно (как правило просто шифруются все данные и готово).

Почему это кажется простым? Смотри ниже.

Про пароли

Считается, что пароль, состоящий из 16 символов, включающий в себя Заглавные и строчные буквы, цифры и специальные символы невозможно взломать. Возможно. Но, на это потребуется 92 миллиарда лет (согласно отчёту компании по кибербезопасности Hive Systems за 2022 год).

Как быстро можно подобрать пароль

Не стоит думать, что можно успокоится, просто установив длинный и сложный пароль. Каждые полгода время на подбор пароля уменьшается практически в два раза. Следовательно на момент написания данной статьи, пароль из 16 символов подбирается не за 92, а уже за 11.5 миллиардов лет. С развитием технологий, увеличением компьютерных мощностей, с появлением возможности использования мощностей видеокарт, ферм видеокарт и появлением майнинговых мощностей, вполне реально такие пароли через пару лет могут взламываться за пару часов.

А если ваш сервер смотрит портом RDP прямо в Интернет и работает круглосуточно, у злоумышленника есть это время.

Поэтому идём дальше и добавляем блокировку учетной записи после нескольких неправильных вводов пароля.

Блокировка учетной записи в случае неправильного ввода пароля

Странно, что эта опция отключена по умолчанию в семействе операционных систем Windows. Простым перебором паролей можно вломиться в ОС. Поэтому отключаем.

Win+R -> secpol.msc

открываем локальные политики безопасности

Локальная политика безопасности -> Политики учетных записей -> Политика блокировки учетной записи -> Пороговое значение блокировки (рекомендую установить 3-8 ошибок входа).

устанавливаем ограничение на количество вводов неправильных паролей

Теперь, в случае пятикратного неправильного ввода пароля, учетная запись будет заблокирована на 10 минут.

Что нам это даёт?

  • за час злоумышленник сможет перебрать только 5*6 = примерно 30 паролей. И это при условии, что злоумышленник уже знает ваш порт RDP и имя вашей учетной записи. На подбор сложного пароля в такой ситуации нужно примерно несколько вечностей;
  • в случае, если вы входите в свою учетную запись, а она почему-то заблокирована — у вас есть тревожный звоночек о том, что кто-то пытается Вас взломать. Значит пора бы предпринять дополнительные меры по защите вашего сервера.

Что следует обязательно учесть

Если у Вас только одна учетная запись, она может быть перманентно заблокирована из-за массовых неправильных вводов паролей.

Резюме

Приведенных выше рекомендаций будет достаточно, чтобы обезопасить простые серверы, которые смотрят портом RDP в сторону Интернета. В приведенных выше рекомендациях не требуются глубокие знания защиты, а также не требуется стороннее программное обеспечение.

Есть значительно более действенные методы, которые помогут обезопасить ваши серверы. Один из наиболее действенных и простых — использование VPN. Но это уже история для отдельной статьи.

Используйте сложные пароли!

Только в случае крайней необходимости открывайте порту RDP доступ напрямую в Интернет.

Не забывайте про резервные копии!!!