The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Релиз FastNetMon 1.1.2, открытого решения по обнаружению DDoS-атак

02.06.2015 22:13

Состоялся релиз программы FastNetMon 1.1.2, предназначенной для выявления входящих и исходящих DDoS-атак на основе анализа транзитного трафика. Программа разработана для фиксации серьезных всплесков интенсивности отправки пакетов (сотни тысяч пакетов в секунду), как со стороны клиентов, так и со стороны внешней сети в сторону клиентов. Данные о трафике могут собираться через PF_RING, PCAP, ULOG2, Netmap, NetFlow, sFLOW. На выходе выводится список 10 самых активных потребителей ресурсов сети, как по числу пакетов в секунду, так и по трафику. Для хранения статистики используется БД Redis. Программа написана на языке C++.

За прошедшие почти 10 месяцев с релиза 1.0.0 была проделана очень большая работа по улучшению программы. Из основных изменений стоит отметить следующие:

  • Возможность выявлять самые популярные виды атак: syn_flood, icmp_flood, udp_flood, ip_fragmentation_flood
  • Поддержка протокола Netflow v5, v9 и v10 (IPFIX)
  • Возможность применения протокола sFLOW v5, который поддерживается большинством современных сетевых коммутаторов
  • Поддержка использования netmap (поддерживаются Linux и FreeBSD, для Linux предоставляется специальная версия драйвера ixgbe) для захвата пакетов. Данный режим обеспечивает наивысшую производительность захвата трафика наряду с PF_RING ZC.
  • Добавлена поддержка PF_RING ZC (к сожалению, этот режим требует отдельной лицензии на библиотеку PF_RING)

Другие изменения:

  • Добавлена возможность сбора netflow на основе шаблонов с нескольких устройств (в том числе - виртуальных, в пределах одного шасси)
  • Базовая поддержка IPv6 в модуле Netflow, коллектор может прослушивать IPv6 интерфейс, анализ протокола пока не поддерживается
  • Информация об атаке теперь включает очень большое число полей, среди которых - используемые протоколы, типы пакетов, флаги TCP и многое другое, все это позволяет идентифицировать атаки максимально точно
  • Вместо ежесекундного расчета используется усреднение скорости атаки за Х последних секунд, что позволяет минимизировать ложные срабатывания
  • Добавлена возможность сохранения отпечатков атаки в отдельных файлах
  • Добавлена возможность указывать лимит с которого трафик считается атакой в числе потоков, пакетов/секунду и байт/секунду.
  • Добавлена интеграция с проектом ExaBGP, с помощью которого можно анонсировать блокируемые IP адреса непосредственно на BGP роутеры собственной сети либо напрямую аплинку
  • Добавлена поддержка плагинов, теперь возможна разработка собственных систем захвата трафика в дополнение к имеющимся
  • Добавлены init файлы для систем на базе systemd
  • Добавлена возможность разблокировки IP после истечения заданного периода времени
  • Добавлена возможность сохранения данных об атаке в Redis
  • Добавлена поддержка распаковки протокола L2TP в режиме захвата с зеркальных портов
  • Модернизация процесса разработки:переход на систему сборки cmake, использование системы непрерывной интеграции Travis CI, отказ от использования функциональности С++ 11 (из соображений переносимости). Также стоит отметить подключение проекта Gitter для эффективного обсуждения вопросов, касающихся проекта. и в дополнение к нему добавлен классический список рассылки;
  • Добавлена поддержка следующих систем: Fedora 21, Debian 6/7/8, CentOS 6/7, FreeBSD 9/10/11, DragonflyBSD 4, OS X 10.10;

Бинарный пакеты собраны для следующих систем : CentOS 6, CentOS 7, Fedora 21, FreeBSD. Для других Linux систем рекомендуется использовать автоматический установщик.

Новая версия позволяет достичь очень высокой производительности. Скорость обработки sFLOW/Netflow почти неограниченная (до десятков и сотен гигабит секунду). Для режима PF_RING (не ZC) максимально достигнутая скорость в районе ~3mpps/5GE. Наивысшей скорости можно добиться используя системы захвата трафика PF_RING ZC или netmap, обе библиотеки позволяют обрабатывать до 10 и более миллионов пакетов в секунду на зеркальных портах (10GE+). При очень высокой скорости рекомендуется отключать режим трекинга соединений, который очень сильно нагружает процессорные ресурсы. Все изменения приведены для Intel i7 2600 и сетевой карты Intel 82599.

  1. Главная ссылка к новости (https://github.com/FastVPSEest...)
Автор новости: Pavel Odintsov
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/42346-ddos
Ключевые слова: ddos, fastnetmon, traffic
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (44) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, _KUL (ok), 00:25, 03/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Т.е. ребята просто написали обычный биллинг на плюсах используя внешние сенсоры?!
     
     
  • 2.2, Куяврег (?), 00:59, 03/06/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    ты б прочитал бы что ли... до половины хотя бы...
     
     
  • 3.4, _KUL (ok), 03:08, 03/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Ну ... вот блок из второй половины:
    - Вместо ежесекундного расчета используется усреднение скорости атаки за Х последних секунд, что позволяет минимизировать ложные срабатывания
    - Добавлена возможность сохранения отпечатков атаки в отдельных файлах
    - Добавлена возможность указывать лимит с которого трафик считается атакой в числе потоков, пакетов/секунду и байт/секунду.
    - Добавлены init файлы для систем на базе systemd
    - Добавлена возможность разблокировки IP после истечения заданного периода времени
     
  • 2.11, Pavel Odintsov (ok), 10:57, 03/06/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Нет. У нас даже парсеры sFLOW/NetFLOW свои, кроме этого основной режим - все же прямой захват данных с порта. И он работает _очень_ быстро. Проворачивает 10GE играючи. На соответствующем железе (класса Xeon e5 2670v3 x 2) легко провернет 40GE.
     

  • 1.3, Аноним (-), 01:58, 03/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • –3 +/
    Охренеть. В репе бинарные пакеты и исходники перемешанные с FreeBSD'шными портами. Если разработчики так относятся к репозиторию, то боюсь представить что у них в коде. Собрал, запустил, fastnetmon завершается без каких-либо сообщений. --help не работает. Нет слов, сначала научитесь писать и оформлять софт, потом пишите новости о своих поделках.
     
     
  • 2.7, тигар (ok), 08:55, 03/06/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    * читаешь код (шоб не бояться представить что в нем)
    * показываешь им где их код-г*но, показываешь как нужно
    на основании вышенаписаного пишешь usage(), засылаешь им падч.
    или ты ждешь пока тебя проплатят на это дело, ананим?;-)
     
     
  • 3.9, Аноним (-), 09:36, 03/06/2015 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Бредишь? Аноним достаточно четко указал, что по его мнению не так. Пользователь не обязан писать за других, так же как не обязан петь дифирамбы в честь разработчиков и пользоваться их продуктом, если видит, что разработчики написали г*но.
     
     
  • 4.14, Pavel Odintsov (ok), 11:02, 03/06/2015 [^] [^^] [^^^] [ответить]  
  • +2 +/
    > Бредишь? Аноним достаточно четко указал, что по его мнению не так. Пользователь
    > не обязан писать за других, так же как не обязан петь
    > дифирамбы в честь разработчиков и пользоваться их продуктом, если видит, что
    > разработчики написали г*но.

    Все пожелания учтены =) Но где находятся логи явно написано в документации и можно было бы ради разнообразия её прочесть :)

     
     
  • 5.19, Клыкастый (ok), 16:20, 03/06/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    тут преимущественно писатели. хорошо если написанное собой читают.
     
  • 4.22, Аноним (-), 16:51, 03/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >Пользователь не обязан писать за других, так же как не обязан петь дифирамбы в честь разработчиков и пользоваться их продуктом, если видит, что разработчики написали г*но.

    Да - но наcpaть на форуме то - от ОБЯЗАН!

    А вообще такие "пользователи" как ты обязаны платить и каятся, чего ты тут делаешь - на OpenNet, а не на MS\Apple?

     
  • 2.12, Pavel Odintsov (ok), 10:59, 03/06/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > Охренеть. В репе бинарные пакеты и исходники перемешанные с FreeBSD'шными портами. Если
    > разработчики так относятся к репозиторию, то боюсь представить что у них
    > в коде. Собрал, запустил, fastnetmon завершается без каких-либо сообщений. --help не
    > работает. Нет слов, сначала научитесь писать и оформлять софт, потом пишите
    > новости о своих поделках.

    Да, я понимаю, что бинарные пакеты в репо - не лучшая идея. Но активно идет процесс добавления этих пакетов в официальные деревья репозиториев и по мере активности этого процесса из репо они будут удаляться.

    По поводу --help - учту, забил себе: https://github.com/FastVPSEestiOu/fastnetmon/issues/244

    Чтобы понять - почему завершается, откройте лог: /var/log/fastnetmon.log, тулкит обязательно напишет мотивы =)

     
     
  • 3.16, Аноним (-), 15:38, 03/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Да, я понимаю, что бинарные пакеты в репо - не лучшая идея. Но активно идет процесс добавления этих пакетов в официальные деревья репозиториев и по мере активности этого процесса из репо они будут удаляться.

    А в истории репы, надо думать, они останутся навсегда, и тем кому нужны исходники придётся качать мегабайты этого мусора? Или таки будете filter-branch делать из-за чего всем у кого есть изменения на ваш код придётся делать rebase? Думать надо о таких вещах с самого начала. Но заклинаю, лучше сделайте filter-branch и удалите всю эту дрянь сейчас, чем потом.

    > Чтобы понять - почему завершается, откройте лог: /var/log/fastnetmon.log, тулкит обязательно напишет мотивы =)

    Дорогой вы мой человек, а кто же разрешит ему из-под юзера в /var/log писать? Или вы думаете что я буду вашу поделку от рута запускать?

     
     
  • 4.18, vsg (?), 15:49, 03/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Дорогой вы мой человек, а кто же разрешит ему из-под юзера в /var/log писать? Или вы думаете что я буду вашу поделку от рута запускать?

    А ты на порт под гестом собрался вешаться?

     
     
  • 5.20, Pavel Odintsov (ok), 16:22, 03/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Порты-то повесить можно, если принимать netflow/sflow только, но самый интересный режим -   netmap требует только рута, тут без вариантов. PF_RING можно заставить работать под cap_admin/cap_net_admin, но netmap никак.
     

  • 1.8, Аноним (-), 09:35, 03/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что, серьезно, DDoS сложно обнаружить? Сколько было атак, ни разу с такой проблемой не сталкивался. Через тот же NetFlow секундное дело определить не только атаку, но и ее тип.
     
     
  • 2.10, Аноним (-), 09:37, 03/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    *Nfsen
     
  • 2.13, Pavel Odintsov (ok), 11:01, 03/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Что, серьезно, DDoS сложно обнаружить? Сколько было атак, ни разу с такой
    > проблемой не сталкивался. Через тот же NetFlow секундное дело определить не
    > только атаку, но и ее тип.

    Вопрос не в том, как обнаружить атаку визуально. А в том, как сделать это автоматически и очень быстры.

    Последнее время крайне популярны ОЧЕНЬ мощные атаки (в десятки гигабит и MPPS), которые выходят на пиковую скорость в течение десятка секунд и к этому времени убивают любое железо и выводят провайдера из игры целиком, если он не успел вовремя отрезать трафик.

     

  • 1.15, Аноним (-), 13:07, 03/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Прям один в один текст как на хабре )
     
     
  • 2.17, Pavel Odintsov (ok), 15:48, 03/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Есть небольшие отличия местами. Но да - печаталось с одного шаблона :)
     

  • 1.21, Аноним (-), 16:49, 03/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ждём ебылдов!
     
     
  • 2.23, Pavel Odintsov (ok), 18:10, 03/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Помощь со сборкой ебилдов была бы очень кстати :)
     
     
  • 3.24, slepnoga (??), 15:17, 04/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Помощь со сборкой ебилдов была бы очень кстати :)

    Хорошо, займусь на выхах - будут вам ебилды ;)

     
     
  • 4.25, slepnoga (??), 15:21, 04/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Хотя кто будет юзать генту в таких местах - я решительно не понимаю.


     
     
  • 5.29, Pavel Odintsov (ok), 00:55, 05/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Почему? Gentoo - отличная платформа под такие задачи, потому что чем новее Boost/C++/ядро, тем больше скорость захвата. Так что Gentoo тут очень кстати.
     
     
  • 6.30, Аноним (-), 02:20, 05/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Arch тоже не стар, но удобнее!
     
  • 6.43, Аноним (-), 19:29, 05/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Boost/C++/ядро, тем больше скорость захвата. Так что Gentoo тут очень кстати.

    Скорее злобные флаги оптимизатора, с не менее злобными глюками :)

     
  • 5.33, Аноним (-), 10:43, 05/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Хотя кто будет юзать генту в таких местах - я решительно не
    > понимаю.

    Hardened Gentoo именно для таких и прочих плохих и хороших мест!

     
  • 4.32, Аноним (-), 10:41, 05/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> Помощь со сборкой ебилдов была бы очень кстати :)
    > Хорошо, займусь на выхах - будут вам ебилды ;)

    Есть ещё один сетевой проект NOC c Гентоо оверлеем: https://bugs.gentoo.org/show_bug.cgi?id=366051 Для которого ищется прокси ментейнер..

    Также могу помочь в написании/тестировании ебылдов.

     

  • 1.26, Аноним (-), 17:41, 04/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Где найти подробную инструкцию по установке и настройке?
    вроде бы установил, но трафика не видно, использую netflow
    в логах ошибок нет
     
     
  • 2.27, Аноним (-), 20:18, 04/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    сам разобрался - надо было порт открыть в iptables
    но вопрос про мануал актуален, хотелось бы подробнее изучить все возможные настройки
     
     
  • 3.28, Pavel Odintsov (ok), 23:09, 04/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Документации хорошей, к сожалению, нету. Но есть очень хорошо детализированный и описанный конфиг /etc/fastnetmon.conf.
     
     
  • 4.35, Аноним (-), 11:57, 05/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    > Документации хорошей, к сожалению, нету. Но есть очень хорошо детализированный и описанный
    > конфиг /etc/fastnetmon.conf.

    Спасибо за ответ, можно тогда пояснить:

    # Limits for Dos/DDoS attacks
    threshold_pps = 20000
    threshold_mbps = 1000
    threshold_flows = 3500

    правильно я понимаю что при атаке меньше этих значений она будет пропущена
    mbps это что? мегабит/с ? только in или out? или сумма?
    какой интервал замера?

     
     
  • 5.36, Pavel Odintsov (ok), 12:51, 05/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    >> Документации хорошей, к сожалению, нету. Но есть очень хорошо детализированный и описанный
    >> конфиг /etc/fastnetmon.conf.
    > Спасибо за ответ, можно тогда пояснить:
    > # Limits for Dos/DDoS attacks
    > threshold_pps = 20000
    > threshold_mbps = 1000
    > threshold_flows = 3500
    > правильно я понимаю что при атаке меньше этих значений она будет пропущена
    > mbps это что? мегабит/с ? только in или out? или сумма?
    > какой интервал замера?

    Да, атака будет пропущена.

    И in и out, то есть поймает оба вида атаки. В родмэпе есть раздельные лимиты для in/out, но это пока не скоро будет сделано.

    Интервал замера - секунда, но используется 5 секундное усреднение (average_calculation_time = 5).

     
     
  • 6.37, Аноним (-), 13:49, 05/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    в каких единицах указывается время бана? в секундах, миллисекундах и т.д.?
     
     
  • 7.39, Pavel Odintsov (ok), 15:10, 05/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Секунды :)
     
     
  • 8.40, Pavel Odintsov (ok), 15:12, 05/06/2015 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Добавил патч с исправленным описанием параметра в репо ... текст свёрнут, показать
     

  • 1.31, Аноним (-), 10:33, 05/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    "открытого решения по обнаружению DDoS-атак"

    Не считал сколько мне  пришлось написать костылей для отбития DDoS. Но есть один которым хочется поделится. Основан он на NOC FM https://kb.nocproject.org/pages/viewpage.action?pageId=15106281#FaultManagment
    Устройства в сети (может быть и FastNetMon) передают сообщения о превышении пороговых значений. NOC FM их классифицирует, обрабатывает (включая поиск причины) и может выполнять определённые, описанные в handlers (noc.fm.handlers.event...) действия! NOC способен выполнять команды прямо на оборудовании. То есть добавить блокируемый IP в таблицы сетевого экрана (ipset,...), ACL на сетевом оборудовании или анонсировать по BGP блокируемые IP адреса.

     
     
  • 2.34, Pavel Odintsov (ok), 11:03, 05/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Блестящее решение! Было бы круто, если бы добавили поддержку трапов от FastNetMon в NOC! :)
     
     
  • 3.38, Аноним (-), 14:28, 05/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    В НОК принято добавлять сообщения только от оборудования.

    Но, есть поддержка OS Linux и OS FreeBSD, можно в рамках этих "устройств" добавить трапы от FastNetMon.

     
     
  • 4.41, Pavel Odintsov (ok), 16:31, 05/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    На деле тут от моего софта ничего не требуется, вопрос лишь в поддержке этой фичи разработчиками NOC. Я им не пользуюсь (но люто одобряю) и поэтому мне даже юз кейс с трудом рисуется.
     

  • 1.42, Аноним (-), 19:25, 05/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > специальная версия драйвера ixgbe)

    Особая, уличная магия... :)

     
     
  • 2.44, Pavel Odintsov (ok), 18:46, 06/06/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Нужна для быстрого захвата пакетов прямо из буфера сетевой :) Без этой магии высоких (5-10-15 миллионов пакетов в секунду) скоростей не достичь :(
     

  • 1.45, Аноним (-), 16:17, 15/06/2015 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В Биллинге TraffPro эта функция антифлудом называется и существует с 2009 года.
     
     
  • 2.46, Pavel Odintsov (ok), 22:25, 04/07/2015 [^] [^^] [^^^] [ответить]  
  • +/
    Не уверен, что это функция биллинга. Скорее роутера либо IDS.
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру