Сравнение результатов сканирования
Запрос
| Тип | Метод |
|---|---|
POST |
/vulnerabilities/comparison/search |
Описание: При выполнении запроса будут возвращена информация о результатах сканирования для сравнения. Успешный ответ будет содержать следующую информацию:
- уязвимости;
- активы уязвимостей, включая
- счетчики уязвимостей по уровню важности для каждого актива;
- хосты уязвимостей в поле
scanned_host_data; - сетевые интерфейсы в поле
known_host_data.
- счетчики уязвимостей по уровню важности.
Пример запроса
POST
http://127.0.0.1/cruddy/v2/vulnerabilities/comparison/search
Параметры запроса:
| Параметр | Тип данных | Обязательность | Описание |
|---|---|---|---|
| tab | string |
Required | Фильтр по статусу уязвимости. Возможные значения: - to_add;- processed;- to_close. |
Тело запроса:
Примечание: Обязательно нужен фильтр для
vulnerability_scan_idс типомequal.
| Параметр | Тип данных | Обязательность | Описание |
|---|---|---|---|
| filters | Array<filters> |
Required | Список фильтров по полям модели |
| ordering | Array<ordering> |
Required | Настройки сортировки |
| virtual_search | string |
Required | Поле для поиска по подстроке по всем строковым полям модели и настройка строгого поиска |
| relations | Array<string> |
Required | Список связей для выборки. Список доступных связей отображается в ответе запроса на получение метаданных - “/_meta” |
| limit | integer |
Required | Лимит выдачи найденных объектов |
| offset | integer |
Required | Отступ от начала результата поиска в базе |
Array of filters
| Параметр | Тип данных | Обязательность | Описание |
|---|---|---|---|
| field | string |
Required | Название поля модели |
| value | object |
Required | Значение для фильтрации |
| filter_type | string |
Required | В зависимости от этого значения определяется допустимые значения в поле value. Допустимые значения:- equal -> строка|число, проверяет равенство значений |
| negation | boolean |
Optional | Флаг использования отрицания при проверке фильтра |
Array of ordering
| Параметр | Тип | Обязательность | Описание / Допустимые значения |
|---|---|---|---|
| field | string |
Required | Поле модели выбранное для сортировки |
| direction | string |
Required | Направление сортировки. Допустимые значения: - asc - desc |
Пример тела запроса
{
"filters": [
{
"field": "string",
"value": [
"name",
[
"value1",
"value2"
]
],
"filter_type": "equal",
"negation": false
}
],
"ordering": [
{
"field": "string",
"direction": "asc"
}
],
"virtual_search": "string",
"relations": [
"service_asset_findings",
"logmule_go_rules",
"user"
],
"limit": 20,
"offset": 0
}
Успешный ответ
Статус код: 200 – успешный ответ.
Формат: JSON.
Параметры ответа:
| Параметр | Тип данных | Описание |
|---|---|---|
| items | Array<Vulnerability> |
Список найденных объектов результатов сканирования |
| total | integer |
Количество найденных объектов результатов сканирования |
| service_assets | Array<ServiceAssets> |
Количество найденных активов с распределением по уровню важности актива |
| filtered_counts | Array<object> |
Счетчики найденных уязвимостей, сгруппированные по важности и активу |
| filtered_counts{service_asset_id} | string |
Идентификатор актива в формате UUID |
| filtered_counts{severity} | integer |
Важность уязвимости |
| filtered_counts{count} | integer |
Число найденных уязвимостей для которых соблюдены следующие условия: - известна важность уязвимости; - известен актив, на котором обнаружена уязвимость. |
Пример ответа
{
"items": [
{
"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",
"plugin_id": 0,
"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": "string",
"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",
"PluginSum": "string",
"service_asset_finding_id": "2aef5665-d918-4e66-ad93-7a1dc9c3779e",
"service_asset_finding_status": "new",
"removed_vulnerability": null,
"changed_vulnerability": null,
"added_vulnerability": true,
"ip": "172.30.254.79",
"finding_ids": [
"0cd06fe9-9a7c-45d2-89e5-201e0d1c84e1",
"f1b8a921-fee8-4bbd-bc3c-c4a7ea998303"
],
"os": "windows_server_2016",
"fqdn": {},
"authenticated": true,
"plugin_is_blacklisted": false,
"with_findings": true,
"plugin_id_text": 322086,
"occurrence": null,
"vulnerability_host": null,
"service_asset": null,
"vulnerability_scan": null
}
],
"total": 0,
"service_assets": [
{
"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",
"severity_0": 0,
"severity_1": 296,
"severity_2": 853,
"severity_3": 683,
"severity_4": 14,
"scanned_host_data": [
{
"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",
"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": {}
}
],
"known_host_data": [
{
"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",
"name": "string",
"ip": "string",
"mac": "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"
]
}
]
}
],
"filtered_counts": [
{
"service_asset_id": "65851edf-a4db-4470-b81b-a88a3f56beab",
"severity": 3,
"count": 683
}
]
}
Другие возможные ответы
| Код | Ответ | Описание |
|---|---|---|
400 |
1. Bad Request2. tab is empty3. unknown tab4. exclude_fields not supported5. include_fields not supported6. scan ID filter is required7. scan ID filter must be ‘equal’ type8. value for scan ID filter must be string9. scan id should be uuid format |
1. Неверный тип параметра запроса, либо отсутствует обязательный параметр 2. Значение tab не задано3. Неизвестное значение параметра tab4. Параметр exclude_fields не поддерживается5. Параметр include_fields не поддерживается6. Фильтр для vulnerability_scan_id не задан7. Фильтр для vulnerability_scan_id должен иметь тип equal8. Значение в фильтре для vulnerability_scan_id должно быть строкой9. Недопустимый формат vulnerability_scan_id |
500 |
Internal Server Error |
Другие ошибки сервера |
Примечание: Текст ошибки не фиксированный, может изменяться в зависимости от фактического ответа получателя запроса.
Пример ответа
Код 400
{
"error": "Bad Request",
"error_code": 400
}
Код 500
{
"error": "Internal Server Error",
"error_code": 500
}