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. Это вернет вас в режим подсказки.

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

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

{ "actionsSpecVersion": "1", "dslSpecVersion": "1.1.0", "version": "1", "playbookRunTimeout": "24h", "executionFlow": [ { "action": { "function": { "type": "blockLDAPAccount" "assets": "${[ alert.Assets[] | select(.Type == \"user\" and .IsAttacker) | .ID]}" }, "onError": "stop" } }, { "loop": { "batchSize": 1, "input": "${ [alert.OriginalEvents[] | [select(.DestinationProcessName != null and .DestinationProcessName != \"\")][] | .DestinationProcessName] }", "mode": "parallel", "onError": "stop", "steps": [ { "action": { "function": { "type": "killProcess", "assets": "${[ alert.Assets[] | select(.Type == \"host\") | .ID]}", "params": { "path": "${ .[0] }" } } } } ] } }, { "action": { "function": { "type": "avScan", "assets": "${[ alert.Assets[] | select(.Type == \"host\") | .ID]}", "params": { "scope": { "allowScanNetworkDrives": false, "area": "full" }, "wait": false } }, "onError": "stop" } } ] }

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

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

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

Параметры ResponseFunction

В начало
[Topic 267548]

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

Идентификатор параметра

Описание

name

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

description

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

version

Версия плейбука. Минимальная длина – 1.

Этот параметр является обязательным.

dslSpecVersion

Версия схемы DSL. Минимальная длина – 1.

Этот параметр является обязательным.

actionSpecVersion

Версия схемы действий по реагированию. Минимальная длина – 1.

Этот параметр является обязательным.

playbookRunTimeout

Максимальное время выполнения плейбука, включая ожидание в очереди. Максимальное значение – 48 часов (48h). Вы можете настроить максимальное время выполнения в часах (ч) и/или минутах (мин), например:

По умолчанию указано значение 24h.

inputType

Тип входящего объекта. Возможные значения: alert или incident. Тип входящего объекта указывается системой при создании или обновлении плейбука. Если значение задано в алгоритме, оно будет заменено системой.

input

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

output

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

timeouts

Определения тайм-аута.

executionFlow

Шаги выполнения плейбука.

Этот параметр является обязательным.

В начало
[Topic 270358]

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

Массив элементов шага выполнения описывает логику плейбука. Шаги выполняются в порядке, описанном в плейбуке. Есть несколько типов шагов выполнения:

  • Действие
  • Loop
  • Parallel
  • Decision
  • UpdateData

Параметры Action

Параметры Action вызывают функцию реагирования.

Идентификатор параметра

Описание

function

Объект, определяющий действие по реагированию. Дополнительную информацию см. в разделе Параметры ResponseFunction.

filterProduct

Этот параметр позволяет фильтровать компоненты для выполнения действия по реагированию. По запросу плагины компонентов фильтруются по разрешенным и ограниченным компонентам.

Например, параметр можно указать следующим образом:

"filterProduct": { "allowed": ["Название_приложения"] }

output

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

timeout

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

Если значение не указано, то используется значение тайм-аута по умолчанию.

manualApprove

Этот параметр позволяет настроить подтверждение действия по реагированию вручную. Возможные значения:

  • Логическое значение:
    • true – ручное подтверждение включено с параметрами по умолчанию.
    • false – ручное подтверждение выключено.
  • Объект ManualApprove.

onError

Этот параметр определяет поведение при возникновении ошибки во время выполнения действия по реагированию. Возможные значения:

  • stop – определяет прерывание плейбука в случае ошибки при выполнении действия по реагированию.
  • continue – определяет, что выполнение плейбука будет продолжено, даже если одно из действий по реагированию завершится с ошибкой. В этом случае плейбук запускает следующее действие по реагированию, указанное в алгоритме.

По умолчанию указано значение stop.

Обратите внимание, что при возникновении системной ошибки выполнение плейбука завершается с ошибкой независимо от указанного значения параметра onError.

Политика времени ожидания

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

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

Идентификатор параметра

Описание

name

Имя политики времени ожидания.

scheduleToCloseTimeout

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

Если значение не указано или равно 0, используется значение из поля playbookRunTimeout.

Output

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

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

Идентификатор параметра

Описание

action

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

  • merge – новые данные объединяются с текущими данными.
  • overwrite – текущие данные перезаписываются новыми данными.

filter

Этот параметр определяет выражение jq для обработки выходных данных.

Подтвердить вручную

Идентификатор параметра

Описание

timeout

Время ожидания подтверждения вручную в минутах. Минимальное значение – 10 минут (10m), максимальное – 180 минут (180m).

По умолчанию это значение равно 60 минут (60m).

emailNotifications

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

Параметры уведомлений по электронной почте

Идентификатор параметра

Описание

enabled

Флаг для включения уведомлений по электронной почте.

delay

Этот параметр определяет задержку перед отправкой уведомления по электронной почте. Значение указывается в минутах.

Минимальное значение – 5 минут (5m), максимальное – 30 минут (30m).

По умолчанию это значение равно 10 минут (10m).

В начало
[Topic 270333]

Loop

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

Параметры Loop используются для разделения массива входящих данных по элементам и для выполнения различных действий с элементами.

Идентификатор параметра

Описание

input

Выражение jq для создания массива или ссылки на массив.

aggregate

Этот параметр позволяет настроить правила агрегирования с помощью выражения jq.

output

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

  • Строковая константа: merge или overwrite.
  • Объект Output.

mode

Режим работы Loop. Возможные значения:

  • parallel – определяет, что все элементы обрабатываются параллельно. Количество потоков контролируется интерпретатором.
  • sequence – определяет, что все элементы обрабатываются последовательно.

По умолчанию значение равно parallel.

batchSize

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

Например, если функция плагина может обрабатывать не более 10 элементов в одном цикле, вы можете указать следующее значение параметра: batchSize = 10.

По умолчанию значение равно 1.

onError

Этот параметр определяет поведение при возникновении ошибки в одной из веток. Возможные значения:

  • stop – определяет завершение всех веток, если произошла ошибка. Остальные ветки продолжат работу.
    • Если mode=sequence, после возникновения ошибки в одной ветке все последующие ветки будут остановлены.
    • Если mode = parallel, после возникновения ошибки в одной ветке все ветки будут продолжать работать независимо друг от друга.
  • continue – определяет остановку одной из веток, в которой произошла ошибка. Остальные ветки продолжат работу.

По умолчанию указано значение stop.

steps

Массив шагов запуска.

В начало
[Topic 270351]

Parallel

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

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

Идентификатор параметра

Описание

input

Выражение jq для составления массива.

aggregate

Этот параметр позволяет настроить правила агрегирования с помощью выражения jq.

output

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

  • Строковая константа: merge или overwrite.
  • Объект Output.

onError

Этот параметр определяет поведение при возникновении ошибки в одной из веток. Возможные значения:

  • stop – определяет завершение всех веток, если произошла ошибка. Остальные ветки продолжат работу.
  • continue – определяет остановку одной из веток, в которой произошла ошибка. Остальные ветки продолжат работу.

По умолчанию указано значение stop.

branches

Ветки выполнения.

Ветка

Идентификатор параметра

Описание

name

Имя ветки, уникальное для Parallel.

steps

Массив шагов запуска.

В начало
[Topic 270352]

Decision

Шаг Decision позволяет выполнить шаг или набор шагов в соответствии с условием. Обратите внимание, что выполняется только первое проверенное условие.

Идентификатор параметра

Описание

conditions

Массив условий.

Условие

Идентификатор параметра

Описание

condition

Выражение jq, содержащие условия выполнения.

steps

Шаги выполнения для текущей ветки.

В начало
[Topic 270354]

UpdateData

Параметр UpdateData можно описать либо как jq-скрипт с логикой изменения состояния, либо как объект Output.

В начало
[Topic 270355]

Параметры ResponseFunction

Идентификатор параметра

Описание

action

Название действия по реагированию.

params

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

assets

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

Параметры действий по реагированию

Название действия по реагированию

Параметры

updateBases

Действием по реагированию является обновление баз. Возможные параметры:

  • wait. Возможные значения:
    • true
    • false

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

avScan

Действием по реагированию является поиск вредоносного ПО. Возможные параметры:

  • wait. Возможные значения:
    • true
    • false
  • scope. Возможные значения:
    • full – выполнить полную проверку устройства, на котором обнаружен алерт.
    • critical – выполнить проверку памяти ядра, запущенных процессов и загрузочных секторов жесткого диска.
    • selective – выполнить проверку указанных файлов. Чтобы указать путь к файлам, используйте параметр path.
  • allowScanNetworkDrives. Возможные значения:
    • true
    • false

    По умолчанию значение равно false.

    Этот параметр доступен только, если вы хотите выполнить полную проверку.

    Обратите внимание, что проверка сетевых дисков может привести к перегрузке системы.

  • path – выражение jq или строка с путем к файлам, которые вы хотите проверить. Также вы можете указать несколько путей к файлам.

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

moveHostsToAdministrationGroup

Действием по реагированию является перемещение в группу. Возможные параметры:

  • group – путь к группе администрирования Open Single Management Platform. Например, HQ/OrgUnit1.

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

quarantineFile

Действием по реагированию является перемещение на карантин. Возможные параметры:

  • path – путь к файлу, который нужно поместить на карантин.
  • md5 – MD5-хеш файла.
  • sha256 – SHA256-хеш файла.

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

  • Укажите полный путь к файлу, который вы хотите поместить на карантин. В этом случае вам не нужно указывать хеш MD5 или хеш SHA256.
  • Укажите путь к файлу и хеш файла (MD5 или SHA256).

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

killProcess

Действием по реагированию является прерывание процесса. Возможные параметры:

  • pid – идентификатор процесса.
  • path – путь к файлу, который нужно поместить на карантин.
  • md5 – MD5-хеш файла.
  • sha256 – SHA256-хеш файла.

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

changeAuthorizationStatus

Действием по реагированию является изменение статуса авторизации. Возможный параметр:

  • authorized. Возможные значения:
    • true
    • false

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

netIsolateOn

Действием по реагированию является включение изоляции сети. Возможные параметры:

  • isolationTimeoutSec – период изоляции сети. Вы можете указать этот параметр в часах или днях.

    Минимальное значение в часах – 1 час, максимальное – 9999 часов.

    Минимальное значение в днях – 1 день, максимальное – 416 дней.

    Период изоляции сети указывается в секундах.

  • exclusions – правила исключения. Вы можете указать одно или несколько правил исключения.
    • remoteIPV4Address – сетевой трафик с указанного IPv4-адреса будет исключен из блокировки. Например, 192.168.2.15.
    • remoteIPV6Address – сетевой трафик с указанного IPv6-адреса будет исключен из блокировки. Например, 2001:0db8:0000:0000:0000:ff00:0042.
    • remotePortRange – интервал удаленных портов.
    • localPortRange – интервал локальных портов.

    Если remotePortRange и localPortRange не указаны, правило исключения применяется ко всем портам.

  • exclusionsConflictBehavior – определяет поведение в случае конфликта между различными правилами исключения. Возможные параметры:
    • replace
    • skip
    • fail

netIsolateOff

Действием по реагированию является выключение изоляции сети.

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

executeCommand

Действием по реагированию является запуск исполняемого файла. Возможные параметры:

  • path – путь к пользовательскому скрипту или исполняемому файлу, который вы хотите запустить.
  • workingDirectory – путь к рабочей директории.
  • commandLineParameters – параметры командной строки, которые вы хотите применить к команде.

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

addFilePreventionRules

Действием по реагированию является добавление правила запрета. Возможные параметры:

  • md5 – хеш-массив MD5.
  • sha256 – хеш-массив SHA256.

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

deleteFilePreventionRules

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

  • md5 – хеш-массив MD5.
  • sha256 – хеш-массив SHA256.

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

resetFilePreventionRules

Действием по реагированию является удаление всех правил запрета.

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

assignKasapGroup

Действием по реагированию является назначение KASAP-группы. Возможные параметры:

groupId – идентификатор группы KASAP.

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

addToLDAPGroup

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

groupDN – отличительное имя (DN) группы LDAP.

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

removeFromLDAPGroup

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

groupDN – отличительное имя (DN) группы LDAP.

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

blockLDAPAccount

Действием по реагированию является блокировка учетной записи.

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

resetLDAPPassword

Действием по реагированию является сброс пароля.

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

executeCustomScript

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

  • commandLine – команда для запуска.
  • commandLineParameters – параметры командной строки, которые вы хотите применить к команде.
  • stdIn – стандартный входной поток. Используйте этот параметр, если для выполнения скрипта требуются дополнительные данные из стандартного ввода.
  • workingDirectory – путь к рабочей директории.

iocsEnrichment

Действием по реагированию является обогащение данных. Возможные параметры:

  • observables – выражение jq с массивом наблюдаемых объектов, которые вы хотите обогатить.
  • source – источник данных. Возможные значения:
    • OpenTIP
    • TIP
  • fullEnrichment – определяет количество запрошенных записей. Возможные значения:
    • true – запрашивать все записи из источника.
    • false – запрашивать 100 самых популярных записей из источника.

В начало
[Topic 270357]