Создание/обновление инцидентов из уязвимостей
Запрос
Тип | Метод |
---|---|
POST |
/service_asset_findings/bulk_create_with_vulnerabilities |
Описание: При выполнении запроса будет создан/обновлен инцидент на основе обнаруженной уязвимости по следующей логике:
- Из уязвимости извлекаются данные актива.
-
Выполняется поиск по активу и типу инцидент:
- если инцидент находится, то он будет обновлен;
- иначе создается новый инцидент.
-
Для этого инцидента создаётся происшествие (occurrence) c
event_type: vulnerability
. - Если вместо идентификатора типа инцидента указано
will_be_created
, для данной уязвимости будет создан новый тип инцидента.
Пример запроса
POST
http://127.0.0.1/cruddy/v2/service_asset_findings/bulk_create_with_vulnerabilities
Тело запроса:
Параметр | Тип данных | Обязательность | Описание |
---|---|---|---|
vulnerability_finding_ids | object> |
Required | Словарь содержайщий ID уязвимостей и ID типов инцидентов: |
user_id | string |
Required | Идентификатор пользователя, присваивается в updated_by инцидентов и новых типов инцидентов. Также определяет значение поля customer_created новых инцидентов:- если администратор: false ;- иначе true . |
Пример тела запроса
{
"vulnerability_finding_ids": {
"96a0b522-1327-4b33-9b26-e1d75f6a6774": "4552a850-9a2f-4840-9d8a-0960aee9232c",
"a91736d0-a536-4440-b651-6e18ce6bbd45": "5b545017-ade0-4fa1-a36b-98ede079df0f"
},
"user_id": "128064b6-c95a-45b5-a0ee-94360df67274"
}
Успешный ответ
Статус код: 200
– успешное создание/обновление инцидентов и типов.
Формат: JSON
.
Тело ответа:
Параметр | Тип данных | Описание |
---|---|---|
_ | Array <ServiceAssetFinding> |
Список созданных/обновленных инцидентов |
Пример ответа
{
"_": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"created_at": "2023-12-20T00:00:01.652259Z",
"updated_at": "2023-12-20T00:00:01.652259Z",
"trace_id": "df570c03-5a03-4cea-8df0-c162d05127ac",
"description": "string",
"risk_impact": "string",
"solution": "string",
"mitigation": "string",
"status": "assigned_customer",
"risklevel": 0,
"service_asset_id": "09122f07-8b1e-48dc-96fd-379806f6c51e",
"finding_id": "feebf65a-2eaa-4fae-aab2-772450efdffe",
"analysis_output": "string",
"synopsis": "string",
"title": "string",
"risk": "none",
"acknowledged_at": "2023-12-20T00:00:01.652259Z",
"alert_type": "automatic",
"client_note": "string",
"internal_note": "string",
"external": false,
"immediate_action_score": 0,
"throughput_period": "grace",
"throughput_period_change": "2023-12-20T00:00:01.652259Z",
"customer_created": false,
"c_visible_since": "2023-12-20T00:00:01.652259Z",
"c_visible_since_in_days": 0,
"c_reopened_count": 0,
"c_last_customer_status_change": "2023-12-20T00:00:01.652259Z",
"logmule_identifier": "string",
"c_remote_exploitable": true,
"c_occurrence_count": 0,
"с_customer_retention_time": 0,
"last_occurrence_id": "92c2542a-a9bb-4370-b835-20b1c9ac1fe9",
"itsm_last_synced_at": "2023-12-20T00:00:01.652259Z",
"itsm_sync_status": "scheduled",
"external_id": "string",
"itsm_sync_error": "string",
"user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
"updated_by": "deea00dc-b6b6-4412-a483-26ac61e1f6fe",
"group_id": "306db4e0-7449-4501-b76f-075576fe2d8f",
"acknowledged_by": "57e93f65-9db5-4b3c-8761-f3edd8ac8276",
"created_by_customer": "d299b51b-03f1-4b72-b793-1fb027d05389",
"edited_by": "9501acb5-3be0-4719-a60e-dfa79624666c",
"incident_group_id": "5ce55b8d-2342-4286-bf58-bfe807f8c05c",
"reopened_at": "2023-12-20T00:00:01.652259Z",
"display_id": 0,
"service_asset_name": "string",
"service_asset_active": true,
"occurrence_count": 0,
"user_short_name": "string",
"group_name": "string",
"finding_display_id": 0,
"reopened_count": 0,
"event_type": "string",
"finding_type": "string",
"ports": [
0
],
"last_occurrence_ip": "string",
"service_asset_value": 0,
"tag_titles": [
"string"
],
"last_status_change": "2023-12-20T00:00:01.652259Z",
"last_scan": "2023-12-20T00:00:01.652259Z",
"authenticated": true,
"last_occurrence": "2023-12-20T00:00:01.652259Z",
"remote_exploitable": true,
"service_asset_network_exposure": 0,
"finding_category": "string",
"display_title": "string",
"customer_retention_time": 0,
"visible_since": "2023-12-20T00:00:01.652259Z",
"visible_since_in_days": 0,
"last_customer_status_change": "2023-12-20T00:00:01.652259Z",
"finding_title": "string",
"incident_group_title": "string",
"custom_values": {},
"service_asset": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"created_at": "2023-12-20T00:00:01.652259Z",
"updated_at": "2023-12-20T00:00:01.652259Z",
"trace_id": "uuid",
"type": "Host",
"name": "Актив",
"description": "Описание актива",
"coordinates": "--- []",
"active": true,
"scan_id": "9a59f0f5-5572-476d-a7fc-c960ef43a5af",
"value": 3,
"client_note": "string",
"internal_note": "string",
"location": "string",
"network_exposure": 3,
"responsible_person": "string",
"technical_specialist": "string",
"responsible_group_id": "2d40d7ca-3218-4132-89ef-42e29379a567",
"edited_by": "9501acb5-3be0-4719-a60e-dfa79624666c"
},
"finding": {},
"last_occurrence_entity": {
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"created_at": "2023-12-20T00:00:01.652259Z",
"updated_at": "2023-12-20T00:00:01.652259Z",
"trace_id": "uuid",
"event_type": "manual_source",
"ip": "string",
"mac": "string",
"port": 0,
"start_occurrence": "2023-12-20T00:00:01.652259Z",
"end_occurrence": "2023-12-20T00:00:01.652259Z",
"service_asset_finding_status_change_id": "8d6bf02f-aab2-4fbc-ab53-ee5963306be7",
"service_asset_finding_id": "08a5c673-3c5c-48ab-bf6c-f2ee47d8df88",
"fqdn": "string",
"incident_identifier": "string",
"fincert_sync_status": 10,
"fincert_id": "",
"sopka_sync_status": 10,
"sopka_id": "",
"fincert_sync_result": "7325f612-d464-4395-bb86-c83b3b6893fb",
"sopka_sync_result": "d91aad7a-d9ad-4941-bf19-b94f42afada9"
},
"user": {},
"group": {},
"incident_group": {
"title": "string",
"description": "string",
"user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
"group_id": "306db4e0-7449-4501-b76f-075576fe2d8f"
},
"occurrences": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"created_at": "2023-12-20T00:00:01.652259Z",
"updated_at": "2023-12-20T00:00:01.652259Z",
"trace_id": "uuid",
"event_type": "manual_source",
"ip": "string",
"mac": "string",
"port": 0,
"start_occurrence": "2023-12-20T00:00:01.652259Z",
"end_occurrence": "2023-12-20T00:00:01.652259Z",
"service_asset_finding_status_change_id": "8d6bf02f-aab2-4fbc-ab53-ee5963306be7",
"service_asset_finding_id": "08a5c673-3c5c-48ab-bf6c-f2ee47d8df88",
"fqdn": "string",
"incident_identifier": "string",
"fincert_sync_status": 10,
"fincert_id": "",
"sopka_sync_status": 10,
"sopka_id": "",
"fincert_sync_result": "7325f612-d464-4395-bb86-c83b3b6893fb",
"sopka_sync_result": "d91aad7a-d9ad-4941-bf19-b94f42afada9"
}
],
"custom_field_values": [
{
"custom_field_id": "a0fa4fc5-cabd-4219-9751-6d126c809065",
"service_asset_finding_id": "08a5c673-3c5c-48ab-bf6c-f2ee47d8df88",
"string_value": "string",
"integer_value": 0,
"float_value": 0,
"date_value": "2023-12-20T00:00:01.652259Z",
"json_value": {},
"boolean_value": true
}
],
"comments": [
{}
],
"documents": [
{}
],
"messages": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"created_at": "2023-12-20T00:00:01.652259Z",
"updated_at": "2023-12-20T00:00:01.652259Z",
"trace_id": "uuid",
"subject": "string",
"body": "string",
"service_asset_id": "09122f07-8b1e-48dc-96fd-379806f6c51e",
"service_asset_finding_id": "08a5c673-3c5c-48ab-bf6c-f2ee47d8df88",
"service_asset_finding_status_change_id": "8d6bf02f-aab2-4fbc-ab53-ee5963306be7",
"automated": true,
"finding_id": "feebf65a-2eaa-4fae-aab2-772450efdffe",
"itsm_sync_status": "not_synced",
"itsm_last_synced_at": "string",
"itsm_sync_error": "string",
"sender_id": "3194e023-c19f-4a42-9172-9e18d68e3a3a"
}
],
"service_asset_finding_status_changes": [
{
"id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
"created_at": "2023-12-20T00:00:01.652259Z",
"updated_at": "2023-12-20T00:00:01.652259Z",
"trace_id": "uuid",
"service_asset_finding_id": "08a5c673-3c5c-48ab-bf6c-f2ee47d8df88",
"status": "string",
"revisit_at": "string",
"itsm_sync_status": "not_synced",
"itsm_last_synced_at": "string",
"itsm_sync_error": "string",
"user_id": "a169451c-8525-4352-b8ca-070dd449a1a5"
}
],
"service_asset_groups": [
{
"title": "string",
"description": "string",
"user_id": "a169451c-8525-4352-b8ca-070dd449a1a5",
"group_id": "306db4e0-7449-4501-b76f-075576fe2d8f"
}
],
"_relations": {
"occurrences": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"custom_field_values": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
],
"comments": [
"string"
],
"documents": [
"string"
],
"messages": [
"string"
],
"service_asset_finding_status_changes": [
"string"
],
"service_asset_groups": [
"497f6eca-6276-4993-bfeb-53cbbbba6f08"
]
}
}
]
}
Другие возможные ответы
Код | Ответ | Описание |
---|---|---|
400 |
1.Bad Request 2. empty vulnerability_finding_ids 3. empty vulnerability ID should be uuid format 4. vulnerability ID is empty 5. finding ID should be uuid format or will_be_created 6. finding ID is empty |
1. Неверный тип параметра запроса, либо отсутствует обязательный параметр 2. Не заданы ID уязвимостей и типов инцидентов 3. Недопустимый формат ID уязвимости 4. ID уязвимости не может быть пустой строкой 5. Недопустимое значение ID типа инцидента, должен быть uuid или will_be_created 6. ID типа инцидента не может быть пустой строкой |
404 |
Not Found |
Редактируемый объект не найден в БД |
500 |
Internal Server Error |
Другие ошибки при редактировании объекта |
Примечание: Текст ошибки не фиксированный, может изменяться в зависимости от фактического ответа получателя запроса.
Пример ответа
Код 400
{ "error": "Bad Request", "error_code": 400 }
Код 404
{ "error": "Not Found", "error_code": 404 }
Код 500
{ "error": "Internal Server Error", "error_code": 500 }