Kaspersky Symphony XDR: Single Management Platform

Импорт активов

POST /xdr/api/v1/kuma/assets/import

Массовое создание или обновление активов.

Если указан FQDN актива, он играет роль уникального идентификатора актива в рамках тенанта. Если имя актива не указано, оно заполняется либо значением FQDN, либо значением первого IP-адреса. Активы, импортированные из KSC не могут быть обновлены, поэтому в процессе импорта могут возникать конфликты по FQDN, если в тенанте уже существует KSC-актив с таким FQDN. Возникновение такого конфликта препятствует обработке конфликтующего актива, но не препятствует обработке других активов, указанных в теле запроса. Позволяет заполнять пользовательские поля по uuid из настроек assetsCustomFields.

Доступ: Главный администратор, Администратор тенанта, Аналитик второго уровня, Аналитик первого уровня, Менеджер SOC, Доступ к объектам КИИ, Подтверждающий.

Тело запроса

Формат: JSON

type Request struct { TenantID string `json:"tenantID"`     Assets []Asset `json:"assets"` }   type Asset struct { Name string `json:"name"` FQDN string `json:"fqdn"` IPAddresses []string `json:"ipAddresses"` MACAddresses []string `json:"macAddresses"` Owner string `json:"owner"` OS *OS `json:"os"` Software []Software `json:"software"` Vulnerabilities []Vulnerability `json:"vulnerabilities"` CustomFields []CustomField `json:"customFields"` }   type OS struct { Name string `json:"name"` Version uint64 `json:"version"` }   type Software struct { Name string `json:"name"` Version string `json:"version"` Vendor string `json:"vendor"` }   type Vulnerability struct { KasperskyID string `json:"kasperskyID"` ProductName string `json:"productName"` DescriptionURL string `json:"descriptionURL"` RecommendedMajorPatch string `json:"recommendedMajorPatch"` RecommendedMinorPatch string `json:"recommendedMinorPatch"` SeverityStr string `json:"severityStr"` Severity uint64 `json:"severity"` CVE []string `json:"cve"` ExploitExists bool `json:"exploitExists"` MalwareExists bool `json:"malwareExists"` }   type CustomFields struct { ID string `json:"id"` Value string `json:"value"` }

Обязательные поля Request

Имя

Тип данных

Обязательное ли поле

Описание

Пример значения

tenantID

Строка

Да

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

00000000-0000-0000-0000-000000000000

assets

[]Asset

Да

Массив импортируемых активов

 

Обязательные поля Asset

Имя

Тип данных

Обязательное ли поле

Описание

Пример значения

fqdn

Строка

Если не указан ipAddresses

FQDN актива. Рекомендуется указывать именно FQDN, а не просто имя устройства. Приоритетный признак для идентификации актива.

[my-asset-1.example.com]

[my-asset-1]

ipAddresses

[]string

Если не указан fqdn

Массив IP-адресов актива. IPv4-адрес или IPv6-адрес. Первый элемент массива используется как второстепенный признак для идентификации актива.

["192.168.1.1", "192.168.2.2"]

["2001:0db8:85a3:0000:0000:8a2e:0370:7334"]

Действие по реагированию

HTTP-код: 200

Формат: JSON

type Response struct {

InsertedIDs map[int64]interface{} `json:"insertedIDs"`

UpdatedCount uint64 `json:"updatedCount"`

Errors []ImportError `json:"errors"`

}

 

type ImportError struct {

Index uint64 `json:"index"`

Message string `json:"message"`

}

Возможные ошибки

HTTP-код

Описание

Значение поля message

Значение поля details

400

Не указан идентификатор тенанта (tenantID)

tenantID required

-

400

Попытка импорта активов в общий тенант

import into shared tenant not allowed

-

400

В теле запроса не указан ни один актив

at least one asset required

-

400

Не указано ни одно из обязательных полей

one of fields required

asset[<index>]: fqdn, ipAddresses

400

Неверный FQDN

invalid value

asset[<index>].fqdn

400

Неверный IP-адрес

invalid value

asset[<index>].ipAddresses[<index>]

400

Дублируется IP-адрес

duplicated value

asset[<index>].ipAddresses

400

Неверный MAC-адрес

invalid value

asset[<index>].macAddresses[<index>]

400

Дублируется MAC-адрес

duplicated value

asset[<index>].macAddresses

403

Пользователь не имеет необходимой роли в указанном тенанте

Доступ запрещен.

-

404

Указанный тенант не найден

tenant not found

-

406

Указанный тенант выключен

tenant disabled

-

500

Любая другая внутренняя ошибка.

Переменная.

Переменная.