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

Сравнение результатов сканирования

Запрос

Тип Метод
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 Request
2. tab is empty
3. unknown tab
4. exclude_fields not supported
5. include_fields not supported
6. scan ID filter is required
7. scan ID filter must be ‘equal’ type
8. value for scan ID filter must be string
9. scan id should be uuid format
1. Неверный тип параметра запроса, либо отсутствует обязательный параметр
2. Значение tab не задано
3. Неизвестное значение параметра tab
4. Параметр exclude_fields не поддерживается
5. Параметр include_fields не поддерживается
6. Фильтр для vulnerability_scan_id не задан
7. Фильтр для vulnerability_scan_id должен иметь тип equal
8. Значение в фильтре для 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
}