Использование Брандмауэра, журнала Безопасность и Планировщика заданий для защиты удаленного подключения к рабочему столу.Задача заключается в том, что необходимо выполнить в автоматическом режиме: 1. Выявление самого факта атаки на удаленное подключение к Рабочему столу по протоколу RDP. 2. Определить источник атаки – IP-адрес атакующего узла. 3. Заблокировать источник атаки с помощью стандартного Брандмауэра Windows. Первый пункт решается просто – при ошибке авторизации в журнале Безопасность фиксируется событие Аудит отказа с кодом 4625 Поскольку современный Планировщик заданий Windows позволяет создавать задачи не только по расписанию, но и по событиям в системном журнале, а в записи о событии с кодом 4625 присутствует IP-адрес с которого выполнялся вход в систему с неверной учетной записью, остается создать сценарий, который бы запускался по событию, обрабатывал полученные данные и блокировал IP командой netsh. Поскольку в реализации командной строки Windows нет стандартных средств, позволяющих выделять отдельные элементы записей в системных журналах, проще всего реализовать данный сценарий с использованием PowerShell. Если при просмотре события с кодом 4625 переключиться на Подробности, то можно получить список названий и принимаемых значений отдельных элементов записи о событии: Для получения данных из системных журналов в PowerShell используется командлет Get-EventLog, позволяющий получить значения любого из элементов, наблюдаемых на вкладке, в том числе и IpAddress. Воспользовавшись поиском, можно найти варианты сценариев, реализованных как с помощью Get-Eventlog, так и с помощью более универсального командлета Get-WinEvent например, на популярном ресурсе WINITPRO. В зависимости от языка системы, используются разные сценарии, что не совсем удобно. При чем, универсальный сценарий можно получить путем некоторых правок, упрощающих критерии обработки записей в журнале системы. В результате получился архив rdpdefend.zip, закрытый паролем ab57.ru и содержащий файлы: block_rdp_attack.ps1 - сценарий на PowerShell, выполняемый планировщиком при возникновении события с кодом 4625. delete-blocked-ip.bat - командный файл для принудительного удаления всех заблокированных IP-адресов. runsetup.bat - командный файл, создающий папку C:\Scripts с необходимыми сценариями и задачу Планировщика Block_RDP_Attack, выполняемую при ошибке авторизации. Кроме того, выполняется включение Брандмауэра Windows и запуск редактора групповых политик для разрешения выполнения сценария на PowrShell. Если компьютер, который нужно защитить от подбора паролей является членом домена, где присутствует настроенная служба Центра Сертификации, (Certificate Authority, CA), то можно создать сертификат типа Code signing и подписать им указанный сценарий на PowerShell. В этом случае изменение групповой политики не требуется. Естественно, любое изменение подписанного сценария делает его неработоспособным. Альтернативным решением является включение групповой политики, разрешающей выполнение сценариев PowerShell. При выполнении командного файла runsetup.bat отображается подсказка для поиска изменяемого объекта групповой политики - Конфигурация компьютера - Административные шаблоны - Компоненты Windows - Windows PowerShell - Включить выполнение сценариев - Разрешать все сценарии Командный файл runsetup.bat должен выполняться от имени администратора. Содержимое файла block_rdp_attack.ps1 определяет некоторые параметры, которые влияют на режим блокировки: $badAttempts = 5 – пороговое количество ошибок при вводе пароля для удаленного подключения (5). $intervalHours = 1 -интервал времени (1 час), за который было достигнуто указанное выше количество ошибок ввода пароля. $ruleMaxEntries = 1000 - максимальное число заблокированных IP-адресов (1000), при котором будет пересоздано правило блокировки. $log = "c:\scripts\block_rdp_attack.log" - имя файла журнала, в котором фиксируются дата, время, и заблокированный IP (c:\scripts\block_rdp_attack.log). $trustedIPs = @("192.168.1.33","95.15.12.163") список доверенных IP, которые не будут блокироваться. Приведенный сценарий работает на любой версии Windows, старше Windows 7 (Windows Server 2008), независимо от языка системы. Пример записей журнала c:\scripts\block_rdp_attack.log: 5/21/2024 12:27:58 PM | 45.32.123.105 | The IP address has been blocked due to 5 failed login attempts over 1 hours 5/21/2024 4:49:34 PM | 77.68.119.144 | The IP address has been blocked due to 5 failed login attempts over 1 hours Сценарий выполняется в контексте учетной записи Система ( Local System ) с соответствующими форматами даты и времени. |
|