Files
AWatch-rus/docs/UEBA_CONFIDENCE_MODEL_RU.md
T

197 lines
7.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 показывает, можно ли делать вывод или нужен ручной разбор.
```