Перейти к основному содержимому
Версия: 6.1

Incident Manager API

Примеры ответов

Примеры ответов сокращены: повторяющиеся объекты и поля, не влияющие на понимание структуры, не приведены. Персональные данные и сведения об инфраструктуре обезличены.

Point In Time​

Для корректной работы пагинации перед запросом инцидентов и результатов агрегаций необходимо запросить Point In Time (PIT). При переключении страниц Incident Manager PIT должен остаться прежним, в ином случае необходимо запросить новый PIT, а старый удалить при помощи запроса к API.

Удаление PIT

Количество активных PIT в системе ограничено, поэтому если PIT более не актуален, необходимо выполнить запрос на его удаление.

Запрос PIT​

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

GET _im/incidents/pit

Для получения PIT для запроса только инцидентов необходимо добавить в запрос флаг is_show_aggs=false:

GET _im/incidents/pit?is_show_aggs=false

Удаление PIT​

Когда PIT становится неактуальным (например, пользователь закрыл Incident Manager или обновил фильтры), его необходимо удалить.

DELETE _im/incidents/pit
{
"id": "{pit_id}"
}

Получение инцидентов и результатов агрегаций​

Общий вид запроса для получения инцидентов и результатов агрегаций:

GET _im/incidents_full_types
{
"pit": "pit_id",
"from": 0,
"size": 25,
"search_query": "{\"match_all\":{}}",
"additional_fields": [],
"end_time": "now",
"start_time": "now-1d",
"with_total_docs": true,
"is_show_aggs": true
}
НазваниеСинтаксисОписание
pit<string>Point In Time, полученный при запросе PIT.
from<int>Начальный индекс для поиска.
size<int>Количество результатов в ответе.
search_query<string>DSL-запрос, сформированный на основе поисковой строки.
additional_fields<array>См. Additional Fields.
start_time<string>Начальная временная метка поиска.
end_time<string>Конечная временная метка поиска.
with_total_docs<bool>При значении true дополнительно возвращает поле total_docs, содержащее общее количество документов.
is_show_aggs<bool>При значении true возвращает инциденты и результаты агрегаций, при значении false — только инциденты.
Запрос без PIT

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

Additional Fields​

Параметр additional_fields используется для передачи пользовательских фильтров. Он представляет собой массив объектов, содержащих поля name, type и value.

НазваниеСинтаксисОписание
name<string>Название поля для фильтрации.
type<string>Тип поля. Допустимы значения number, text, select, multiselect.
value<string>Значение фильтра.
Множественный выбор

При type=multiselect поле value должно иметь не строковый тип, а массив строк.

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

[
{
"name": "select_field",
"type": "select",
"value": "test"
},
{
"name": "text_field",
"type": "text",
"value": "test*"
},
{
"name": "multiselect_field",
"type": "multiselect",
"value": ["t1", "t2"]
}
]

Получение статистики инцидентов и результатов агрегаций​

Общий вид запроса для получения статистики инцидентов и результатов агрегаций:

POST _im/incidents_full_types/stats/severity
{
"search_query": "{\"match_all\":{}}",
"additional_fields": [],
"end_time": "now",
"start_time": "now-1d",
"is_show_aggs": true
}

Параметры аналогичны запросу инцидентов и результатов агрегаций.

Пример ответа
[
{
"severity": "2",
"result_count": 350
},
{
"severity": "3",
"result_count": 92
},
{
"severity": "4",
"result_count": 6
},
{
"severity": "1",
"result_count": 4
}
]

Результаты агрегаций​

Получение результата агрегации и инцидентов по ID результата агрегации​

GET _im/aggregations/results?incident_aggregation_result_id={id}
Пример запроса и ответа
GET _im/aggregations/results?incident_aggregation_result_id=AGG-260914-222
{
"incident_agg_result": {
"_meta": {
"from_system": false,
"id": "AGG-260914-222"
},
"aggregation_info": {
"severity": "2",
"workflow_id": "initial-workflow",
"id": "MA:_Podozritelnoe_povedenie_polzovatelya",
"status": "init"
},
"mitre_fields": [
{
"severity": "high",
"job_id": "RULE_-_MA_-_Sysmon_-_OS_Credential_Dumping",
"layers": ["<layer_id>"],
"technique_id": ["T1003"]
}
],
"incident_identifiers": [
"INC-260914-499249",
"INC-260914-499248"
],
"incidents_count": 9,
"status": "init"
},
"incidents": {
"INC-260914-499249": {
"_meta": {
"id": "INC-260914-499249"
},
"incident_title": "Suspicious activity on workstation-01",
"severity": "2",
"aggregation_id": "MA:_Podozritelnoe_povedenie_polzovatelya",
"status": "init"
}
}
}

Получение всех результатов агрегации по ID агрегации​

GET _im/aggregations/results?incident_aggregation_id={id}
Пример запроса и ответа
GET _im/aggregations/results?incident_aggregation_id=MA:_Podozritelnoe_povedenie_polzovatelya
[
{
"incident_agg_result": {
"_index": ".sm_incident_aggregation_results-2026.38",
"_meta": {
"id": "AGG-260916-226"
},
"aggregation_info": {
"id": "MA:_Podozritelnoe_povedenie_polzovatelya",
"severity": "2",
"status": "init"
},
"incident_identifiers": [
"INC-260916-500281",
"INC-260916-500280"
],
"incidents_count": 5
},
"incidents": {
"INC-260916-500281": {
"_meta": {
"id": "INC-260916-500281"
},
"severity": "2",
"status": "init"
}
}
}
]

Получение всех результатов агрегаций​

GET _im/aggregations/results
Пример ответа
[
{
"_index": ".sm_incident_aggregation_results-2026.38",
"_meta": {
"id": "AGG-260916-226"
},
"aggregation_info": {
"id": "MA:_Podozritelnoe_povedenie_polzovatelya",
"severity": "2",
"status": "init"
},
"incident_identifiers": [
"INC-260916-500281",
"INC-260916-500280"
],
"incidents_count": 5,
"closed": false
}
]

Обновление результата агрегации​

PUT _im/aggregations/result/{incident_aggregation_id}/{incident_aggregation_result_id}?sync={bool}
{
"<field_name>": "<new_value>"
}
предупреждение

В тело запроса необходимо передавать только измененные поля, например:

{
"comment": "тестовый комментарий",
"reviewer": "test"
}
Sync

При значении параметра sync=true при изменении полей status, workflow_id, severity, comment и reviewer в результате агрегации эти поля также изменятся в инцидентах, содержащихся в агрегации.

Пример запроса и ответа
PUT _im/aggregations/result/MA:_Podozritelnoe_povedenie_polzovatelya/AGG-260914-222?sync=false
{
"comment": "API update test"
}
Updated aggregation result with id: AGG-260914-222

Получение данных MITRE ATT&CK по ID инцидента​

Запрос возвращает сведения о техниках MITRE ATT&CK®, связанных с инцидентом. Эти данные не формируются из полей карточки инцидента: источником служат документы в индексе .smos_mitre-*, созданные активным действием Фиксация техник MITRE ATT&CK®.

Чтобы связать запись MITRE ATT&CK® с инцидентом, в одном срабатывании задания действие Фиксация техник MITRE ATT&CK® должно выполняться после действия Создание инцидента. В этом случае Smart Monitor автоматически добавляет в запись поле incident_id.

ПолеОписание
incident_idИдентификатор связанного инцидента.
@timestampВремя создания записи о срабатывании техники.
custom_fieldsПоля результата, переданные активным действием. Состав зависит от настроек задания.
layersИдентификаторы слоев MITRE ATT&CK®, выбранных в активном действии.
ruleНазвание корреляционного правила.
technique_idИдентификаторы техник MITRE ATT&CK®, выбранных в активном действии.
GET _im/incidents/{incident_id}/mitre
Пример запроса и ответа
GET _im/incidents/INC-260915-499823/mitre
[
{
"incident_id": "INC-260915-499823",
"@timestamp": "2026-09-15T10:07:19.500+0300",
"custom_fields": {
"host.ip": "192.0.2.10",
"image": "C:\\Windows\\System32\\example.exe",
"process_id": "595533",
"user.name": "user01",
"host.name": "workstation-01"
},
"layers": ["<layer_id>"],
"rule": "RULE - MA - Sysmon - System Time Discovery",
"technique_id": ["T1124"]
}
]

CRUD для инцидентов​

Получение инцидента по ID​

GET _im/incidents/{incident_id}
Пример запроса и ответа
GET _im/incidents/INC-260915-499823
{
"incident_type": "default",
"workflow_id": "initial-workflow",
"_index": ".smos_incident-smart_sec-2026.38",
"_meta": {
"id": "INC-260915-499823"
},
"incident_title": "System time discovery on workstation-01",
"severity": "2",
"is_aggregated": false,
"reviewer": "empty",
"tags": [
{
"type": "mitre",
"value": "T1124"
}
],
"incident_category_id": "smart_sec",
"_id": "INC-260915-499823",
"status": "init"
}

Получение всех инцидентов​

GET _im/incidents/
Пример ответа
[
{
"incident_type": "default",
"workflow_id": "initial-workflow",
"_index": ".smos_incident-smart_sec-2026.38",
"_meta": {
"id": "INC-260916-500293"
},
"incident_title": "System time discovery on workstation-01",
"severity": "2",
"incident_category_id": "smart_sec",
"_id": "INC-260916-500293",
"status": "init"
}
]
Фильтры

При запросе всех инцидентов с помощью параметров GET можно указывать фильтры.

Например, для запроса инцидентов за последний час, у которых поле test_field равно 5, можно использовать следующий запрос:

GET _im/incidents?start_time=now-1h&end_time=now&test_field=5

Создание инцидента​

POST _im/incidents/{incident_id}

В теле запроса необходимо передать данные нового инцидента. Значение _meta.id должно совпадать с incident_id в пути запроса.

Пример запроса и ответа
POST _im/incidents/INC-260915-900001
{
"_meta": {
"id": "INC-260915-900001"
},
"incident_type": "default",
"incident_category_id": "smart_sec",
"incident_title": "API test incident",
"incident_description": "Incident created to test the Incident Manager API",
"severity": "2",
"status": "init",
"workflow_id": "initial-workflow",
"reviewer": "empty",
"damage": "0",
"source_events": "no",
"is_aggregated": false,
"aggregation_id": "",
"incident_index_suffix": "",
"drilldown_type": "",
"drilldown_context": "",
"comment": "",
"info": "",
"line": "",
"log": "",
"division": ["IT"],
"user_sm": ["Все"],
"fields": {},
"order_fields": [],
"inventory": [],
"tags": []
}
{
"message": "created"
}

Обновление инцидента​

PUT _im/incidents/{incident_id}
предупреждение

В тело запроса необходимо передавать только измененные поля и _meta, например:

{
"_meta": {
"id": "i59eb2be0-1841-11ef-9ffd-ad0f43d0acc5"
},
"comment": "тестовый комментарий",
"reviewer": "test"
}

Удаление инцидента​

DELETE _im/incidents/{incident_id}
Пример запроса и ответа
DELETE _im/incidents/INC-260915-900001
deleted

Bulk обновление инцидентов​

POST _im/incidents/bulkUpdate

Тело запроса передается в формате NDJSON: операция update и объект doc располагаются на отдельных строках. После последней строки должен быть перевод строки.

Пример запроса и ответа
POST _im/incidents/bulkUpdate
{"update":{"_index":".smos_incident-smart_sec-2026.38","_id":"INC-260914-499249"}}
{"doc":{"comment":"API bulk update test","_meta":{"id":"INC-260914-499249"}}}
OK
Состав объекта doc

В тело запроса необходимо передавать только измененные поля и _meta.