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

Приложение C. Статусы и коды ошибок

Справочник по статусам сканирований, задач (jobs) и моделей, а также по кодам ошибок.


Статусы сканирований

Жизненный цикл сканирования управляется конечным автоматом (state machine) с 9 состояниями.

Диаграмма переходов

stateDiagram-v2
    [*] --> PENDING
    PENDING --> VALIDATED : Валидация пройдена
    PENDING --> FAILED : Ошибка валидации
    PENDING --> CANCELLED : Отмена пользователем

    VALIDATED --> STARTING : Запуск API-вызовов
    VALIDATED --> FAILED : Ошибка запуска
    VALIDATED --> CANCELLED : Отмена пользователем

    STARTING --> STARTED : Сервис подтвердил получение
    STARTING --> FAILED : Все сервисы отклонили
    STARTING --> CANCELLED : Отмена пользователем

    STARTED --> RUNNING : Начало выполнения атак
    STARTED --> FAILED : Критическая ошибка
    STARTED --> CANCELLED : Отмена пользователем

    RUNNING --> COMPLETED : Все задачи завершены
    RUNNING --> PARTIAL_SUCCESS : Часть задач не выполнена
    RUNNING --> FAILED : Все задачи провалены
    RUNNING --> CANCELLED : Отмена пользователем

Таблица статусов

Статус Тип Описание Допустимые переходы
PENDING Активный Сканирование создано, ожидает валидации. VALIDATED, FAILED, CANCELLED
VALIDATED Активный Конфигурация прошла валидацию (модель доступна, профиль корректен). STARTING, FAILED, CANCELLED
STARTING Активный API-вызовы к Testing Services инициированы. STARTED, FAILED, CANCELLED
STARTED Активный Хотя бы один Testing Service подтвердил получение задачи. RUNNING, FAILED, CANCELLED
RUNNING Активный Атаки выполняются, результаты поступают. COMPLETED, PARTIAL_SUCCESS, FAILED, CANCELLED
COMPLETED Терминальный Все задачи успешно завершены. — (терминальное состояние)
PARTIAL_SUCCESS Терминальный Часть задач завершилась успешно, часть провалилась. — (терминальное состояние)
FAILED Терминальный Сканирование завершилось с ошибкой. — (терминальное состояние)
CANCELLED Терминальный Сканирование отменено пользователем. — (терминальное состояние)

Терминальные состояния

Из терминальных состояний (COMPLETED, PARTIAL_SUCCESS, FAILED, CANCELLED) переходы невозможны. Для повторного сканирования необходимо создать новое.


Коды ошибок сканирований (scan-level)

Коды ошибок записываются в поле error_code объекта сканирования при переходе в статус FAILED.

Код ошибки Этап (error_stage) Повторяемость Описание
VALIDATION_FAILED validation Не повторяется Конфигурация сканирования не прошла валидацию (некорректные параметры, модель недоступна, профиль не найден).
START_FAILED start Не повторяется Не удалось запустить ни один Testing Service (все сервисы недоступны или отклонили задачу).
NO_ATTACKS_CONFIGURED validation Не повторяется В профиле сканирования не настроено ни одной атаки.
TOO_MANY_JOB_FAILURES execution Не повторяется Слишком большой процент задач завершился с ошибкой (превышен порог допустимых сбоев).
ALL_JOBS_FAILED execution Не повторяется Все задачи в сканировании завершились с ошибкой.
RESULTS_AGGREGATION_FAILED execution Не повторяется Ошибка при агрегации результатов от Testing Services.

Коды ошибок задач (job-level)

Коды ошибок записываются в поле error_code объекта задачи (attack job).

Код ошибки Повторяемость Описание
TESTING_SERVICE_FAILED Повторяемая Testing Service вернул ошибку при выполнении атаки. Задача будет повторена до исчерпания лимита попыток.
STALE_TIMEOUT Повторяемая Задача не получила heartbeat в течение JOB_STALE_TIMEOUT_SECONDS (по умолчанию 300 сек). Считается «зависшей».
START_TIMEOUT Повторяемая Задача не была принята Testing Service в течение таймаута.
UNSUPPORTED_ATTACK_TYPE Не повторяемая Тип атаки не поддерживается указанным Testing Service.
CONTRACT_ERROR Не повторяемая Ошибка контракта: несовместимость формата запроса/ответа между Orchestrator и Testing Service.
MAX_RETRIES_EXCEEDED Не повторяемая Исчерпано максимальное количество попыток (SERVICE_MAX_RETRIES, по умолчанию 3).

Этапы ошибок (error_stage)

Поле error_stage указывает, на каком этапе жизненного цикла произошла ошибка.

Этап Описание
validation Этап валидации конфигурации: проверка модели, профиля, параметров.
start Этап запуска: отправка задач в Testing Services через API.
execution Этап выполнения: обработка атак и сбор результатов.

Статусы моделей

Статус Описание
active Модель активна и доступна для сканирования.
inactive Модель временно отключена. Не отображается в списке для сканирования.
archived Модель перемещена в архив. Результаты сохранены, но новые сканирования невозможны.

Статусы проверки связи (health check)

Проверка связи определяет, доступна ли модель по указанному endpoint.

Статус Описание
available Модель доступна и отвечает на запросы. Последняя проверка прошла успешно.
unavailable Модель недоступна (timeout, HTTP-ошибка, отказ в соединении).
stale Информация о доступности устарела — проверка не проводилась дольше заданного интервала.

Автоматическая проверка

Перед запуском сканирования Scan Orchestrator автоматически проверяет доступность модели. Если модель в статусе unavailable или stale, сканирование переходит в статус FAILED с кодом VALIDATION_FAILED.