Привет, Хабр! На связи Иван, руководитель отдела сопровождения сервисов ИБ в Selectel.

Защита веб-приложений с каждым годом всё актуальнее. Растет число взломов крупных компаний и утечек чувствительных данных. Нужно ли говорить о том, как важно заботиться о безопасности веб-приложений, помнить о возможных атаках и их последствиях?

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

Я уже рассказывал о сертифицированном WAF и OpenAppSec — решении с открытым исходным кодом. Недавно российский вендор UserGate сообщил о старте продаж нового продукта — UserGate WAF. Сегодня мы рассмотрим его заявленные особенности, установим в облаке Selectel и спрячем за него защищаемое приложение. Поехали!

Используйте навигацию, если не хотите читать текст целиком:

Несколько слов о UserGate WAF

Сначала будем отталкиваться от информации, предоставленной вендором.

UserGate WAF — это полностью оригинальное решение на основе собственного движка анализа веб-трафика, разработанное специалистами компании без привлечения компонентов с открытым исходным кодом. UserGate WAF имеет сертификат ФСТЭК № 3905, что позволяет использовать его при аттестациях по приказу № 17 ФСТЭК. Кроме того, он внесен в реестр Минцифры под номером 28542.

Решение защищает как веб-приложения, так и API. Анализ трафика на уровне L7 обеспечивают 11 тыс встроенных правил и вариаций, которые оказываются крайне полезными на практике. Также можно создавать и кастомные правила, учитывающие логику пользовательских приложений. Язык описания политик — UserGate Policy Language (UPL).

Под капотом у UserGate WAF собственная операционная система UGOS и модули анализа трафика. Начиная с версии 7.4, UserGate WAF появилось много новых возможностей:

  • поддержка кластеризации;

  • модуль защиты Malicious User-Agent (антибот);

  • работа с заголовками: X-Forwarded-For, X-real-IP, X-request-ID;

  • обновленный интерфейс.

По аналогии с NGFW, UserGate WAF поддерживает кластеры конфигурации и отказоустойчивости. Если нужно распределение нагрузки в сторону защищаемых приложений, можно использовать встроенный балансировщик с алгоритмом Round Robin.

UserGate WAF отдает логи об атаках в форматах JSON и CEF. Такая возможность полезна для интеграции с SIEM-решениями — она позволяет централизованно следить за состоянием защиты веб-приложения.   

Если вы уже работали с UserGate NGFW в виртуальном исполнении UserGate VE, то процесс установки и настройки вам знаком. Порог входа окажется существенно ниже, и начать работать с WAF получится намного быстрее. Основные компоненты — сеть, зоны, Firewall, пользователи, мониторинг и интерфейс — не вызовут сложностей.

Мы привыкли, что в большинстве случаев решения с открытым исходным кодом выигрывают от коллективного вклада мирового сообщества, огромной базы знаний и тысяч готовых правил, доступных публично. Однако заявление производителя об отсутствии в основе WAF-движка open source-компонентов является важным конкурентным отличием и дает несколько преимуществ:

  • более тесную и производительную интеграцию WAF с другими подсистемами собственной ОС UGOS;

  • независимость от графика обновлений и уязвимостей в сторонних компонентах — например, как это произошло с прекращением поддержки ModSecurity;

  • единую точку ответственности в лице вендора.

С другой стороны, это обязывает UserGate быстро реагировать на новые векторы атак и своевременное обновление сигнатур.

Security Center

Рассказываем о лучших практиках и средствах ИБ, требованиях и изменениях в законодательстве.

Исследовать →

Анализ схем размещения WAF в продуктах Selectel

Теперь спланируем развертывание UG WAF в публичном облаке Selectel. Рассмотрим два случая: когда аттестация не требуется и когда без нее не обойтись.

Сценарий 1. Аттестация системы не требуется

В таком случае нужно только защитить веб-приложение.

Диаграмма показывает, как интернет-трафик по протоколу HTTPS поступает на UserGate WAF, который работает как reverse proxy и направляет уже расшифрованный HTTP-трафик на защищаемое веб-приложение в облаке Selectel.

На схеме видно, что доступ к защищаемому приложению открыт только через UG WAF, а пограничным межсетевым экраном может выступать и облачный файрвол:

Архитектурная диаграмма, где интернет-трафик сначала проходит через облачный файрвол Selectel, а затем поступает на UserGate WAF для анализа и последующей пересылки на веб-приложение.

UserGate WAF поставляется только в виртуальном исполнении, поэтому веб-приложение может находиться и на выделенных серверах. Сетевую связность между ними и WAF в таком сценарии нужно настроить через глобальный роутер Selectel. Подробнее о его использовании можно почитать в документации или обзорной статье.

Диаграмма гибридной инфраструктуры. Трафик из интернета проходит через облачный файрвол и UserGate WAF в облаке, после чего через глобальный роутер направляется на веб-приложение, размещенное на выделенных серверах Selectel.

Таким образом, UG WAF может стать единой точкой входа для доступа к защищаемым приложениям.

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

Полноценная поддержка кластеризации в режимах Active-Active и Active-Passive была добавлена в версии 7.4, выпущенной в июне 2025 года. При развертывании на базе актуальных версий продукта следует в первую очередь рассматривать именно нативный механизм обеспечения отказоустойчивости.

Итак, поскольку мы используем облачный балансировщик Selectel, то схема получается следующей:

Архитектура с обеспечением высокой доступности. Облачный балансировщик нагрузки распределяет трафик между двумя экземплярами UserGate WAF, которые защищают приложения как в облаке, так и на выделенных серверах.

Сценарий 2. Требуется аттестация системы

В этом случаем отлично подойдет следующий набор продуктов Selectel и UserGate:

  • аттестованный регион публичного облака,

  • NGFW UserGate VE,

  • UserGate WAF.

Комплексная архитектура для аттестованных систем. Трафик последовательно проходит через NGFW UserGate, облачный балансировщик и несколько экземпляров WAF для защиты приложений в аттестованном облаке и аттестованном ЦОД.

Ключевое преимущество предлагаемого набора — в том, что все его компоненты имеют достаточный функционал и документы для прохождения аттестации по УЗ‑1 и К1 согласно требованиям ФСТЭК.   

Масштабировать систему можно, добавляя новые ноды обработки трафика, облачный балансировщик между UserGate NGFW и WAF, а также ресурсы на каждую ноду.

Разворачивание WAF в продуктах Selectel

Теперь развернем UserGate WAF в облаке Selectel и таким способом защитим уязвимое приложение. Для этого реализуем базовую схему:

Диаграмма показывает, как интернет-трафик по протоколу HTTPS поступает на UserGate WAF, который работает как reverse proxy и направляет уже расшифрованный HTTP-трафик на защищаемое веб-приложение в облаке Selectel.

1. Сначала создадим проект в публичном облаке. Перейдем в раздел Облачная платформа → Проект → Создать проект. Укажем имя проекта и нажмем Создать.

Скриншот интерфейса панели управления Selectel. Показано модальное окно создания нового проекта с названием «UG WAF».

2. Теперь загрузим образ виртуального диска UG WAF в хранилище образов:

Скриншот интерфейса панели управления Selectel. Показано окно создания нового образа диска из файла с именем waf-x86-64-7.3.0.113300R-release-public.

3. Наша схема предусматривает изолированную подсеть для связи между UG WAF и виртуальной машиной с веб-приложением. Сконфигурируем ее, а также выделим публичный IP-адрес для WAF. Для этого перейдем в раздел Сеть и создадим новую приватную сеть:

Скриншот интерфейса панели управления Selectel. Показано окно создания новой приватной сети с именем local network и CIDR 192.168.220.0/24.

4. Затем в разделе Публичные IP‑адреса сформируем новый адрес:

Скриншот интерфейса панели управления Selectel. Показано окно создания нового публичного IP-адреса в пуле «Санкт-Петербург».

5. Теперь развернем ВМ с UserGate WAF. В качестве источника укажем загруженный ранее образ диска:

Скриншот интерфейса панели управления Selectel. Настройка параметров виртуальной машины для UserGate WAF: 4 vCPU, 8192 МБ RAM, диск 100 ГБ и подключение к публичной и приватной сетям.

6. Отлично. Теперь развернем виртуальную машину для веб-приложения:

Скриншот интерфейса панели управления Selectel. Настройка параметров виртуальной машины для веб-приложения на базе Ubuntu 22.04 LTS: 2 vCPU, 2 ГБ RAM, диск 20 ГБ и подключение к приватной сети.

7. Сейчас необходимо инициализировать UserGate WAF и настроить доступ к нему только с доверенных адресов. Задаем параметры аплинка UG WAF в консоли:

UGOS WAF 7.3.0.113300R

Admin@chealeelarin> configure
Admin@chealeelarin# set network interface adapter port0 enabled on ip-addresses [ 192.168.0.246/24 ] zone __default__

8. Следующим шагом создаем шлюз по умолчанию:

UGOS WAF 7.3.0.113300R

Admin@chealeelarin> configure
Admin@chealeelarin# create network gateway interface port0 ip 192.168.0.1 default on enabled on virtual-router default weight 1

9. Теперь можно попасть в веб-консоль UserGate WAF, обратившись по адресу:

https://<плавающий ip>:8001

10. В разделе UserGate WAF → Настройка → Системные DNS-серверы укажем адреса DNS-серверов:

Скриншот веб-интерфейса UserGate WAF. Раздел «Системные DNS-серверы» с указанием публичных DNS-адресов.

11. Активируем лицензию и настраиваем внешнюю зону Untrusted. Для решения этой задачи добавим доверенный IP в ACL для доступа к веб-консоли и SSH:

Скриншот веб-интерфейса UserGate WAF. Настройка ACL для доступа к консоли администрирования, где в список разрешенных добавлен IP-адрес администратора.

12. Reverse-прокси понадобится дальше, когда будем заводить приложение за UserGate WAF. Сейчас назначим корректные зоны интерфейсам:

Скриншот веб-интерфейса UserGate WAF. Раздел «Интерфейсы», где показаны сетевые адаптеры port0 и port1 и их привязка к зонам Untrusted и Trusted соответственно.

Заведение уязвимого приложения за UserGate WAF

У нас собрана целевая схема — осталось только спрятать приложение за WAF. 

В этой статье мы сознательно опускаем настройку HTTPS, чтобы сосредоточиться на базовой логике работы WAF. Наш стенд — временный, и для него шифрование некритично.

Однако в реальной задаче вам потребуется выполнить SSL-терминирование на стороне WAF. Для этого загрузите ваш SSL-сертификат и закрытый ключ в интерфейс UserGate и примените его в настройках создаваемого правила reverse-прокси.

Теперь настроим reverse-прокси на UserGate WAF. Трафик из интернета должен идти к защищаемому приложению через него:

Скриншот веб-интерфейса UserGate WAF. Показано окно создания правила reverse-proxy с именем app_proxy, портом 8080 и сервером назначения 192.168.220.75.
Скриншот веб-интерфейса UserGate WAF. Отображен список правил reverse-proxy с одним активным правилом app_proxy.

Попробуем обратиться к веб‑приложению извне:

Скриншот главной страницы уязвимого веб-приложения OWASP Juice Shop, открытой в браузере через настроенный reverse-proxy.

Если выключить правило reverse-прокси, доступ к приложению пропадет. Страница ошибки reverse-прокси от UserGate по умолчанию выглядит так:

Скриншот страницы ошибки «General Error», которую показывает UserGate, когда правило reverse-proxy выключено, и доступ к приложению невозможен.

В журналах WAF видим эти обращения:

Скриншот веб-интерфейса UserGate WAF. Показан журнал событий, где зафиксированы легитимные обращения к веб-приложению.

Записи содержат не только данные об источнике и назначении, но и целевой URL, User-Agent, код ответа сервера. Весь лог можно выгрузить в CSV для анализа.  

После активации лицензии UG WAF скачаются и установятся библиотеки правил WAF:

Скриншот веб-интерфейса UserGate WAF. Окно «Проверка наличия обновлений», где идет процесс скачивания пакета правил «Waf Package: OWASP TOP 10».
Скриншот веб-интерфейса UserGate WAF. Окно «Проверка наличия обновлений» с сообщением «У вас последняя версия» для пакета правил.

Правила добавятся в раздел:

Скриншот веб-интерфейса UserGate WAF. Показан список системных правил, сгруппированных по типам атак, таких как «Abuse of Functionality» и «Authentication/Authorization Attacks».

Библиотека UserGate WAF насчитывает более 8,6 тыс правил. Изначально действие для них не задано — его можно указать самостоятельно.

По умолчанию все предустановленные сигнатуры выключены и разбиты на слои — группы правил. UG WAF позволяет создавать собственные слои и включать в них кастомные директивы.

Для тестирования включим все слои, кроме Detection Evasion, который пытается поймать попытки обфускации вредоносной нагрузки за счет добавления различных мусорных символов. Выявление обфусцированных нагрузок — непростая задача, и такие правила получаются довольно агрессивными с точки зрения детекта. По этой причине их следует использовать с осторожностью, чтобы не порождать ошибки при обработке нормального трафика.

Скриншот веб-интерфейса UserGate WAF. Показано окно создания профиля WAF_Profile, в котором активированы все доступные слои правил защиты.

Теперь в созданном ранее правиле reverse‑прокси добавим профиль WAF для анализа трафика:

Скриншот веб-интерфейса UserGate WAF. Настройка правила reverse-proxy, где на вкладке «WAF» включена защита и выбран созданный ранее WAF_Profile.

Отлично, схема собрана. Теперь мы можем управлять WAF с доверенных адресов и анализировать проходящий через него трафик.   

Анализ результатов защиты приложения

1. Просканируем защищаемое приложение утилитой nikto:

nikto -h http://31.186.103.205:8080 -output report.html

2. Посмотрим на логи UserGate WAF:

Скриншот веб-интерфейса UserGate WAF. Журнал событий, демонстрирующий большое количество заблокированных запросов от сканера уязвимостей nikto.

UserGate WAF позволяет просматривать трафик в режиме реального времени. Логи можно фильтровать — например, по HTTP-методу. Так можно просмотреть GET- и POST-запросы:

Скриншот журнала событий UserGate WAF, отфильтрованного для отображения только GET-запросов.
Скриншот журнала событий UserGate WAF, отфильтрованного для отображения только POST-запросов.

3. Теперь попробуем вручную выполнить SQL-инъекцию для обхода авторизации от имени администратора и посмотрим на ответ сервера:

Скриншот страницы входа в приложение OWASP Juice Shop. В поле для email введена вредоносная строка для выполнения SQL-инъекции, но авторизация не удалась.

Как видим, авторизация не прошла — WAF заблокировал запрос.

Тестирование обхода WAF

По традиции, как и в прошлых статьях о WAF, запустим тест с помощью утилиты waf-bypass.

1. Установим утилиту на стороннюю виртуальную машину:

git clone https://github.com/nemesida-waf/waf\_bypass.git /opt/waf-bypass/
python3 -m pip install -r /opt/waf-bypass/requirements.txt

2. Запустим сканирование, выполнив команду:

python3 /opt/waf-bypass/main.py --host='target_ip:port'

3. При выключенном правиле WAF на UG WAF:

Скриншот терминала с результатами теста утилиты waf-bypass. Показатель BYPASSED (пропущенных атак) составляет 98.51%.

При включенном правиле WAF на UG WAF:

Скриншот терминала с результатами теста утилиты waf-bypass. Показатель BYPASSED снизился до 22.94%, что демонстрирует эффективность защиты.

Доля пропущенных атак (BYPASSED) заметно сократилась — это хороший результат. Дальнейшее уменьшение этого показателя требует более тонкой настройки правил, как и в любом другом WAF.

Данный результат подчеркивает необходимость в тщательной, поэтапной и гранулярной настройке профиля защиты, с обязательным предварительным испытанием на тестовой среде.

Выводы

UserGate WAF — зрелое решение, которое позволяет быстро развернуть защиту веб-приложений, особенно в средах, где уже используются другие продукты вендора, благодаря знакомому интерфейсу и общей логике управления. Наличие сертификата ФСТЭК делает его привлекательным для организаций с повышенными регуляторными требованиями.

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

К тому же вендор предлагает полный комплекс услуг по развертыванию, интеграции и миграции для заказчиков, у которых в штате небольшое количество ИТ‑специалистов или нет выделенных экспертов по ИБ. Так решается проблема сложности кастомизации правил.

Таким образом, UserGate WAF можно рекомендовать командам, как обладающим необходимой компетенцией, так и нет, но готовым приобрести поддержку решения силами вендора.

Продукт отлично подойдет тем, кто уже работал с другими системами UserGate. Процессы развертывания и конфигурации схожи с NGFW. Гибкая настройка политик для разных сервисов позволит одной инсталляцией обезопасить сразу несколько из них.

Комментарии (0)