Cyberprobe
Полная документация находится по адресу https://cybermaggedon.github.io/cyberprobe-docs/
Краткое описание
Cyberprobe — это набор инструментов для инспекции сетевых пакетов (глубокий анализ пакетов) для мониторинга сетей в реальном времени. Это находит применение в мониторинге сетей, обнаружении вторжений, криминалистическом анализе и в качестве защитной платформы. Инспекция пакетов Cyberprobe работает как на физических сетях, так и в облачных VPC. Имеются функции, позволяющие развертывание в масштабах облака.
Это не единый монолитный инструмент обнаружения вторжений, который делает всё, что вам нужно, из коробки. Если вам нужно именно это, я бы посоветовал поискать в другом месте. Вместо этого Cyberprobe — это набор гибких компонентов, которые можно комбинировать множеством способов для управления самыми разными задачами инспекции пакетов. Если вы хотите создавать собственные сетевые аналитики, имеется множество интерфейсов, которые делают это простым.
Проект поддерживает ряд компонентов, включая:
- cyberprobe, который собирает пакеты данных и пересылает их по сетевому потоковому протоколу в реальном времени. Сбор пакетов может быть нацелен на IP-адреса, диапазоны CIDR или полный захват. Собранные пакеты помечаются идентификатором устройства. cyberprobe может быть интегрирован с Snort для обеспечения динамического нацеливания на IP-адреса в ответ на срабатывание правила Snort.
- cybermon, который принимает собранные потоки пакетов, выполняет обработку с сохранением состояния и создает поток наблюдений, описывающих сетевые события. События могут потребляться множеством различных способов, например, доставляться в систему pub/sub или предоставляться сервису gRPC. Обработка событий реализована как функция, написанная на Lua, так что вы можете добавить свою собственную обработку событий.
- набор подписчиков, которые можно использовать для работы с захваченными данными, например, сохранять в ElasticSearch, BigQuery или Gaffer.
Cyberprobe
Пробник cyberprobe имеет следующие возможности:
- Может быть назначен для сбора пакетов с интерфейса и пересылки тех, которые соответствуют настраиваемому списку адресов. Список адресов может состоять из отдельных IP-адресов, диапазонов CIDR или задания на сбор всего трафика ('0.0.0.0/0').
- Может быть настроен на получение оповещений Snort. В этой конфигурации при получении оповещения от Snort IP-адрес источника, связанный с оповещением, динамически становится целью на настраиваемый период времени. Это полезно, например, для сбора данных от любого сетевого субъекта, который вызывает правило Snort и, таким образом, идентифицируется как потенциальный злоумышленник.
- Может опционально предоставлять управляющий API, который позволяет удаленно запрашивать состояние и изменять конфигурацию. Это позволяет динамически изменять карту целевых адресов и интегрироваться с другими системами.
- Может быть настроен на доставку по одному из двух стандартных потоковых протоколов.
- Может вставлять линию задержки сбора пакетов настраиваемой длительности. Это может быть полезно, например, при срабатывании оповещений Snort, чтобы убедиться, что все пакеты, вызвавшие оповещение, собраны.
Cybermon
Инструмент мониторинга cybermon имеет следующие возможности:
- Анализирует пакеты, доставленные в потоковом протоколе ETSI от одного или нескольких экземпляров cyberprobe.
- Декодирует ряд сетевых протоколов для обнаружения сетевых событий, которые доставляются в вашу конфигурацию почти в реальном времени.
- Декодированная информация становится доступной для пользовательской логики (написанной на Lua), чтобы определить, как обрабатывать декодированные данные. Предоставляются примеры конфигурационных файлов для доставки в RabbitMQ в формате JSON, в конечную точку gRPC и в очередь Redis.
- Включены методы подделки пакетов, которые позволяют сбрасывать TCP-соединения и подделывать DNS-ответы. Это можно вызывать из вашей конфигурации Lua.
- Поддерживает IP, TCP, UDP, ICMP, HTTP, DNS, SMTP, FTP, TLS и другие. Код ориентирован на платформу Linux, хотя он достаточно универсален для применения на других UNIX-подобных платформах.
Подписчики
Поток событий от cybermon может быть представлен в RabbitMQ в формате JSON, который затем может быть доставлен для дальнейшей аналитики:
- evs-alert сообщает о совпадениях индикаторов в событиях в стандартный вывод.
- evs-cassandra загружает события в Cassandra.
- evs-detector изучает события на наличие индикаторов. События аннотируются совпадениями индикаторов, если таковые наблюдаются.
- evs-dump выводит сырой JSON событий в стандартный вывод.
- evs-elasticsearch загружает события в ElasticSearch.
- evs-gaffer загружает сетевую информацию в Gaffer (графовая база данных).
- evs-geoip ищет IP-адреса в GeoIP и аннотирует события информацией о местоположении.
- evs-monitor выводит информацию о событиях в стандартный вывод.
Масштабирование
Архитектура поддерживает AWS Traffic Mirroring и поддерживает развертывание в масштабах облака:
- Несколько экземпляров cyberprobe могут распределять нагрузку между несколькими экземплярами cybermon за балансировщиком нагрузки.
- Поток событий от cybermon может быть доставлен в систему pub/sub для распределения нагрузки и обеспечения масштабирования.
Дополнительная информация
Самый простой способ изучить программное обеспечение — следовать нашему руководству по быстрому старту.