Ретроспективная корреляция событий
Данная инструкция описывает процесс настройки ретроспективной корреляции событий в системе.
О ретроспективной корреляции событий
Ретроспективная корреляция событий — это процесс обработки ранее собранных и сохраненных событий с помощью правил корреляции для выявления инцидентов в исторических данных.
Ретроспективная корреляция дает возможность повторно обрабатывать накопленные события с применением актуальных правил. Это помогает выявлять инциденты, которые не были обнаружены в ходе первичной обработки событий, поскольку на момент атаки отсутствовали соответствующие механизмы детектирования.
|
Настройка ретроспективной корреляции поддерживается только в том случае, если СУБД ClickHouse установлена в выделенном кластере. |
Подготовка к настройке
Для ретроспективной нормализации и корреляции необходим драйвер БД ClickHouse версии 0.9.8 или выше. Чтобы его настроить:
-
Если драйвер БД ClickHouse отсутствует в системе, добавьте его. Для этого:
-
Скачайте файл драйвера
clickhouse-jdbc-<version>-all-dependencies.jarиз репозитория ClickHouse, где<version>— версия драйвера, не ниже 0.9.8.Например, драйвер для версии 0.9.8 можно скачать по следующей ссылке. -
В разделе Ресурсы → Драйверы БД добавьте скачанный драйвер в систему.
-
-
В разделе Ресурсы → Секреты создайте секрет со строкой подключения к вашей БД ClickHouse:
jdbc:clickhouse://<address>:<port>/default?user=reader&password=<password>&compress=0Здесь:
-
<address>— полное доменное имя (FQDN) или IP-адрес сервера, где развернут ClickHouse. Если вы указываете FQDN, убедитесь, что оно корректно разрешается в IP-адрес на машине, которая выполняет роль worker-узла в кластере Kubernetes, где развернута система. -
<port>— HTTP-порт, который вы задавали при развертывании и настройке ClickHouse. -
<password>— пароль от учетной записиreader, который вы задавали при развертывании и настройке ClickHouse.
-
Настройка ретроспективной корреляции
Для настройки ретроспективной корреляции событий выполните следующие шаги:
-
При необходимости создайте новое хранилище событий, куда будут записываться события после ретроспективной корреляции.
-
Перейдите в раздел Ресурсы → Коллекторы.
-
Создайте новый коллектор для выполнения задачи ретроспективной корреляции и включите его.
-
Добавьте новый конвейер в коллекторе.
-
Откройте конфигурацию конвейера.
-
Добавьте на конвейер элемент Точка входа со следующими параметрами:
-
Название: введите название точки входа.
-
Тип точки входа: выберите вариант Database.
-
Драйвер базы данных: выберите необходимый драйвер БД ClickHouse.
-
Адрес подключения: выберите созданную ранее строку подключения к БД ClickHouse.
-
SQL-запрос: введите SQL-запрос для выборки событий из хранилища.
Пример запроса:SELECT * EXCEPT ( baseEventIds, baseEventTimestamps, groupedBy, array_field1, array_field2, array_field3, array_address1, array_address2, mitre_tts, raw ) FROM EventStorage_<ID>_local WHERE type IN (1, 2, 3, 4) AND timestamp > toDateTime64(toUInt32(?) + 1, 3) ORDER BY timestamp ASC LIMIT 10000Здесь:
-
<ID>— идентификатор хранилища, события из которого необходимо отправить на повторную корреляцию.
Как получить идентификатор хранилища
Через карточку хранилища:
-
Перейдите в раздел Ресурсы → Хранилища событий.
-
Выберите требуемое хранилище в списке. В правой части экрана отобразится карточка с подробной информацией.
-
Скопируйте идентификатор хранилища.
-
Замените в идентификаторе все символы
-на_.
Через диспетчер запросов:
-
Перейдите в раздел Поиск.
-
Выполните поиск событий в требуемом хранилище.
-
В разделе Инструменты → Диспетчер запросов перейдите на вкладку Журнал запросов.
-
Выберите выполненный запрос в списке. В правой части экрана отобразится карточка с подробной информацией.
-
В поле Запрос SQL скопируйте идентификатор хранилища, указанный в операторе
FROM.
-
-
Поле идентификатора: укажите ключ
timestampи задайте начальное значение времени в формате Unix. Это значение определяет момент времени, начиная с которого были собраны сырые события, требующие повторной корреляции.Для перевода даты и времени в формат Unix можно воспользоваться онлайн-конвертером.
Пример настройки временного диапазона
Предположим, что на повторную корреляцию отправляются события, собранные с 23 декабря 2025 года, что соответствует значению
1766498149в формате Unix, и до текущего момента.Для этого в параметре Поле идентификатора необходимо добавить ключ
timestampсо значением1766498149.SQL-запрос будет выглядеть следующим образом:
SELECT * EXCEPT ( baseEventIds, baseEventTimestamps, groupedBy, array_field1, array_field2, array_field3, array_address1, array_address2, mitre_tts, raw ) FROM EventStorage_<ID>_local WHERE type IN (1, 2, 3, 4) AND timestamp > toDateTime64(toUInt32(?) + 1, 3) ORDER BY timestamp ASC LIMIT 10000Здесь:
-
<ID>— идентификатор хранилища, события из которого необходимо отправить на повторную корреляцию.
Верхняя граница временного диапазона в запросе может быть не задана, как в примере. В этом случае точка входа вычитывает события до текущего момента времени. Для ограничения выборки событий добавьте в оператор
WHEREфильтр с указанием верхней границы в формате Unix, например:AND timestamp < toDateTime64(1766692377, 3)Дополнительно в операторе
WHEREможно настроить фильтрацию по любым полям модели, кроме тех, которые перечислены в блокеEXCEPTв SQL-запросе. -
-
Интервал запроса: укажите частоту получения событий из базы данных ClickHouse. Рекомендуемое значение — 5 секунд или более.
-
Максимальное количество строк: укажите значение, соответствующее параметру
LIMITв SQL-запросе.
-
-
Добавьте на конвейер элемент VRL-трансформация со следующим кодом:
. = parse_json(to_string(.raw) ?? .raw) ?? .rawПредставленный код позволяет привести поля событий из ClickHouse к формату, соответствующему исходным данным от источника.
-
Соедините добавленную точку входа и VRL-трансформацию.
-
Добавьте на конвейер прочие элементы для обработки и корреляции событий.
Рекомендации по настройке конвейеров обработки событий для различных источников приведены в руководстве по настройке источников на справочном портале R-Vision. -
При необходимости добавьте на конвейер элемент Сервис оповещений и укажите в нем хранилище событий, на основе которых будут формироваться оповещения.
-
Добавьте на конвейер элемент Конечная точка типа Хранилище событий. Укажите в настройках элемента хранилище, в которое будут записываться события после ретроспективной корреляции.
-
Установите конфигурацию конвейера.
| Если при работе конвейера возникнут ошибки, обратитесь к разделу Устранение проблем при ретроспективной обработке событий. |
Была ли полезна эта страница?