diff --git a/README.md b/README.md index aa93520..c9d33f6 100755 --- a/README.md +++ b/README.md @@ -213,7 +213,7 @@ collectors. [commercial positioning](docs/REGISTRY_COMMERCIAL_POSITIONING_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) - [Registry product passport](docs/REGISTRY_PRODUCT_PASSPORT_RU.md) - [Registry architecture](docs/REGISTRY_ARCHITECTURE_RU.md) @@ -228,7 +228,7 @@ collectors. - [Сценарий экспертной проверки](docs/EXPERT_TEST_SCENARIO_RU.md) - [Release manifest 2026-06](docs/RELEASE_MANIFEST_2026-06.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) - [Пакет пилота для заказчика](docs/CUSTOMER_PILOT_PACK_RU.md) - [Enterprise deployment guide](docs/ENTERPRISE_DEPLOYMENT_GUIDE_RU.md) @@ -256,6 +256,7 @@ collectors. - [Browser conformance smoke](docs/BROWSER_CONFORMANCE_RU.md) - [Production readiness портала](docs/PRODUCTION_READINESS_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) - [Rust Agent baseline](docs/RUST_AGENT_BASELINE_RU.md) - [Итог production-расследования 2026-06-07](docs/PRODUCTION_INCIDENT_REPORT_2026-06-07_RU.md) diff --git a/REGISTER_RU_SOFTWARE.md b/REGISTER_RU_SOFTWARE.md index e4091ce..2b11b51 100644 --- a/REGISTER_RU_SOFTWARE.md +++ b/REGISTER_RU_SOFTWARE.md @@ -305,5 +305,5 @@ stale/dead buckets для обязательных источников. - `docs/ARCHITECTURE_RU.md` - архитектура. - `docs/ADMIN_GUIDE_RU.md` - руководство администратора. - `docs/OPERATOR_GUIDE_RU.md` - руководство оператора. -- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` - стратегия +- `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` - стратегия позиционирования. diff --git a/SECURITY_OVERVIEW_RU.md b/SECURITY_OVERVIEW_RU.md index 8aee88d..43dbeb9 100644 --- a/SECURITY_OVERVIEW_RU.md +++ b/SECURITY_OVERVIEW_RU.md @@ -337,7 +337,7 @@ Collector и server-side сервисы проектировались так, ### MCP / PowerShell remote для AWatch-rus -Документ: `docs/DETMIR_POWERSHELL_MCP_REMOTE_RU.md` +Документ: `docs/POWERSHELL_MCP_REMOTE_RU.md` Реализует: diff --git a/adk-rust/RUNBOOK.md b/adk-rust/RUNBOOK.md index e89a1bf..a2690a9 100644 --- a/adk-rust/RUNBOOK.md +++ b/adk-rust/RUNBOOK.md @@ -1,9 +1,9 @@ -# Runbook: перевод DetMir на Rust / ADK-Rust +# Runbook: перевод AWatch-rus на Rust / ADK-Rust Дата фиксации: `2026-06-01` Цель: постепенно заменить хрупкие Python/shell operational scripts на -самодостаточные Rust-бинарники, не ломая текущий production-контур DetMir. +самодостаточные Rust-бинарники, не ломая текущий production-контур AWatch-rus. Этот runbook является рабочим планом миграции. Если фактический runtime расходится с этим документом, сначала фиксируется baseline, затем обновляется @@ -1543,7 +1543,7 @@ systemctl is-active tsj-guardian-bot tsj-guardian-watchdog gost-tg - production binary доставлен на AW server, но `--apply` не запускался; - production dry-run: `apply=false`, `ok=true`, `missing=0`, `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}`, `ok_for_operator=true`; - 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`, portal health `true`, `detmir-status` `OK / ok_for_operator=true`, and failed units `0`. - - `docs/DETMIR_THREAT_MODEL_RU.md` added as the current working threat - model for DetMir. It records the product as an operational + - `docs/THREAT_MODEL_RU.md` added as the current working threat + model for AWatch-rus. It records the product as an operational 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 assets, trust zones, attacker/operator-failure classes, implemented evidence controls, residual risks, and the hardening roadmap. - - `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` added as the - registry/product positioning note. Current decision: lead with DetMir as - an operational control and IT infrastructure management platform, use + - `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` added as the + registry/product positioning note. Current decision: lead with AWatch-rus + as an operational control and IT infrastructure management platform, use `09.10` as the primary Russian software registry class target, keep DLP/security/evidence/Hayabusa as applied modules, and prepare website, 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/INSTALL_RU.md`, `docs/ARCHITECTURE_RU.md`, `docs/OWNERSHIP_RU.md`, `docs/THIRD_PARTY_LICENSES_RU.md`, and - `docs/REGISTRY_CHECKLIST_RU.md`. Naming decision fixed across the docs: - `DetMir` is the product, `AWatch-rus` is the repository/technical base, - and the external formula is `DetMir, программный комплекс на базе - AWatch-rus`. + `docs/REGISTRY_CHECKLIST_RU.md`. Current naming decision for public + materials: `AWatch-rus` is the product and repository name. Legacy + `detmir-*` service, crate and environment identifiers remain technical + runtime identifiers until a separate compatibility-safe migration is + approved. Отложить: - post-MVP развитие `detmir-portal`: role-aware views, safe check-now action, daily owner report, historical trends, AI summary with strict source 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 остается постоянным runtime, Rust используется только для backend helpers; - перенос оставшихся install/runtime scripts на Rust; diff --git a/ansible/README.md b/ansible/README.md index 796c48f..badadd0 100644 --- a/ansible/README.md +++ b/ansible/README.md @@ -92,8 +92,8 @@ ansible-playbook -i inventory.ini provision_proxmox_ct_matrix_and_deploy_aw.yml Важно: - `WinRM` здесь остаётся транспортом для `Ansible deploy` и `validation`; -- для интерактивной PowerShell-работы из Linux/Codex по DetMir используйте project MCP-over-SSH путь, а не `WSMan`; -- каноника лежит в `docs/DETMIR_POWERSHELL_MCP_REMOTE_RU.md` и `scripts/install_detmir_powershell_mcp.sh`. +- для интерактивной PowerShell-работы из Linux/Codex по AWatch-rus используйте project MCP-over-SSH путь, а не `WSMan`; +- каноника лежит в `docs/POWERSHELL_MCP_REMOTE_RU.md` и `scripts/install_detmir_powershell_mcp.sh`. 1. Подготовьте inventory и vars: - `cp ansible/inventory.example.ini ansible/inventory.ini` @@ -232,9 +232,9 @@ Playbook: По умолчанию импортируются: -- `DetMir: Работа пользователей в RDP` -- `DetMir: DLP и ИБ обзор` -- `DetMir: ИБ сводка для руководства` +- `AWatch-rus: Работа пользователей в RDP` +- `AWatch-rus: DLP и ИБ обзор` +- `AWatch-rus: ИБ сводка для руководства` - `AW-rus: DLP обзор` Подробная документация: `docs/GRAFANA_DASHBOARDS_RU.md` diff --git a/docs/ADMIN_GUIDE_RU.md b/docs/ADMIN_GUIDE_RU.md index b63ac0b..dbff012 100644 --- a/docs/ADMIN_GUIDE_RU.md +++ b/docs/ADMIN_GUIDE_RU.md @@ -155,6 +155,6 @@ Rollback-critical данные: - `docs/OPERATOR_GUIDE_RU.md` - `docs/INSTALL_RU.md` - `docs/ARCHITECTURE_RU.md` -- `docs/DETMIR_THREAT_MODEL_RU.md` -- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` +- `docs/THREAT_MODEL_RU.md` +- `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` - `adk-rust/RUNBOOK.md` diff --git a/docs/ARCHITECTURE_RU.md b/docs/ARCHITECTURE_RU.md index b273401..8cfeb4e 100644 --- a/docs/ARCHITECTURE_RU.md +++ b/docs/ARCHITECTURE_RU.md @@ -147,8 +147,8 @@ AWatch-rus не заявляется как сертифицированная ## 9. Связанные документы -- `docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md` -- `docs/DETMIR_THREAT_MODEL_RU.md` +- `docs/UNIFIED_OPERATING_MODEL_RU.md` +- `docs/THREAT_MODEL_RU.md` - `docs/ADMIN_GUIDE_RU.md` - `docs/OPERATOR_GUIDE_RU.md` - `docs/GRAFANA_DASHBOARDS_RU.md` diff --git a/docs/DETMIR_CHANGE_REPORT_LAST_24H_2026-05-26.md b/docs/CHANGE_REPORT_LAST_24H_2026-05-26.md similarity index 100% rename from docs/DETMIR_CHANGE_REPORT_LAST_24H_2026-05-26.md rename to docs/CHANGE_REPORT_LAST_24H_2026-05-26.md diff --git a/docs/DETMIR_COMMERCIAL_MODULES_RU.md b/docs/COMMERCIAL_MODULES_RU.md similarity index 100% rename from docs/DETMIR_COMMERCIAL_MODULES_RU.md rename to docs/COMMERCIAL_MODULES_RU.md diff --git a/docs/OPERATOR_GUIDE_RU.md b/docs/OPERATOR_GUIDE_RU.md index ecef81c..6237b91 100644 --- a/docs/OPERATOR_GUIDE_RU.md +++ b/docs/OPERATOR_GUIDE_RU.md @@ -134,5 +134,5 @@ AWatch-rus помогает контролировать и расследова - `docs/ADMIN_GUIDE_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` diff --git a/docs/OWNERSHIP_RU.md b/docs/OWNERSHIP_RU.md index 685f8dd..2974157 100644 --- a/docs/OWNERSHIP_RU.md +++ b/docs/OWNERSHIP_RU.md @@ -114,4 +114,4 @@ AWatch-rus - `docs/THIRD_PARTY_LICENSES_RU.md` - `docs/REGISTRY_CHECKLIST_RU.md` -- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` +- `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` diff --git a/docs/DETMIR_PORTAL_GUI_PLAN_RU.md b/docs/PORTAL_GUI_PLAN_RU.md similarity index 100% rename from docs/DETMIR_PORTAL_GUI_PLAN_RU.md rename to docs/PORTAL_GUI_PLAN_RU.md diff --git a/docs/DETMIR_POWERSHELL_MCP_REMOTE_RU.md b/docs/POWERSHELL_MCP_REMOTE_RU.md similarity index 100% rename from docs/DETMIR_POWERSHELL_MCP_REMOTE_RU.md rename to docs/POWERSHELL_MCP_REMOTE_RU.md diff --git a/docs/DETMIR_PYTHON_RETIREMENT_RU.md b/docs/PYTHON_RETIREMENT_RU.md similarity index 100% rename from docs/DETMIR_PYTHON_RETIREMENT_RU.md rename to docs/PYTHON_RETIREMENT_RU.md diff --git a/docs/REGISTRY_CHECKLIST_RU.md b/docs/REGISTRY_CHECKLIST_RU.md index ac90062..f5fe43a 100644 --- a/docs/REGISTRY_CHECKLIST_RU.md +++ b/docs/REGISTRY_CHECKLIST_RU.md @@ -38,8 +38,8 @@ ## 4. Документация -- [x] Модель угроз: `docs/DETMIR_THREAT_MODEL_RU.md`. -- [x] Позиционирование: `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`. +- [x] Модель угроз: `docs/THREAT_MODEL_RU.md`. +- [x] Позиционирование: `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`. - [x] Руководство администратора: `docs/ADMIN_GUIDE_RU.md`. - [x] Руководство оператора: `docs/OPERATOR_GUIDE_RU.md`. - [x] Установка: `docs/INSTALL_RU.md`. diff --git a/docs/REGISTRY_RUSSIAN_SO_POSITIONING_RU.md b/docs/REGISTRY_RUSSIAN_SO_POSITIONING_RU.md index bdbe755..19d2f8e 100644 --- a/docs/REGISTRY_RUSSIAN_SO_POSITIONING_RU.md +++ b/docs/REGISTRY_RUSSIAN_SO_POSITIONING_RU.md @@ -3,7 +3,7 @@ Дата фиксации: `2026-06-03`. Документ фиксирует audit-facing решение по классу подачи AWatch-rus. -Он дополняет `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`. +Он дополняет `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`. ## 1. Рекомендованный класс diff --git a/docs/RELEASE_AUDIT_2026-06.md b/docs/RELEASE_AUDIT_2026-06.md index df68868..d656e45 100644 --- a/docs/RELEASE_AUDIT_2026-06.md +++ b/docs/RELEASE_AUDIT_2026-06.md @@ -50,8 +50,8 @@ git grep -n -E 'SHARKON2025|10\.10\.10|dm\.iri|/home/igor|/root' -- \ ```text 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/DETMIR_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:168:- canonical path/root allowlist; +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/)" ``` diff --git a/docs/RISK_NARRATIVE_RU.md b/docs/RISK_NARRATIVE_RU.md new file mode 100644 index 0000000..070c419 --- /dev/null +++ b/docs/RISK_NARRATIVE_RU.md @@ -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-режиме используются только обезличенные данные. diff --git a/docs/ROADMAP_CONFORMANCE_AUDIT_RU.md b/docs/ROADMAP_CONFORMANCE_AUDIT_RU.md index 1a71dcd..1242c11 100644 --- a/docs/ROADMAP_CONFORMANCE_AUDIT_RU.md +++ b/docs/ROADMAP_CONFORMANCE_AUDIT_RU.md @@ -21,16 +21,16 @@ baseline, demo pack, registry readiness package, enterprise deployment package генерируемый отчет теперь начинается с `# 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 на стенде заказчика: доступность, TLS/reverse proxy, источники данных, backup/restore и ownership действий. diff --git a/docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md b/docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md similarity index 99% rename from docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md rename to docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md index b5d8941..c52d24d 100644 --- a/docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md +++ b/docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md @@ -194,9 +194,9 @@ Grafana/portal-аналитику, Telegram-оповещения, runbook automa Уже есть сильная база: -- `docs/DETMIR_THREAT_MODEL_RU.md`; -- `docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md`; -- `docs/DETMIR_PORTAL_GUI_PLAN_RU.md`; +- `docs/THREAT_MODEL_RU.md`; +- `docs/UNIFIED_OPERATING_MODEL_RU.md`; +- `docs/PORTAL_GUI_PLAN_RU.md`; - `docs/dlp-security-functional-spec-ru.md`; - `docs/dlp-gap-analysis.md`; - `docs/GRAFANA_DASHBOARDS_RU.md`; diff --git a/docs/DETMIR_THREAT_MODEL_RU.md b/docs/THREAT_MODEL_RU.md similarity index 99% rename from docs/DETMIR_THREAT_MODEL_RU.md rename to docs/THREAT_MODEL_RU.md index 76436b1..6335ec8 100644 --- a/docs/DETMIR_THREAT_MODEL_RU.md +++ b/docs/THREAT_MODEL_RU.md @@ -314,7 +314,7 @@ ## 12. Связанные документы -- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` +- `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` - `docs/ADMIN_GUIDE_RU.md` - `docs/OPERATOR_GUIDE_RU.md` - `docs/INSTALL_RU.md` @@ -322,8 +322,8 @@ - `docs/OWNERSHIP_RU.md` - `docs/THIRD_PARTY_LICENSES_RU.md` - `docs/REGISTRY_CHECKLIST_RU.md` -- `docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md` -- `docs/DETMIR_PORTAL_GUI_PLAN_RU.md` +- `docs/UNIFIED_OPERATING_MODEL_RU.md` +- `docs/PORTAL_GUI_PLAN_RU.md` - `docs/dlp-security-functional-spec-ru.md` - `docs/dlp-gap-analysis.md` - `docs/dlp-production-plan-windows-10-19.md` diff --git a/docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md b/docs/UNIFIED_OPERATING_MODEL_RU.md similarity index 98% rename from docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md rename to docs/UNIFIED_OPERATING_MODEL_RU.md index 970dd26..1017914 100644 --- a/docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md +++ b/docs/UNIFIED_OPERATING_MODEL_RU.md @@ -8,12 +8,12 @@ Если старые документы расходятся с этим файлом по адресам или 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 как платформа операционного контроля и управления ИТ-инфраструктурой, с ориентиром на класс `09.10`, без заявления сертифицированной DLP/SIEM/EDR/XDR/СЗИ. @@ -422,8 +422,8 @@ Telegram bot `DetMirAuto` обязан покрывать: | `SECURITY.md` | security findings по risky фазам | | `UAT.md` | операторская приемка | | `docs/runbook.md` | живая эксплуатация | -| `docs/DETMIR_THREAT_MODEL_RU.md` | рабочая модель угроз и границы security-позиционирования | -| `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` | стратегия позиционирования для реестра российского ПО | +| `docs/THREAT_MODEL_RU.md` | рабочая модель угроз и границы security-позиционирования | +| `docs/RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` | стратегия позиционирования для реестра российского ПО | | `docs/ADMIN_GUIDE_RU.md` | руководство администратора | | `docs/OPERATOR_GUIDE_RU.md` | руководство оператора | | `docs/INSTALL_RU.md` | установка и первичная проверка | diff --git a/docs/dlp-security-functional-spec-ru.md b/docs/dlp-security-functional-spec-ru.md index c96350f..1cf521d 100644 --- a/docs/dlp-security-functional-spec-ru.md +++ b/docs/dlp-security-functional-spec-ru.md @@ -22,7 +22,7 @@ Система не является полноценной DLP-платформой enterprise-класса с нативной аутентификацией, RBAC, аппаратной изоляцией и криптографической подписью политик. Это важно учитывать при ИБ-оценке. Текущая модель угроз для всего контура AWatch-rus зафиксирована отдельно: -`docs/DETMIR_THREAT_MODEL_RU.md`. В ней DLP-функции рассматриваются как часть +`docs/THREAT_MODEL_RU.md`. В ней DLP-функции рассматриваются как часть платформы операционного контроля и технического аудита, а не как заявление о сертифицированной DLP/СЗИ. @@ -604,7 +604,7 @@ python3 scripts/dlp-admin-cli.py cases list --limit 50 ## 21. Связанные документы -- `docs/DETMIR_THREAT_MODEL_RU.md` +- `docs/THREAT_MODEL_RU.md` - `docs/dlp-policy-engine.md` - `docs/dlp-integrations.md` - `docs/dlp-enforcement.md` diff --git a/docs/roadmap/TASK_001_PILOT_V1_STABILIZATION.md b/docs/roadmap/TASK_001_PILOT_V1_STABILIZATION.md index 70bbd3c..a3523c4 100644 --- a/docs/roadmap/TASK_001_PILOT_V1_STABILIZATION.md +++ b/docs/roadmap/TASK_001_PILOT_V1_STABILIZATION.md @@ -22,3 +22,44 @@ AWatch-rus. Pilot v1 можно показывать заказчику с понятным списком готовых возможностей, ограничений и 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-фазе не добавляются. diff --git a/docs/roadmap/TASK_002_PRODUCTION_HARDENING.md b/docs/roadmap/TASK_002_PRODUCTION_HARDENING.md index 8b864d4..f9360b3 100644 --- a/docs/roadmap/TASK_002_PRODUCTION_HARDENING.md +++ b/docs/roadmap/TASK_002_PRODUCTION_HARDENING.md @@ -381,3 +381,72 @@ Smoke должен проверять: 7. Результаты команд проверки. 8. Результат smoke. 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-фаза допускает только исправление дефектов и уточнение документации. diff --git a/docs/roadmap/TASK_003_EXPLAINABLE_KPI.md b/docs/roadmap/TASK_003_EXPLAINABLE_KPI.md index 12891c2..efb8b7e 100644 --- a/docs/roadmap/TASK_003_EXPLAINABLE_KPI.md +++ b/docs/roadmap/TASK_003_EXPLAINABLE_KPI.md @@ -309,4 +309,72 @@ docs/EXPLAINABLE_KPI_RU.md 5. Добавленные UI-блоки. 6. Добавленные тесты. 7. Результаты проверок. -8. Известные ограничения. \ No newline at end of file +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 не включена; +- качество объяснения зависит от свежести и полноты источников. diff --git a/docs/roadmap/TASK_004_RISK_NARRATIVE.md b/docs/roadmap/TASK_004_RISK_NARRATIVE.md index d020876..7b21909 100644 --- a/docs/roadmap/TASK_004_RISK_NARRATIVE.md +++ b/docs/roadmap/TASK_004_RISK_NARRATIVE.md @@ -278,4 +278,82 @@ docs/RISK_NARRATIVE_RU.md 6. Обновления report/OpenAPI/TypeScript. 7. Добавленные тесты. 8. Результаты fmt/clippy/test/build/smoke. -9. Известные ограничения. \ No newline at end of file +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. diff --git a/docs/runbook.md b/docs/runbook.md index e6a68ba..d3eb1cc 100755 --- a/docs/runbook.md +++ b/docs/runbook.md @@ -539,7 +539,7 @@ detmir-win-shell Канонический документ: -- `docs/DETMIR_POWERSHELL_MCP_REMOTE_RU.md` +- `docs/POWERSHELL_MCP_REMOTE_RU.md` Правило: diff --git a/docs/telegram_support_system_prompt_ru.txt b/docs/telegram_support_system_prompt_ru.txt index ce47649..ba5e643 100644 --- a/docs/telegram_support_system_prompt_ru.txt +++ b/docs/telegram_support_system_prompt_ru.txt @@ -1,4 +1,4 @@ -Ты — виртуальный помощник технической поддержки DetMir. +Ты — виртуальный помощник технической поддержки AWatch-rus. Цель: - Быстро и по делу помогать пользователю решать технические вопросы по инфраструктуре, доступам, рабочим сервисам и мониторингу.