Содержание

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

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

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

На сервере QoE.

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

dnf --refresh install clickhouse-patched

Установить период ротации на ресиверах – 1 минута.

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

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

На сервере GUI.

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

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

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

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

  1. Перед установкой переключить версию 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
  2. Выбрать версию Python 3.9:
    python3 --version
  3. Установить fastm_qoe:
    dnf install fastm_qoe

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

На сервере QoE.

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

  1. Отредактировать файл /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_'
  2. Обновить схему:
    fastm-db-scheme
    clickhouse-client -n --query="system reload function has_attack_func"
    clickhouse-client -n --query="system reload dictionary fm_attacks_metrics_by_subs_dic"
  3. Включить сбор метрик
    Для этого в файле /var/qoestor/backend/.env добавить
    FM_FULLFLOW_HOOK_ENABLE=1
    GEO_IP_DIC_AUTOLOAD_ENABLED=1

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

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

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

    IDLE_MODE=0
    DB_DROP_TABLES=0

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

  4. Обновить словари:
    clickhouse-client -n --query="system reload function has_attack_func"
    clickhouse-client -n --query="system reload dictionary fm_attacks_metrics_by_subs_dic"

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: Настройки времени жизни БД задать следующие значения параметрам:

Для корректного отображения гео-отчетов DDoS-атак необходимо включить параметр GEO_IP_DIC_AUTOLOAD_ENABLED:

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

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

  1. Начните с раздела "ТОП атак" за период 24 часа.
    Отсортируйте атаки по количеству сессий, запишите себе несколько IP с наибольшим количеством сессиий.
  2. Посмотрите раздел "ТОП атак по протоколам"
    Также отсортируйте по количеству сессий. Запишите себе эти протоколы
  3. Посмотрите раздел "ТОП атакующих IP-адресов", запишите себе несколько IP с наибольшим количеством сессиий
  4. Посмотрите Лог атак
    С фильтром по выбранным ранее абонентам и протоколу.
    Там можно почерпнуть детали атаки и сделать доп. выводы, чтобы принимать какие-либо решения.
    Например, на скрине ниже явно видно, что идет перебор портов на одном и том же адресе по UDP протоколу. В данном случае достаточно поместить IP атакующего в отдельную АС и сделать ее drop.
Блокировка АС подробно описана в сценарии Блокировка IP с помещением в автономную систему