Сессионный модуль
Назначение модуля
Сессионный модуль (dosgate_uh) — это опциональный модуль, который расширяет возможности программного комплекса DosGate, добавляя механизмы stateful-обработки трафика. Он может быть настроен как через веб-интерфейс, так и с помощью конфигурационных файлов, поддерживающих обновление в реальном времени.
Принцип работы
Сессионный модуль отслеживает сетевые соединения, анализирует параметры TLS/DTLS-рукопожатий (SNI, ALPN, JA3/JA4, шифры), выявляет аномалии и при необходимости присваивает IP-адресу метку. Эта метка затем используется для блокировки трафика на сетевом уровне, что позволяет отбрасывать подозрительные соединения до глубокого анализа и значительно снижает нагрузку на систему DosGate.
Настройка и запуск
Веб-интерфейс настройки представлен следующими элементами управления:
- Название: Поле для имени.
- Описание: Поле для описания.
- Проверка контрольных сумм: Позволяет выбирать, какие протоколы будут проходить проверку контрольных сумм на уровне сетевых пакетов: TCP, UDP, ICMP, ICMPv6.
-
Отслеживание соединений: Здесь задаются параметры сессионного отслеживания по различным протоколам (TCP, UDP, SCTP, ICMP, ICMPv6.).
Протоколы выбираются переключателем. Активный протокол выделяется белым цветом, неактивные — серым. Если переключатель выключен, протокол не отслеживается.
- New – время ожидания на процесс установки нового неподтвержденного соединения (по умолчанию 10 секунд).
- Confirmed – время жизни подтверждённого соединения (по умолчанию 1800 секунд).
- Time-wait – время ожидания на процесс полного закрытия соединения (по умолчанию 20 секунд).
- Catch-up – включение синхронизации состояний соединений при старте модуля.
- Active-close – активное закрытие соединений по завершении работы или по наступлении заданных условий.
- Валидация IP-фрагментации - Отдельный переключатель, позволяющий включать или выключать проверку корректности фрагментированных IP-пакетов.
TLS и DTLS
Разделы TLS и DTLS предназначены для детальной настройки параметров анализа и обработки защищённого трафика (соответственно для потокового и датаграммного типов соединений). Эти разделы позволяют контролировать и идентифицировать сетевые соединения по признакам TLS- и DTLS-рукопожатий.
-
TLS - Используется для контроля защищённых потоковых соединений поверх TCP (например, веб-трафик).
-
DTLS - Используется для контроля защищённых датаграммных соединений поверх UDP (например, VoIP, видеоконференции и другие сервисы, чувствительные к задержкам).
Элементы окна настройки
Переключатель Hello, позволяющий выбрать тип анализа рукопожатий:
- Client — анализируются параметры ClientHello, исходящие от клиента.
- Server — анализируются параметры ServerHello, исходящие от сервера.
Для активации анализа необходимо включить соответствующий переключатель (по умолчанию — отключён).
-
SNI (Server Name Indication)
Фильтрация соединений по имени хоста (SNI). -
ALPN (Application-Layer Protocol Negotiation)
Фильтрация по протоколам прикладного уровня (ALPN). -
Cipher List
Фильтрация по списку шифров, используемых в рукопожатиях. -
JA3
Фильтрация по JA3-хэшу, уникальному отпечатку ClientHello. -
JA4
Фильтрация по аналогичному механизму для ClientHello.
-
Поле поиска (значок 🔍 в правом верхнем углу): Позволяет осуществлять быстрый поиск по списку указанных элементов.
-
Переключатели режима фильтрации:
- Сбрасывать указанные — режим, при котором соединения, соответствующие элементам списка, будут блокироваться или отбрасываться.
- Все кроме указанных — режим, при котором соединения, не соответствующие элементам списка, будут блокироваться или отбрасываться.
-
Список элементов: Представляет собой перечень заданных значений (например, идентификаторы, хэши, имена доменов и т.д.), используемых для фильтрации.
Оффендеры
Раздел Оффендеры предназначен для маркировки и временного отслеживания сетевых объектов (сессий, хостов, потоков), распознанных как нарушители или аномальные участники TLS/DTLS-трафика. Данная функциональность может использоваться для последующей фильтрации, ограничения или анализа таких соединений.
Параметры конфигурации
Верхняя часть интерфейса содержит переключатель между двумя типами защищённых протоколов: TLS и DTLS.
-
Тип:
- CONNMARK — Метка для соединений
- DHMARK — Метка для IP-получателя
- HMARK — Метка для IP-отправителя
- SDHMARK — Метка для IP отправителя и получателя
-
ID
Целочисленный идентификатор группы или правила, к которому привязывается маркер. По умолчанию: 1. -
Value
Значение метки, присваиваемое нарушителю. По умолчанию: 1. -
Expire, сек
Время жизни (в секундах) метки после назначения. По истечении этого времени метка автоматически удаляется. Значение по умолчанию: 3600 (1 час).
Пример работы оффендеров
Сценарий: выявление вредоносных клиентов по признакам TLS/DTLS и их блокировка на уровне сетевого трафика.
1. Обнаружение подозрительного клиента
Модуль TLS зафиксировал соединение с аномальными признаками, указывающими на потенциально нежелательный или вредоносный трафик.
2. Назначение метки
В настройках Оффендер задаются параметры метки, которые определяют, как именно будет помечен подозрительный IP-адрес:
Тип: HMARK
ID: 1
Value: 100
Expire: 3600
Это означает, что IP-отправителя будет отмечен меткой 100 на один час.
3. Блокировка по метке
Далее следует настроить правило блокировки для автоматической фильтрации нежелательного трафика. Для этого необходимо:
Перейти в нужный профиль → Правила → Создать новое правило
-
Совпадение: hmark
-
ID: 1
-
Status: valid
-
Value: 100
-
-
Действие: DROP
Нажать зелёную кнопку Добавить, а затем жёлтую кнопку Применить.
Переместите правило в начало списка, чтобы оно применялось в первую очередь. Таким образом, после первого подозрительного соединения все последующие попытки с этого IP будут блокироваться ещё до обработки TLS/DTLS.