Содержание
Алгоритм плейбука
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. Это вернет вас в режим подсказки.
Если вы удалите имя параметра посимвольно, вы не выйдете из режима подсказки, даже если полностью удалите имя параметра.
Параметры плейбука
Идентификатор параметра |
Описание |
|
Название плейбука. Указывается системой при создании или обновлении плейбука. Если значение задано в алгоритме, оно будет заменено системой. |
|
Описание плейбука. Указывается системой при создании или обновлении плейбука. Если значение задано в алгоритме, оно будет заменено системой. |
|
Версия плейбука. Минимальная длина – 1. Этот параметр является обязательным. |
|
Версия схемы DSL. Минимальная длина – 1. Этот параметр является обязательным. |
|
Версия схемы действий по реагированию. Минимальная длина – 1. Этот параметр является обязательным. |
|
Максимальное время выполнения плейбука, включая ожидание в очереди. Максимальное значение – 48 часов ( По умолчанию указано значение |
|
Тип входящего объекта. Возможные значения: |
|
Выражение jq, которое можно использовать для преобразования или фильтрации входящих данных перед выполнением плейбука. |
|
Выражение jq, которое можно использовать для изменения вывода плейбука перед выполнением. |
|
Определения тайм-аута. |
|
Шаги выполнения плейбука. Этот параметр является обязательным. |
Параметры шага выполнения
Массив элементов шага выполнения описывает логику плейбука. Шаги выполняются в порядке, описанном в плейбуке. Есть несколько типов шагов выполнения:
- Действие
- Loop
- Parallel
- Decision
- UpdateData
Параметры Action
Параметры Action
вызывают функцию реагирования.
Идентификатор параметра |
Описание |
|
Объект, определяющий действие по реагированию. Дополнительную информацию см. в разделе Параметры ResponseFunction. |
|
Этот параметр позволяет фильтровать компоненты для выполнения действия по реагированию. По запросу плагины компонентов фильтруются по разрешенным и ограниченным компонентам. Например, параметр можно указать следующим образом: "filterProduct": {
"allowed": ["Название_приложения"]
}
|
|
Этот параметр позволяет изменить значение, возвращаемое действием по реагированию, с помощью выражения jq и поместить его в данные плейбука (локальные или операционные). |
|
Этот параметр позволяет установить тайм-аут для вызова функциональности реагирования. Вы можете указать имя политики тайм-аута, установленной в плейбуке, или установить значения тайм-аута вручную. Если значение не указано, то используется значение тайм-аута по умолчанию. |
|
Этот параметр позволяет настроить подтверждение действия по реагированию вручную. Возможные значения:
|
|
Этот параметр определяет поведение при возникновении ошибки во время выполнения действия по реагированию. Возможные значения:
По умолчанию указано значение Обратите внимание, что при возникновении системной ошибки выполнение плейбука завершается с ошибкой независимо от указанного значения параметра |
Политика времени ожидания
Политика времени ожидания шагов выполнения. Система автоматически определяет политику времени ожидания по умолчанию.
Политику времени ожидания по умолчанию можно изменить, используя имя политики по умолчанию. В этом случае новая политика будет автоматически применяться ко всем шагам выполнения.
Идентификатор параметра |
Описание |
|
Имя политики времени ожидания. |
|
Максимальное время выполнения, включая ожидание в очереди и повторные попытки. Параметр указывается в строковом формате Go. Если значение не указано или равно 0, используется значение из поля |
Output
Параметр output
генерирует операционные данные в конце шага, которые затем передаются на следующий шаг. Укажите параметр output
, если вы хотите использовать результаты текущего шага плейбука на следующем шаге.
Чтобы избежать перегрузки системы, рекомендуется ограничивать данные, помещаемые в данные плейбука (локальные или операционные).
Идентификатор параметра |
Описание |
|
Этот параметр определяет, будут ли данные плейбука (локальные или операционные) перезаписываться или объединяться. Возможные значения:
|
|
Этот параметр определяет выражение jq для обработки выходных данных. |
Подтвердить вручную
Идентификатор параметра |
Описание |
|
Время ожидания подтверждения вручную в минутах. Минимальное значение – 10 минут ( По умолчанию это значение равно 60 минут ( |
|
Этот параметр позволяет настроить отправку уведомлений по электронной почте. |
Параметры уведомлений по электронной почте
Идентификатор параметра |
Описание |
|
Флаг для включения уведомлений по электронной почте. |
|
Этот параметр определяет задержку перед отправкой уведомления по электронной почте. Значение указывается в минутах. Минимальное значение – 5 минут ( По умолчанию это значение равно 10 минут ( |
Loop
Прежде чем указать параметр Loop
, убедитесь, что параметр aggregate
также указан в алгоритме плейбука.
Параметры Loop
используются для разделения массива входящих данных по элементам и для выполнения различных действий с элементами.
Идентификатор параметра |
Описание |
|
Выражение jq для создания массива или ссылки на массив. |
|
Этот параметр позволяет настроить правила агрегирования с помощью выражения jq. |
|
Настройка того, как применить выходные данные к текущим данным плейбука. Возможные значения:
|
|
Режим работы Loop. Возможные значения:
По умолчанию значение равно |
|
Этот параметр позволяет указать количество элементов массива, которые будут обрабатываться в одном цикле или в одном параллельном потоке. Вы можете использовать этот параметр, если функция плагина ограничивает количество входных элементов. Например, если функция плагина может обрабатывать не более 10 элементов в одном цикле, вы можете указать следующее значение параметра: По умолчанию значение равно |
|
Этот параметр определяет поведение при возникновении ошибки в одной из веток. Возможные значения:
По умолчанию указано значение |
|
Массив шагов запуска. |
Parallel
Прежде чем указать параметр Parallel
, убедитесь, что параметр aggregate
также указан в алгоритме плейбука.
Параметры Parallel
используются для одновременного выполнения нескольких действий с данными. В отличие от Loop, параметр Parallel
передает одни и те же входные данные в разные ветки выполнения.
Идентификатор параметра |
Описание |
|
Выражение jq для составления массива. |
|
Этот параметр позволяет настроить правила агрегирования с помощью выражения jq. |
|
Настройка того, как применить выходные данные к текущим данным плейбука. Возможные значения:
|
|
Этот параметр определяет поведение при возникновении ошибки в одной из веток. Возможные значения:
По умолчанию указано значение |
|
Ветки выполнения. |
Ветка
Идентификатор параметра |
Описание |
|
Имя ветки, уникальное для |
|
Массив шагов запуска. |
Decision
Шаг Decision
позволяет выполнить шаг или набор шагов в соответствии с условием. Обратите внимание, что выполняется только первое проверенное условие.
Идентификатор параметра |
Описание |
|
Массив условий. |
Условие
Идентификатор параметра |
Описание |
|
Выражение jq, содержащие условия выполнения. |
|
Шаги выполнения для текущей ветки. |
UpdateData
Параметр UpdateData можно описать либо как jq-скрипт с логикой изменения состояния, либо как объект Output
.
Параметры ResponseFunction
Идентификатор параметра |
Описание |
|
Название действия по реагированию. |
|
Параметр позволяет описать параметры действия по реагированию, которое вы хотите запустить. Вы можете указать параметр как выражение jq или как объект. Параметры действий по реагированию описаны в таблице ниже. |
|
Параметр позволяет использовать выражение jq или массив строк, чтобы указать список активов, для которых вы хотите запустить действие по реагированию. Параметр |
Параметры действий по реагированию
Название действия по реагированию |
Параметры |
|
Действием по реагированию является обновление баз. Возможные параметры:
Чтобы запустить это действие по реагированию, вам необходимо указать параметр |
|
Действием по реагированию является поиск вредоносного ПО. Возможные параметры:
Чтобы запустить это действие по реагированию, вам необходимо указать параметр |
|
Действием по реагированию является перемещение в группу. Возможные параметры:
Чтобы запустить это действие по реагированию, вам необходимо указать параметр |
|
Действием по реагированию является перемещение на карантин. Возможные параметры:
Вы можете указать параметры действия по реагированию одним из следующих способов:
Чтобы запустить это действие по реагированию, вам необходимо указать параметр |
|
Действием по реагированию является прерывание процесса. Возможные параметры:
Чтобы запустить это действие по реагированию, вам необходимо указать параметр |
|
Действием по реагированию является изменение статуса авторизации. Возможный параметр:
Чтобы запустить это действие по реагированию, вам необходимо указать параметр |
|
Действием по реагированию является включение изоляции сети. Возможные параметры:
|
|
Действием по реагированию является выключение изоляции сети. Чтобы запустить это действие по реагированию, вам необходимо указать параметр |
|
Действием по реагированию является запуск исполняемого файла. Возможные параметры:
Чтобы запустить это действие по реагированию, вам необходимо указать параметр |
|
Действием по реагированию является добавление правила запрета. Возможные параметры:
Чтобы запустить это действие по реагированию, вам необходимо указать параметр |
|
Действием по реагированию является удаление правила запрета. Возможные параметры:
Чтобы запустить это действие по реагированию, вам необходимо указать параметр |
|
Действием по реагированию является удаление всех правил запрета. Чтобы запустить это действие по реагированию, вам необходимо указать параметр |
|
Действием по реагированию является назначение KASAP-группы. Возможные параметры:
Чтобы запустить это действие по реагированию, вам необходимо указать параметр |
|
Действием по реагированию является добавление пользователя в группу безопасности. Возможные параметры:
Чтобы запустить это действие по реагированию, вам необходимо указать параметр |
|
Действием по реагированию является удаление пользователя из группы безопасности. Возможные параметры:
Чтобы запустить это действие по реагированию, вам необходимо указать параметр |
|
Действием по реагированию является блокировка учетной записи. Чтобы запустить это действие по реагированию, вам необходимо указать параметр |
|
Действием по реагированию является сброс пароля. Чтобы запустить это действие по реагированию, вам необходимо указать параметр |
|
Действием по реагированию является выполнение пользовательских скриптов. Возможные параметры:
|
|
Действием по реагированию является обогащение данных. Возможные параметры:
|