Сессионный модуль

Назначение модуля

Сессионный модуль (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.