# UEBA Confidence Model Документ описывает защитный слой интерпретации UEBA Score v1 в AWatch-rus. Важно: этот слой не меняет scoring, weights, thresholds или severity. Он объясняет, насколько можно доверять рассчитанному severity в текущем срезе. ## Зачем нужен слой уверенности UEBA Score отвечает на вопрос: ```text Насколько сильна обнаруженная аномалия? ``` Confidence отвечает на другой вопрос: ```text Насколько достаточно данных, чтобы доверять выводу? ``` Поэтому `critical` не означает автоматически подтвержденный инцидент. При низкой уверенности корректная трактовка: ```text Высокая аномалия обнаружена, но требуется ручная проверка данных. ``` ## Severity Severity остается частью UEBA Score v1: | Score | Severity | Смысл | | --- | --- | --- | | `0-14` | `normal` | Существенная аномалия не выявлена | | `15-39` | `low` | Низкий риск, наблюдение | | `40-69` | `medium` | Требуется внимание | | `70-84` | `high` | Требуется ручная проверка | | `85-100` | `critical` | Срочная ручная проверка | Severity не подтверждает нарушение само по себе. ## Confidence Поддерживаемые уровни: | Confidence | Смысл | | --- | --- | | `high` | Данные свежие, покрытие достаточное, сигналы согласованы | | `medium` | Есть частичные пропуски или ограниченное подтверждение | | `low` | Покрытие ниже порога, отсутствуют источники или evidence | | `unknown` | Данных недостаточно для оценки уверенности | ## Confidence Contributors Модель учитывает шесть факторов: | Фактор | Что проверяется | | --- | --- | | `agent_coverage` | Доля ожидаемых рабочих мест со свежей телеметрией | | `data_freshness` | Свежесть данных по ожидаемым узлам | | `telemetry_completeness` | Наличие Worktime, приложений и классификации | | `evidence_presence` | Наличие evidence metadata или screenshots | | `history_depth` | Глубина baseline и число samples | | `signal_consistency` | Есть ли независимые подтверждающие сигналы | Если хотя бы один критичный contributor находится в `low`, общий confidence становится `low`. Это сделано намеренно: лучше потребовать ручную проверку, чем выдать высокий score за подтвержденный инцидент. ## Classification Classification не заменяет severity. Она показывает, как интерпретировать severity с учетом confidence. | Classification | Смысл | | --- | --- | | `confirmed_risk` | Риск как сигнал подтвержден достаточным качеством данных | | `likely_risk` | Риск вероятен, но подтверждение неполное | | `needs_investigation` | Высокий score есть, но уверенность недостаточна | | `insufficient_data` | Данных недостаточно даже для уверенной оценки риска | `confirmed_risk` не означает автоматически подтвержденный ИБ-инцидент, DLP событие или нарушение сотрудника. Это только подтверждение качества risk signal. ## API `GET /api/ueba` возвращает дополнительные поля: ```json { "severity": "critical", "score": 100, "confidence": "low", "confidence_score": 0.8, "classification": "needs_investigation", "classification_reason": "agent_coverage:coverage_below_target", "confidence_reasons": [ "agent_coverage:coverage_below_target" ], "evidence_status": "not_available" } ``` Полный объект `risk` также содержит: - `confidence_level`; - `classification`; - `classification_reason`; - `confidence_reasons`; - `confidence_contributors`; - `evidence_status`. ## Risk Narrative Risk Narrative получает поля: ```json { "confidence": "low", "classification": "needs_investigation" } ``` При `low` или `unknown` confidence Risk Narrative должен говорить о ручной проверке и полноте данных, а не о подтвержденном нарушении. ## Action Center Если UEBA confidence низкий или classification равен `needs_investigation`, Action Center добавляет действие: ```text Проверить полноту данных ``` Это действие не исправляет данные автоматически и не меняет scoring. Оно адресует оператору необходимость проверить покрытие, свежесть и completeness до жестких управленческих выводов. ## Интерпретация для ролей ### Руководитель Корректно: ```text Система видит критичную аномалию, но уверенность низкая. Сначала проверяем полноту данных, затем принимаем управленческое решение. ``` Некорректно: ```text Critical означает доказанное нарушение. ``` ### ИБ Корректно: ```text Critical + low confidence = приоритет ручного triage, не подтвержденный incident. ``` Некорректно: ```text Critical UEBA автоматически является DLP/SIEM incident. ``` ### Эксплуатация Корректно: ```text При low confidence сначала проверяются agent coverage, freshness и missing telemetry. ``` ## Ограничения - Confidence layer не использует ML или LLM. - Confidence layer не меняет score, severity, thresholds или weights. - Confidence layer не подтверждает ИБ-инциденты автоматически. - pfSense readiness остается `contract_only`, если нет фактического ingestion. ## Acceptance Interpretation Для Pilot/Demo Freeze v1 правильная трактовка: ```text Severity показывает силу аномалии. Confidence показывает качество данных. Classification показывает, можно ли делать вывод или нужен ручной разбор. ```