MITIGATOR v20.06. Обзор изменений.

Глеб Хохлов
AntiDDoS Life
Published in
6 min readJun 4, 2020

Доступна для установки v20.06

Версию были добавлены 7 новых механизмов защиты и проведено множество улучшений и фиксов в разных частях системы, всего 203 исправления различного масштаба. Сменили базу хранения метрик с Whisper на ClickHouse, поэтому отдельная инструкция по обновлению.
Опубликовали политику совместимости.

Далее опишу изменения, на которые стоит обратить внимание.

BPF. Добавлена новая контрмера «Программируемый фильтр»

Как анонсировали, контрмера позволяет пользователю использовать собственные алгоритмы защиты. Обучающий пример создания программы для BPF https://docs.mitigator.ru/master/kb/bpf/tutorial/

Для упрощения процесса разработки под BPF создан сервис bpf.mitigator.ru. Сервис позволяет компилировать исходный код и валидировать объектные файлы под разные версии MITIGATOR.

Обратитесь в поддержку для получения доступа на bpf.mitigator.ru.

FRB. Добавлена новая контрмера «Блокировка потоков при превышении порогов»

Контрмера позволяет заблокировать хост, с которого поступает определенный трафик больше порога. Целевой трафик можно описать по L3-L4 заголовкам (ACL) и по L4 payload (REX). Такой подход позволяет выделять атакующие хосты, мимикрирующие под легитимные.
Например, правило:

PACKETS 1000 BITS 2000000 PERIOD 3 BLOCK 300 ACL tcp dport 80 ACL header-len 50 REX \sLOGIN\s[^\n]{100}

Если с адреса поступает 1000 пакетов или 2 мегабита в течении 3 секунд и у этих пакетов:
длина IP-заголовка 50 Байт,
TCP порт назначения 80,
содержимое TCP payload — 100 раз “LOGIN” через пробел, то
занести хост в TBL на 300 секунд.

Или пример попроще,

BITS 2000 ACL icmp

Блокировать трафик с хоста до тех пор, пока с адреса идет больше 2Kbps ICMP трафика.

Правила в контрмере применяются по порядку. Есть возможность применить пороги для трафика, не попавшего под правила.

DNS. Добавлен режим UDP-аутентификации Redirect.

ATLS. Добавлена фильтрация по белому и черному списку JA3 отпечатков.

ATLS. Добавлен сбор JA3 отпечатков.

WAFR. Добавлена новая контрмера «Перенаправление на WAF»

Создан механизм, позволяющий перенаправлять часть трафика в политике защиты на другое L7-устройство защиты. Трафик пересылается прозрачно для пользователя. От администратора защищаемого сервиса не требуется никаких настроек (в частности, замены A-записи)”

Контрмера WAFR реализована под сценарии связки MITIGATOR+WAF у поставщика услуги защиты.

Например, на хосте 10.10.10.10 запущено несколько TCP и UDP сервисов, в том числе веб-приложение, работающее по HTTPS. Необходимо трафик веб-приложения пусть через WAF, а остальной — напрямую к хосту. С помощью WAFR можно прозрачно направить HTTPS-трафик на WAF или другое подобное устройство. При этом на WAF может быть настроена отправка атакующих адресов на блокировку на MITIGATOR.

GAME. Добавлена защита для игры ARK: Survival Evolved

ARK: Survival Evolved— многопользовательская игра в жанре симулятора выживания. В Steam входит в TOP-10 игр по количеству игроков в онлайне.

GAME. Переработана и улучшена защита для игры GTA SAMP

Полностью изменены алгоритмы защиты. Для свежих версий добавлена защита на базе challenge-response. Реализована защита от Query Flood.

GAME. Добавлена выгрузка таблицы аутентифицированных IP-адресов.

Выгрузка адресов игроков позволит эшелонировать защиту UDP-игр. Вышестоящий эшелон должен будет пропускать пакеты с адресов проверенных игроков и первые пакеты, необходимые для проверки игрока. В зависимости от возможности эшелона и игры, необходимые пакеты можно будет описать по длине или по содержимому.
Такой подход позволит разгрузить линки перед MITIGATOR.

GAME. Добавлена возможность через API наполнять таблицу адресами игроков.

Это позволяет выгруженный на одном экземпляре MITIGATOR’а список загрузить в другой экземпляр или восстановить список после перезапуска, чтобы минимизировать влияние на защищаемый сервис.

SOUR. Изменены условия для опроса серверов.

Теперь SOUR не опрашивает сервера, если выполняется одно из условий:

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

TCP. Изменена работа с таблицей аутентифицированных адресов.

Контрмера TCP — одна из первых в MITIGATOR. За это время возможности обработчика пакетов сильно шагнули вперед. Подтягиваем поведение под современные возможности:

  • Отдельная таблица адресов для контрмеры TCP в каждой политике. Динамическое использование памяти. Размер каждой таблицы до 2 млн записей и до 4 млн записей в строгом режиме.
  • Если таблица переполнена, то новый адрес не добавляется. Ранее, если адреса добавлялись, это могло приводить к вымыванию из таблицы уже существующих легитимных пользователей, если атакующий обходил проверки.
  • Контрмера отслеживает наличие активности с адреса, если активности нет больше 30 секунд (настраивается), то запись удаляется.
  • Добавлен запрос API на добавление адресов в таблицу.

CRB. Изменен формат указания порога.

Для описания легитимного трафика потребовалось указывать скорости меньше одного соединения в секунду. Например, 2 соединения за 5 минут. Поэтому в очередной раз изменили формат порога. Теперь задается «Пороговое число запросов» и «Период подсчета порога». Для блокировки хоста, устанавливающего больше двух соединений за 5 минут, нужно будет указать
Пороговое число запросов: 2
Период подсчета порога: 300.

Внимание. После обновления нужно проверить пороги.

SORB. Изменен формат указания порога.
Аналогично CRB.

Внимание. После обновления нужно проверить пороги.

VAL. Добавлена опция сброса TCP-сегментов по MSS.

ACL. Добавлена поддержка флагов фрагментации.
Список параметров сравнения для фрагментированных пакетов:
frag-offset — смещение фрагмента
fragment — фрагментация пакета (не фрагмент, первый фрагмент и т. п.);
DF — флаг запрета фрагментации;
MF — флаг фрагментации.

MCR. Ключ задается побайтово в шестнадцатеричном представлении.

SPLI. Добавлена выгрузка таблицы соединений.

SPLI. Уменьшено влияние контрмеры на легитимный трафик, увеличена производительность.

Detect. Добавлено автодетектирование для каждой контрмеры.

Detect. Добавлены предикаты на пропущенный трафик, расширен список предикатов.

Detect. Добавлены предикаты с порогами System.ACL.* по входящему трафику по интерфейсам.

Detect. Добавлена возможность добавлять новые предикаты через файл конфигурации.

Groups. Добавлены ограничения на количество правил и политик защиты в группе.

BGP. Анонсируемые префиксы автоматически актуализируются при изменении правил, указывающих на политику защиты.

UX. В политику защиты добавлена информация об анонсируемых префиксах.

UX. Добавлено сохранение по Enter при создании новой политики.

UX. Отключение автообновления графика, если выбран конкретный интервал или интервал больше 4х часов.

UX. Добавлена справка во все карточки контрмер

UX. Добавлена поддержка нового дизайна страницы политики.

Help. Раздел Помощь обновлен и дополнен.

API. Переработаны пути запросов графиков.
Для удобства интеграции с внешними ЛК получение графиков разделено на три хендлера:

  • top — top-политики по трафику;
  • group — общий трафик группы;
  • render — остальные.

Подробней в документации по API.

Core. Добавлен режим отложенного запуска обработчика пакетов.

В режиме отложенного запуска пакеты начинают обрабатываться только после загрузки всех настроек в обработчик пакетов.
Режим включается через опцию командной строки -s, — deferredstart, указываемую через DATA_PLANE_ARGS в docker-compose.override.yml, либо через define($deferred_start true); в data-plane.conf

Порядок загрузки:

  • пролитие настроек в обработчик пакетов,
  • активация обработчика пакетов и включение портов,
  • активация BGP-сессий.

Core. Добавлена поддержка нового оборудования.

Протестирована работа системы на AMD EPYC2 и Mellanox ConnectX-5 с шиной PCIe 4.0 x16, а также новых Xeon Gold 62xxR.

Backend. Добавлено управление уровнем логирования.

Через переменную окружения BACKEND_LOG_LEVEL или запрос API /system/log можно менять уровень логирования:

  • debug
  • info
  • warning
  • error

Если переменная окружения не задана, то при запуске используется уровень info. Контрмеры SOUR и GAME могут создавать большой поток записей на уровне info, поэтому рекомендуется поднять уровень логирования до warning.

--

--

Глеб Хохлов
AntiDDoS Life

Эксперт в защите от DDoS-атак. Продакт-менеджер в MITIGATOR.