Настройка детектора DDoS и BotNet на базе QoE

Детектор позволяет автоматически контролировать исходящий и входящий трафик, выявлять DDoS-атаки и оперативно принимать меры для защиты сети. Определять абонентов участников BotNet. При обнаружении угрозы система может полностью изолировать вредоносный поток или очистить трафик, сохранив доступность сервисов для пользователей.
Решение требует:

СКАТ версии BASE, COMPLETE или BRAS с дополнительными опциями

QoE с опцией Обнаружение и очистка трафика (blackhole and flowspec) от BotNet и DDoS-атак (опция antiddos)

разворачивается на существующем сервере с QoE

Подробнее об инструментах для защиты от DDoS и выявления BotNet

1. Обновление QoE

На сервере QoE.

Обновить QoE до последней версии, предварительно остановив ресиверы. Перед запуском ресиверов пропатчить ClickHouse:

dnf --refresh install clickhouse-patched

Запустить ресиверы.

2. Обновление GUI

На сервере GUI.

Обновить GUI до последней версии. Подключить GUI к VAS Cloud, если еще не подключен. Настройка авторизации. Выдать опцию лицензии aniddos.

В файле /var/www/html/dpiui2/frontend/env.js прописать опцию AppEnv.DDoSAttack_isVisible = 1;

3. Установка детектора

На сервере QoE.

Установить пакет митигатора fastm_qoe на все узлы:

dnf install fastm_qoe

Переключить версию python:

dnf install -y python39 python39-devel -y
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.6 60
sudo update-alternatives --install /usr/bin/python3 python3 /usr/bin/python3.9 70
sudo update-alternatives --config python3

Выбрать версию 3.9:

python3 --version

4. Настройка детектора

На сервере QoE.

На всех узлах, либо на выбранных.

Отредактировать файл /var/fastm_qoe/etc/.env.
В нем должно быть следующее содержимое:

ANALYZER=avg-based-z-score
ANALYZER_RULES_KEY=avg-based-z-score-any
IDLE_MODE=1
FORCE_MODE=0
DB_DROP_TABLES=1
FM_ATTACKS_METRICS_BY_SUBS_FILTER="and has_attack = 0"
FM_ATTACKS_METRICS_BY_SUBS_LIMIT=1
FM_ATTACKS_METRICS_BY_SUBS_COLLAPSE=1
FM_ATTACKS_METRICS_BY_SUBS_DAY='day_'

Обновить схему:

fastm-db-scheme

Включить сбор метрик
Для этого в файле /var/qoestor/backend/.env добавить

FM_FULLFLOW_HOOK_ENABLE=1
GEO_IP_DIC_AUTOLOAD_ENABLED=1

Выполнить дневной крон:

sh /var/qoestor/backend/app_bash/cron_daily.sh

Собирать метрики несколько часов, лучше сутки. После отредактировать файл /var/fastm_qoe/etc/.env снова и изменить 2 параметра:

IDLE_MODE=0
DB_DROP_TABLES=0

Это активирует детектор.

5. Пороги срабатывания

В файле /var/fastm_qoe/lib/rules/config.json отредактировать раздел avg-based-z-score-any следующим образом:

"avg-based-z-score-any": {
"octets": { "th": 100, "weight": 0.1 },
"octets_dropped": { "th": 1000, "weight": 0.3 },
"packets": { "th": 100, "weight": 0.3 },
"packets_dropped": { "th": 1000, "weight": 0.3 },
"flows": { "th": 100, "weight": 0.4 },
"sessions": { "th": 100, "weight": 0.4 },
"duration": { "th": 100, "weight": 0.01 },
"host_ips": { "th": 100, "weight": 0.3 },
"protos": { "th": 100, "weight": 0.3 },
"bits_sec": { "th": 100, "weight": 0.05 },
"bits_dropped_sec": { "th": 1000, "weight": 0.05 },
"packets_sec": { "th": 100, "weight": 0.05 },
"packets_dropped_sec": { "th": 1000, "weight": 0.05 }
},

6. Хранение метрик (логи DDoS атак)

В веб-интерфейсе GUI настроить хранение сырых и агрегированных метрик, а также хранение сырого и агрегированного лога атак.

В разделе Администратор → Конфигурация GUI → QoE Stor: Настройки времени жизни БД задать следующие значения параметрам:

QOESTOR_FM_ATTACKS_MAIN_LOG_PARTITIONS_LIFE_TIME_HOUR = 720

QOESTOR_FM_ATTACKS_AGG_LOG_PARTITIONS_LIFE_TIME_DAYS = 30

QOESTOR_FM_METRICS_MAIN_LOG_PARTITIONS_LIFE_TIME_HOUR = 72

QOESTOR_FM_METRICS_AGG_LOG_PARTITIONS_LIFE_TIME_DAYS = 7

7. Анализ атак

Обнаруженные атаки можно изучить в разделах DDoS атаки в QoE Анлитике.

Начните с раздела "ТОП атак" за период 24 часа.
Отсортируйте атаки по количеству сессий, запишите себе несколько IP с наибольшим количеством сессиий.

Посмотрите раздел "ТОП атак по протоколам"
Также отсортируйте по количеству сессий. Запишите себе эти протоколы

Посмотрите раздел "ТОП атакующих IP-адресов", запишите себе несколько IP с наибольшим количеством сессиий

Посмотрите Лог атак
С фильтром по выбранным ранее абонентам и протоколу.
Там можно почерпнуть детали атаки и сделать доп. выводы, чтобы принимать какие-либо решения.
Например, на скрине ниже явно видно, что идет перебор портов на одном и том же адресе по UDP протоколу. В данном случае достаточно поместить IP атакующего в отдельную АС и сделать ее drop.

Блокировка АС подробно описана в сценарии Блокировка IP с помещением в автономную систему