Конструктор правил корреляции

Конструктор правил корреляции позволяет визуально построить правило корреляции в интерактивном режиме без необходимости ручной настройки его RObject-конфигурации. Конструктор автоматически создает правило нужной конфигурации на основе всех заданных настроек.

Построение через конструктор доступно только для декларативных правил корреляции. Создание или изменение императивных правил выполняется только через настройку их RObject-конфигурации.

При настройке правила корреляции существует возможность переключаться между режимом конструктора и режимом кода с помощью переключателя в правом верхнем углу окна создания или изменения правила.

При переключении из режима кода в режим конструктора все заданные настройки, которые не удается корректно представить в виде настроек в конструкторе, будут отбрасываться.

Построение правила корреляции с помощью конструктора состоит из следующих этапов:

Шаг 1. Заполнение общей информации о правиле

На вкладке Информация в конструкторе заполняются поля общей информации о правиле корреляции.

Чтобы задать общую информацию о правиле, заполните следующие поля:

  1. ID — введите уникальный идентификатор правила корреляции. Указанное значение будет сохранено в поле id в RObject-конфигурации правила.

  2. Версия — введите версию правила корреляции в формате Semantic Versioning. Указанное значение будет сохранено в поле version в RObject-конфигурации правила.

  3. Название — введите название правила корреляции. Указанное значение будет сохранено в поле name в RObject-конфигурации правила.

  4. Описание (опционально) — введите описание правила корреляции, содержащее дополнительную информацию о его назначении и функциональности. Указанное значение будет сохранено в поле description в RObject-конфигурации правила.

  5. Автор (опционально) — введите имя и контактные данные автора правила корреляции. Указанное значение будет сохранено в поле author в RObject-конфигурации правила.

  6. Статус (опционально) — введите статус разработки варианта правила. Указанное значение будет сохранено в поле status в RObject-конфигурации правила.

  7. Дата (опционально) — выберите дату создания или изменения правила. Указанное значение будет сохранено в поле date в RObject-конфигурации правила.

  8. Уровень угрозы — выберите уровень угрозы корреляционного события, испускаемого правилом корреляции. Доступные значения:

    • Критический (critical);

    • Высокий (high);

    • Средний (medium);

    • Низкий (low).

    Выбранное значение будет сохранено в поле severity в RObject-конфигурации правила.

  9. Источники данных (опционально) — введите список источников данных, с которыми совместимо правило корреляции. Данный список используется для классификации и быстрого поиска правил в системе. Указанное значение будет сохранено в поле data_source в RObject-конфигурации правила.

  10. Референсы (опционально) — введите ссылки на подробный материал. Указанное значение будет сохранено в поле reference в RObject-конфигурации правила.

  11. Известные ложные срабатывания (опционально) — введите возможные ложноположительные срабатывания. Указанное значение будет сохранено в поле known_false_positives в RObject-конфигурации правила.

  12. Теги (опционально) — введите список тегов для правила корреляции. Указанное значение будет сохранено в поле tags в RObject-конфигурации правила.

Шаг 2. Настройка фильтрации событий

На вкладке Фильтр событий в конструкторе настраивается фильтр, определяющий условия, при которых правило корреляции будет применяться к событиям.

Чтобы настроить фильтрацию событий:

  1. Добавьте псевдонимы событий.

  2. Задайте критерии фильтрации событий.

  3. При необходимости настройте группировку событий для псевдонимов.

Настройка псевдонимов событий

Псевдонимы потоков событий используются для их идентификации в рамках правила корреляции, а также для их разделения и фильтрации. В RObject-конфигурации правила корреляции настройки псевдонимов задаются в поле поле aliases.

Чтобы добавить псевдоним событий в конструкторе:

  1. Нажмите на кнопку Добавить событие (plus). Отобразятся настройки псевдонима событий.

    По умолчанию на вкладке Фильтр событий уже добавлен один псевдоним с названием "Событие 1".
  2. При необходимости измените название псевдонима.

  3. Задайте критерии фильтрации событий.

  4. При необходимости настройте группировку событий для псевдонима.

Чтобы удалить псевдоним событий, нажмите на кнопку trash в строке его заголовка.

На вкладке Фильтр событий должен быть задан хотя бы один псевдоним. Удаление последнего псевдонима недоступно.

Настройка фильтрации

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

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

  • Фильтрация всего потока событий выполняется с помощью общего фильтра. Чтобы включить общий фильтр, необходимо перевести переключатель Общий фильтр в активное положение. В RObject-конфигурации правила корреляции общий фильтр задается в поле filter.

Чтобы добавить условие фильтрации для псевдонима событий или общего фильтра:

  1. Добавьте поля настроек условия. Способ добавления настроек отличается в зависимости от того, является ли добавляемое условие первым в псевдониме или общем фильтре:

    • Если вы добавляете первое условие, нажмите на кнопку Добавить условие (plus) и выберите тип условия. Отобразятся поля настроек выбранного типа условия.

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

      Доступные кнопки логической связи:

      • И (add) — позволяет добавить новое условие к выбранному условию и связать их через логическое "И".

        Если выбранное условие связано с другими условиями на том же уровне через логическое "ИЛИ", то новое условие создаст подгруппу вместе с выбранным условием. Условия внутри созданной подгруппы будут связаны через логическое "И". Сама группа будет связана с условиями на своем уровне через логическое "ИЛИ".

        Если выбранное условие связано с другими условиями на том же уровне через логическое "И", то новое условие будет добавлено на тот же уровень без создания подгруппы.

      • ИЛИ (add) — позволяет добавить новое условие к выбранному условию и связать их через логическое "ИЛИ".

        Если выбранное условие связано с другими условиями на том же уровне через логическое "И", то новое условие создаст подгруппу вместе с выбранным условием. Условия внутри созданной подгруппы будут связаны через логическое "ИЛИ". Сама группа будет связана с условиями на своем уровне через логическое "И".

        Если выбранное условие связано с другими условиями на том же уровне через логическое "ИЛИ", то новое условие будет добавлено на тот же уровень без создания подгруппы.

      Нельзя добавить более трех уровней условий. Для третьего уровня кнопки И (add) и ИЛИ (add) недоступны.
  2. Задайте настройки условия. Настройки отличаются в зависимости от типа условия.

    При сохранении правила корреляции через конструктор все заданные условия преобразуются из блока !vrl в блок !expression в RObject-конфигурации правила.

Чтобы удалить условие фильтрации, нажмите на кнопку trash в его строке.

Для каждого псевдонима событий должно быть задано хотя бы одно условие фильтрации.

Настройка условий разных типов

Доступные типы условий фильтрации:

Настройка условия Сравнение полей

Условие типа Сравнение полей позволяет сравнивать значение поля в событии со значением другого поля или с каким-либо заданным значением.

При сохранении правила корреляции через конструктор все заданные условия преобразуются из блока !vrl в блок !expression в RObject-конфигурации правила.

Чтобы настроить условие типа Сравнение полей:

  1. Выберите из выпадающего списка поле события или введите его вручную.

    При выборе из выпадающего списка доступны только поля универсальной модели события, а также поля, ранее введенные вручную.
  2. Выберите оператор сравнения из выпадающего списка:

    • = — равно;

    • != — не равно;

    • In (только для строки) — поиск подстрок;

    • Like (только для строки) — поиск строк по шаблону;

    • =null — не имеет значений (пустое поле);

    • !=null — имеет значение (непустое поле).

  3. Выберите тип значения из выпадающего списка:

    • Значение — потребуется ввести значение в отобразившемся поле ввода. Значение исходного поля будет сравниваться с указанным значением.

    • Значение из поля — потребуется выбрать поле события из выпадающего списка или ввести его вручную. Значение исходного поля будет сравниваться со значением указанного поля.

      При выборе из выпадающего списка доступны только поля универсальной модели события, а также поля, ранее введенные вручную.

    Выбор типа значения недоступен при выборе оператора =null или !=null.

Настройка условия Запрос в активный список

Условие типа Запрос в активный список позволяет дополнить поток событий в псевдониме записями активного списка, которые могут использоваться для обогащения корреляционных событий.

При сохранении правила корреляции через конструктор все заданные условия преобразуются из блока !vrl в блок !expression в RObject-конфигурации правила.

Чтобы настроить условие типа Запрос в активный список:

  1. Выберите нужный активный список из выпадающего списка. В области настроек условия отобразятся все поля ключей выбранного активного списка.

  2. Выберите условие из выпадающего списка:

    • Есть запись, для которой выполняются все условия — условие истинно, если в активном списке существует запись, удовлетворяющая всем заданным условиям.

    • Нет записей, для которых выполняются все условия — условие истинно, если в активном списке нет записей, удовлетворяющих всем заданным условиям.

  3. Для каждого поля ключа активного списка выберите тип значения из выпадающего списка:

    • Значение — потребуется ввести значение в отобразившемся поле ввода. Значение поля ключа будет сравниваться с указанным значением.

    • Значение из поля — потребуется выбрать поле события из выпадающего списка или ввести его вручную. Значение поля ключа будет сравниваться со значением указанного поля события.

      При выборе из выпадающего списка доступны только поля универсальной модели события, а также поля, ранее введенные вручную.

Настройка условия Запрос в таблицу обогащения

Условие типа Запрос в таблицу обогащения позволяет дополнить поток событий в псевдониме записями таблицы обогащения, которые могут использоваться для обогащения корреляционных событий.

При сохранении правила корреляции через конструктор все заданные условия преобразуются из блока !vrl в блок !expression в RObject-конфигурации правила.

Чтобы настроить условие типа Запрос в таблицу обогащения:

  1. Выберите нужную таблицу обогащения из выпадающего списка.

  2. Выберите условие из выпадающего списка:

    • Есть запись, для которой выполняются все условия — условие истинно, если в таблице обогащения существует запись, удовлетворяющая всем заданным условиям.

    • Нет записей, для которых выполняются все условия — условие истинно, если в таблице обогащения нет записей, удовлетворяющих всем заданным условиям.

  3. Добавьте условия для таблицы обогащения.

    Чтобы добавить условие:

    1. Нажмите на кнопку Добавить поле (plus). Добавится строка настройки условия.

      По умолчанию при выборе таблицы обогащения уже отображается одна строка настройки условия.
    2. Выберите из выпадающего списка поле таблицы обогащения, для которого будет задаваться условие.

    3. Выберите тип значения поля из выпадающего списка:

      • Значение — потребуется ввести значение в отобразившемся поле ввода. Значение поля таблицы будет сравниваться с указанным значением.

      • Значение из поля — потребуется выбрать поле события из выпадающего списка или ввести его вручную. Значение поля таблицы будет сравниваться со значением указанного поля события.

        При выборе из выпадающего списка доступны только поля универсальной модели события, а также поля, ранее введенные вручную.

    Чтобы удалить условие, нажмите на кнопку trash в его строке.

    Для таблицы обогащения должно быть задано хотя бы одно условие. Удаление последнего условия недоступно.

Настройка условия Глобальная функция

Условие типа Глобальная функция позволяет использовать глобальные функции для фильтрации событий.

При сохранении правила корреляции через конструктор все заданные условия преобразуются из блока !vrl в блок !expression в RObject-конфигурации правила.

Чтобы настроить условие типа Глобальная функция:

  1. Выберите нужную глобальную функцию из выпадающего списка. В области настроек условия отобразятся все параметры выбранной глобальной функции.

  2. Для каждого параметра глобальной функции выберите тип значения из выпадающего списка:

    • Значение — потребуется ввести значение в отобразившемся поле ввода.

    • Значение из поля — потребуется выбрать поле события из выпадающего списка или ввести его вручную.

      При выборе из выпадающего списка доступны только поля универсальной модели события, а также поля, ранее введенные вручную.

Настройка условия Блок кода

Условие типа Блок кода позволяет задать условие в виде кода на языке VRL.

При сохранении правила корреляции через конструктор все заданные условия преобразуются из блока !vrl в блок !expression в RObject-конфигурации правила.

Чтобы настроить условие типа Блок кода, задайте VRL-код условия.

Настройка группировки событий

Группировка позволяет объединять события в группы. В RObject-конфигурации правила корреляции группировка задается в поле group.

Чтобы добавить группировку:

  1. Нажмите на кнопку Добавить группировку (plus). Отобразятся настройки группировки.

  2. Задайте количество событий в группе вручную или с помощью кнопок minus и plus. Допустимый диапазон: 2—​100.

  3. Выберите нужные поля события из выпадающего списка или введите их вручную.

    При выборе из выпадающего списка доступны только поля универсальной модели события, а также поля, ранее введенные вручную.
  4. Если необходимо учитывать только уникальные события в рамках указанных полей группировки, установите флажок Уникальность событий в рамках группировки.

Вы можете добавить не более двух группировок. При этом одна группировка должна быть с уникальностью событий, другая — без уникальности событий.

Чтобы удалить группировку, нажмите на кнопку trash в строке ее заголовка.

Шаг 3. Настройка объединения событий

На вкладке Объединение задаются правила объединения двух или более потоков событий. В RObject-конфигурации правила корреляции настройки объединения задаются в поле select.

Чтобы настроить объединения:

  1. Укажите время действия (TTL) корреляционного окна в секундах. В RObject-конфигурации правила корреляции этой настройке соответствует поле ttl.

  2. Если на вкладке Фильтр событий добавлено более одного псевдонима событий:

    1. Выберите из выпадающего списка один из псевдонимов.

    2. Добавьте объединение для выбранного псевдонима событий.

    3. Если на вкладке Фильтр событий добавлено более двух псевдонимов событий, добавьте объединения для оставшихся псевдонимов.

Настройка объединений

Добавление объединений недоступно, если на вкладке Фильтр событий добавлен только один псевдоним событий.

В RObject-конфигурации правила корреляции настройка объединения выполняется в поле join.

Чтобы добавить объединение:

  1. Нажмите на кнопку Добавить объединение (plus). Отобразятся настройки объединения.

    По умолчанию на вкладке уже отображаются настройки объединения для первого выбранного псевдонима событий.
  2. Выберите тип объединения для определения условий формирования корреляционного события:

    • Получение события — за указанный таймаут должно быть получено соответствующее событие. В RObject-конфигурации правила корреляции этой настройке соответствует поле absent со значением false.

    • Отсутствие события — за указанный таймаут не должно быть получено соответствующее событие. В RObject-конфигурации правила корреляции этой настройке соответствует поле absent со значением true.

  3. Введите время ожидания (таймаут) получения соответствующего события в секундах. В RObject-конфигурации правила корреляции этой настройке соответствует поле wait_for.

  4. Выберите из выпадающего списка один из псевдонимов событий, добавленных на вкладке Фильтр событий.

    На выбор доступны только те псевдонимы, которые ранее не использовались на вкладке Объединение.
  5. Добавьте условия сопоставления полей.

Чтобы удалить объединение, нажмите на кнопку trash в строке заголовка объединения.

Настройка сопоставления полей

Сопоставление полей позволяет сравнить определенные поля в событии исходного псевдонима и в событии другого псевдонима. В зависимости от итогов этого сравнения за указанный таймаут и от заданных условий формирования корреляционного события, по итогам выполнения корреляции будет создаваться корреляционное событие.

Чтобы добавить условие сопоставления полей в объединении:

  1. Нажмите на кнопку Добавить условие (plus). Отобразится строка для задания условия сопоставления полей.

    По умолчанию на вкладке уже отображается строка для настройки первого условия.
  2. Выберите из выпадающего списка псевдоним, поля событий которого требуется сопоставлять с полями событий исходного псевдонима.

    • На выбор доступны только те псевдонимы, которые ранее уже использовались на вкладке Объединение для других объединений.

    • Для первого объединения автоматически устанавливается псевдоним, выбранный в верхней части вкладки Объединение.

  3. Для каждого выбранного псевдонима выберите из выпадающего списка поле события или введите его вручную. Указанные поля в событиях выбранных псевдонимов будут участвовать в сопоставлении полей.

    При выборе из выпадающего списка доступны только поля универсальной модели события, а также поля, ранее введенные вручную.

Чтобы удалить условие сопоставления полей в объединении, нажмите на кнопку trash в строке условия.

В объединении должно быть хотя бы одно условие сопоставления полей. Удаление последнего условия в объединении недоступно.

Шаг 4. Настройка корреляционных событий

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

Чтобы настроить поведение корреляционных событий:

  1. Введите время троттлинга в секундах. Время троттлинга определяет временной интервал, который указывает, как часто могут генерироваться корреляционные события для каждой группы, заданной на вкладке Объединение. Если групп нет, время троттлинга указывается глобально на все правило. Указанное значение будет сохранено в поле throttle_time_sec в ROjbect-конфигурации правила.

  2. Определите, должны ли создаваться оповещения по результатам корреляции:

    • Включено — оповещение будет создаваться при каждом успешном случае корреляции, соответствующем условиям правила. В RObject-конфигурации правила этой настройке соответствует поле trigger_alert со значением true.

    • Выключено — оповещения создаваться не будут, даже если корреляция происходит. В RObject-конфигурации правила этой настройке соответствует поле trigger_alert со значением false.

  3. Сформируйте список полей корреляционного события.

  4. При необходимости введите правила формирования текста сообщения в корреляционном правиле на языке VRL.

  5. При необходимости введите дополнительные условия корреляции на языке VRL.

Формирование полей корреляционного события

Чтобы добавить поле в корреляционное событие:

  1. Нажмите на кнопку Добавить поле (plus). Отобразится строка настройки нового поля.

  2. Выберите из выпадающего списка поле события или введите его вручную.

    При выборе из выпадающего списка доступны только поля универсальной модели события, а также поля, ранее введенные вручную.
  3. Выберите из выпадающего списка тип источника, из которого поле будет брать значение.

  4. Задайте настройки источника. Настройки отличаются в зависимости от типа источника.

Чтобы удалить поле, нажмите на кнопку trash в строке его настроек.

Настройка источников разных типов

Доступные типы источников:

Настройка источника типа Значение

Источник типа Значение позволяет задать определенное значение, которое будет присвоено полю корреляционного события.

Чтобы настроить источник типа Значение, введите необходимое значение поля.

Настройка источника типа Значение из поля

Источник типа Значение из поля позволяет задать поле события, значение которого будет использоваться для значения поля в корреляционном событии.

Чтобы настроить источник типа Значение из поля:

  1. Выберите из выпадающего списка псевдоним события. На выбор доступны псевдонимы, заданные на вкладке Фильтр событий.

  2. Выберите из выпадающего списка поле события или введите его вручную.

    При выборе из выпадающего списка доступны только поля универсальной модели события, а также поля, ранее введенные вручную.

Настройка источника типа Запрос в активный список

Источник типа Запрос в активный список позволяет найти запись в активном списке и указать поле записи, значение которого будет использоваться для значения поля в корреляционном событии.

Чтобы настроить источник типа Запрос в активный список:

  1. Выберите нужный активный список из выпадающего списка. В области настроек источника отобразятся все поля ключей выбранного активного списка.

  2. Для каждого поля ключа активного списка выберите тип значения из выпадающего списка:

    • Значение — потребуется ввести значение в отобразившемся поле ввода.

    • Значение из поля — потребуется выбрать псевдоним события. На выбор доступны псевдонимы, заданные на вкладке Фильтр событий. Затем необходимо выбрать поле события из выпадающего списка или ввести его вручную. Значение выбранного поля в выбранном событии будет использоваться в качестве значения поля активного списка.

      При выборе из выпадающего списка доступны только поля универсальной модели события, а также поля, ранее введенные вручную.
  3. Выберите из выпадающего списка поле активного списка, значение которого будет использоваться для значения поля в корреляционном событии.

Настройка источника типа Запрос в таблицу обогащения

Источник типа Запрос в таблицу обогащения позволяет найти запись в таблице обогащения и указать поле записи, значение которого будет использоваться для значения поля в корреляционном событии.

  1. Выберите нужную таблицу обогащения из выпадающего списка.

  2. Добавьте поля таблицы обогащения, по которым будет осуществляться поиск записи в таблице.

    Чтобы добавить поле:

    1. Нажмите на кнопку Добавить поле (plus). Добавится строка настройки поля.

    2. Выберите из выпадающего списка поле таблицы обогащения.

    3. Выберите тип значения поля из выпадающего списка:

      • Значение — потребуется ввести значение в отобразившемся поле ввода.

      • Значение из поля — потребуется выбрать псевдоним события. На выбор доступны псевдонимы, заданные на вкладке Фильтр событий. Затем необходимо выбрать поле события из выпадающего списка или ввести его вручную. Значение выбранного поля в выбранном событии будет использоваться в качестве значения поля таблицы обогащения.

        При выборе из выпадающего списка доступны только поля универсальной модели события, а также поля, ранее введенные вручную.

    Чтобы удалить поле, нажмите на кнопку trash в его строке.

    Для таблицы обогащения должно быть задано хотя бы одно поле. Удаление последнего поля недоступно.
  3. Выберите из выпадающего списка поле таблицы обогащения, значение которого будет использоваться для значения поля в корреляционном событии.

Шаг 5. Настройка тестов

На вкладке Тесты опционально задаются тесты для проверки и верификации правила корреляции. Они помогают убедиться, что правило работает корректно и соответствует ожидаемым результатам.

Тесты, заданные на вкладке Тесты, заполняют блок tests В RObject-конфигурации правила корреляции.

Чтобы добавить тесты:

  1. Введите набор тестов на языке VRL.

  2. Нажмите на кнопку Запустить для запуска выполнения программы.

    Если выполнение программы прошло успешно, обработанное событие отобразится на панели Результат.

Шаг 6. Сохранение правила

Вы можете сохранить созданное правило корреляции по одной из следующих кнопок в правом нижнем углу конструктора:

  • Опубликовать — правило будет сохранено и опубликовано. Система отобразит уведомление об успешном создании правила корреляции. Новое правило отобразится в таблице раздела Экспертиза. Опубликованные правила можно включить и использовать в конвейерах событий.

  • Сохранить как черновик — правило будет сохранено без публикации (в виде черновика). Система отобразит уведомление об успешном создании черновика правила. Черновик отобразится в таблице раздела Экспертиза. В отличие от опубликованных версий, черновики не могут быть использованы в конвейерах событий.