У компьютера всегда есть оправдание; у программиста - никогда.
Марк Дэвисон

FCON (Flow Control Over Networking)



История проекта восходит к исследованиям компании SourceFire в области высокопроизводительных систем обнаружения сетевых атак. Начиная с 2005 года велись разработки в области многопоточных анализаторов сетевого трафика. С 2006-го года компания Solirix Ltd перехватила эстафету и на основе этих разработок основала свой продукт. Однако, через год разработки результирующий продукт всё ещё не был способен заменить уже существующие однопоточные анализаторы, так как уже существующие плагины, базы сигнатур и прочие второстепенные сопутствующие разработки составляли к тому моменту основное преимущество однопоточных анализаторов. Всё это надо было либо переписывать под новую платформу, что требовала времени, либо писать "программы-переходники" что существенно замедляло процесс анализа.

Скриншот Fcon KCC

Мы начали решать эту проблему с весны 2007 года. Было предложено компромиссное решение: сохранить однопоточную модель, а вопрос параллелизации вынести уровнем выше - в пространство ядра. Нужно было решить проблему быстрого рассечение сетевого трафика на сессии. Комплекс FCON был завершён к весне 2008 года.

менеджер сенсоров во FCON KCC

Система включает в себя:

  • Модуль ядра, посессионно разбивающий входящий трафик и отвечающий за его хранение в кольцевых буферах,

  • Службу управления анализаторами, которая распределяет нагрузку на мультипроцессорных системах между анализаторами,

  • Службу управления сенсорами, которая позволяет объединять несколько конечных устройств-сенсоров в иерархические системы,

  • Модифицированную библиотеку libpcap. С её помощью в качестве конечного анализатора может быть использована любая IDS основанная на данном API (подавляющее большинство ведущих IDS используют libpcap),

  • Пользовательское приложение KCC, позволяющее работать со стандартом базы данных Snort (де-факто - промышленный стандарт IDS), управлять процессами FCON систем и так далее,

  • Собственный анализатор FconAny, реализующий многопоточную модель.