docs: add production validation audit
This commit is contained in:
@@ -0,0 +1,458 @@
|
||||
# docs/roadmap/TASK_013_DETMIR_PRODUCTION_VALIDATION.md
|
||||
|
||||
## Цель
|
||||
|
||||
Проверить реально работающий контур DetMir/AWatch-rus на нескольких пользователях и собрать фактические эксплуатационные данные.
|
||||
|
||||
Задача не про добавление функциональности.
|
||||
|
||||
Задача про проверку:
|
||||
|
||||
* что реально работает;
|
||||
* что используется;
|
||||
* где есть шум;
|
||||
* где есть расхождение с документацией;
|
||||
* какие риски есть перед расширением пилота.
|
||||
|
||||
---
|
||||
|
||||
## Контекст
|
||||
|
||||
Проект уже находится в состоянии:
|
||||
|
||||
* Demo Freeze v1;
|
||||
* Pilot-ready;
|
||||
* Registry-preparation-ready;
|
||||
* Enterprise-deployment-documented.
|
||||
|
||||
При этом существует реально работающий контур DetMir на нескольких пользователях.
|
||||
|
||||
Нужно проверить именно его, не подменяя проверку demo/synthetic данными.
|
||||
|
||||
---
|
||||
|
||||
## Основные правила
|
||||
|
||||
Запрещено:
|
||||
|
||||
* добавлять новые API;
|
||||
* добавлять новый UI;
|
||||
* добавлять новые agent collectors;
|
||||
* менять архитектуру;
|
||||
* включать ML/LLM;
|
||||
* добавлять DLP/SIEM/EDR claims;
|
||||
* выгружать персональные данные в документы;
|
||||
* коммитить реальные ФИО, логины, IP, hostname, названия подразделений заказчика;
|
||||
* коммитить runtime artifacts, логи, дампы, скриншоты с реальными данными.
|
||||
|
||||
Разрешено:
|
||||
|
||||
* добавлять документацию;
|
||||
* добавлять checklist;
|
||||
* добавлять anonymized summary;
|
||||
* добавлять smoke/validation scripts, если они не раскрывают данные;
|
||||
* исправлять явные naming/documentation inconsistencies;
|
||||
* фиксировать gaps как отдельные рекомендации.
|
||||
|
||||
---
|
||||
|
||||
## Что проверить
|
||||
|
||||
### 1. Runtime Health
|
||||
|
||||
Проверить работающий контур:
|
||||
|
||||
* `/healthz`;
|
||||
* `/readyz`;
|
||||
* `/version`;
|
||||
* `/metrics`.
|
||||
|
||||
Зафиксировать:
|
||||
|
||||
* доступность;
|
||||
* response status;
|
||||
* наличие request id / correlation id;
|
||||
* отсутствие 500;
|
||||
* корректность metrics format.
|
||||
|
||||
Не сохранять реальные URL, IP, hostname.
|
||||
|
||||
---
|
||||
|
||||
### 2. Portal Usage Validation
|
||||
|
||||
Проверить вручную или через browser smoke:
|
||||
|
||||
* Executive Dashboard;
|
||||
* Workforce view;
|
||||
* Security view;
|
||||
* Forensics view;
|
||||
* Reports view.
|
||||
|
||||
Зафиксировать:
|
||||
|
||||
* какие страницы реально открываются;
|
||||
* какие блоки отображаются;
|
||||
* есть ли пустые/сломанные блоки;
|
||||
* есть ли 500/404;
|
||||
* есть ли визуальные проблемы.
|
||||
|
||||
Не коммитить screenshots с реальными данными.
|
||||
|
||||
Если нужны screenshots — сохранить только локально или сделать обезличенные.
|
||||
|
||||
---
|
||||
|
||||
### 3. KPI Validation
|
||||
|
||||
Проверить:
|
||||
|
||||
* Workforce KPI;
|
||||
* Explainable KPI;
|
||||
* Department Comparison;
|
||||
* Trend Status.
|
||||
|
||||
Ответить:
|
||||
|
||||
* KPI выглядит правдоподобно или нет;
|
||||
* explainability помогает понять KPI или нет;
|
||||
* есть ли очевидно ложные/странные объяснения;
|
||||
* есть ли недостаток данных;
|
||||
* есть ли `confidence: low`.
|
||||
|
||||
---
|
||||
|
||||
### 4. UEBA / Risk Narrative / Action Center Validation
|
||||
|
||||
Проверить:
|
||||
|
||||
* UEBA Score;
|
||||
* Risk Narrative;
|
||||
* Recommended Actions.
|
||||
|
||||
Зафиксировать:
|
||||
|
||||
* есть ли шумные правила;
|
||||
* есть ли бесполезные рекомендации;
|
||||
* есть ли рекомендации без достаточной evidence;
|
||||
* есть ли risk level, который выглядит завышенным;
|
||||
* есть ли risk level, который выглядит заниженным.
|
||||
|
||||
Важно:
|
||||
|
||||
не исправлять правила в этой задаче, если это требует изменения логики.
|
||||
|
||||
Только зафиксировать findings.
|
||||
|
||||
---
|
||||
|
||||
### 5. Agent / Data Flow Validation
|
||||
|
||||
Проверить текущий runtime:
|
||||
|
||||
* работает ли текущий агентский контур;
|
||||
* есть ли backlog/spool;
|
||||
* есть ли ошибки flush;
|
||||
* есть ли dead-letter;
|
||||
* нет ли потери данных;
|
||||
* heartbeat поступает или нет;
|
||||
* данные доходят до портала/отчетов.
|
||||
|
||||
Если используются оба:
|
||||
|
||||
* `awatch-agent-rs`;
|
||||
* `adk-rust/crates/awatch-agent`;
|
||||
|
||||
зафиксировать их фактические роли:
|
||||
|
||||
```text
|
||||
legacy/current runtime:
|
||||
new baseline core:
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
### 6. Performance Snapshot
|
||||
|
||||
Собрать обезличенную сводку:
|
||||
|
||||
* примерное число пользователей;
|
||||
* примерное число событий/записей в сутки, если безопасно доступно;
|
||||
* размер spool/backlog;
|
||||
* время генерации report;
|
||||
* время ответа основных API;
|
||||
* наличие slow requests;
|
||||
* наличие ошибок в logs.
|
||||
|
||||
Не коммитить raw logs.
|
||||
|
||||
---
|
||||
|
||||
### 7. Data Hygiene / Sensitive Data Audit
|
||||
|
||||
Проверить, что в репозитории и документах после работы не появились:
|
||||
|
||||
* реальные ФИО;
|
||||
* реальные логины;
|
||||
* реальные IP;
|
||||
* реальные hostname;
|
||||
* реальные подразделения заказчика;
|
||||
* реальные screenshots;
|
||||
* runtime logs;
|
||||
* database dumps;
|
||||
* персональные данные.
|
||||
|
||||
---
|
||||
|
||||
## Что создать
|
||||
|
||||
Создать документ:
|
||||
|
||||
```text
|
||||
docs/DETMIR_PRODUCTION_VALIDATION_RU.md
|
||||
```
|
||||
|
||||
Структура:
|
||||
|
||||
```text
|
||||
# DetMir Production Validation
|
||||
|
||||
## Executive Summary
|
||||
|
||||
## Scope
|
||||
|
||||
## Environment
|
||||
|
||||
Обезличенно:
|
||||
- пользователей: несколько;
|
||||
- контур: working internal pilot;
|
||||
- данные: реальные, но в документе не раскрываются.
|
||||
|
||||
## Runtime Health
|
||||
|
||||
## Portal Validation
|
||||
|
||||
## KPI Validation
|
||||
|
||||
## Explainable KPI Validation
|
||||
|
||||
## UEBA Validation
|
||||
|
||||
## Risk Narrative Validation
|
||||
|
||||
## Executive Action Center Validation
|
||||
|
||||
## Agent/Data Flow Validation
|
||||
|
||||
## Performance Snapshot
|
||||
|
||||
## Noise / False Positive Findings
|
||||
|
||||
## Documentation Mismatches
|
||||
|
||||
## Security / Privacy Notes
|
||||
|
||||
## Gaps
|
||||
|
||||
## Recommended Next Tasks
|
||||
|
||||
## Explicit Non-Goals
|
||||
|
||||
## Conclusion
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Что обновить
|
||||
|
||||
Обновить:
|
||||
|
||||
```text
|
||||
docs/roadmap/TASK_013_DETMIR_PRODUCTION_VALIDATION.md
|
||||
```
|
||||
|
||||
Добавить секцию:
|
||||
|
||||
```text
|
||||
## Выполнение
|
||||
```
|
||||
|
||||
с кратким итогом.
|
||||
|
||||
При необходимости обновить:
|
||||
|
||||
```text
|
||||
docs/ROADMAP_CONFORMANCE_AUDIT_RU.md
|
||||
```
|
||||
|
||||
только если найдены важные расхождения.
|
||||
|
||||
---
|
||||
|
||||
## Допустимые scripts
|
||||
|
||||
Если полезно, добавить:
|
||||
|
||||
```text
|
||||
scripts/detmir-production-validation-smoke.mjs
|
||||
```
|
||||
|
||||
Требования:
|
||||
|
||||
* не печатать реальные данные;
|
||||
* не сохранять payload с персональными данными;
|
||||
* проверять только статусы, наличие блоков и обезличенные счетчики;
|
||||
* URL задавать через env:
|
||||
|
||||
```bash
|
||||
DETMIR_VALIDATION_URL=http://127.0.0.1:8720
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Проверки
|
||||
|
||||
Выполнить:
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
Если добавлен новый script:
|
||||
|
||||
```bash
|
||||
node --check scripts/detmir-production-validation-smoke.mjs
|
||||
DETMIR_VALIDATION_URL=http://127.0.0.1:8720 node scripts/detmir-production-validation-smoke.mjs
|
||||
```
|
||||
|
||||
Также выполнить:
|
||||
|
||||
```bash
|
||||
git diff --check
|
||||
```
|
||||
|
||||
и sensitive scan по добавленным/измененным файлам.
|
||||
|
||||
---
|
||||
|
||||
## Критерии приемки
|
||||
|
||||
Задача выполнена, если:
|
||||
|
||||
* создан `docs/DETMIR_PRODUCTION_VALIDATION_RU.md`;
|
||||
* рабочий контур проверен без раскрытия персональных данных;
|
||||
* health/ready/version/metrics проверены;
|
||||
* portal проверен;
|
||||
* KPI/explainability проверены;
|
||||
* UEBA/Risk Narrative/Action Center проверены;
|
||||
* agent/data flow проверен;
|
||||
* performance snapshot зафиксирован обезличенно;
|
||||
* gaps и recommended next tasks сформированы;
|
||||
* sensitive data не попали в git;
|
||||
* все проверки проходят.
|
||||
|
||||
---
|
||||
|
||||
## Финальный отчет Codex должен содержать
|
||||
|
||||
1. Что проверено.
|
||||
2. Что подтверждено как работающее.
|
||||
3. Какие gaps найдены.
|
||||
4. Какие noisy rules/recommendations найдены.
|
||||
5. Какие privacy/security ограничения соблюдены.
|
||||
6. Какие документы созданы/обновлены.
|
||||
7. Какие scripts добавлены.
|
||||
8. Результаты проверок.
|
||||
9. Рекомендованные следующие задачи.
|
||||
|
||||
---
|
||||
|
||||
## Выполнение
|
||||
|
||||
Статус: выполнено как production validation / operational audit.
|
||||
|
||||
Создан документ:
|
||||
|
||||
- `docs/DETMIR_PRODUCTION_VALIDATION_RU.md`.
|
||||
|
||||
Проверено без коммита реальных payload/logs/screenshots:
|
||||
|
||||
- gateway и portal runtime;
|
||||
- ActivityWatch API;
|
||||
- portal API reports;
|
||||
- portal tabs и role views через browser/tabs smoke;
|
||||
- Workforce/KPI report structure;
|
||||
- UEBA endpoint;
|
||||
- Risk Narrative endpoint availability;
|
||||
- Executive Action Center endpoint availability;
|
||||
- Windows/RDP agent runtime;
|
||||
- AW server service state;
|
||||
- bucket freshness summary;
|
||||
- production-hardening endpoint availability;
|
||||
- sensitive data hygiene.
|
||||
|
||||
Подтверждено работающее:
|
||||
|
||||
- gateway-level health;
|
||||
- portal UI на фактическом gateway-local port;
|
||||
- `/portal/api/health`;
|
||||
- `/portal/api/reports` по ролям;
|
||||
- Security events backend;
|
||||
- `/portal/api/ueba`;
|
||||
- Forensics view;
|
||||
- базовые portal tabs;
|
||||
- server role gates в существующем tabs smoke;
|
||||
- ActivityWatch API и свежие buckets;
|
||||
- текущий Windows runtime с `awatch-agent-rs` и watchers.
|
||||
|
||||
Найдены gaps:
|
||||
|
||||
- live portal runtime отстает от Demo Freeze v1;
|
||||
- `/portal/api/workforce/kpi/explain`, `/portal/api/risk/narrative`,
|
||||
`/portal/api/actions` на live-контуре возвращают `404`;
|
||||
- `/healthz`, `/readyz`, `/version`, `/metrics` не доступны на фактическом
|
||||
portal port;
|
||||
- request id / correlation id headers не возвращаются live portal API;
|
||||
- Executive visual conformance smoke не проходит на live runtime;
|
||||
- UEBA `critical` требует ручной проверки evidence, чтобы исключить шум.
|
||||
|
||||
Scripts:
|
||||
|
||||
- новые scripts не добавлялись;
|
||||
- использованы существующие `scripts/browser-conformance-smoke.mjs`,
|
||||
`scripts/detmir-portal-tabs-smoke.mjs`,
|
||||
`scripts/awatch-production-hardening-smoke.mjs`,
|
||||
`scripts/deployment-readiness-smoke.mjs`,
|
||||
`scripts/pilot-validation-smoke.mjs`.
|
||||
|
||||
Результаты проверок:
|
||||
|
||||
- `cargo fmt --all --check` - OK;
|
||||
- `cargo clippy --all-targets --all-features -- -D warnings` - OK;
|
||||
- `cargo test --all` - OK;
|
||||
- `cargo build --release` - OK;
|
||||
- `node scripts/deployment-readiness-smoke.mjs` - OK;
|
||||
- `node scripts/pilot-validation-smoke.mjs` - OK;
|
||||
- live `scripts/browser-conformance-smoke.mjs` - FAIL для Executive,
|
||||
Workforce, Security; OK для Forensics;
|
||||
- live `scripts/detmir-portal-tabs-smoke.mjs` - FAIL только на Executive
|
||||
freeze-layer checks; базовые tabs, role gates, security/forensics/admin OK;
|
||||
- live `scripts/awatch-production-hardening-smoke.mjs` - FAIL:
|
||||
`/healthz` на live portal base не возвращает `200`;
|
||||
- `git diff --check` - OK;
|
||||
- sensitive scan по добавленным/измененным файлам - OK после исключения
|
||||
терминологических false positives.
|
||||
|
||||
Итог:
|
||||
|
||||
- live-контур пригоден для controlled internal review;
|
||||
- расширять пилот нельзя, пока не закрыт deployment/version drift и не повторен
|
||||
live smoke после controlled deploy;
|
||||
- новых claims, API, UI, collectors, ML/LLM и SIEM/DLP/EDR заявлений не
|
||||
добавлялось.
|
||||
Reference in New Issue
Block a user