Kaspersky Symphony XDR: Open Single Management Platform

Алгоритм плейбука

Развернуть все | Свернуть все

Open Single Management Platform позволяет вам реагировать на алерты и инциденты вручную или автоматически с использованием плейбуков. Реагирование на алерты или инциденты может состоять не из одного действия, а из целого набора шагов и параметров. Эти шаги зависят от указанных условий, данных об алерте или инциденте, а также результатов предыдущих действий по реагированию.

Алгоритм плейбука позволяет вам указать последовательность действий по реагированию, необходимые условия и требуемое воздействие на целевые объекты в формате JSON. Шаги алгоритма плейбука выполняются последовательно. Вы можете указать алгоритм плейбука при создании или изменении плейбука.

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

  • Глобальные данные.

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

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

  • Операционные данные.

    Операционные данные передаются между шагами плейбука. Вы можете управлять операционными данными с помощью выражений jq, которые указаны в параметрах input и output.

  • Локальные данные.

    Локальные данные ограничены определенным шагом. Вы можете управлять локальными данными, используя параметры input (создание локальных данных) и output (создание операционных данных из локальных данных).

Как написать алгоритм

Алгоритм плейбука описывается в формате JSON и состоит из двух основных частей:

  • Общая информация о плейбуке:
    • Название (name).
    • Описание (description).
    • Источник (inputType).
    • Преобразование входных данных плейбука (input).
    • Преобразование выходных данных плейбука (output).
    • Время ожидания выполнения плейбука (playbookRunTimeout).
    • Политики времени ожидания, которые могут быть применены на определенных шагах (timeouts).
    • Версия плейбука (version).
    • Версия схемы DSL (dslSpecVersion).
    • Версия схемы действия по реагированию (actionsSpecVersion).
  • Шаги выполнения плейбука (executionFlow).

Следующие параметры нужны при написании алгоритма:

  • dslSpecVersion. Требуемое значение: 1.1.0.
  • actionsSpecVersion
  • version
  • executionFlow (хотя бы один шаг выполнения).

    Каждый шаг выполнения имеет свои обязательные поля.

Если вы попытаетесь сохранить плейбук без заполнения обязательных полей, отобразится ошибка.

Алгоритм плейбука чувствителен к регистру. Чтобы использовать данные активов из алерта, вам нужно использовать параметр Assets с заглавной буквы. Например: alert.Assets[]. Чтобы использовать данные активов во входных данных при запуске плейбука вручную для целевых объектов, не используйте заглавные буквы в параметре assets. Например: .input.assets[].

В зависимости от выбранной вами области действия при создании или изменении плейбука вы можете использовать в выражениях, написанных на jq-языке, модель данных алерта или модель данных инцидента. Для этого напишите выражения со значением alert или incident (не используйте точку "." в начале значения). Например:

"${[ alert.Assets[] | select(.Type == \"user\" and .IsAttacker) | .ID]}"

Вы можете использовать данные алерта или инцидента в выражении jq на любом шаге выполнения. Данные алерта или инцидента доступны только в режиме чтения. Эти данные не изменяются во время работы плейбука. Если данные алерта или инцидента изменились после запуска плейбука, это не повлияет на выполнение плейбука.

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

Если вы используете кавычки в выражении jq, вам нужно экранировать эти знаки обратными косыми чертами. Например: "${[ alert.Assets[] | select(.Type == \"user\" and .IsAttacker) | .ID]}".

Обратные косые черты, которые не используются для экранирования кавычек, также должны быть экранированы другими обратными косыми чертами. Например: ${\"add_firewall_rule --ip_address=\" + ([.input.observables[] | select(.type == \"ip\") | select(.value | test(\"^(10\\\\.|172\\\\.(1[6-9]|2[0-9]|3[01])\\\\.|192\\\\.168\\\\.|127\\\\.).*\") | not) | .value] | join(\",\"))}.

Если вы хотите запустить плейбук для определенного объекта (наблюдаемые объекты или активы), используйте параметр .input в алгоритме. Эти объекты будут входными данными для плейбука при его запуске. Например:

"assets": "${ [.input.assets[] | select(.Type == \"host\") | .ID] }"

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

Как вызываются подсказки

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

Чтобы отобразить подсказки по данным алерта или инцидента,

в jq-выражении напишите alert или incident и укажите точку "." в конце.

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

Как вызываются подсказки

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

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

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

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

  • Удалите кавычки и добавьте открывающую двойную кавычку. Автоматически будет добавлена закрывающая двойная кавычка, и отобразится подсказка.
  • Введите любой символ между кавычками, а затем нажмите на клавишу Backspace. Это вернет вас в режим подсказки.

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

Пример алгоритма плейбука

В этом разделе

Параметры плейбука

Параметры шага выполнения

Параметры ResponseFunction