Шаблоны поиска

Шаблоны поиска в R-Vision SIEM используются для настройки конфигурации и условий RQL-запросов. Они применяются в разделе Поиск и виджетах дашбордов для отображения аналитических данных.

Управление конфигурациями шаблонов поиска осуществляется в разделе Экспертиза. Шаблоны позволяют задавать фильтры, временные интервалы и RQL-запросы для выборки событий, упрощая анализ данных и создание визуализаций.

О шаблонах поиска

Шаблон поиска — это структурированный объект данных в формате RObject (.ro), который определяет параметры и условия для выполнения запросов к данным в системе в разделе Поиск и виджетах дашбордов. Их можно создавать на основе запросов, введенных в этих разделах, или непосредственно через раздел Экспертиза. Шаблон поиска задает структуру фильтров, временной интервал и параметры выборки, которые могут быть использованы для выполнения поисковых запросов по событиям системы.

Шаблон поиска включает следующие компоненты: фильтры для настройки условий отбора данных, временные параметры и RQL-запрос, формирующий логику поиска. Фильтры определяют поля и условия, по которым данные отбираются, временные параметры указывают период выборки, а запрос на языке RQL задает основную логику обработки данных.

Каждый фильтр включает описание целевого поля данных, логический оператор сравнения и значения, по которым данные должны отбираться. В качестве условий могут использоваться операторы EQ, BETWEEN, LIKE, IN, GT, GE, LT, LE, и NE.

Шаблон поиска позволяет настраивать временные параметры, включая фиксированный период и интервальные значения. Это обеспечивает возможность как статических, так и динамических выборок данных на основе шаблона. Поля фильтров и временных настроек передаются в RQL-запрос, который используется для конечной выборки данных.

Работа с шаблоном поиска

Шаблоны поиска используются в разделе Поиск.

Доступные операции над шаблоном поиска:

Создание шаблона

Чтобы создать шаблон:

  1. Перейдите в раздел Поиск.

  2. Нажмите на кнопку Шаблоны (save). Отобразится панель шаблонов.

  3. Нажмите на кнопку Создать шаблон. Отобразится окно сохранения шаблона.

  4. Введите название шаблона.

  5. При необходимости введите описание шаблона.

  6. Выберите каталог раздела Экспертиза, в который будет помещен шаблон.

  7. Чтобы сохранить в шаблоне текущий заданный период, установите флажок Сохранить временной период.

  8. Чтобы сохранить в шаблоне имеющиеся пользовательские фильтры, установите флажок Сохранить фильтры.

  9. Нажмите на кнопку Создать. Система создаст шаблон поиска и отобразит уведомление об успешном создании. Новый шаблон появится на панели шаблонов.

Применение шаблона

Чтобы применить шаблон:

  1. Перейдите в раздел Поиск.

  2. Нажмите на кнопку Шаблоны (save). Отобразится панель шаблонов.

  3. Выберите шаблон из списка. Система применит шаблон для поиска событий.

Поиск шаблона

Чтобы найти шаблон:

  1. Перейдите в раздел Поиск.

  2. Нажмите на кнопку Шаблоны (save). Отобразится панель шаблонов.

  3. Введите название требуемого шаблона в поле поиска. На панели отобразятся шаблоны, в названии которых встречается введенный запрос.

Обновление шаблона

Вы можете обновить существующий шаблон. Для этого:

  1. Перейдите в раздел Поиск.

  2. Нажмите на кнопку Шаблоны (save). Отобразится панель шаблонов.

  3. Вы можете отредактировать название и описание шаблона. Также можно установить или снять флажки Сохранить временной период и Сохранить фильтры.

  4. Нажмите на кнопку Обновить и подтвердите обновление. Система сохранит изменения и отобразит уведомление об этом. В шаблоне будет сохранен поисковый запрос, введенный в поле запроса на момент редактирования.

Работа с RObject-конфигурацией шаблона поиска

Создание шаблона поиска

Чтобы создать шаблон поиска:

  1. Перейдите в раздел Экспертиза. Система отобразит сведения об имеющихся элементах экспертизы, в том числе их текущий статус (включен/выключен).

  2. На панели инструментов нажмите на кнопку Создать и выберите из выпадающего списка опцию Шаблон поиска. Система отобразит окно создания шаблона.

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

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

    Чтобы шаблон поиска стал доступным для использования, его необходимо включить.

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

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

Изменение шаблона поиска

Чтобы изменить шаблон поиска:

  1. Перейдите в раздел Экспертиза. Система отобразит сведения об имеющихся элементах экспертизы, в том числе их текущий статус (включен/выключен).

  2. Нажмите на строку шаблона поиска в списке. Система отобразит в правой части экрана карточку этого шаблона с подробной информацией о нем.

  3. Нажмите на кнопку действий (more vertical) в верхнем правом углу карточки и выберите опцию Изменить. Отобразится окно настроек шаблона.

    Вы также можете открыть окно настроек с помощью кнопки в нижней части карточки:

    • Для опубликованной версии: нажмите на кнопку Просмотр в нижней части карточки. Система отобразит окно просмотра настроек элемента экспертизы. Нажмите на кнопку Изменить в правом нижнем углу окна.

    • Для черновика: нажмите на кнопку Изменить в нижней части карточки.

  4. Внесите необходимые изменения в конфигурацию шаблона поиска.

  5. Нажмите на кнопку Обновить версию. Новая версия шаблона поиска с измененной конфигурацией будет опубликована. Система отобразит уведомление об изменении шаблона.

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

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

Удаление шаблона поиска

Удаление доступно только для элементов экспертизы с типом создания Пользовательский.

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

Чтобы удалить шаблон поиска:

  1. Перейдите в раздел Экспертиза. Система отобразит сведения об имеющихся элементах экспертизы, в том числе их текущий статус (включен/выключен).

  2. Нажмите на строку шаблона поиска в списке. Система отобразит в правой части экрана карточку этого шаблона с подробной информацией о нем.

  3. Нажмите на кнопку действий (more vertical) в верхнем правом углу карточки и выберите опцию Удалить. Отобразится окно подтверждения удаления шаблона.

  4. Нажмите на кнопку Удалить. Система удалит шаблон поиска и отобразит уведомление об успешном удалении. Удаленный шаблон будет исключен из списка элементов экспертизы.

Вы также можете удалить группу элементов экспертизы. Для этого:

  1. Перейдите в раздел Экспертиза. Система отобразит сведения об имеющихся элементах экспертизы, в том числе их текущий статус (включен/выключен).

  2. Установите флажки напротив тех элементов, которые вы хотите удалить, в левом столбце таблицы.

  3. Нажмите на кнопку trash на панели инструментов. Отобразится окно удаления.

  4. Нажмите на кнопку Удалить. Система удалит выбранные элементы и отобразит уведомление об успешном удалении. Удаленные элементы будет исключены из списка элементов экспертизы.

Структура шаблона поиска

Шаблон поиска содержит обязательные и опциональные поля, определяющие его логику и настройки для отбора данных.

Поле Описание Тип данных Обязательное поле

id

Уникальный идентификатор шаблона поиска. Должен быть уникальным в пределах экспертизы. Можно использовать UUID в качестве значения.

Строка

да

name

Название шаблона поиска. Допустимы латинские буквы, цифры, точки, подчеркивания и дефисы.

строка

да

description

Краткое описание назначения шаблона поиска.

строка

нет

type

Тип шаблона. Для шаблонов поиска всегда указывается search_template.

строка

да

author

Имя и контактные данные автора шаблона поиска.

строка

нет

date

Дата создания или изменения шаблона. Задается в формате YYYY-MM-DD, то есть "год-месяц-день".

Поле не связано с полями Дата создания и Дата изменения в карточке элемента экспертизы.

строка

нет

status

Статус разработки текущей версии шаблона поиска. Может принимать любые текстовые значения.

Примеры значений:

  • debug — версия в разработке;

  • experimental — экспериментальная версия;

  • test — версия для тестирования;

  • stable — стабильная версия.

строка

нет

tags

Список тегов, присвоенных шаблону поиска для классификации и быстрого поиска.

массив строк

нет

version

Версия шаблона поиска в формате Semantic Versioning.

строка

да

time

Временной интервал для выборки данных. Может включать период (from, to) или интервальное значение (unit, value).

объект

да

rql

RQL-запрос, определяющий логику поиска и выборки данных.

строка

да

Структура filters

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

Поле Описание Тип данных Обязательное поле

name

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

строка

да

operation

Оператор сравнения, определяющий логику фильтрации. Допустимые значения: EQ, NE, GT, LT, GE, LE, BETWEEN, LIKE, IN.

строка

да

values

Массив значений, используемых для фильтрации. Для операций IN допускается указание нескольких значений, а для BETWEEN — строго два значения (границы интервала).

массив строк

да

enabled

Статус фильтра, указывающий, будет ли он применен (true) или отключен (false).

булево значение

да

inverted

Опция инверсии условия фильтрации. Если установлено в true, условие фильтрации будет инвертировано.

булево значение

нет

customTitle

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

строка

нет

Структура time

Поле time определяет временной интервал, за который выполняется выборка данных в шаблоне поиска. Интервал может задаваться двумя способами: с помощью фиксированного периода (from и to) или через интервальные параметры (unit и value).

Поле Описание Тип данных Обязательное поле

from

Начальная точка временного интервала в формате YYYY-MM-DD HH:MM:SS. Используется в паре с полем to.

строка

да (если to указано)

to

Конечная точка временного интервала в формате YYYY-MM-DD HH:MM:SS. Используется в паре с полем from.

строка

да (если from указано)

unit

Единица измерения временного интервала. Допустимые значения: SECOND, MINUTE, HOUR, DAY, WEEK, MONTH, YEAR. Применяется в паре с полем value.

строка

да (если value указано)

value

Количество единиц, задающих продолжительность временного интервала. Например, при значениях unit: DAY и value: 7 интервал составит последние 7 дней.

число

да (если unit указано)

Составление шаблона поиска

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

Поля метаданных

Заполните поля метаданных шаблона поиска:

  • id: уникальный идентификатор шаблона поиска. Должен быть уникальным в пределах экспертизы.

  • name: название шаблона поиска. Допустимы латинские буквы, цифры, символы подчеркивания, точки и дефисы.

  • type: всегда указывается search_template для элементов экспертизы данного типа.

  • description (опционально): краткое описание назначения шаблона.

  • author (опционально): имя и контактные данные автора шаблона поиска.

  • version: версия шаблона поиска согласно стандарту Semantic Versioning.

  • status (опционально): статус разработки шаблона. Может принимать текстовые значения, такие как:

    • draft: черновая версия.

    • published: опубликованная версия.

    • deprecated: устаревшая версия.

  • tags (опционально): список тегов, присвоенных шаблону для классификации и быстрого поиска.

  • date (опционально): дата создания или изменения шаблона. Формат значения: YYYY-MM-DD.

Пример метаданных:

id: 61f0c404-5cb3-11e7-907b-000000000000
name: Failed Logins
type: search_template
description: Шаблон поиска для неудачных попыток входа
author: John Doe <johndoe@rvision.ru>
version: 1.0.0
status: published
date: 2024-01-15
tags:
  - security
  - login

В этом примере:

  • Поле id: уникальный идентификатор шаблона поиска. В данном случае UUID — 61f0c404-5cb3-11e7-907b-000000000000.

  • Поле name: название шаблона — "Failed Logins".

  • Поле type: тип шаблона — search_template.

  • Поле description: краткое описание — "Шаблон поиска для неудачных попыток входа".

  • Поле author: имя автора шаблона — "John Doe <johndoe@example.com>".

  • Поле version: версия шаблона в формате 1.0.0.

  • Поле status: статус разработки шаблона — published.

  • Поле date: дата создания шаблона — "2024-01-15".

  • Поле tags: содержит теги security и login для классификации шаблона.

Поле filters

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

  • name: название целевого поля данных для фильтрации.

  • operation: логический оператор для сравнения значений (например, EQ, BETWEEN, LIKE, IN).

  • values: массив значений для сравнения с полем.

    Для операций IN допускается указание нескольких значений, а для BETWEEN — строго два значения (границы интервала).
  • inverted: указывает, применяется ли логическое отрицание к результату фильтрации.

  • enabled: указывает, включен ли фильтр для обработки.

  • customTitle (опционально): заголовок фильтра, который отображается на панели фильтров.

Пример фильтра:

filters:
  - name: action
    values:
      - login
    operation: EQ
    inverted: false
    enabled: true
    customTitle: Action Filter
  - name: status
    values:
      - failed
    operation: EQ
    inverted: false
    enabled: true
    customTitle: Status Filter

В этом примере:

  • Первый фильтр проверяет, равно ли значение поля action значению login.

  • Второй фильтр проверяет, равно ли значение поля status значению failed.

  • Оба фильтра включены для обработки (enabled: true), и логическое отрицание не применяется (inverted: false).

  • В полях customTitle фильтрам присвоены заголовки Action Filter и Status Filter, которые отобразятся на панели фильтров.

Поле time

Поле time определяет временной интервал для выборки данных в шаблоне поиска. Может быть представлено либо фиксированным периодом, либо интервалом времени.

Фиксированный период

  • from: начало временного интервала.

  • to: окончание временного интервала.

Пример с фиксированным периодом:

time:
  from: 2024-10-25 04:00:00
  to: 2024-10-26 03:59:59

В этом примере данные будут отбираться за фиксированный временной период с 25 октября 2024 года, начиная с 04:00:00, по 26 октября 2024 года до 03:59:59.

Интервальный тип

  • unit: единица измерения интервала времени (например, DAY, HOUR).

  • value: длительность интервала в указанных единицах.

Пример с интервальным типом:

time:
  unit: DAY
  value: 1

В этом примере задается временной интервал в 1 день (unit: DAY, value: 1). Это позволяет динамически выбирать данные, например, за последние 24 часа от момента выполнения запроса.

Поле rql

Поле rql определяет запрос на языке RQL для формирования условий поиска в шаблоне.

Пример RQL-запроса:

rql: sourceIp = '192.0.2.1' AND dvendor = 'Linux'

В этом примере:

  • Запрос отбирает записи, где:

    • sourceIp: значение поля равно 192.0.2.1.

    • dvendor: значение поля равно Linux.

Пример шаблона поиска

Пример 1. Пример шаблона поиска "Failed Login Attempts", схема RObject
# Уникальный идентификатор шаблона поиска.
id: a1f0d234-6ac2-4d7e-bf93-000000000000

# Название шаблона поиска.
name: Failed Login Attempts

# Тип элемента экспертизы.
type: search_template

# Версия шаблона.
version: 1.0.0

# Описание назначения шаблона поиска.
description: Шаблон для поиска неудачных попыток входа в систему

# Автор шаблона.
author: John Doe <johndoe@example.com>

# Фильтры для настройки условий поиска.
filters:
  - name: action
    values:
      - login
    operation: EQ
    inverted: false
    enabled: true
    customTitle: Action Filter
  - name: status
    values:
      - failed
    operation: EQ
    inverted: false
    enabled: true
    customTitle: Status Filter

# Временной период для выборки данных.
time:
  unit: HOUR
  value: 1

# RQL-запрос для выборки данных.
rql: sourceIp = '192.0.2.1' AND dvendor = 'Linux'

Интерпретация

Метаданные шаблона поиска:

  • id: уникальный идентификатор шаблона поиска. В данном случае UUID — a1f0d234-6ac2-4d7e-bf93-000000000000.

  • name: название шаблона поиска — "Failed Login Attempts".

  • type: тип элемента — всегда указывается как search_template.

  • version: версия шаблона — 1.0.0.

  • description: описание назначения шаблона — "Шаблон для поиска неудачных попыток входа в систему".

  • author: автор шаблона — "John Doe <johndoe@example.com>".

Фильтры:

  • filters: фильтры позволяют задавать условия для отбора данных:

    • Фильтр action с оператором EQ задает условие, при котором значение поля action должно быть равно login.

    • Фильтр status также с оператором EQ отбирает события, где значение поля status равно failed.

    • Фильтры отобразятся на панели фильтров с заголовками Action Filter и Status Filter, которые заданы в полях customTitle.

Временной интервал:

  • time: интервал, в пределах которого будут искаться события. В примере указан интервал в 1 час (unit установлен на HOUR, value равно 1).

RQL-запрос:

  • rql: запрос на языке RQL, определяющий логику поиска.

    • Запрос отбирает записи, где:

      • sourceIp: значение равно 192.0.2.1.

      • dvendor: значение равно Linux.