Часто возникает вопрос - как использовать Flowmon для блокирования атаки? Flowmon не является встроенным устройством, стоящим на пути входящего трафика, поэтому он сотрудничает со сторонними поставщиками, которые поставляют оборудование, такое как брандмауэры или унифицированные шлюзы безопасности.
В этой статье мы рассмотрим, как настроить брандмауэр Fortinet FortiGate на блокировку трафика в ответ на обнаруженную с помощью Flowmon ADS аномалию или атаку. Эта конкретная интеграция предназначена для автоматической блокировки трафика брандмауэром и остановки его по периметру.
Что вам понадобится
Скрипты интеграции доступны для загрузки с нашего партнерского портала. Также опубликована и полная документация.
В настоящее время интеграция работает только с диапазонами адресов IPv4, так как для достижения этой цели с помощью IPv6 потребуется еще один вызов API для создания объекта адреса, но в действительности это зависит от вашего сетевого подключения. Если у вас есть только IPv4, доступный на WAN-интерфейсе, то нет необходимости в блокировке IPv6.
Подготовка
Один из способов блокировать атаки на устройстве FortiGate с включенной службой IPSec VPN - это настройка политики локального входа. По умолчанию политика локального входа разрешает доступ ко всем адресам, но вы можете создавать группы адресов для блокировки определенных IP-адресов. Одна такая группа может содержать до 600 IP-адресов, хотя ограничение будет варьироваться между отдельными платформами. Существует таймер, который удалит IP-адреса из списка через заданный период, чтобы сделать ротацию списка и сохранить его коротким.
Теперь, чтобы заставить Flowmon ADS блокировать IP-адреса, вам нужно видеть сетевой трафик до того, как он достигнет FortiGate.
Другими словами, вам нужны данные NetFlow / IPFIX от зонда Flowmon Probe, размещенного перед межсетевым экраном. Не рекомендуется использовать сам FortiGate для получения этих данных, потому что его flow-данные не содержат флаги TCP, а это означает, что многие методы обнаружения не дадут надежных результатов. Это касается даже последней версии FortiOS 6.4.
Когда у вас есть источник flow-данных и ваш Flowmon ADS настроен для обнаружения аномалий, вы можете установить упомянутый выше пользовательский пакет скриптов. Он использует вызовы REST API для создания адресных объектов из событий Flowmon ADS в FortiGate и сохраняет базу данных ранее заблокированных IP-адресов для дальнейшего использования.
Этот Python скрипт требует дополнительной библиотеки, которую вы обычно не найдете на своем устройстве Flowmon, но вы можете найти ее в пакете и установить там.
Установка
Во-первых, загрузите пакет (ag-mitigation.tar.gz) и импортируйте его через Configuration Center, как и любой другой программный пакет Flowmon. Тогда он будет находиться в /data/components/fgt-mitigation/.
Список установленных пакетов в Центре конфигурации Flowmon
Пакет содержит конфигурационный файл и два скрипта: ag-mitigation.py отвечает за блокировку и потребует загрузки в Flowmon ADS (см. ниже), а другой, ag-timeout.py, удаляет заблокированные адреса с помощью таймаута.
После установки вы сможете запустить/остановить скрипт таймаута из пользовательского интерфейса. Он использует базу данных SQLite3 для хранения информации о заблокированных IP-адресах и их времени жизни в этих записях. Вы можете настроить, как долго они должны оставаться на месте и, изменив планировщик cron, как часто должен выполняться скрипт.
Затем вам нужно включить локальную политику входа в FortiGate с действием по умолчанию, чтобы блокировать любой трафик в группе Flowmon ADS, работающей всегда.
Консоль FortiGate с настроенной политикой локального входа
В начале эта группа состоит всего из одной записи, которая в основном означает «нет IP-адреса». Это происходит только потому, что группа FortiGate не может быть пустой, и эта одна запись ничего не блокирует.
Веб - интерфейс конфигурации FortiGate с группой адресов, настроенной для скрипта
Затем настройте один интерфейс мониторинга устройства Flowmon, подключенного к коммутатору управления в качестве WAN-порта для FortiGate. Это позволяет собирать весь трафик, проходящий через точку наблюдения, и видеть любую атаку на IP-адреса FortiGate WAN.
Используя конфигурацию Flowmon ADS, загрузите скрипт без каких-либо параметров и добавьте его в качестве пользовательского сценария запуска для работы с возможными проблемами безопасности при обнаружении события средней серьезности или выше.
Настройка пользовательского скрипта Flowmon ADS
Блокирование
Прежде чем любая атака будет заблокирована, вы можете легко пропинговать WAN IP-адрес FortiGate. На рисунке ниже приведен пример мирного сценария, когда входящий трафик пропускается.
Успешная команда ping с IP - адресом FortiGate
При запуске скрипта информация в FortiGate обновляется через REST API, включая диапазон IP-адресов или определение подсети и включение в группу адресов Flowmon ADS.
IP-адрес, добавленный Flowmon ADS с идентификатором события
Событие также появляется в группе адресов
Теперь список обновлен, и машина с IP-адресом 192.168.47.79 больше не может пинговать FortiGate или подключаться к нему ни на одном из своих портов. Это означает, что брандмауэр блокирует его на основе инструкций от Flowmon ADS.
Команда ping без ответа
Скрипт таймаута используется для очистки списка заблокированных IP-адресов. После нескольких итераций сценария тайм-аута все возвращается в исходное состояние.
Многократное выполнение сценария таймаута
На приведенном выше экране показано, что в группу был добавлен еще один IP-адрес. Он будет храниться в базе данных как целочисленный тип для облегчения манипуляций.
В заключение
Это один из способов использования Flowmon в сочетании со сторонним встроенным устройством для автоматической минимизации последствий атак. Другой вариант - вы также можете использовать стандартную политику брандмауэра, где вы можете использовать дополнительный IP-адрес для интерфейса обратной связи, чтобы нежелательный трафик мог быть заблокирован. Все дело в приспособлении продуктов к вашим потребностям и обстоятельствам.