docs: enter demo freeze housekeeping

This commit is contained in:
igor04091968
2026-06-07 21:17:12 +03:00
parent 037d47b592
commit 1b817866a4
29 changed files with 495 additions and 58 deletions
+3 -2
View File
@@ -213,7 +213,7 @@ collectors.
[commercial positioning](docs/REGISTRY_COMMERCIAL_POSITIONING_RU.md), [commercial positioning](docs/REGISTRY_COMMERCIAL_POSITIONING_RU.md),
[readiness checklist](docs/REGISTRY_READINESS_CHECKLIST_RU.md). [readiness checklist](docs/REGISTRY_READINESS_CHECKLIST_RU.md).
- [Позиционирование для реестра российского ПО](docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md) - [Позиционирование для реестра российского ПО](docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md)
- [Сведения для подачи в реестр](REGISTER_RU_SOFTWARE.md) - [Сведения для подачи в реестр](REGISTER_RU_SOFTWARE.md)
- [Registry product passport](docs/REGISTRY_PRODUCT_PASSPORT_RU.md) - [Registry product passport](docs/REGISTRY_PRODUCT_PASSPORT_RU.md)
- [Registry architecture](docs/REGISTRY_ARCHITECTURE_RU.md) - [Registry architecture](docs/REGISTRY_ARCHITECTURE_RU.md)
@@ -228,7 +228,7 @@ collectors.
- [Сценарий экспертной проверки](docs/EXPERT_TEST_SCENARIO_RU.md) - [Сценарий экспертной проверки](docs/EXPERT_TEST_SCENARIO_RU.md)
- [Release manifest 2026-06](docs/RELEASE_MANIFEST_2026-06.md) - [Release manifest 2026-06](docs/RELEASE_MANIFEST_2026-06.md)
- [Эксплуатационный профиль](docs/OPERATIONAL_PROOF_PROFILE_RU.md) - [Эксплуатационный профиль](docs/OPERATIONAL_PROOF_PROFILE_RU.md)
- [Коммерческие модули AWatch-rus](docs/DETMIR_COMMERCIAL_MODULES_RU.md) - [Коммерческие модули AWatch-rus](docs/COMMERCIAL_MODULES_RU.md)
- [Архитектурный baseline](docs/ARCHITECTURE_BASELINE_RU.md) - [Архитектурный baseline](docs/ARCHITECTURE_BASELINE_RU.md)
- [Пакет пилота для заказчика](docs/CUSTOMER_PILOT_PACK_RU.md) - [Пакет пилота для заказчика](docs/CUSTOMER_PILOT_PACK_RU.md)
- [Enterprise deployment guide](docs/ENTERPRISE_DEPLOYMENT_GUIDE_RU.md) - [Enterprise deployment guide](docs/ENTERPRISE_DEPLOYMENT_GUIDE_RU.md)
@@ -256,6 +256,7 @@ collectors.
- [Browser conformance smoke](docs/BROWSER_CONFORMANCE_RU.md) - [Browser conformance smoke](docs/BROWSER_CONFORMANCE_RU.md)
- [Production readiness портала](docs/PRODUCTION_READINESS_RU.md) - [Production readiness портала](docs/PRODUCTION_READINESS_RU.md)
- [Explainable Workforce KPI](docs/EXPLAINABLE_KPI_RU.md) - [Explainable Workforce KPI](docs/EXPLAINABLE_KPI_RU.md)
- [Risk Narrative](docs/RISK_NARRATIVE_RU.md)
- [Executive Action Center](docs/EXECUTIVE_ACTION_CENTER_RU.md) - [Executive Action Center](docs/EXECUTIVE_ACTION_CENTER_RU.md)
- [Rust Agent baseline](docs/RUST_AGENT_BASELINE_RU.md) - [Rust Agent baseline](docs/RUST_AGENT_BASELINE_RU.md)
- [Итог production-расследования 2026-06-07](docs/PRODUCTION_INCIDENT_REPORT_2026-06-07_RU.md) - [Итог production-расследования 2026-06-07](docs/PRODUCTION_INCIDENT_REPORT_2026-06-07_RU.md)
+1 -1
View File
@@ -305,5 +305,5 @@ stale/dead buckets для обязательных источников.
- `docs/ARCHITECTURE_RU.md` - архитектура. - `docs/ARCHITECTURE_RU.md` - архитектура.
- `docs/ADMIN_GUIDE_RU.md` - руководство администратора. - `docs/ADMIN_GUIDE_RU.md` - руководство администратора.
- `docs/OPERATOR_GUIDE_RU.md` - руководство оператора. - `docs/OPERATOR_GUIDE_RU.md` - руководство оператора.
- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` - стратегия - `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` - стратегия
позиционирования. позиционирования.
+1 -1
View File
@@ -337,7 +337,7 @@ Collector и server-side сервисы проектировались так,
### MCP / PowerShell remote для AWatch-rus ### MCP / PowerShell remote для AWatch-rus
Документ: `docs/DETMIR_POWERSHELL_MCP_REMOTE_RU.md` Документ: `docs/POWERSHELL_MCP_REMOTE_RU.md`
Реализует: Реализует:
+14 -13
View File
@@ -1,9 +1,9 @@
# Runbook: перевод DetMir на Rust / ADK-Rust # Runbook: перевод AWatch-rus на Rust / ADK-Rust
Дата фиксации: `2026-06-01` Дата фиксации: `2026-06-01`
Цель: постепенно заменить хрупкие Python/shell operational scripts на Цель: постепенно заменить хрупкие Python/shell operational scripts на
самодостаточные Rust-бинарники, не ломая текущий production-контур DetMir. самодостаточные Rust-бинарники, не ломая текущий production-контур AWatch-rus.
Этот runbook является рабочим планом миграции. Если фактический runtime Этот runbook является рабочим планом миграции. Если фактический runtime
расходится с этим документом, сначала фиксируется baseline, затем обновляется расходится с этим документом, сначала фиксируется baseline, затем обновляется
@@ -1543,7 +1543,7 @@ systemctl is-active tsj-guardian-bot tsj-guardian-watchdog gost-tg
- production binary доставлен на AW server, но `--apply` не запускался; - production binary доставлен на AW server, но `--apply` не запускался;
- production dry-run: `apply=false`, `ok=true`, `missing=0`, - production dry-run: `apply=false`, `ok=true`, `missing=0`,
`executed=0`, `steps=25`; `executed=0`, `steps=25`;
- final production gates: AW failed units `0`, DetMir status OK with - final production gates: AW failed units `0`, `detmir-status` OK with
`service_warnings=0`, `dlp_counts={ok:22,warn:0,fail:0}`, `service_warnings=0`, `dlp_counts={ok:22,warn:0,fail:0}`,
`ok_for_operator=true`; `ok_for_operator=true`;
- gates: `cargo fmt --all -- --check`, `cargo test -p - gates: `cargo fmt --all -- --check`, `cargo test -p
@@ -1707,15 +1707,15 @@ systemctl is-active tsj-guardian-bot tsj-guardian-watchdog gost-tg
Grafana check `ok=true` with `fail=0`, `detmir-auto --no-heal` rc `0`, Grafana check `ok=true` with `fail=0`, `detmir-auto --no-heal` rc `0`,
portal health `true`, `detmir-status` `OK / ok_for_operator=true`, and portal health `true`, `detmir-status` `OK / ok_for_operator=true`, and
failed units `0`. failed units `0`.
- `docs/DETMIR_THREAT_MODEL_RU.md` added as the current working threat - `docs/THREAT_MODEL_RU.md` added as the current working threat
model for DetMir. It records the product as an operational model for AWatch-rus. It records the product as an operational
control and technical audit platform, not a certified DLP/SIEM/EDR/XDR control and technical audit platform, not a certified DLP/SIEM/EDR/XDR
or FSTEC SZI. It also records Igor as the declared product owner, lists or FSTEC SZI. It also records Igor as the declared product owner, lists
assets, trust zones, attacker/operator-failure classes, implemented assets, trust zones, attacker/operator-failure classes, implemented
evidence controls, residual risks, and the hardening roadmap. evidence controls, residual risks, and the hardening roadmap.
- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` added as the - `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` added as the
registry/product positioning note. Current decision: lead with DetMir as registry/product positioning note. Current decision: lead with AWatch-rus
an operational control and IT infrastructure management platform, use as an operational control and IT infrastructure management platform, use
`09.10` as the primary Russian software registry class target, keep `09.10` as the primary Russian software registry class target, keep
DLP/security/evidence/Hayabusa as applied modules, and prepare website, DLP/security/evidence/Hayabusa as applied modules, and prepare website,
operator/admin docs, ownership package, screenshots, and dependency operator/admin docs, ownership package, screenshots, and dependency
@@ -1724,17 +1724,18 @@ systemctl is-active tsj-guardian-bot tsj-guardian-watchdog gost-tg
`docs/ADMIN_GUIDE_RU.md`, `docs/OPERATOR_GUIDE_RU.md`, `docs/ADMIN_GUIDE_RU.md`, `docs/OPERATOR_GUIDE_RU.md`,
`docs/INSTALL_RU.md`, `docs/ARCHITECTURE_RU.md`, `docs/INSTALL_RU.md`, `docs/ARCHITECTURE_RU.md`,
`docs/OWNERSHIP_RU.md`, `docs/THIRD_PARTY_LICENSES_RU.md`, and `docs/OWNERSHIP_RU.md`, `docs/THIRD_PARTY_LICENSES_RU.md`, and
`docs/REGISTRY_CHECKLIST_RU.md`. Naming decision fixed across the docs: `docs/REGISTRY_CHECKLIST_RU.md`. Current naming decision for public
`DetMir` is the product, `AWatch-rus` is the repository/technical base, materials: `AWatch-rus` is the product and repository name. Legacy
and the external formula is `DetMir, программный комплекс на базе `detmir-*` service, crate and environment identifiers remain technical
AWatch-rus`. runtime identifiers until a separate compatibility-safe migration is
approved.
Отложить: Отложить:
- post-MVP развитие `detmir-portal`: role-aware views, safe check-now action, - post-MVP развитие `detmir-portal`: role-aware views, safe check-now action,
daily owner report, historical trends, AI summary with strict source daily owner report, historical trends, AI summary with strict source
citations, action buttons with allowlist and audit log. Детальный план: citations, action buttons with allowlist and audit log. Детальный план:
`docs/DETMIR_PORTAL_GUI_PLAN_RU.md`; `docs/PORTAL_GUI_PLAN_RU.md`;
- перенос Telegram bot runtime снят с плана: Python остается постоянным - перенос Telegram bot runtime снят с плана: Python остается постоянным
runtime, Rust используется только для backend helpers; runtime, Rust используется только для backend helpers;
- перенос оставшихся install/runtime scripts на Rust; - перенос оставшихся install/runtime scripts на Rust;
+5 -5
View File
@@ -92,8 +92,8 @@ ansible-playbook -i inventory.ini provision_proxmox_ct_matrix_and_deploy_aw.yml
Важно: Важно:
- `WinRM` здесь остаётся транспортом для `Ansible deploy` и `validation`; - `WinRM` здесь остаётся транспортом для `Ansible deploy` и `validation`;
- для интерактивной PowerShell-работы из Linux/Codex по DetMir используйте project MCP-over-SSH путь, а не `WSMan`; - для интерактивной PowerShell-работы из Linux/Codex по AWatch-rus используйте project MCP-over-SSH путь, а не `WSMan`;
- каноника лежит в `docs/DETMIR_POWERSHELL_MCP_REMOTE_RU.md` и `scripts/install_detmir_powershell_mcp.sh`. - каноника лежит в `docs/POWERSHELL_MCP_REMOTE_RU.md` и `scripts/install_detmir_powershell_mcp.sh`.
1. Подготовьте inventory и vars: 1. Подготовьте inventory и vars:
- `cp ansible/inventory.example.ini ansible/inventory.ini` - `cp ansible/inventory.example.ini ansible/inventory.ini`
@@ -232,9 +232,9 @@ Playbook:
По умолчанию импортируются: По умолчанию импортируются:
- `DetMir: Работа пользователей в RDP` - `AWatch-rus: Работа пользователей в RDP`
- `DetMir: DLP и ИБ обзор` - `AWatch-rus: DLP и ИБ обзор`
- `DetMir: ИБ сводка для руководства` - `AWatch-rus: ИБ сводка для руководства`
- `AW-rus: DLP обзор` - `AW-rus: DLP обзор`
Подробная документация: `docs/GRAFANA_DASHBOARDS_RU.md` Подробная документация: `docs/GRAFANA_DASHBOARDS_RU.md`
+2 -2
View File
@@ -155,6 +155,6 @@ Rollback-critical данные:
- `docs/OPERATOR_GUIDE_RU.md` - `docs/OPERATOR_GUIDE_RU.md`
- `docs/INSTALL_RU.md` - `docs/INSTALL_RU.md`
- `docs/ARCHITECTURE_RU.md` - `docs/ARCHITECTURE_RU.md`
- `docs/DETMIR_THREAT_MODEL_RU.md` - `docs/THREAT_MODEL_RU.md`
- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` - `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`
- `adk-rust/RUNBOOK.md` - `adk-rust/RUNBOOK.md`
+2 -2
View File
@@ -147,8 +147,8 @@ AWatch-rus не заявляется как сертифицированная
## 9. Связанные документы ## 9. Связанные документы
- `docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md` - `docs/UNIFIED_OPERATING_MODEL_RU.md`
- `docs/DETMIR_THREAT_MODEL_RU.md` - `docs/THREAT_MODEL_RU.md`
- `docs/ADMIN_GUIDE_RU.md` - `docs/ADMIN_GUIDE_RU.md`
- `docs/OPERATOR_GUIDE_RU.md` - `docs/OPERATOR_GUIDE_RU.md`
- `docs/GRAFANA_DASHBOARDS_RU.md` - `docs/GRAFANA_DASHBOARDS_RU.md`
+1 -1
View File
@@ -134,5 +134,5 @@ AWatch-rus помогает контролировать и расследова
- `docs/ADMIN_GUIDE_RU.md` - `docs/ADMIN_GUIDE_RU.md`
- `docs/GRAFANA_DASHBOARDS_RU.md` - `docs/GRAFANA_DASHBOARDS_RU.md`
- `docs/DETMIR_THREAT_MODEL_RU.md` - `docs/THREAT_MODEL_RU.md`
- `docs/dlp-security-functional-spec-ru.md` - `docs/dlp-security-functional-spec-ru.md`
+1 -1
View File
@@ -114,4 +114,4 @@ AWatch-rus
- `docs/THIRD_PARTY_LICENSES_RU.md` - `docs/THIRD_PARTY_LICENSES_RU.md`
- `docs/REGISTRY_CHECKLIST_RU.md` - `docs/REGISTRY_CHECKLIST_RU.md`
- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` - `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`
+2 -2
View File
@@ -38,8 +38,8 @@
## 4. Документация ## 4. Документация
- [x] Модель угроз: `docs/DETMIR_THREAT_MODEL_RU.md`. - [x] Модель угроз: `docs/THREAT_MODEL_RU.md`.
- [x] Позиционирование: `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`. - [x] Позиционирование: `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`.
- [x] Руководство администратора: `docs/ADMIN_GUIDE_RU.md`. - [x] Руководство администратора: `docs/ADMIN_GUIDE_RU.md`.
- [x] Руководство оператора: `docs/OPERATOR_GUIDE_RU.md`. - [x] Руководство оператора: `docs/OPERATOR_GUIDE_RU.md`.
- [x] Установка: `docs/INSTALL_RU.md`. - [x] Установка: `docs/INSTALL_RU.md`.
+1 -1
View File
@@ -3,7 +3,7 @@
Дата фиксации: `2026-06-03`. Дата фиксации: `2026-06-03`.
Документ фиксирует audit-facing решение по классу подачи AWatch-rus. Документ фиксирует audit-facing решение по классу подачи AWatch-rus.
Он дополняет `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`. Он дополняет `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`.
## 1. Рекомендованный класс ## 1. Рекомендованный класс
+2 -2
View File
@@ -50,8 +50,8 @@ git grep -n -E 'SHARKON2025|10\.10\.10|dm\.iri|/home/igor|/root' -- \
```text ```text
adk-rust/crates/verify-innosetup-installer/src/main.rs:260: let root = std::path::Path::new("/tmp/root"); adk-rust/crates/verify-innosetup-installer/src/main.rs:260: let root = std::path::Path::new("/tmp/root");
docs/ARCHITECTURE_RU.md:116:- canonical path/root allowlist; docs/ARCHITECTURE_RU.md:116:- canonical path/root allowlist;
docs/DETMIR_THREAT_MODEL_RU.md:168:- canonical path/root allowlist; docs/THREAT_MODEL_RU.md:168:- canonical path/root allowlist;
docs/DETMIR_THREAT_MODEL_RU.md:223:| T05 | Прямая выдача файлов по path traversal | Canonical path/root allowlist, no raw path route. | docs/THREAT_MODEL_RU.md:223:| T05 | Прямая выдача файлов по path traversal | Canonical path/root allowlist, no raw path route. |
proxmox/tsj_guardian_bot.py:960: base_pat += r"|lxc-usernsexec.*(/var/lib/lxc/" + guest_pat + r"/rootfs|/run/lxc/)" proxmox/tsj_guardian_bot.py:960: base_pat += r"|lxc-usernsexec.*(/var/lib/lxc/" + guest_pat + r"/rootfs|/run/lxc/)"
``` ```
+179
View File
@@ -0,0 +1,179 @@
# Risk Narrative
Risk Narrative в AWatch-rus - это управленческое объяснение текущего риска на
основе уже существующих сигналов продукта. Слой отвечает на четыре вопроса:
- что происходит;
- насколько это рискованно;
- почему система так считает;
- что делать дальше.
Risk Narrative не является ML-прогнозом, LLM-выводом, SIEM, DLP или
автоматическим подтверждением нарушения. Это rule-based decision-support слой
для Pilot v1.
## API
Endpoint:
```http
GET /api/risk/narrative
```
Поддерживаемые параметры зависят от текущего контракта портала:
- `date`;
- `department`;
- `role`;
- `module`.
Employee-level детализация не добавляется, пока нет отдельной безопасной модели
доступа и приемочного контракта.
## Модель ответа
Ответ содержит:
- `risk_level` - уровень риска: `low`, `guarded`, `medium`, `high`,
`critical`;
- `risk_score` - числовая оценка 0-100;
- `title` - короткий управленческий заголовок;
- `summary` - объяснение ситуации простым языком;
- `why` - причины расчета;
- `evidence` - подтверждающие сигналы;
- `recommended_actions` - ручные действия для ответственных ролей;
- `limitations` - ограничения интерпретации.
Пример:
```json
{
"risk_level": "medium",
"risk_score": 62,
"title": "Умеренный рост операционного риска",
"summary": "Активность подразделения снизилась при росте удаленных сессий и частичных пробелах покрытия.",
"why": [
"Индекс активности ниже среднего по подразделениям",
"UEBA score повышен",
"Покрытие агентов ниже целевого уровня"
],
"evidence": [
{
"source": "workforce_kpi",
"label": "Индекс активности",
"value": "74%",
"severity": "medium"
}
],
"recommended_actions": [
"Проверить подразделения с низким покрытием данных",
"Передать security-события в контур ИБ для анализа"
],
"limitations": [
"pfSense находится в contract_only режиме",
"Risk Narrative не является ML-прогнозом"
]
}
```
## Rule-Based Scoring
Модель детерминированная. Она использует только текущие агрегированные сигналы
и не обучается на данных заказчика.
Уровни:
| Диапазон | Уровень | Интерпретация |
| --- | --- | --- |
| `0-24` | `low` | Существенных отклонений нет |
| `25-49` | `guarded` | Есть ранние признаки риска |
| `50-74` | `medium` | Нужна ручная проверка причин |
| `75-89` | `high` | Требуется приоритетная проверка |
| `90-100` | `critical` | Нужна срочная ручная проверка |
Сигналы:
- сниженный Workforce KPI;
- низкое доверие к KPI;
- низкое покрытие агентами;
- повышенный UEBA severity;
- наличие кандидатов на проверку;
- высокая связь security-событий и активности;
- пропуски данных;
- активность вне рабочего времени;
- рост удаленных сессий;
- `contract_only` ограничение pfSense.
## Evidence
`evidence` нужен, чтобы руководитель, ИБ и эксплуатация видели не только итоговый
уровень риска, но и источники вывода.
Типовые источники:
- `workforce_kpi`;
- `kpi_explainability`;
- `ueba`;
- `coverage`;
- `risk_heatmap`;
- `security_correlation`;
- `incident_candidates`;
- `pfsense_contract`.
Evidence не должен содержать реальные ФИО, логины, IP-адреса, hostname или
сырые события безопасности в demo-режиме.
## Роли
| Роль | Видимость |
| --- | --- |
| `executive` | Управленческий риск, причины, действия без технической детализации |
| `manager` | Workforce-риск и действия по подразделению |
| `security` | ИБ-релевантные причины, кандидаты и correlation indicators |
| `forensics` | Контекст расследования и evidence package |
| `admin` | Состояние источников, покрытие и технические ограничения |
Серверные role gates остаются обязательными. Скрытие блоков в HTML не считается
достаточной защитой.
## UI и Markdown
В Executive view портал показывает блок:
```text
Риск-нарратив
```
В Markdown-отчете используется раздел:
```markdown
## Риск-нарратив
```
Раздел должен быть понятен руководителю без знаний ИБ: сначала вывод, затем
причины, затем действия и ограничения.
## Как показывать заказчику
Рекомендуемый порядок для demo:
1. Открыть Executive view.
2. Показать `Риск-нарратив`: уровень, score и краткое summary.
3. Показать `Почему`: какие факторы подняли риск.
4. Показать `Evidence`: какие сигналы подтверждают вывод.
5. Показать `Рекомендуемые действия`.
6. Перейти в Security или Forensics только после управленческого вывода.
Важно: не заявлять, что Risk Narrative сам подтверждает нарушение. Он
приоритизирует ручную проверку.
## Ограничения Pilot v1
- Нет ML, LLM и predictive analytics.
- Нет auto-remediation.
- Нет полноценного SIEM/DLP claim.
- pfSense readiness является `contract_only`, если ingestion отдельно не
включен и не прошел приемку.
- Качество вывода зависит от свежести источников, покрытия агентов и полноты
данных.
- В demo-режиме используются только обезличенные данные.
+9 -9
View File
@@ -21,16 +21,16 @@ baseline, demo pack, registry readiness package, enterprise deployment package
генерируемый отчет теперь начинается с `# AWatch-rus оперативный отчет`, а генерируемый отчет теперь начинается с `# AWatch-rus оперативный отчет`, а
headline, KPI label и CLI help используют публичное название AWatch-rus. headline, KPI label и CLI help используют публичное название AWatch-rus.
Главные остаточные gaps: Закрытые housekeeping gaps Demo Freeze v1:
- TASK_001-TASK_004 получили явные секции `Выполнение` с артефактами,
проверками и ограничениями.
- Для Risk Narrative создан отдельный документ `docs/RISK_NARRATIVE_RU.md`.
- Добавлен browser-level conformance smoke с Playwright и screenshots runtime
artifacts.
Оставшиеся acceptance gaps:
- TASK_001-TASK_004 не имеют явной секции `Выполнение`, хотя артефакты по ним
в коде и документации присутствуют.
- Для Risk Narrative нет отдельного `docs/RISK_NARRATIVE_RU.md`; функциональность
подтверждена кодом, OpenAPI, TypeScript, UI и Markdown, но документация
распределена по связанным материалам.
- Portal verification в TASK_011 выполнен через код, статические UI-маркеры и
production smoke; отдельный полноценный Playwright visual run не входил в
обязательный список команд TASK_011.
- Полная production-приемка требует live validation на стенде заказчика: - Полная production-приемка требует live validation на стенде заказчика:
доступность, TLS/reverse proxy, источники данных, backup/restore и ownership доступность, TLS/reverse proxy, источники данных, backup/restore и ownership
действий. действий.
@@ -194,9 +194,9 @@ Grafana/portal-аналитику, Telegram-оповещения, runbook automa
Уже есть сильная база: Уже есть сильная база:
- `docs/DETMIR_THREAT_MODEL_RU.md`; - `docs/THREAT_MODEL_RU.md`;
- `docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md`; - `docs/UNIFIED_OPERATING_MODEL_RU.md`;
- `docs/DETMIR_PORTAL_GUI_PLAN_RU.md`; - `docs/PORTAL_GUI_PLAN_RU.md`;
- `docs/dlp-security-functional-spec-ru.md`; - `docs/dlp-security-functional-spec-ru.md`;
- `docs/dlp-gap-analysis.md`; - `docs/dlp-gap-analysis.md`;
- `docs/GRAFANA_DASHBOARDS_RU.md`; - `docs/GRAFANA_DASHBOARDS_RU.md`;
@@ -314,7 +314,7 @@
## 12. Связанные документы ## 12. Связанные документы
- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` - `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`
- `docs/ADMIN_GUIDE_RU.md` - `docs/ADMIN_GUIDE_RU.md`
- `docs/OPERATOR_GUIDE_RU.md` - `docs/OPERATOR_GUIDE_RU.md`
- `docs/INSTALL_RU.md` - `docs/INSTALL_RU.md`
@@ -322,8 +322,8 @@
- `docs/OWNERSHIP_RU.md` - `docs/OWNERSHIP_RU.md`
- `docs/THIRD_PARTY_LICENSES_RU.md` - `docs/THIRD_PARTY_LICENSES_RU.md`
- `docs/REGISTRY_CHECKLIST_RU.md` - `docs/REGISTRY_CHECKLIST_RU.md`
- `docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md` - `docs/UNIFIED_OPERATING_MODEL_RU.md`
- `docs/DETMIR_PORTAL_GUI_PLAN_RU.md` - `docs/PORTAL_GUI_PLAN_RU.md`
- `docs/dlp-security-functional-spec-ru.md` - `docs/dlp-security-functional-spec-ru.md`
- `docs/dlp-gap-analysis.md` - `docs/dlp-gap-analysis.md`
- `docs/dlp-production-plan-windows-10-19.md` - `docs/dlp-production-plan-windows-10-19.md`
@@ -8,12 +8,12 @@
Если старые документы расходятся с этим файлом по адресам или runtime-ролям, для текущей эксплуатации приоритет у этого файла. Если старые документы расходятся с этим файлом по адресам или runtime-ролям, для текущей эксплуатации приоритет у этого файла.
Связанная security-основа: `docs/DETMIR_THREAT_MODEL_RU.md` фиксирует текущую Связанная security-основа: `docs/THREAT_MODEL_RU.md` фиксирует текущую
операционную модель угроз. Это рабочая модель для платформы операционного операционную модель угроз. Это рабочая модель для платформы операционного
контроля и технического аудита, а не формальная сертификационная модель ФСТЭК. контроля и технического аудита, а не формальная сертификационная модель ФСТЭК.
Связанное продуктовое позиционирование: Связанное продуктовое позиционирование:
`docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` фиксирует безопасный `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` фиксирует безопасный
заход для реестра российского ПО: AWatch-rus как платформа операционного контроля и заход для реестра российского ПО: AWatch-rus как платформа операционного контроля и
управления ИТ-инфраструктурой, с ориентиром на класс `09.10`, без заявления управления ИТ-инфраструктурой, с ориентиром на класс `09.10`, без заявления
сертифицированной DLP/SIEM/EDR/XDR/СЗИ. сертифицированной DLP/SIEM/EDR/XDR/СЗИ.
@@ -422,8 +422,8 @@ Telegram bot `DetMirAuto` обязан покрывать:
| `SECURITY.md` | security findings по risky фазам | | `SECURITY.md` | security findings по risky фазам |
| `UAT.md` | операторская приемка | | `UAT.md` | операторская приемка |
| `docs/runbook.md` | живая эксплуатация | | `docs/runbook.md` | живая эксплуатация |
| `docs/DETMIR_THREAT_MODEL_RU.md` | рабочая модель угроз и границы security-позиционирования | | `docs/THREAT_MODEL_RU.md` | рабочая модель угроз и границы security-позиционирования |
| `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` | стратегия позиционирования для реестра российского ПО | | `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` | стратегия позиционирования для реестра российского ПО |
| `docs/ADMIN_GUIDE_RU.md` | руководство администратора | | `docs/ADMIN_GUIDE_RU.md` | руководство администратора |
| `docs/OPERATOR_GUIDE_RU.md` | руководство оператора | | `docs/OPERATOR_GUIDE_RU.md` | руководство оператора |
| `docs/INSTALL_RU.md` | установка и первичная проверка | | `docs/INSTALL_RU.md` | установка и первичная проверка |
+2 -2
View File
@@ -22,7 +22,7 @@
Система не является полноценной DLP-платформой enterprise-класса с нативной аутентификацией, RBAC, аппаратной изоляцией и криптографической подписью политик. Это важно учитывать при ИБ-оценке. Система не является полноценной DLP-платформой enterprise-класса с нативной аутентификацией, RBAC, аппаратной изоляцией и криптографической подписью политик. Это важно учитывать при ИБ-оценке.
Текущая модель угроз для всего контура AWatch-rus зафиксирована отдельно: Текущая модель угроз для всего контура AWatch-rus зафиксирована отдельно:
`docs/DETMIR_THREAT_MODEL_RU.md`. В ней DLP-функции рассматриваются как часть `docs/THREAT_MODEL_RU.md`. В ней DLP-функции рассматриваются как часть
платформы операционного контроля и технического аудита, а не как заявление о платформы операционного контроля и технического аудита, а не как заявление о
сертифицированной DLP/СЗИ. сертифицированной DLP/СЗИ.
@@ -604,7 +604,7 @@ python3 scripts/dlp-admin-cli.py cases list --limit 50
## 21. Связанные документы ## 21. Связанные документы
- `docs/DETMIR_THREAT_MODEL_RU.md` - `docs/THREAT_MODEL_RU.md`
- `docs/dlp-policy-engine.md` - `docs/dlp-policy-engine.md`
- `docs/dlp-integrations.md` - `docs/dlp-integrations.md`
- `docs/dlp-enforcement.md` - `docs/dlp-enforcement.md`
@@ -22,3 +22,44 @@ AWatch-rus.
Pilot v1 можно показывать заказчику с понятным списком готовых возможностей, Pilot v1 можно показывать заказчику с понятным списком готовых возможностей,
ограничений и smoke-проверок. ограничений и smoke-проверок.
---
## Выполнение
Статус: выполнено как часть Pilot v1 freeze.
Что закреплено:
- роли `executive`, `manager`, `security`, `forensics`, `admin`;
- серверные role gates для Pilot v1 API;
- Executive, Workforce, Security и Forensics portal views;
- Pilot v1 acceptance/evidence документация;
- demo/runbook слой для контролируемого показа;
- browser-level conformance smoke для ключевых представлений.
Ключевые артефакты:
- `docs/PILOT_V1_RU.md`;
- `docs/PILOT_V1_ACCEPTANCE_CHECKLIST_RU.md`;
- `docs/PILOT_V1_EVIDENCE_RU.md`;
- `docs/PILOT_VALIDATION_CHECKLIST_RU.md`;
- `docs/DEMO_RUNBOOK_RU.md`;
- `docs/BROWSER_CONFORMANCE_RU.md`;
- `scripts/detmir-portal-tabs-smoke.mjs`;
- `scripts/browser-conformance-smoke.mjs`;
- `scripts/pilot-validation-smoke.mjs`.
Проверки:
- `node scripts/pilot-validation-smoke.mjs`;
- `node scripts/detmir-portal-tabs-smoke.mjs` на локальном портале;
- `node scripts/browser-conformance-smoke.mjs` на локальном портале;
- `git diff --check`.
Известные ограничения:
- production acceptance требует отдельной live-проверки на стенде заказчика;
- screenshots из `artifacts/browser-smoke/` являются runtime artifacts и не
коммитятся;
- новые collectors и новая функциональность в freeze-фазе не добавляются.
@@ -381,3 +381,72 @@ Smoke должен проверять:
7. Результаты команд проверки. 7. Результаты команд проверки.
8. Результат smoke. 8. Результат smoke.
9. Известные ограничения 9. Известные ограничения
---
## Выполнение
Статус: выполнено для Pilot v1 production-hardening слоя портала.
Краткое описание:
- добавлены production endpoints `/healthz`, `/readyz`, `/version`, `/metrics`;
- добавлены request id / correlation id headers;
- добавлены structured JSON HTTP logs;
- добавлены bounded query/body limits для тяжелых API;
- добавлена валидация production-конфигурации;
- role gates сохранены и проверяются smoke;
- pfSense остается `contract_only`, без заявления ingestion/SIEM.
Ключевые файлы:
- `adk-rust/crates/detmir-portal/src/production/`;
- `adk-rust/crates/detmir-portal/src/main.rs`;
- `docs/PRODUCTION_READINESS_RU.md`;
- `scripts/awatch-production-hardening-smoke.mjs`.
Endpoints:
- `GET /healthz`;
- `GET /readyz`;
- `GET /version`;
- `GET /metrics`;
- защищенные Pilot v1 API: `/api/reports`, `/api/executive`,
`/api/workforce`, `/api/security`, `/api/forensics`, `/api/ueba`,
`/api/pfsense`, `/api/workforce/kpi/explain`.
Лимиты и защита:
- max request body size;
- max/default page size;
- max report date range;
- request timeout и slow request logging threshold;
- отказ `400` для слишком большого `page_size` или диапазона отчета;
- отказ `413` для слишком большого body;
- отказ `403` по role gate.
Метрики:
- `awatch_http_requests_total`;
- `awatch_http_request_duration_seconds`;
- `awatch_reports_generated_total`;
- `awatch_ingestion_records_total`;
- `awatch_ingestion_rejected_total`;
- `awatch_role_denied_total`;
- `awatch_readyz_status`.
Проверки:
- `cargo fmt --all --check`;
- `cargo clippy --all-targets --all-features -- -D warnings`;
- `cargo test --all`;
- `cargo build --release`;
- `AWATCH_PORTAL_SMOKE_URL=http://127.0.0.1:8720 node scripts/awatch-production-hardening-smoke.mjs`;
- `git diff --check`.
Известные ограничения:
- production-hardening smoke не заменяет live acceptance;
- `/readyz` отражает только реально настроенные зависимости;
- contract-only интеграции не считаются работающими сборщиками;
- freeze-фаза допускает только исправление дефектов и уточнение документации.
+69 -1
View File
@@ -309,4 +309,72 @@ docs/EXPLAINABLE_KPI_RU.md
5. Добавленные UI-блоки. 5. Добавленные UI-блоки.
6. Добавленные тесты. 6. Добавленные тесты.
7. Результаты проверок. 7. Результаты проверок.
8. Известные ограничения. 8. Известные ограничения.
---
## Выполнение
Статус: выполнено для Pilot v1.
Краткое описание:
- добавлен explainability-контракт Workforce KPI;
- добавлен endpoint `GET /api/workforce/kpi/explain`;
- добавлена детерминированная rule-based модель факторов;
- добавлен confidence level `high` / `medium` / `low`;
- UI показывает блок `Почему такой индекс активности?`;
- Markdown-отчет содержит explainability-раздел;
- OpenAPI и TypeScript contracts включают explain model;
- employee-level детализация не добавлена без отдельного безопасного контракта.
Ключевые файлы:
- `adk-rust/crates/detmir-portal/src/workforce_kpi_explain.rs`;
- `adk-rust/crates/detmir-portal/src/static/app.js`;
- `adk-rust/crates/detmir-portal/src/contracts/openapi.json`;
- `adk-rust/crates/detmir-portal/src/contracts/typescript.d.ts`;
- `docs/EXPLAINABLE_KPI_RU.md`.
API endpoint:
- `GET /api/workforce/kpi/explain`.
Модель explainability:
- `kpi_score`;
- `confidence`;
- `coverage`;
- `factors`;
- `top_applications`;
- `warnings`;
- `recommendations`.
Минимальные факторы:
- `productive_activity`;
- `business_app_usage`;
- `idle_time`;
- `afterhours_activity`;
- `remote_session_activity`;
- `data_coverage`;
- `missing_data`;
- `trend_change`.
Проверки:
- unit tests для explainability-модели и confidence;
- role-filtering smoke;
- markdown/report smoke;
- `cargo fmt --all --check`;
- `cargo clippy --all-targets --all-features -- -D warnings`;
- `cargo test --all`;
- `cargo build --release`;
- portal smoke.
Известные ограничения:
- не используется ML, LLM или predictive scoring;
- KPI не является HR-дисциплинарной оценкой;
- персональная explainability-модель в Pilot v1 не включена;
- качество объяснения зависит от свежести и полноты источников.
+79 -1
View File
@@ -278,4 +278,82 @@ docs/RISK_NARRATIVE_RU.md
6. Обновления report/OpenAPI/TypeScript. 6. Обновления report/OpenAPI/TypeScript.
7. Добавленные тесты. 7. Добавленные тесты.
8. Результаты fmt/clippy/test/build/smoke. 8. Результаты fmt/clippy/test/build/smoke.
9. Известные ограничения. 9. Известные ограничения.
---
## Выполнение
Статус: выполнено для Pilot v1.
Краткое описание:
- добавлен rule-based Risk Narrative layer;
- добавлен endpoint `GET /api/risk/narrative`;
- risk score связывает Workforce KPI, Explainable KPI, UEBA, coverage,
security correlation, incident candidates и pfSense `contract_only`
limitation;
- Executive UI показывает блок `Риск-нарратив`;
- Security UI проверяет ИБ-релевантную связь рисков и активности;
- Markdown-отчет содержит раздел `## Риск-нарратив`;
- OpenAPI и TypeScript contracts обновлены;
- создана отдельная документация `docs/RISK_NARRATIVE_RU.md`.
Ключевые файлы:
- `adk-rust/crates/detmir-portal/src/risk_narrative.rs`;
- `adk-rust/crates/detmir-portal/src/static/app.js`;
- `adk-rust/crates/detmir-portal/src/contracts/openapi.json`;
- `adk-rust/crates/detmir-portal/src/contracts/typescript.d.ts`;
- `docs/RISK_NARRATIVE_RU.md`;
- `scripts/browser-conformance-smoke.mjs`;
- `scripts/detmir-portal-tabs-smoke.mjs`.
Risk scoring rules:
- `0-24` - `low`;
- `25-49` - `guarded`;
- `50-74` - `medium`;
- `75-89` - `high`;
- `90-100` - `critical`.
Сигналы:
- low Workforce KPI;
- low KPI confidence;
- low agent coverage;
- increased UEBA severity;
- incident candidates count;
- high security correlation;
- missing data;
- afterhours/remote activity;
- pfSense `contract_only` limitation.
UI-блоки:
- Executive: `Риск-нарратив`, `Почему`, `Подтверждения`, `Дальше`,
`Ограничения`;
- Security: `Связь рисков и активности`, `Требует проверки`,
`Рекомендуемые действия ИБ`;
- Forensics: расследования, timeline, материалы расследования и аудит.
Проверки:
- unit tests для risk narrative scenarios;
- OpenAPI/TypeScript contract smoke;
- `node scripts/browser-conformance-smoke.mjs`;
- `node scripts/detmir-portal-tabs-smoke.mjs`;
- `cargo fmt --all --check`;
- `cargo clippy --all-targets --all-features -- -D warnings`;
- `cargo test --all`;
- `cargo build --release`;
- `git diff --check`.
Известные ограничения:
- Risk Narrative не является ML/LLM/predictive analytics;
- Risk Narrative не подтверждает нарушение без ручной проверки;
- нет auto-remediation;
- pfSense не заявляется как ingestion/SIEM, пока это не пройдет отдельную
приемку;
- live customer-stand validation остается отдельным шагом Demo Freeze v1.
+1 -1
View File
@@ -539,7 +539,7 @@ detmir-win-shell
Канонический документ: Канонический документ:
- `docs/DETMIR_POWERSHELL_MCP_REMOTE_RU.md` - `docs/POWERSHELL_MCP_REMOTE_RU.md`
Правило: Правило:
+1 -1
View File
@@ -1,4 +1,4 @@
Ты — виртуальный помощник технической поддержки DetMir. Ты — виртуальный помощник технической поддержки AWatch-rus.
Цель: Цель:
- Быстро и по делу помогать пользователю решать технические вопросы по инфраструктуре, доступам, рабочим сервисам и мониторингу. - Быстро и по делу помогать пользователю решать технические вопросы по инфраструктуре, доступам, рабочим сервисам и мониторингу.