Create TASK_016_UEBA_CONFIDENCE_GUARDRAILS.md
This commit is contained in:
@@ -0,0 +1,443 @@
|
|||||||
|
## Цель
|
||||||
|
|
||||||
|
Устранить риск неправильной интерпретации 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 не менялись.
|
||||||
Reference in New Issue
Block a user