Интеграция с FastNetMon
Описана следующая схема защиты:
- FastNetMon анализирует трафик, выявляет атаки и вызывает скрипт при начале и окончании атак.
- Скрипт анализирует отчет FastNetMon и переключает состояние защиты на MITIGATOR в зависимости от характеристик атаки.
Обзор FastNetMon
FastNetMon выявляет начало, окончание и характеристики атаки, анализируя трафик, который может сниматься с сетевых интерфейсов или поступать от агрегаторов (NetFlow, sFlow). FastNetMon не выявляет источник атаки (IP-адреса отправителей или признаки пакетов), но можно определить, какие ресурсы требуется защищать от каких видов атак.
FastNetMon может вызывать внешнюю программу при разных событиях:
- начало атаки (
ban); - отчет об атаке (
attack_details); - окончание атаки (
unban).
В отчет об атаке входит (пример):
- атакованный IP-адрес (защищаемый ресурс);
- направление атаки (аномалия входящего или исходящего трафика);
- тип атаки (SYN flood, ICMP flood, IP fragmentation или неизвестная);
- протокол, на уровне которого происходит атака;
- статистика трафика атаки;
- (опционально) образец трафика атаки в текстовом виде.
Настройка FastNetMon
Информация
Здесь описан простейший вариант настройки FastNetMon для тестирования. При наличии развернутого FastNetMon в этом шаге достаточно настроить интеграцию (выделено в тексте).
Установим FastNetMon (Debian, Ubuntu):
Сеть защищаемых ресурсов (например, 10.0.2.0/24) нужно записать в файл:
FastNetMon настраивается в /etc/fastnetmon.conf.
В версии дистрибутива множество настроек с комментариями;
мы составим более простые настройки (готовый файл).
Будем захватывать трафик через libpcap с интерфейса span0 (медленный способ
только для тестов!):
Настроим анализ только входящего трафика:
Оповещать об атаках; не реже, чем раз в 30 секунд проверять, не кончилась ли атака, и если кончилась, оповещать об этом:
Самое главное — вызов скрипта интеграции при событиях, связанных с атаками. Скрипту нужны подробности об атаке (отчет), при этом описания пакетов не нужны:
Отключим захват образцов трафика в формате PCAP и их обработку. На практике это может быть полезно, но для наших целей не нужно:
Наконец, лимиты трафика. Для простоты ограничим только суммарный трафик в пакетах и байтах. Можно также задать ограничения отдельно на трафик TCP, UDP и ICMP, а также на количество соединений (требуется включить их отслеживание):
Также FastNetMon позволяет настроить разные лимиты для групп подсетей, но при оповещении не будет известно, для какой группы превышен лимит — это можно определить только по атакованному адресу.
Настройка скрипта реагирования
FastNetMon вызывает fastnetmon.py (скачать),
который разбирает параметры и отчет об атаке, чтобы управлять MITIGATOR
через mitigator.py (скачать).
Разместим скрипты на машине с FastNetMon:
В /usr/local/bin/fastnetmon.py нужно настроить доступ к Mitigator´у:
Помимо адреса MITIGATOR (SERVER), логина (USER) и пароля (PASSWORD)
можно указать дополнительные опции mitigator.py. В данном случае
отключается проверка TLS, что актуально, если сертификат самоподписанный.
Функция policy_by_ip() переводит IP-адрес атакованного ресурса в ID
политики MITIGATOR (42 из policies/42 в URL). В примере всегда
выбирается политика по умолчанию:
Скрипт работает так:
- При начале атаки включает политику защиты.
- По отчету об атаке:
- при SYN flood или атаке на TCP включает контрмеру TCP;
- при ICMP flood или атаке на ICMP включает контрмеру ACL;
- в прочих случаях включает контрмеру SORB.
- При окончании атаки выключает контрмеры TCP, ACL, SORB и политику защиты.
Расчет сделан на то, что TCP защищается специальной контрмерой, в ACL можно настроить сброс ICMP (что не рекомендуется, но допустимо под атакой), а прочий трафик можно лимитировать по объему.
Проверка работы
На MITIGATOR включим общую защиту.
В политике по умолчанию настроим:
- для контрмеры ACL правило
drop icmp; - для контрмеры SORB порог по пакетам 100, нарушителей заносить во временный «черный список».
Ни защиту политики, ни контрмеры включать не будем — это сделает скрипт.
Запустим ICMP flood (утилитой hping3 из пакета hping3),
адрес жертвы из защищаемой подсети:
Через несколько секунд FastNetMon обнаружит атаку, на MITIGATOR включится защита политики и контрмера ACL, и трафик начнет сбрасываться.
После остановки атаки в течение 30 секунд защиты будут выключены.
В случае каких-либо проблем ошибки будут записаны в журнал FastNetMon
(/var/log/fastnetmon.log) и в журнал скрипта
(/var/log/fastnetmon-mitigator.log).
Похожие статьи
- MITIGATOR Challenge Response
- Агент SNMP
- Анализатор логов Web-сервера
- Блокировка IP на MITIGATOR с Nginx и fail2ban
- Блокировка IP на MITIGATOR с Nginx и log2ban
- Взаимодействие по BGP
- Выполнение скриптов по событию журнала
- Защита TCP с синхронизацией ISN
- Интеграция с сервисом уведомлений «Весточка»
- Модуль challenge-response аутентификации для HTTP/HTTPS