444 lines
6.3 KiB
Markdown
444 lines
6.3 KiB
Markdown
## Цель
|
||
|
||
Устранить риск неправильной интерпретации UEBA Score.
|
||
|
||
Не менять:
|
||
|
||
* UEBA scoring;
|
||
* UEBA weights;
|
||
* UEBA thresholds;
|
||
* Risk Narrative scoring;
|
||
* Action Center scoring.
|
||
|
||
Добавить слой уверенности (confidence layer) и защиту от ложной интерпретации severity.
|
||
|
||
---
|
||
|
||
## Контекст
|
||
|
||
По результатам:
|
||
|
||
```text
|
||
TASK_015_UEBA_CRITICAL_EVIDENCE_REVIEW
|
||
```
|
||
|
||
установлено:
|
||
|
||
```text
|
||
UEBA Score = 100
|
||
|
||
Classification = Needs Investigation
|
||
|
||
Executive Readiness = Insufficient Confidence
|
||
|
||
Security Interpretation = Operational Risk Confirmed
|
||
|
||
Security Incident = Not Confirmed
|
||
```
|
||
|
||
Причина:
|
||
|
||
```text
|
||
activity_anomaly = 81
|
||
history_anomaly = 19
|
||
|
||
coverage = 0%
|
||
confidence = low
|
||
```
|
||
|
||
При этом текущий UI может визуально восприниматься как:
|
||
|
||
```text
|
||
Critical = подтвержденный инцидент
|
||
```
|
||
|
||
что неверно.
|
||
|
||
---
|
||
|
||
## Основная идея
|
||
|
||
Разделить:
|
||
|
||
```text
|
||
Severity
|
||
```
|
||
|
||
и
|
||
|
||
```text
|
||
Confidence
|
||
```
|
||
|
||
Severity отвечает:
|
||
|
||
```text
|
||
Насколько сильна аномалия
|
||
```
|
||
|
||
Confidence отвечает:
|
||
|
||
```text
|
||
Насколько мы уверены в выводе
|
||
```
|
||
|
||
---
|
||
|
||
## Что реализовать
|
||
|
||
### 1. UEBA Confidence Model
|
||
|
||
Добавить модель:
|
||
|
||
```json
|
||
{
|
||
"severity": "critical",
|
||
"score": 100,
|
||
"confidence": "low",
|
||
"classification": "needs_investigation",
|
||
"reason": "coverage_below_threshold"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 2. Confidence Levels
|
||
|
||
Поддержать:
|
||
|
||
```text
|
||
high
|
||
medium
|
||
low
|
||
unknown
|
||
```
|
||
|
||
---
|
||
|
||
### 3. Confidence Contributors
|
||
|
||
Минимальные факторы:
|
||
|
||
```text
|
||
agent_coverage
|
||
|
||
data_freshness
|
||
|
||
telemetry_completeness
|
||
|
||
evidence_presence
|
||
|
||
history_depth
|
||
|
||
signal_consistency
|
||
```
|
||
|
||
---
|
||
|
||
### 4. Confidence Rules
|
||
|
||
Пример логики:
|
||
|
||
#### HIGH
|
||
|
||
```text
|
||
coverage >= target
|
||
|
||
fresh data
|
||
|
||
multiple corroborating signals
|
||
|
||
evidence exists
|
||
```
|
||
|
||
#### MEDIUM
|
||
|
||
```text
|
||
partial coverage
|
||
|
||
some missing telemetry
|
||
|
||
limited evidence
|
||
```
|
||
|
||
#### LOW
|
||
|
||
```text
|
||
coverage below threshold
|
||
|
||
missing telemetry
|
||
|
||
missing evidence
|
||
|
||
conflicting signals
|
||
```
|
||
|
||
#### UNKNOWN
|
||
|
||
```text
|
||
insufficient data
|
||
```
|
||
|
||
---
|
||
|
||
### 5. Classification Layer
|
||
|
||
Добавить:
|
||
|
||
```text
|
||
confirmed_risk
|
||
|
||
likely_risk
|
||
|
||
needs_investigation
|
||
|
||
insufficient_data
|
||
```
|
||
|
||
Важно:
|
||
|
||
classification не заменяет severity.
|
||
|
||
---
|
||
|
||
### 6. Executive View
|
||
|
||
В Executive Portal показать:
|
||
|
||
Пример:
|
||
|
||
```text
|
||
UEBA Score: 100
|
||
|
||
Severity: Critical
|
||
|
||
Confidence: Low
|
||
|
||
Classification:
|
||
Needs Investigation
|
||
```
|
||
|
||
Добавить пояснение:
|
||
|
||
```text
|
||
Высокая аномалия обнаружена,
|
||
но данных недостаточно для подтверждения риска.
|
||
```
|
||
|
||
---
|
||
|
||
### 7. Security View
|
||
|
||
В Security Portal показать:
|
||
|
||
```text
|
||
Severity
|
||
|
||
Confidence
|
||
|
||
Classification
|
||
|
||
Evidence Status
|
||
```
|
||
|
||
Пример:
|
||
|
||
```text
|
||
Evidence:
|
||
Not Available
|
||
```
|
||
|
||
или
|
||
|
||
```text
|
||
Evidence:
|
||
Available
|
||
```
|
||
|
||
---
|
||
|
||
### 8. Risk Narrative Integration
|
||
|
||
Обновить Risk Narrative.
|
||
|
||
Добавить:
|
||
|
||
```json
|
||
{
|
||
"confidence": "low",
|
||
"classification": "needs_investigation"
|
||
}
|
||
```
|
||
|
||
---
|
||
|
||
### 9. Executive Action Center Integration
|
||
|
||
Если:
|
||
|
||
```text
|
||
confidence = low
|
||
```
|
||
|
||
добавлять действие:
|
||
|
||
```text
|
||
Проверить полноту данных
|
||
```
|
||
|
||
до формирования жестких выводов.
|
||
|
||
---
|
||
|
||
### 10. API
|
||
|
||
Расширить:
|
||
|
||
```http
|
||
GET /api/ueba
|
||
```
|
||
|
||
если контракт позволяет.
|
||
|
||
Добавить поля:
|
||
|
||
```json
|
||
{
|
||
"confidence": "...",
|
||
"classification": "...",
|
||
"confidence_reasons": []
|
||
}
|
||
```
|
||
|
||
Также обновить:
|
||
|
||
```http
|
||
GET /api/risk/narrative
|
||
```
|
||
|
||
при необходимости.
|
||
|
||
---
|
||
|
||
### 11. Markdown Reports
|
||
|
||
Добавить раздел:
|
||
|
||
```text
|
||
UEBA Confidence
|
||
```
|
||
|
||
Показывать:
|
||
|
||
* severity;
|
||
* confidence;
|
||
* classification;
|
||
* confidence reasons.
|
||
|
||
---
|
||
|
||
### 12. OpenAPI / TypeScript
|
||
|
||
Обновить контракты.
|
||
|
||
Только если реально изменяются API ответы.
|
||
|
||
---
|
||
|
||
### 13. Documentation
|
||
|
||
Создать:
|
||
|
||
```text
|
||
docs/UEBA_CONFIDENCE_MODEL_RU.md
|
||
```
|
||
|
||
Описать:
|
||
|
||
* что такое severity;
|
||
* что такое confidence;
|
||
* что такое classification;
|
||
* почему они отличаются;
|
||
* примеры интерпретации.
|
||
|
||
---
|
||
|
||
## Что запрещено
|
||
|
||
Запрещено:
|
||
|
||
* менять UEBA score;
|
||
* менять weights;
|
||
* менять thresholds;
|
||
* менять severity rules;
|
||
* скрывать высокий score;
|
||
* искусственно занижать риск;
|
||
* автоматически подтверждать инцидент;
|
||
* добавлять ML;
|
||
* добавлять LLM;
|
||
* добавлять DLP claims;
|
||
* добавлять SIEM claims.
|
||
|
||
---
|
||
|
||
## Проверки
|
||
|
||
Выполнить:
|
||
|
||
```bash
|
||
cargo fmt --all --check
|
||
|
||
cargo clippy --all-targets --all-features -- -D warnings
|
||
|
||
cargo test --all
|
||
|
||
cargo build --release
|
||
|
||
node scripts/deployment-readiness-smoke.mjs
|
||
|
||
node scripts/pilot-validation-smoke.mjs
|
||
|
||
AWATCH_PORTAL_SMOKE_URL=http://127.0.0.1:8720 node scripts/awatch-production-hardening-smoke.mjs
|
||
|
||
AWATCH_BROWSER_SMOKE_URL=http://127.0.0.1:8720/portal/ node scripts/browser-conformance-smoke.mjs
|
||
```
|
||
|
||
Также:
|
||
|
||
```bash
|
||
git diff --check
|
||
```
|
||
|
||
и sensitive scan.
|
||
|
||
---
|
||
|
||
## Критерии приемки
|
||
|
||
Задача выполнена если:
|
||
|
||
* severity и confidence разделены;
|
||
* classification добавлен;
|
||
* Executive UI показывает confidence;
|
||
* Security UI показывает confidence;
|
||
* Risk Narrative учитывает confidence;
|
||
* Action Center учитывает confidence;
|
||
* документация создана;
|
||
* OpenAPI/TypeScript обновлены при необходимости;
|
||
* все проверки проходят;
|
||
* UEBA scoring не изменен.
|
||
|
||
---
|
||
|
||
## Финальный отчет Codex должен содержать
|
||
|
||
1. Какие модели добавлены.
|
||
2. Какие поля API изменены.
|
||
3. Как рассчитывается confidence.
|
||
4. Как рассчитывается classification.
|
||
5. Изменения UI.
|
||
6. Изменения reports.
|
||
7. Документация.
|
||
8. Результаты проверок.
|
||
9. Подтверждение, что scoring/weights/thresholds не менялись.
|