Перейти к содержанию

Обновление актива

Запрос

Тип Метод
PUT /service_assets/update

Описание: при выполнении запроса будет обновлена информация об активе в соответствии с заданными параметрами.

Работает по принципу частичного обновления, т.е. будут обновлены только те поля, которые были переданы в запросе.

Позволяет также управлять связями многие ко многим с другими моделями через поле _relations.

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

Управление работает следующим образом:

  • Если поля в активе _relations отсутствуют зависимости не обновляются;
  • Если поле зависимости указано и в значении не пустой список идентификаторов, то связи модели приводятся к описанному состоянию;
  • Если поле зависимости указано и в значении пустой список то все связи удаляются.

Например следующий запрос:

{
  "id": "uuid",
  ...
  "_relations": {
    "service_asset_groups": [] // - очистит все связи с группами активов
    // "service_asset_groups": ["uuid1", "uuid2"] // - создаст связь с 2 группами активов
    // "service_asset_groups": ["uuid1"] // - оставит связь только с первой группой активов
  }
}
Пример запроса

POST
http://127.0.0.1/cruddy/v2/service_assets/update

Тело запроса:

Параметр Тип Обязательность Описание
trace_id string Required Идентификатор трассировки действия пользователя для аудита
id string Required Идентификатор актива
type string Required Тип актива
name string Required Название актива
description string Optional Описание актива
coordinates string Optional Координаты актива (не используется)
active boolean Optional Флаг активности
scan_id string Optional ID сканера активов (не используется)
value integer Optional Значимость актива В платформе значимость актива может принимать следующие значения:
- 1 – ключевой;
- 2 – важный;
- 3 – некритичный;
- 4 – распределенный;
- 5 – тестовый.
client_note string Optional Клиентские заметки (не используется)
internal_note string Optional Внутренние заметки (не используется)
location string Required Расположение актива
network_exposure integer Optional Сетевая доступность актива. Тип сетевой видимости актива может принимать следующие значения:
- 1 – актив напрямую подключен к сети Интернет;
- 2 – актив располагается в демилитаризованной зоне (DMZ);
- 3 – актив подключен к сети Интернет через Proxy-сервер;
- 4 – актив имеет ограниченный доступ к сети Интернет и к ограниченному набору онлайн-сервисов. Например, тонкие клиенты, POS-терминалы, удаленные офисы;
- 5 – актив не подключен к сети.
responsible_person string Optional Ответственное лицо
technical_specialist string Optional Технический специалист
responsible_group_id string Optional ID группы ответственных
edited_by string Optional Кем изменён (не используется)
_relations object<relations> Optional Словарь идентификаторов связанных объектов
Модель данных _relations
Параметр Тип данных Обязательность Описание
hardware_informations Array<string> Optional Список связанных идентификаторов моделей информации об аппаратном обеспечении
logmule_go_results Array<string> Optional Список связанных идентификаторов моделей сработок
messages Array<string> Optional Список связанных идентификаторов моделей сообщений пользователей
network_interfaces Array<string> Optional Список связанных идентификаторов моделей сетевых интерфейсов
service_asset_findings Array<string> Optional Список связанных идентификаторов моделей инцидентов
service_asset_groups Array<string> Optional Список связанных идентификаторов моделей групп активов
software Array<string> Optional Список связанных идентификаторов моделей ПО
vulnerabilities Array<string> Optional Список связанных идентификаторов моделей уязвимостей
vulnerability_hosts Array<string> Optional Список связанных идентификаторов моделей хостов уязвимостей
Пример тела запроса

{
  "trace_id": "uuid",
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "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",
  "_relations": {
    "hardware_informations": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "logmule_go_results": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "messages": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "network_interfaces": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "service_asset_findings": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "service_asset_groups": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "software": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "vulnerabilities": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "vulnerability_hosts": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ]
  }
}

Успешный ответ

Статус код: 200 – успешное обновление информации об активе.

Формат: JSON.

Тело ответа: модель обновленного актива.

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

{
  "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
  "created_at": "2023-12-20T00:00:01.652259Z",
  "updated_at": "2023-12-20T00:00:01.652259Z",
  "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",
  "hardware_informations": [
    {
      "hardware_type": "string",
      "name": "string",
      "manufacturer": "string",
      "serial_number": "string",
      "additional_info": "string",
      "is_old": false
    }
  ],
  "logmule_go_results": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created_at": "2023-12-20T00:00:01.652259Z",
      "updated_at": "2023-12-20T00:00:01.652259Z",
      "rule_id": "uuid",
      "analysis_output": "string",
      "event": {},
      "compressed_event": "string",
      "risklevel": 5.35,
      "occurred_at": "2023-12-20T00:00:01.652259Z",
      "occurrence_id": "uuid",
      "error": "string",
      "service_asset_id": "uuid",
      "asset_info": {
        "ip": "string",
        "hostname": "string",
        "fqdn": "string",
        "mac": "string"
      },
      "incident_identifier": "string",
      "metadata": "{\"key\": \"value\"}"
    }
  ],
  "messages": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created_at": "2023-12-20T00:00:01.652259Z",
      "updated_at": "2023-12-20T00:00:01.652259Z",
      "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"
    }
  ],
  "network_interfaces": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created_at": "2023-12-20T00:00:01.652259Z",
      "updated_at": "2023-12-20T00:00:01.652259Z",
      "name": "string",
      "ip": "string",
      "mac": "string",
      "fqdn": "string",
      "os": "string",
      "service_asset_id": "09122f07-8b1e-48dc-96fd-379806f6c51e",
      "edited_by": "9501acb5-3be0-4719-a60e-dfa79624666c",
      "service_asset_name": "string",
      "service_asset_location": "string",
      "service_asset_value": 0,
      "service_asset_network_exposure": 0,
      "service_asset_group_names": [
        "string"
      ],
      "has_service_asset": true
    }
  ],
  "service_asset_findings": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created_at": "2023-12-20T00:00:01.652259Z",
      "updated_at": "2023-12-20T00:00:01.652259Z",
      "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_groups": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created_at": "2023-12-20T00:00:01.652259Z",
      "updated_at": "2023-12-20T00:00:01.652259Z",
      "name": "string",
      "network_ranges": [],
      "domain": "string",
      "itsm_synced": false,
      "regex": "string",
      "subject_id": "string",
      "object_id": "string",
      "is_kii": false,
      "is_fincert": false,
      "responsible_person": "string",
      "technical_specialist": "string",
      "system_id": "string",
      "responsible_group_id": "2d40d7ca-3218-4132-89ef-42e29379a567",
      "edited_by": "9501acb5-3be0-4719-a60e-dfa79624666c"
    }
  ],
  "software": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created_at": "2023-12-20T00:00:01.652259Z",
      "updated_at": "2023-12-20T00:00:01.652259Z",
      "name": "string",
      "raw_output_line": "string",
      "version": "string",
      "release": "string",
      "os": "string",
      "display_name": "",
      "description": "string",
      "software_group_id": "d7939ec9-4754-44e2-b522-27172eae4658",
      "tsvector": "'17':4,12 '17.5.2.1':8,16,17 'driver':3,11 'for':5,13 'microsoft':1,9 'odbc':2,10 'server':7,15 'sql':6,14"
    }
  ],
  "vulnerabilities": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created_at": "2023-12-20T00:00:01.652259Z",
      "updated_at": "2023-12-20T00:00:01.652259Z",
      "plugin_id": "8b176ba5-fa8e-458e-94ad-85d1ae8f3be0",
      "plugin_name": "string",
      "description": "string",
      "severity": 0,
      "additional_data": {},
      "protocol": "string",
      "port": 0,
      "occurrence_id": "8508ee33-23a1-4a06-ae02-1eb167405e7b",
      "synopsis": "string",
      "vulnerability_host_id": "f7091c30-f117-455e-9531-6af6bb5ece68",
      "exploitable": true,
      "plugin_output": "string",
      "solution": "string",
      "compare_port": -1,
      "compare_protocol": "",
      "service_asset_id": "09122f07-8b1e-48dc-96fd-379806f6c51e",
      "vulnerability_scan_id": "b72752e1-e814-4606-9275-f2ac9ca468b7",
      "external": false,
      "remote_exploitable": false,
      "cvss_vector": "string",
      "cvss_temporal_vector": "string",
      "cvss_base_score": 0,
      "cvss_temporal_score": 0,
      "risk_factor": "string",
      "plugin_modification_date": "string",
      "publication_date": "string"
    }
  ],
  "vulnerability_hosts": [
    {
      "id": "497f6eca-6276-4993-bfeb-53cbbbba6f08",
      "created_at": "2023-12-20T00:00:01.652259Z",
      "updated_at": "2023-12-20T00:00:01.652259Z",
      "ip": "192.168.0.1",
      "mac": "string",
      "fqdn": "string",
      "properties": "string",
      "scan_begin": null,
      "scan_end": null,
      "service_asset_id": "09122f07-8b1e-48dc-96fd-379806f6c51e",
      "vulnerability_scan_id": "b72752e1-e814-4606-9275-f2ac9ca468b7",
      "os": "string",
      "authenticated": true,
      "scan_error": "string",
      "name": "string",
      "authentication_info": {
        "key1": {
          "nestedKey": "nestedValue"
        },
        "key2": [
          "listItem1",
          "listItem2"
        ],
        "key3": 42,
        "key4": null
      }
    }
  ],
  "responsible_group": {
    "id": "uuid",
    "name": "string",
    "parent_group": "string",
    "realm_id": "string",
    "email": "string",
    "phone_number": "string",
    "leader_id": "string",
    "accept_risk": true,
    "visible_scan_schedules": true,
    "stop_scans": true,
    "edited_by": "string",
    "user_ids": [
      "uuid"
    ]
  },
  "_relations": {
    "hardware_informations": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "logmule_go_results": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "messages": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "network_interfaces": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "service_asset_findings": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "service_asset_groups": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "software": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "vulnerabilities": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ],
    "vulnerability_hosts": [
      "497f6eca-6276-4993-bfeb-53cbbbba6f08"
    ]
  },
  "is_local": true,
  "risk": "low",
  "risklevel": 1.2,
  "mac_ip": {
    "ip": "127.0.0.1",
    "mac": "FF:FF:FF:FF:FF:FF",
    "service_asset_id": "09122f07-8b1e-48dc-96fd-379806f6c51e"
  },
  "os_list": [
    [
      "macOs",
      "windows"
    ]
  ],
  "responsible_group_name": "Admins",
  "closed_count": 5,
  "risk_accepted_count": 4,
  "all_open_count": 3,
  "last_scan": "2023-12-20T00:00:01.652259Z",
  "authenticated": false,
  "authentication_info": {},
  "network_interface_ids": [
    "497f6eca-6276-4993-bfeb-53cbbbba6f08"
  ]
}

Другие возможные ответы

Код Ответ Описание
400 Bad Request Неверный тип параметра запроса, либо отсутствует обязательный параметр
404 Not Foundd Редактируемый объект не найден
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
}