Любой источник. Любой тип данных. Любая проблема. Одно решение – RuSIEM.
RuSIEM — это коммерческая версия класса SIEM (Security Information and Event Management), включает корреляцию в реальном времени, визуализацию и поиск данных, долгосрочное хранение сырых и нормализованных событий, встроенное управление инцидентами и отчеты.
В RuSIEM используются следующие компоненты и базы данных:
- Postgresql
- Redis MQ
- RuSIEM MQ
- Apache Kafka
- ElasticSearch
- Neo4j
- Yandex ClickHouse
- Apache Storm
Продукт состоит из:
- серверной части
- агента для Windows
Агент для Windows используется как посредник для нативных транспортов с целью сбора с различных источников, отличных от syslog. Один агент может собирать как локально, так одновременно удаленно с множества источников безагентным методом. Канал связи между агентом и сервером зашифрован. Агент имеет встроенную базу данных для временного хранения событий при отсутствии подключения к серверу. Агент может работать только с RuSIEM/RvSIEM, не совместим с другими продуктами.
Syslog источники направляются напрямую на сервер.
Ядро (микросервисы) более чем на 80% написано на С++. Модуль аналитики, преимущественно, java.
MQ (message queue) применяются для связи микросервисов, обмена между микросервисами пулов данных, для обеспечения передачи событий без потерь в случае возникновения пиков событий, рестарте какого либо компонента. Применение MQ обусловлено тем, что потеря даже одного события может сказаться на обнаружении угрозы, сбоя и инцидента.
В рамках одного сервера (ноды) передача между микросервисами, преимущественно, производится по tcp протоколу, но с продюсером RuSIEM MQ, контролирующим очереди на всех микросервисах. При невозможности обработки событий на микросервисах (или пике производительности ноды), входная очередь буферизуется в RuSIEM MQ непосредственно на диск.
Ноды RuSIEM/RvSIEM могут быть подключены между собой различными методами:
- Условно связаны. Управление другими нодами из единого интерфейса.
- Распределенная корреляция без передачи между нодами событий.
- Распределенный поиск событий по выбранным нодам.
- Передача всех событий, по уровню критичности или по выбранным фильтрам на другие ноды.
- Ноды без базы данных событий, распределяющие на себя нагрузку по обработке событий.
- Ноды, имеющие отдельные компоненты для распределения нагрузки, горизонтального и вертикального масштабирования.
- Вынесенные ноды с базами данных, кластеры баз данных.
Могут масштабироваться как полностью полные ноды с набором всех микросервисов и баз данных, так и отдельные микросервисы. Например, на одной ноде нормализация, на другой корреляция, на третьей — база данных событий.
Допускается подключение множества нод свободно распространяемого RvSIEM к нодам коммерческой версии RuSIEM.
Хранение событий в версиях RuSIEM/RvSIEM осуществляется в базе данных Elasticsearсh в формате json. При этом, по умолчанию, сохраняется как сырое (raw) событие, так и нормализованное. В каждом json содержится и raw событие и нормализованное. Сохранение raw событий можно отключить. В модуль аналитики передаются только нормализованные события, raw события не передаются. Модуль аналитики имеет свой набор баз данных и форматов хранения.
Кластеры баз данных очень гибко масштабируются. Так как ноды баз данных не ограничиваются лицензией, то можно построить, к примеру:
- многонодовый кластер для хранения событий
- ноды кластера с репликацией с одинаковым набором данных для отказоустойчивости
- ноды кластера с распределенным набором данных для повышения производительности
- отдельные ноды для записи и чтения событий с репликацией между ними