Оценка риска (Risk Score)¶
AppSec.AIGate присваивает каждому запросу и ответу единую взвешенную оценку риска в диапазоне 0.000–1.000, а также классификацию по уровню серьёзности и разбивку по сигналам. Это позволяет оценивать угрозы по единой шкале независимо от того, какой именно детектор сработал.
Информационный характер
Оценка риска не влияет на решение о блокировке, маскировании или пропуске запроса. Это решение по-прежнему принимается на основе настроек детекторов, их порогов и приоритетов в политике. Risk Score — это наблюдаемая метрика для дашбордов, SIEM-интеграции, отчётности и WAF-сценариев.
Что вы получаете¶
Для каждого запроса и каждого ответа AppSec.AIGate рассчитывает три связанных значения:
| Поле | Тип | Описание |
|---|---|---|
risk_score |
число 0.000–1.000 |
Взвешенная сумма по сигналам безопасности, округлено до трёх знаков |
risk_severity |
строка | CRITICAL / HIGH / MEDIUM / LOW — порог-классификация |
risk_breakdown |
объект | Нормализованный вклад каждого сигнала — позволяет понять, почему оценка такая |
Эти значения доступны:
- в HTTP-заголовках ответа (см. HTTP-заголовки);
- в записях событий безопасности (фильтрация в UI и API:
?min_risk_score=…,?risk_severity=…); - в экспорте в SIEM (CEF / Syslog / Webhook / Kafka — см. Интеграция с WAF и SIEM);
- в карточке события в Admin UI (оценка, бейдж серьёзности, вклад сигналов).
Формула расчёта (v1)¶
Оценка вычисляется детерминированно по формуле:
Запросы (Input): пять сигналов¶
| Сигнал | Вес по умолчанию | Что измеряет |
|---|---|---|
| Threat Detector | 0.45 | Уверенность модели в jailbreak / prompt injection |
| Content Safety | 0.25 | Категории недопустимого контента (насилие, оружие, экстремизм и т. д.) |
| PII | 0.15 | Средняя уверенность по найденным ПДн |
| Custom Policy | 0.10 | Сумма severity сработавших правил blocklist (с ограничением сверху) |
| Obfuscation | 0.05 | Степень обнаруженной обфускации (homoglyph, Unicode) |
| Сумма | 1.00 |
Ответы (Response): два сигнала¶
| Сигнал | Вес по умолчанию | Что измеряет |
|---|---|---|
| PII | 0.60 | ПДн в ответе LLM |
| Content Safety | 0.40 | Категории недопустимого контента в ответе |
Классификация серьёзности¶
Пороги по умолчанию:
| Уровень | Условие |
|---|---|
CRITICAL |
risk_score ≥ 0.80 |
HIGH |
risk_score ≥ 0.60 |
MEDIUM |
risk_score ≥ 0.40 |
LOW |
risk_score < 0.40 |
Поле risk_severity отличается от поля severity
Существующее поле severity события (LOW/MEDIUM/HIGH/CRITICAL) описывает тип события (например, REQUEST_BLOCKED всегда HIGH). Поле risk_severity — это порог-классификация числового risk_score. Они независимы и могут не совпадать.
Примеры расчёта (веса по умолчанию)¶
| Сценарий | Сигналы | risk_score |
risk_severity |
|---|---|---|---|
| Чистый запрос | — | 0.000 |
LOW |
| Один jailbreak (уверенность 0.95) | Threat = 0.95 | 0.427 |
MEDIUM |
| Jailbreak + опасный контент | Threat = 0.95, CS = 0.95 | 0.665 |
HIGH |
| Несколько сильных сигналов | Threat + CS + PII + Policy | 0.838 |
CRITICAL |
Настройка для профиля¶
Каждый профиль безопасности может переопределить веса и пороги. В Admin UI: откройте профиль на редактирование → вкладка Поведение при сбоях и риск → раскройте блок Дополнительно: риск-скоринг веса детекторов + пороги severity (информационно) (раздел Конфигурация риска).
Правила валидации:
- Сумма весов всех сигналов должна равняться 1.0 (допуск ±0.001).
- Пороги обязаны удовлетворять условию:
medium < high < critical. - Все веса — неотрицательные значения в диапазоне
[0.0, 1.0].
Новые профили создаются с рекомендуемыми значениями. Существующие профили без явной конфигурации используют те же значения по умолчанию.
Когда менять веса
- Поднять Threat Detector (с 0.45 до 0.55), если вы прежде всего защищаетесь от инъекций и jailbreak.
- Поднять PII (с 0.15 до 0.30), если основное требование — соответствие 152-ФЗ и защита ПДн.
- Снизить Obfuscation до 0, если функция нормализации Unicode не используется.
Режим мониторинга и поле would_block¶
Если профиль работает в режиме мониторинга, все детекторы выполняются и события записываются, но запрос не блокируется — он проксируется к LLM без изменений. При этом в записи решения и события сохраняются:
would_block: true— запрос был бы заблокирован при включённом enforcement;would_action— какое именно действие применилось бы (BLOCK,SANITIZEи т. д.).
Это позволяет оценить, как система поведёт себя в продуктивном режиме, до фактического перевода профиля в enforce. Соответствующие HTTP-заголовки (X-LLMFW-Would-Block, X-LLMFW-Would-Action) выставляются только в режиме мониторинга.
Обратная совместимость¶
- Оценка риска никогда не меняет логику enforcement — поведение существующих профилей сохраняется.
- События, созданные до внедрения Risk Score, не содержат соответствующих полей; UI отображает «данные недоступны».
- Прежнее значение
combined_risk(рассчитанное по принципу максимума) сохранено внутри решения в картеscores— для совместимости со старыми отчётами.
Дополнительная информация¶
- HTTP-заголовки ответа Gateway — формат
X-LLMFW-Risk-*. - Интеграция с WAF и SIEM — примеры использования оценки в Kong, Cloudflare, Envoy, SIEM.
- События безопасности — где найти
risk_scoreв записи события. - Управление профилями — общие настройки профиля.