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

Типы событий

Здесь приведена сводная полная таблица всех типов событий безопасности AppSec.AIGate. Каноническим источником служит enum EventType в admin-api (хранение и API). Часть типов (realtime streaming scan, SDK) пока доступна только через API и не отображается в фильтре UI — они вынесены в раздел «Типы, доступные только через API» ниже.

Подробное описание каждого типа события с примерами — см. События безопасности.

Колонка Подавляемый отражает рекомендованное поведение по умолчанию. Технически подавлением управляет открытый список event_logging.disabled_event_types — см. раздел «Управление подавлением» ниже.

Группа Запросы (request-side)

Код UI-метка Severity Подавляемый Когда возникает
REQUEST_BLOCKED Request blocked HIGH¹ Нет Запрос заблокирован PDP по любой причине (threat, PII, content safety, custom policy)
REQUEST_SANITIZED Request sanitized (PII masked) MEDIUM Нет PII найдены и замаскированы; запрос пропущен в изменённом виде
MONITOR_ALERT Monitor alert (dry-run) LOW Да Профиль в monitor_mode: решение было бы BLOCK, но запрос пропущен
THREAT_DETECTED Threat detected HIGH Нет Threat Detector вернул score ≥ порога (jailbreak / prompt injection)
PII_DETECTED PII detected MEDIUM Да PII найдены, но решение — не блокировать (например, monitor_mode или PII-детекция выключена)
OBFUSCATION_DETECTED Obfuscation detected HIGH / MEDIUM² Да Обнаружена материальная Unicode/encoding-обфускация при режиме ≠ detect_only

¹ Тяжёлые угрозы могут подниматься до CRITICAL через поле risk_severity.

² HIGH для безусловно-опасных классов обфускации; MEDIUM для классов двойного назначения.

Группа Контентная безопасность (Content Safety)

Код UI-метка Severity Подавляемый Когда возникает
CONTENT_SAFETY_FLAG Content safety — flag LOW Да Категория Controversial с политикой flag в профиле: запрос не заблокирован, находка записана для аудита. Эмитируется gateway на request-side. Response-side аналог — RESPONSE_MONITOR_ALERT (PDP response_policy → MONITOR).

Группа Контентные политики (Custom Policy)

Код UI-метка Severity Подавляемый Когда возникает
CUSTOM_POLICY_BLOCK Custom policy — block HIGH Нет Правило кастомной контентной политики (blocklist/regex) сработало → блокировка
CUSTOM_POLICY_LANGUAGE_BLOCK Custom policy — language block HIGH Нет Язык запроса не входит в разрешённый список политики
CUSTOM_POLICY_FLAG Custom policy — flag LOW Нет Правило сработало в режиме мониторинга (без блокировки)

Группа Ответы (response-side)

Код UI-метка Severity Подавляемый Когда возникает
RESPONSE_BLOCKED Response blocked HIGH Нет Response Scanner заблокировал ответ LLM (output PII, output Content Safety, кастомная политика)
RESPONSE_REDACTED Response redacted MEDIUM Нет Ответ пропущен с замаскированными PII
RESPONSE_MONITOR_ALERT Response monitor alert LOW Да Профиль в monitor_mode: ответ был бы заблокирован, но пропущен

Группа Passthrough (Features 011 / 014)

Код UI-метка Severity Подавляемый Когда возникает
PROFILE_INACTIVE_PASSTHROUGH Profile inactive — passthrough INFO Да Нет активного профиля у провайдера; passthrough_when_inactive=true → запрос прозрачно проксирован
PROFILE_INACTIVE_BLOCKED Profile inactive — blocked MEDIUM Нет Нет активного профиля; passthrough_when_inactive=false → запрос отклонён
PASSTHROUGH_TRAFFIC Passthrough traffic INFO Да FieldMapping не извлёк промпт (не-chat-запрос); запрос проксирован без инспекции
FIELDMAPPING_EVALUATION_ERROR FieldMapping evaluation error MEDIUM Нет JSONPath в FieldMapping провайдера упал при компиляции; rate-limited (не чаще 1 раза в 5 мин на провайдера)

Группа Streaming (Feature 012)

Код UI-метка Severity Подавляемый Когда возникает
LLM_REQUEST_COMPLETED LLM request completed LOW Да Streaming-запрос успешно завершён; несёт метаданные стрима (streaming_mode, outcome, bytes_streamed)

Группа Vault Audit (Feature 015)

Код UI-метка Severity Подавляемый Когда возникает
REQUEST_TOKENIZED Request tokenized (vault) INFO Да³ Vault токенизировал PII в запросе (pii_mask_mode=vault_tokenize); коррелируется с парным RESPONSE_DEANONYMIZED по trace_id
RESPONSE_DEANONYMIZED Response deanonymized (vault) INFO / MEDIUM⁴ Да³ Vault детокенизировал токены в ответе LLM

³ При подавлении событие всё равно эмитируется, но чувствительные payload-поля (оригинальные значения, снэпшоты промпта) обнуляются — аудитная цепочка сохраняется.

⁴ MEDIUM, если denied_count > 0 (хотя бы один токен не был возвращён из vault).

Группа Операционные (Operational)

Код UI-метка Severity Подавляемый Когда возникает
DETECTOR_ERROR Detector error MEDIUM Нет Детектор вернул 5xx или ошибку разбора ответа
SERVICE_UNAVAILABLE Service unavailable HIGH / LOW⁵ Нет Критичный upstream-сервис недоступен (circuit breaker open)
REQUEST_ERROR Request error (400) LOW Нет Клиент прислал невалидный запрос (400, auth, rate); поле error_code несёт детали
PROVIDER_ERROR Provider error (upstream) HIGH Нет Upstream LLM вернул ошибку
FAIL_SAFE_TRIGGERED Fail-safe triggered HIGH Нет Сработал fail_safe_mode (детектор недоступен, применено решение профиля по умолчанию)

⁵ HIGH, если недоступен критичный сервис pipeline (Request Normalizer); LOW, если недоступен опциональный сервис (Translation Service).

Типы, доступные только через API

Следующие типы присутствуют в backend-enum, но пока не отображаются в фильтре «Тип события» в UI. Они доступны через API событий и в экспорте.

Realtime Streaming Scan (Feature 022)

Код Severity Когда возникает
STREAMING_RESPONSE_BLOCKED HIGH on_detect=block: стрим прерван по сигналу детектора
STREAMING_RESPONSE_MONITORED MEDIUM on_detect=monitor: стрим пропущен, событие зафиксировано
STREAMING_RESPONSE_TERMINATED MEDIUM on_detect=silent_close: стрим закрыт без сообщения клиенту
STREAMING_RESPONSE_ALLOWED INFO log_allow_decisions=true: стрим завершился безопасно
STREAMING_DETECTOR_UNAVAILABLE HIGH Content Safety недоступен во время стрима; применён fail_safe.mode
STREAMING_DEGRADED MEDIUM Overload-fallback: переключение на buffer_and_scan при перегрузке
STREAMING_PROVIDER_UNSUPPORTED MEDIUM Провайдер не поддерживает realtime-скан; runtime-fallback на passthrough

SDK (Feature 030)

Код Severity Когда возникает
SDK_DEGRADED_FAIL_OPEN HIGH SDK работал в fail-open, пока gateway был недоступен; метаданные без промпта (152-ФЗ)
SDK_INCOMPATIBLE_BACKEND HIGH Обнаружено мажорное несоответствие протокола при инициализации SDK

Управление подавлением

Подавлением управляет список profile.event_logging.disabled_event_types. Типы реагируют на него по-разному — есть события, которые подавить технически нельзя:

Поведение Типы
Можно подавлять (разумно для снижения шума) MONITOR_ALERT, RESPONSE_MONITOR_ALERT, CONTENT_SAFETY_FLAG, PII_DETECTED, OBFUSCATION_DETECTED, LLM_REQUEST_COMPLETED, PASSTHROUGH_TRAFFIC, PROFILE_INACTIVE_PASSTHROUGH, REQUEST_TOKENIZED, RESPONSE_DEANONYMIZED, STREAMING_RESPONSE_ALLOWED
Можно подавить, но не рекомендуется FAIL_SAFE_TRIGGERED, DETECTOR_ERROR, SERVICE_UNAVAILABLE, PROVIDER_ERROR — сигнализируют о сбоях/деградации pipeline; подавление маскирует системные проблемы
Не рекомендуется — критично для compliance REQUEST_BLOCKED, REQUEST_SANITIZED, RESPONSE_BLOCKED, RESPONSE_REDACTED, THREAT_DETECTED, PROFILE_INACTIVE_BLOCKED, FIELDMAPPING_EVALUATION_ERROR
Не подавляются — нет проверки в коде CUSTOM_POLICY_BLOCK, CUSTOM_POLICY_FLAG, CUSTOM_POLICY_LANGUAGE_BLOCK — эмитируются напрямую; добавление в disabled_event_types игнорируется
Не подавляется — событие до загрузки профиля REQUEST_ERROR — создаётся до разрешения профиля (некорректный запрос клиента), механизм неприменим

Vault-события при подавлении

REQUEST_TOKENIZED и RESPONSE_DEANONYMIZED при добавлении в disabled_event_types всё равно эмитируются, но с обнулёнными чувствительными payload-полями — аудитная цепочка vault не прерывается.

Исторические и служебные коды

  • JAILBREAK_DETECTED и PROMPT_INJECTION_DETECTED как отдельные типы событий не эмитируются в текущей архитектуре — унифицированный Threat Detector выдаёт THREAT_DETECTED. Коды сохранены в enum только для обратной совместимости со старыми записями в БД.
  • POLICY_VIOLATIONне тип события, а значение поля error_code на событиях REQUEST_ERROR.