Интеграция с R-Vision SOAR

Настройки интеграции позволяют настроить систему на отправку инцидентов в R-Vision SOAR. Когда интеграция включена, создание оповещения в системе приводит к созданию инцидента в R-Vision SOAR.

Интеграция с R-Vision SOAR настраивается в обеих системах.

Настройка R-Vision SOAR

Выполните следующие шаги в R-Vision SOAR для настройки получения событий из системы:

Создание пользователя

Чтобы создать пользователя, выполните следующие шаги в системе R-Vision SOAR:

  1. Перейдите в раздел Настройки системы → Общие → Пользователи системы → Пользователи.

  2. Выберите опцию Добавить нового пользователя в выпадающем меню кнопки Добавить (add). Система отобразит окно добавления пользователя.

  3. Введите уникальный логин пользователя.

  4. Укажите организации, от которых будут поступать инциденты.

  5. Введите описание пользователя.

  6. Установите пароль для пользователя.

  7. В разделе Системные роли нажмите на кнопку Добавить, чтобы назначить пользователю соответствующие роли.

    Убедитесь, что у роли есть права на добавление и изменение инцидентов. Роли можно просмотреть в разделе Настройки системы → Общие → Роли пользователей.

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

Создание токена для отправки запросов

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

Чтобы создать токен, выполните следующие шаги в системе R-Vision SOAR:

  1. Перейдите в раздел Настройки системы → Общие → API.

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

  3. Выберите пользователя, для которого будет создан токен.

  4. Нажмите на кнопку Выбрать, чтобы подтвердить выбор пользователя. Токен пользователя будет отображен в списке.

Настройка категории инцидента

Категория инцидента в системе R-Vision SOAR представляет собой набор полей, используемых для описания инцидента. В рамках категории существуют различные типы инцидентов.

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

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

Чтобы настроить категории инцидента, выполните следующие шаги в системе R-Vision SOAR:

  1. Перейдите в раздел Настройки системы → Инциденты → Категории.

  2. Выберите требуемую категорию нажатием на ее строку в списке или создайте новую с помощью кнопки Добавить (add).

  3. В секции Поля нажмите на кнопку Изменить. Система отобразит окно выбора полей.

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

    При необходимости нужные поля можно предварительно создать в разделе Настройки системы → Инциденты → Поля.

Настройка системы

Выполните следующие действия в системе для настройки отправки событий в R-Vision SOAR:

  1. Перейдите в раздел Ресурсы → Секреты и создайте секрет типа Токен, поместив в него API-ключ (токен пользователя) для подключения к R-Vision SOAR.

  2. Перейдите в раздел Ресурсы → Интеграции. Система отобразит сведения об имеющихся интеграциях.

  3. Нажмите на кнопку Создать (plus) и выберите R-Vision SOAR из выпадающего меню. Система отобразит окно создания интеграции.

  4. Заполните поля:

    1. Название.

    2. Описание (опционально).

    3. URL-адрес сервера R-Vision SOAR, например https://rvision_soar.local.

  5. Выберите секрет типа Токен, созданный на шаге 1.

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

  6. Нажмите на кнопку Проверить подключение. Система проверит доступность подключения к системе и отобразит его статус (Успешное соединение/Ошибка подключения).

  7. Выберите организацию из выпадающего списка Организация (если в системе существует несколько организаций).

    На данном этапе вы можете отправить тестовое оповещение в систему R-Vision SOAR с помощью кнопки Отправить тестовое оповещение.
  8. Выберите шаблон, по которому будут настраиваться инциденты в R-Vision SOAR.

  9. Задайте название категории инцидента из системы R-Vision SOAR.

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

  10. При необходимости укажите тип инцидента из системы R-Vision SOAR.

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

При отправке оповещений в R-Vision SOAR предусмотрены 3 попытки с интервалом в 100 мс, прежде чем отправка завершится с ошибкой.

Соответствие атрибутов и полей инцидента

При настройке интеграции важно понимать правила соответствия между атрибутами системы и полями инцидентов, отправленных в R-Vision SOAR.

Чтобы задать соответствие полей инцидента из R-Vision SOAR и атрибутов в системе, укажите следующие настройки поля в шаблоне сообщения:

  1. Тег поля SOAR — тег поля инцидента из системы R-Vision SOAR.

  2. Тип поля — тип поля инцидента из системы R-Vision SOAR. Позволяет передать в R-Vision SOAR поле нужного типа. Доступные типы поля:

    • Строка;

    • Число;

    • Логический тип;

    • JSON.

  3. Значение поля — значение атрибута системы.

Доступны следующие варианты заполнения значений атрибутов в системе:

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

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

Пример заполнения полей

Рассмотрим пример заполнения полей с помощью констант.

  • Тип: Подозрение на инцидент (событие ИБ)

  • Категория: Системный инцидент

Таблица 1. Пример соответствия между атрибутами и полями инцидента в системах
Имя поля системы Тег поля SOAR Имя поля SOAR (RU) Имя поля SOAR (ENG)

alertId

SystemAlertId

System Alert ID

System Alert ID

statusName

STATUS

Статус инцидента

Incident status

severityLevel

LEVEL

Уровень инцидента

Incident level

correlationEventsLink

correlationEvents

Ссылка на корреляционные события

Correlation events link

correlationEventsCount

correlationEventsCount

Количество корреляционных событий

Correlation events count

correlationRuleName

sense_rule_name

Название правила

Rule name

Так как интеграция настроена на основе констант, то поля инцидентов, отправляемых по этой интеграции в R-Vision SOAR, всегда будут хранить одни и те же указанные данные:

  • SystemAlertId: alertId.

  • STATUS: statusName.

  • LEVEL: severityLevel.

  • correlationEvents: correlationEventsLink.

  • correlationEventsCount: correlationEventsCount.

  • sense_rule_name: correlationRuleName.

Работа с шаблонами инцидентов

Для создания инцидентов в R-Vision SOAR по интеграции необходимо использовать шаблоны. Шаблоны позволяют задавать тег, тип и значение для полей инцидента.

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

Стандартный шаблон для оповещений SOAR-интеграции

Поле 1:

  • Тег поля SOAR: LEVEL

  • Тип поля: string

  • Значение поля:

    {{#switch alert.severity }}
        {{#case 'SEVERITY_LOW'}} Незначительный {{/case}}
        {{#case 'SEVERITY_MEDIUM'}} Средний {{/case}}
        {{#case 'SEVERITY_HIGH'}} Высокий {{/case}}
        {{#case 'SEVERITY_CRITICAL'}} Критичный {{/case}}
        {{#default 'Средний' }} {{/default}}
    {{/switch}}

Поле 2:

  • Тег поля SOAR: STATUS

  • Тип поля: string

  • Значение поля:

    {{#switch alert.status }}
        {{#case 'STATUS_OPEN'}} Создан {{/case}}
        {{#case 'STATUS_IN_PROGRESS'}} Создан {{/case}}
        {{#case 'STATUS_RESOLVED'}} Закрыт {{/case}}
        {{#case 'STATUS_FALSE_POSITIVE'}} Закрыт {{/case}}
        {{#default 'Создан' }} {{/default}}
    {{/switch}}

Поле 3:

  • Тег поля SOAR: AlertLink

  • Тип поля: string

  • Значение поля:

    {{alert.link}}

Поле 4:

  • Тег поля SOAR: DESCRIPTION

  • Тип поля: string

  • Значение поля:

    {{{alert.correlationRuleDescription}}}

Вы можете добавлять, изменять и удалять шаблоны инцидентов, а также создавать новые шаблоны на основе существующих.

Добавление шаблона инцидента

Чтобы добавить новый шаблон инцидента:

  1. Нажмите на кнопку Добавить шаблон в окне настройки интеграции с R-Vision SOAR. Отобразится окно добавления шаблона сообщения.

  2. Укажите название шаблона.

  3. Задайте настройки для каждого поля:

  4. Тег поля SOAR — укажите тег поля инцидента из системы R-Vision SOAR. Тег может содержать латинские буквы, цифры, символ "_". Первый символ должен быть буквой. Длина тега — от 2 до 60 символов

  5. Тип поля — выберите из выпадающего списка тип поля инцидента из системы R-Vision SOAR. Позволяет передать в R-Vision SOAR поле нужного типа. Доступные типы поля:

    • Строка;

    • Число;

    • Логический тип;

    • JSON.

  6. Значение поля — укажите значение атрибута из системы.

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

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

    Пример

    При нажатии на поле Статус оповещения в справочнике, Значение поля заполнится шаблоном {{alert.status}}.

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

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

Изменение шаблона инцидента

Чтобы изменить шаблон инцидента:

  1. Откройте выпадающий список Шаблон в окне настройки интеграции с R-Vision SOAR.

  2. Нажмите на кнопку edit в строке нужного шаблона. Отобразится окно изменения шаблона сообщения.

  3. Внесите требуемые изменения в шаблон инцидента.

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

Создание шаблона инцидента на основе существующего шаблона

Чтобы добавить новый шаблон инцидента на основе существующего:

  1. Откройте выпадающий список Шаблоны в окне настройки интеграции с R-Vision SOAR.

  2. Нажмите на кнопку plus в строке нужного шаблона. Отобразится окно добавления шаблона сообщения, поля которого будут автоматически заполнены данными из выбранного шаблона.

  3. Измените название шаблона инцидента.

  4. При необходимости измените настройки полей в шаблоне.

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

Удаление шаблона инцидента

Чтобы удалить шаблон инцидента:

  1. Откройте выпадающий список Шаблоны в окне настройки интеграции с R-Vision SOAR.

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

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

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

В качестве значений полей и названий категорий для инцидентов R-Vision SOAR можно передавать поля оповещений или корреляционных событий, сгенерировавших оповещения. Для этого поля необходимо указать в виде шаблона Handlebars:

  • {{...}} — для передачи полей с экранированием специальных символов.

  • {{{...}}} — для передачи полей без экранирования специальных символов.

При построении шаблонов для поля типа JSON имеются следующие особенности:

  • {{...}} — передача JSON-значения как текстовой строки без интерпретации шаблонов.

  • {{{...}}} — передача JSON-значения как JSON-строки без экранирования символов.

Для корректной передачи JSON-значений необходимо с помощью шаблона Handlebars сформировать валидный JSON-объект или JSON-массив. Например, для этого можно использовать встроенные утилиты (хелперы) преобразования JSON-объекта в JSON-строку.

Примеры ввода значений для поля типа JSON:

  • Для передачи одного объекта:

    {{{json <object>}}}
  • Для передачи нескольких объектов:

    [{{{json <object_1>}}}, ..., {{{json <object_N>}}}]
  • Для передачи массива объектов:

    [{{{json <object>[0]}}}, ..., {{{json <object>[N]}}}]
  • Для преобразования неформатированной JSON-строки и передачи ее в форматированном виде:

    {{{json <object> true}}}

Здесь:

  • <object>, <object_1>, …​, <object_N> — имена JSON-объектов.

Шаблоны могут принимать данные из:

  • Оповещений. Для этого используйте шаблон вида: {{alert.<поле оповещения>}}.

    Пример 1. Пример шаблона на основе оповещения
    {{alert.link}}

    В примере выше шаблон получает данные из поля link оповещения. Например, если поле link содержит значение "https://1.0.0.0/alert/id", то такое значение и будет передаваться в поле инцидента через этот шаблон.

    Доступные шаблоны системных полей оповещений представлены в таблице ниже.

    Доступные шаблоны системных полей оповещений
    Поле оповещения Тип данных Шаблон

    ID

    Строка

    {{alert.id}}

    Название

    Строка

    {{alert.name}}

    ID тенанта

    Строка

    {{alert.tenantId}}

    Название правила сегментации

    Строка

    {{alert.segmentation.ruleName}}

    ID правила сегментации

    Строка

    {{alert.segmentation.ruleId}}

    Версия правила сегментации

    Строка

    {{alert.segmentation.ruleVersion}}

    Поля группировки

    Строка

    {{alert.segmentation.groupBy}}

    Название правила корреляции

    Строка

    {{alert.correlationRuleName}}

    ID правила корреляции

    Строка

    {{alert.correlationRuleId}}

    Описание правила корреляции

    Строка

    {{alert.correlationRuleDescription}}

    Уровень угрозы

    Строка

    {{alert.severity}}

    Теги

    Строка

    {{alert.tags}}

    Статус

    Строка

    {{alert.status}}

    Количество событий

    Целое число

    {{alert.correlationEventsCount}}

    Дата создания

    Строка

    {{alert.createdAt}}

    Дата изменения

    Строка

    {{alert.updatedAt}}

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

    Строка

    {{alert.firstEventTs}}

    Время последнего корреляционного события

    Строка

    {{alert.lastEventTs}}

    Идентификаторы корреляционных событий

    Массив строк

    {{alert.correlationEventsIds}}

    Корреляционные события

    Массив объектов

    {{alert.correlationEvents}}

    Идентификатор элемента конвейера, который сгенерировал оповещение. Префикс — идентификатор конвейера

    Строка

    {{alert.eventSourceTransformId}}

    Идентификатор хранилища событий

    Строка

    {{alert.eventStorageId}}

    Для удобства добавления шаблонов на основе оповещения вы можете воспользоваться функционалом справочника.
  • Корреляционных событий, сгенерировавших оповещение. Для этого используйте шаблон вида: {{correlationEvent.<поле события>}}.

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

    В примере выше шаблон получает данные из названия корреляционного события. Например, если в качестве названия используется "UsualCorrelationEvent", то такое значение и будет передаваться в поле инцидента через этот шаблон.

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

Построение сложных шаблонов

В системе R-Vision SOAR можно создавать и настраивать пользовательские поля инцидента. По этой причине может возникнуть необходимость гибкой настройки шаблона, обрабатывающего различные значения поля. Для этого, помимо простых шаблонов, в системе можно использовать шаблоны с конструкцией ветвления switch.

Пример 3. Общая структура switch-конструкции
{{#switch <поле> }}
    {{#case '<значение 1>'}} <результат 1> {{/case}}
    {{#case '<значение 2>'}} <результат 2> {{/case}}
    ...
    {{#default '<значение по умолчанию>' }} <результат по умолчанию> {{/default}}
{{/switch}}

Конструкция работает следующим образом:

  1. Проверяется поле <поле> оповещения или корреляционного события.

  2. Содержимое поля сравнивается с заданным списком значений: <значение 1>, <значение 2>, …​, <значение по умолчанию>.

  3. В зависимости от значения поля, соответствующее ему поле инцидента, передаваемого в R-Vision SOAR, заполняется требуемым содержимым: <результат 1>, <результат 2>, …​, <результат по умолчанию>.

Рассмотрим пример switch-конструкции, работающей на основе оповещения.

Пример 4. Пример switch-конструкции
{{#switch alert.status }}
    {{#case 'STATUS_OPEN'}} Создан {{/case}}
    {{#case 'STATUS_IN_PROGRESS'}} Создан {{/case}}
    {{#case 'STATUS_RESOLVED'}} Закрыт {{/case}}
    {{#case 'STATUS_FALSE_POSITIVE'}} Закрыт {{/case}}
    {{#default 'Создан' }} {{/default}}
{{/switch}}

Пример выше проверяет поле status оповещения, а затем заполняет соответствующее поле инцидента значением, отвечающим содержимому поля status. Например, если поступившее оповещение имеет статус STATUS_OPEN, то поле инцидента заполнится значением "Создан".