From 109c31f291325efa6e335e836f029b6aeac46c44 Mon Sep 17 00:00:00 2001 From: igor04091968 Date: Wed, 3 Jun 2026 01:46:15 +0300 Subject: [PATCH] docs(detmir): add registry proof package --- adk-rust/RUNBOOK.md | 10 +- docs/ADMIN_GUIDE_RU.md | 160 ++++++++++++++++++ docs/ARCHITECTURE_RU.md | 155 +++++++++++++++++ ...USSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md | 42 +++-- docs/DETMIR_THREAT_MODEL_RU.md | 20 ++- docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md | 11 ++ docs/INSTALL_RU.md | 159 +++++++++++++++++ docs/OPERATOR_GUIDE_RU.md | 138 +++++++++++++++ docs/OWNERSHIP_RU.md | 117 +++++++++++++ docs/REGISTRY_CHECKLIST_RU.md | 112 ++++++++++++ docs/THIRD_PARTY_LICENSES_RU.md | 120 +++++++++++++ 11 files changed, 1024 insertions(+), 20 deletions(-) create mode 100644 docs/ADMIN_GUIDE_RU.md create mode 100644 docs/ARCHITECTURE_RU.md create mode 100644 docs/INSTALL_RU.md create mode 100644 docs/OPERATOR_GUIDE_RU.md create mode 100644 docs/OWNERSHIP_RU.md create mode 100644 docs/REGISTRY_CHECKLIST_RU.md create mode 100644 docs/THIRD_PARTY_LICENSES_RU.md diff --git a/adk-rust/RUNBOOK.md b/adk-rust/RUNBOOK.md index 36e8551..658eaab 100644 --- a/adk-rust/RUNBOOK.md +++ b/adk-rust/RUNBOOK.md @@ -1658,7 +1658,7 @@ systemctl is-active tsj-guardian-bot tsj-guardian-watchdog gost-tg 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/AWatch-rus. It records the product as an operational + model for DetMir. 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 @@ -1670,6 +1670,14 @@ systemctl is-active tsj-guardian-bot tsj-guardian-watchdog gost-tg DLP/security/evidence/Hayabusa as applied modules, and prepare website, operator/admin docs, ownership package, screenshots, and dependency inventory before any registry filing. + - registry proof package skeleton added: + `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`. Отложить: diff --git a/docs/ADMIN_GUIDE_RU.md b/docs/ADMIN_GUIDE_RU.md new file mode 100644 index 0000000..c13188e --- /dev/null +++ b/docs/ADMIN_GUIDE_RU.md @@ -0,0 +1,160 @@ +# DetMir: руководство администратора + +Статус: подготовительный документ для эксплуатации и пакета реестра российского +ПО. + +Продуктовое имя: `DetMir`. + +Техническая база и репозиторий: `AWatch-rus`. + +Рекомендуемая формула для внешних документов: + +> DetMir, программный комплекс на базе AWatch-rus. + +## 1. Назначение администратора + +Администратор отвечает за развертывание, обновление и техническое состояние +серверного и endpoint-контура DetMir. + +Зона ответственности: + +- сервер ActivityWatch/AW-rus; +- Rust-сервисы DetMir; +- операторский портал; +- Grafana dashboards и источники данных; +- Windows/RDP collectors; +- scheduled tasks и systemd timers; +- backup/restore; +- контроль секретов и доступов; +- проверка состояния после обновлений. + +Администратор не должен использовать DetMir как сертифицированную СЗИ, DLP, +SIEM или EDR/XDR. В текущем позиционировании это платформа операционного +контроля, технического аудита и управления ИТ-инфраструктурой. + +## 2. Основные компоненты + +| Компонент | Назначение | +|---|---| +| AW-rus server | Прием и хранение ActivityWatch/event telemetry. | +| DetMir Rust helpers | Проверки, status, autoheal, DLP/worktime/reporting helpers. | +| DetMir Portal | Операторский web-интерфейс. | +| Evidence API | Безопасная выдача и upload подтверждений инцидентов. | +| Grafana | Витрина dashboards и управленческой аналитики. | +| Windows collectors | Сбор активности, endpoint-событий, worktime и DLP-сигналов. | +| Telegram bot | Уведомления и операторские команды; runtime остается Python. | +| Hayabusa tooling | Offline/DFIR enrichment для расследований. | + +## 3. Базовые административные операции + +### Проверка состояния + +Минимальный набор: + +```bash +detmir-status --json +detmir-check --json +detmir-dlp --json +systemctl --failed --no-pager +``` + +Для AW server: + +```bash +aw-health-check --json +check-aw-data --json +dlp-health-check --json +``` + +Для Grafana: + +```bash +detmir-grafana-check --json +``` + +### Проверка портала + +Администратор проверяет: + +- портал открывается через штатный gateway; +- раздел `Инциденты ИБ` показывает только релевантные DLP/incident данные; +- evidence preview/download работают только через controlled routes; +- прямые пути к файлам evidence не используются. + +### Проверка evidence + +Проверить: + +- upload API требует Bearer token; +- upload без токена возвращает `403`; +- screenshot route отдает файл только по opaque `evidence_id`; +- SHA-256 совпадает с metadata события; +- audit пишет upload/view/download. + +## 4. Управление конфигурацией + +Общие правила: + +1. Секреты не хранятся в git. +2. Runtime tokens не выводятся в stdout, journald, Telegram или отчеты. +3. Перед изменением systemd/drop-in/scheduled task создается backup. +4. Любой replacement legacy script на Rust проходит read-only parity и shadow + validation. +5. Нельзя менять firewall/VPN/pfSense в рамках app-level задач без отдельного + решения владельца. + +## 5. Обновление + +Стандартный порядок: + +1. Проверить `git status`. +2. Прочитать relevant runbook/phase notes. +3. Собрать измененный Rust binary или применить нужный playbook. +4. Выполнить read-only smoke. +5. Переключить production unit/drop-in. +6. Проверить systemd failed units. +7. Проверить `detmir-status`. +8. Проверить портал/Grafana. +9. Записать результат в runbook. + +## 6. Backup и rollback + +Rollback-critical данные: + +- SQLite DB ActivityWatch/AW-rus; +- DLP warehouse/cases/policy DB; +- evidence storage; +- Grafana dashboards JSON; +- Ansible inventory без публикации секретов; +- systemd unit/drop-in backups; +- Windows scheduled task/config backups. + +Запрещено удалять rollback-critical backups при обычной уборке. + +## 7. Инциденты + +При техническом инциденте: + +1. Зафиксировать текущее состояние. +2. Не запускать autoheal вслепую, если есть риск потери данных. +3. Проверить last known green state. +4. Проверить systemd/scheduled task status. +5. Проверить свежесть buckets и SLO current sample. +6. После восстановления выполнить smoke. + +При DLP/ИБ-инциденте: + +1. Открыть портал. +2. Проверить карточку `Инциденты ИБ`. +3. Открыть evidence metadata. +4. Сверить screenshot/SHA/audit. +5. Не удалять evidence до окончания разбора. + +## 8. Связанные документы + +- `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` +- `adk-rust/RUNBOOK.md` diff --git a/docs/ARCHITECTURE_RU.md b/docs/ARCHITECTURE_RU.md new file mode 100644 index 0000000..d7f8f59 --- /dev/null +++ b/docs/ARCHITECTURE_RU.md @@ -0,0 +1,155 @@ +# DetMir: архитектура + +Статус: подготовительный документ для продукта и реестра российского ПО. + +Продуктовое имя: `DetMir`. + +Техническая база и репозиторий: `AWatch-rus`. + +## 1. Краткое описание + +DetMir - программный комплекс операционного контроля, технического аудита, +мониторинга действий пользователей и автоматизации реагирования. + +Архитектура построена вокруг ActivityWatch/AW-rus, Rust-сервисов DetMir, +Windows collectors, операторского портала, Grafana dashboards и evidence +workflow. + +## 2. Логические уровни + +```text +Endpoint layer + Windows/RDP collectors + Worktime/session collectors + DLP/event collectors + Evidence artifact sync + +Server data layer + AW-rus API + ActivityWatch buckets + SQLite/warehouse storage + DLP/cases/policy storage + +Processing layer + Rust health/status helpers + DLP aggregation/export + Worktime/reporting + SLO monitoring + Hayabusa/offline enrichment + +Operator layer + DetMir Portal + Grafana dashboards + Telegram notifications + +Automation layer + Ansible + systemd services/timers + Windows scheduled tasks + rollback/backups +``` + +## 3. Основные потоки данных + +### Активность пользователя + +```text +Windows session -> collectors -> AW-rus API -> buckets -> reports/Grafana/portal +``` + +### DLP/ИБ-инцидент + +```text +Endpoint event -> DLP decision -> AW bucket -> warehouse -> portal/Grafana +``` + +### Evidence screenshot + +```text +Endpoint artifact -> scheduled sync -> evidence upload API -> server storage +-> portal preview/download -> audit +``` + +### Health/SLO + +```text +services/timers/API checks -> Rust helpers -> state files -> portal/Telegram +``` + +### Управленческая аналитика + +```text +AW/1C/file telemetry -> processing/export -> ClickHouse/Influx/Grafana +``` + +## 4. Серверные компоненты + +| Компонент | Роль | +|---|---| +| AW-rus server | Прием и хранение событий ActivityWatch. | +| detmir-status | Нормализованный статус контура. | +| detmir-check | Read-only проверка состояния. | +| detmir-dlp | Проверка DLP/ИБ контура. | +| detmir-auto | Safe automation и autoheal по allowlist. | +| detmir-portal | Web-интерфейс оператора. | +| detmir-grafana-check | Проверка Grafana dashboards/data freshness. | +| aw-slo-monitor | SLO samples и summary. | +| dlp-* Rust services | Aggregation, exporters, policy/case/compliance paths. | +| worktime-* Rust services | Worktime API, bridge, prewarm, autoheal, exporters. | + +## 5. Endpoint-компоненты + +| Компонент | Роль | +|---|---| +| AFK/window watchers | Базовая ActivityWatch активность. | +| browser domain collector | Домены/категории браузера. | +| worktime session collector | RDP/session presence. | +| DLP endpoint collectors | Clipboard, USB, print, file/email/browser signals. | +| evidence sync task | Доставка screenshots/artifacts на сервер. | + +## 6. Evidence security path + +Для evidence действует отдельная защитная логика: + +- opaque `evidence_id`; +- no raw path serving; +- canonical path/root allowlist; +- Bearer token upload; +- `403` при upload без токена; +- PNG/JPEG magic validation; +- max-size limit; +- SHA-256 validation; +- atomic write; +- audit upload/view/download. + +## 7. Runtime-принципы + +1. Серверный контур автономен и не зависит от ноутбука администратора. +2. Rust используется для критичных helpers, где важны скорость, типизация и + надежность. +3. Telegram bot runtime остается Python. +4. Legacy Python/shell сохраняется только там, где это оправдано совместимостью + или низким выигрышем от переноса. +5. pfSense/network layer не меняется в app-level задачах без отдельного + решения владельца. + +## 8. Границы продукта + +DetMir не заявляется как сертифицированная СЗИ, DLP, SIEM или EDR/XDR. + +Продукт заявляется как платформа: + +- операционного контроля; +- технического аудита; +- управления ИТ-инфраструктурой; +- контроля регламентов; +- расследования операционных и ИБ-событий. + +## 9. Связанные документы + +- `docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md` +- `docs/DETMIR_THREAT_MODEL_RU.md` +- `docs/ADMIN_GUIDE_RU.md` +- `docs/OPERATOR_GUIDE_RU.md` +- `docs/GRAFANA_DASHBOARDS_RU.md` +- `adk-rust/RUNBOOK.md` diff --git a/docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md b/docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md index 5fc3388..acbef00 100644 --- a/docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md +++ b/docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md @@ -11,7 +11,14 @@ ## 1. Вывод -DetMir/AWatch-rus нужно позиционировать не как классическую DLP, SIEM, EDR/XDR +`DetMir` - продуктовое и коммерческое имя программного комплекса. +`AWatch-rus` - имя репозитория и технической базы. + +Рекомендуемая формула для внешних документов: + +> DetMir, программный комплекс на базе AWatch-rus. + +DetMir нужно позиционировать не как классическую DLP, SIEM, EDR/XDR или СЗИ, а как: > отечественную платформу операционного контроля, технического аудита, @@ -50,7 +57,7 @@ DetMir/AWatch-rus нужно позиционировать не как клас ### Короткое описание -DetMir/AWatch-rus - платформа операционного контроля и технического аудита +DetMir - платформа операционного контроля и технического аудита корпоративной ИТ-инфраструктуры. Система собирает телеметрию рабочих мест и серверных сервисов, контролирует состояние регламентов, фиксирует инциденты, показывает управленческие и технические dashboards, помогает оператору @@ -58,7 +65,7 @@ DetMir/AWatch-rus - платформа операционного контрол ### Расширенное описание -DetMir/AWatch-rus объединяет сбор активности пользователей, мониторинг +DetMir объединяет сбор активности пользователей, мониторинг состояния сервисов, контроль endpoint-событий, DLP-сигналы, evidence workflow, Grafana/portal-аналитику, Telegram-оповещения, runbook automation и автовосстановление. Платформа предназначена для эксплуатации корпоративного @@ -195,6 +202,13 @@ Grafana/portal-аналитику, Telegram-оповещения, runbook automa - `docs/GRAFANA_DASHBOARDS_RU.md`; - `docs/FULL_DEPLOYMENT_MANUAL_RU.md`; - `docs/PRESENTATION_RU.md`; +- `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`; +- `docs/REGISTRY_CHECKLIST_RU.md`; - `adk-rust/RUNBOOK.md`. Эти документы надо привести к единому публичному пакету: меньше внутренних IP, @@ -203,17 +217,14 @@ Grafana/portal-аналитику, Telegram-оповещения, runbook automa ## 10. Очередь работ -1. Зафиксировать финальное публичное имя: `DetMir` или `AWatch-rus`. -2. Подготовить публичный `README_PRODUCT_RU.md`. -3. Собрать `docs/site/` или `mdbook/` для сайта. -4. Сделать страницу продукта с описанием класса `09.10`. -5. Подготовить руководство администратора. -6. Подготовить руководство оператора. -7. Подготовить страницу ограничений и security boundaries. -8. Подготовить скриншоты портала/Grafana без секретов и внутренних адресов. -9. Составить license/dependencies inventory. -10. Подготовить пакет для Роспатента. -11. После этого готовить заявку в реестр. +1. Подготовить публичный `README_PRODUCT_RU.md`. +2. Собрать `docs/site/` или `mdbook/` для сайта. +3. Сделать страницу продукта с описанием класса `09.10`. +4. Подготовить страницу ограничений и security boundaries. +5. Подготовить скриншоты портала/Grafana без секретов и внутренних адресов. +6. Сформировать проверенный license/SBOM пакет. +7. Подготовить пакет для Роспатента. +8. После этого готовить заявку в реестр. ## 11. Решение на текущий момент @@ -222,6 +233,9 @@ Grafana/portal-аналитику, Telegram-оповещения, runbook automa - основной публичный класс: операционный контроль и управление ИТ-инфраструктурой; - основной классификаторный ориентир: `09.10`; +- публичное имя: `DetMir`; +- техническая база/репозиторий: `AWatch-rus`; +- формула: `DetMir, программный комплекс на базе AWatch-rus`; - DLP/ИБ/evidence/Hayabusa остаются функциональными модулями платформы; - не заявляем сертифицированную СЗИ; - сначала готовим сайт, документацию и правообладательский пакет. diff --git a/docs/DETMIR_THREAT_MODEL_RU.md b/docs/DETMIR_THREAT_MODEL_RU.md index fdce148..2c53633 100644 --- a/docs/DETMIR_THREAT_MODEL_RU.md +++ b/docs/DETMIR_THREAT_MODEL_RU.md @@ -2,8 +2,11 @@ Дата фиксации: `2026-06-03` -Статус: рабочая модель угроз `v0.1` для текущего production-контура -`DetMir/AWatch-rus`. +Статус: рабочая модель угроз `v0.1` для текущего production-контура `DetMir`. + +Нейминг для внешних материалов: `DetMir` - продукт, `AWatch-rus` - +репозиторий и техническая база. Рекомендуемая формула: `DetMir, программный +комплекс на базе AWatch-rus`. Документ фиксирует фактически используемую модель угроз для эксплуатации, аудита, развития продукта и подготовки к возможной регистрации как @@ -12,11 +15,11 @@ ## 1. Правообладание и позиционирование На момент фиксации правообладателем продукта заявлен Игорь, владелец текущего -репозитория и production-контура DetMir/AWatch-rus. +репозитория AWatch-rus и production-контура DetMir. Рабочее позиционирование продукта: -> DetMir/AWatch-rus - отечественная платформа операционного контроля, +> DetMir - отечественная платформа операционного контроля, > технического аудита, мониторинга действий пользователей, расследования > инцидентов и автоматизации реагирования. @@ -298,7 +301,7 @@ Для внутренних и внешних описаний использовать: -> DetMir/AWatch-rus использует рабочую операционную модель угроз для платформы +> DetMir использует рабочую операционную модель угроз для платформы > технического аудита и операционного контроля. Модель покрывает сбор > активности, DLP-события, доказательства инцидентов, мониторинг состояния > сервисов, ошибки операторов, отказ компонентов и базовые сценарии @@ -309,6 +312,13 @@ ## 12. Связанные документы - `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` +- `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` +- `docs/REGISTRY_CHECKLIST_RU.md` - `docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md` - `docs/DETMIR_PORTAL_GUI_PLAN_RU.md` - `docs/dlp-security-functional-spec-ru.md` diff --git a/docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md b/docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md index 1a7091c..db671f8 100644 --- a/docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md +++ b/docs/DETMIR_UNIFIED_OPERATING_MODEL_RU.md @@ -18,6 +18,10 @@ управления ИТ-инфраструктурой, с ориентиром на класс `09.10`, без заявления сертифицированной DLP/SIEM/EDR/XDR/СЗИ. +Нейминг для внешних материалов: `DetMir` - продукт, `AWatch-rus` - +репозиторий и техническая база. Рекомендуемая формула: `DetMir, программный +комплекс на базе AWatch-rus`. + ## 1. Назначение `DetMir` в этом репозитории это не только `ActivityWatch Server`. @@ -420,6 +424,13 @@ Telegram bot `DetMirAuto` обязан покрывать: | `docs/runbook.md` | живая эксплуатация | | `docs/DETMIR_THREAT_MODEL_RU.md` | рабочая модель угроз и границы security-позиционирования | | `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` | стратегия позиционирования для реестра российского ПО | +| `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` | сторонние компоненты и license-audit baseline | +| `docs/REGISTRY_CHECKLIST_RU.md` | чек-лист подготовки к реестру российского ПО | | этот файл | единая карта системы и рабочего процесса | ## 9. Операционный минимум, который нельзя терять diff --git a/docs/INSTALL_RU.md b/docs/INSTALL_RU.md new file mode 100644 index 0000000..0d5b020 --- /dev/null +++ b/docs/INSTALL_RU.md @@ -0,0 +1,159 @@ +# DetMir: установка и первичная проверка + +Статус: подготовительный документ для пакета реестра российского ПО. + +Продуктовое имя: `DetMir`. + +Техническая база и репозиторий: `AWatch-rus`. + +## 1. Назначение + +Документ описывает воспроизводимую установочную модель DetMir без публикации +секретов и внутренних адресов production-контура. + +Подробные внутренние playbooks и текущие runtime-пути описаны в +`docs/FULL_DEPLOYMENT_MANUAL_RU.md` и `adk-rust/RUNBOOK.md`. Этот документ +является публично-подготовительной версией для продукта. + +## 2. Минимальные требования + +Серверный контур: + +- Linux server или LXC/VM; +- systemd; +- сетевой доступ от endpoint-collectors до AW-rus API; +- Rust runtime binaries из release artifacts; +- Python runtime для Telegram bot и legacy-compatible компонентов, где он еще + используется; +- Grafana/InfluxDB/SQLite/ClickHouse по выбранному профилю установки. + +Endpoint-контур: + +- Windows с PowerShell 5.1+; +- права локального администратора для установки collectors; +- Scheduled Tasks; +- доступ к серверному API; +- каталог для incident artifacts/evidence sync. + +Административный контур: + +- Ansible; +- SSH/WinRM доступ; +- git; +- доступ к release artifacts. + +## 3. Общий порядок установки + +1. Подготовить сервер. +2. Установить AW-rus server. +3. Развернуть Rust binaries DetMir. +4. Установить systemd units/timers. +5. Развернуть DetMir Portal. +6. Настроить Grafana datasources и dashboards. +7. Настроить DLP/worktime/reporting services. +8. Развернуть Windows collectors. +9. Включить evidence upload/sync. +10. Выполнить smoke checks. + +## 4. Конфигурация + +Секреты задаются вне git: + +- tokens; +- passwords; +- SSH/WinRM credentials; +- Grafana admin/API credentials; +- Telegram bot token; +- evidence upload token. + +В git допускаются только: + +- `.example` файлы; +- шаблоны переменных; +- документация; +- playbooks без секретов. + +## 5. Установка серверных компонентов + +Типовой путь: + +```bash +cd ansible +ansible-playbook -i inventory.ini deploy_aw_server.yml +ansible-playbook -i inventory.ini deploy_detmir_portal.yml +ansible-playbook -i inventory.ini deploy_grafana_dashboards.yml +``` + +Для production нужно использовать актуальный inventory и group vars конкретного +контура. Секреты передаются через защищенное окружение или отдельные +непубликуемые файлы. + +## 6. Установка Windows collectors + +Типовой путь: + +```bash +cd ansible +ansible-playbook -i inventory.ini deploy_aw_windows.yml +ansible-playbook -i inventory.ini deploy_dlp_evidence_sync.yml +``` + +После установки проверяются: + +- scheduled tasks созданы; +- tasks выполняются без ошибок; +- ActivityWatch buckets получают события; +- DLP/evidence sync task возвращает успешный статус. + +## 7. Первичная проверка + +Минимальный smoke: + +```bash +detmir-status --json +detmir-check --json +detmir-dlp --json +detmir-grafana-check --json +``` + +Ожидается: + +- status OK; +- failed systemd units отсутствуют; +- AW API отвечает; +- Grafana datasources healthy; +- mandatory dashboards не stale; +- portal health OK. + +## 8. Проверка evidence workflow + +Контролируемый тест: + +1. Создать тестовый incident artifact на endpoint. +2. Дождаться scheduled sync или запустить его вручную. +3. Проверить upload на сервере. +4. Проверить portal evidence metadata. +5. Открыть preview/download. +6. Проверить audit. +7. Удалить тестовый incident/artifact/state. + +Тестовые artifacts должны быть явно помечены как synthetic/smoke. + +## 9. Завершение установки + +Перед передачей в эксплуатацию: + +- сохранить версии release artifacts; +- сохранить контрольный `detmir-status`; +- сохранить список active services/timers; +- сохранить список Grafana dashboards; +- проверить backup/restore; +- проверить, что ноутбук администратора не является runtime-зависимостью. + +## 10. Связанные документы + +- `docs/ADMIN_GUIDE_RU.md` +- `docs/ARCHITECTURE_RU.md` +- `docs/FULL_DEPLOYMENT_MANUAL_RU.md` +- `docs/GRAFANA_DASHBOARDS_RU.md` +- `adk-rust/RUNBOOK.md` diff --git a/docs/OPERATOR_GUIDE_RU.md b/docs/OPERATOR_GUIDE_RU.md new file mode 100644 index 0000000..f70003e --- /dev/null +++ b/docs/OPERATOR_GUIDE_RU.md @@ -0,0 +1,138 @@ +# DetMir: руководство оператора + +Статус: подготовительный документ для эксплуатации и пакета реестра российского +ПО. + +Продуктовое имя: `DetMir`. + +Техническая база и репозиторий: `AWatch-rus`. + +## 1. Роль оператора + +Оператор использует DetMir для ежедневного контроля состояния контура, +просмотра dashboards, разбора инцидентов и проверки доказательств. + +Оператор не администрирует firewall, VPN, базовые системные сервисы и секреты. +Эти действия относятся к администратору. + +## 2. Основной вход + +Основной пользовательский вход: + +- web-портал DetMir; +- Grafana dashboards; +- Telegram-уведомления и команды, если они включены в контуре. + +Портал является первичной операторской поверхностью. Grafana используется для +графиков, исторических срезов и детальной аналитики. + +## 3. Ежедневная проверка + +Оператор проверяет: + +1. Общий статус контура. +2. Наличие активных предупреждений. +3. Состояние DLP/ИБ-инцидентов. +4. Актуальность графиков Grafana. +5. Наличие свежих worktime/session данных. +6. Наличие evidence для инцидентов, где оно ожидается. + +Зеленое состояние означает: + +- сервисы доступны; +- fresh/stale/dead семантика не показывает активного отказа; +- current SLO sample OK; +- Grafana не показывает stale mandatory panels; +- нет failed units, требующих вмешательства. + +## 4. Раздел `Инциденты ИБ` + +В этом разделе отображаются события, связанные с DLP/ИБ-контролем: + +- DLP incident metadata; +- severity/status; +- источник события; +- время события; +- evidence metadata; +- screenshot preview/download, если evidence доступно; +- ссылки на Grafana dashboards. + +Этот раздел не должен использоваться как общий каталог всех технических +событий. Он предназначен для инцидентов и доказательной аналитики. + +## 5. Работа с доказательствами + +Если у инцидента есть доказательство: + +1. Открыть запись инцидента. +2. Проверить наличие блока `Доказательства`. +3. Открыть preview. +4. При необходимости скачать файл. +5. Убедиться, что в audit зафиксирован просмотр. + +Оператор не должен: + +- открывать evidence по прямому пути на сервере; +- пересылать screenshots в публичные каналы; +- удалять evidence без отдельного решения администратора/владельца; +- трактовать screenshot как юридически неизменяемое доказательство без + отдельного регламента. + +## 6. Grafana + +Grafana используется для: + +- DLP/ИБ обзора; +- worktime и RDP активности; +- управленческих графиков; +- проверки исторических трендов; +- сверки данных портала. + +Если портал показывает инцидент, а Grafana не показывает ожидаемый график, +оператор передает администратору: + +- название dashboard; +- время проверки; +- affected panel; +- ожидаемое и фактическое поведение. + +## 7. Telegram + +Telegram bot используется как канал уведомлений и операторских команд. + +Важно: + +- Telegram runtime остается Python; +- Rust используется для backend helpers; +- Telegram не является единственным источником истины; +- при расхождении Telegram и портала приоритет у портала/status checks. + +## 8. Когда звать администратора + +Эскалация нужна, если: + +- портал недоступен; +- Grafana не авторизует или dashboards пустые; +- evidence preview не открывается; +- upload/view/download audit не пишется; +- SLO current sample FAIL; +- появились failed systemd units; +- Windows collectors не дают свежих данных; +- инцидент требует удаления/ретенции/экспорта evidence. + +## 9. Ограничения + +DetMir помогает контролировать и расследовать события, но не заменяет: + +- юридический аудит; +- сертифицированную СЗИ; +- EDR/XDR; +- полноценную SIEM; +- утвержденный регламент обработки персональных данных. + +## 10. Связанные документы + +- `docs/ADMIN_GUIDE_RU.md` +- `docs/GRAFANA_DASHBOARDS_RU.md` +- `docs/DETMIR_THREAT_MODEL_RU.md` +- `docs/dlp-security-functional-spec-ru.md` diff --git a/docs/OWNERSHIP_RU.md b/docs/OWNERSHIP_RU.md new file mode 100644 index 0000000..92fef16 --- /dev/null +++ b/docs/OWNERSHIP_RU.md @@ -0,0 +1,117 @@ +# DetMir: правообладание и состав продукта + +Статус: подготовительный документ для пакета реестра российского ПО. + +## 1. Нейминг + +Продуктовое имя: + +```text +DetMir +``` + +Репозиторий и техническая база: + +```text +AWatch-rus +``` + +Рекомендуемая формула: + +> DetMir, программный комплекс на базе AWatch-rus. + +Эту формулу нужно использовать в сайте, документации и карточке продукта, чтобы +не создавать впечатление двух разных продуктов. + +## 2. Правообладатель + +На дату фиксации правообладателем продукта заявлен Игорь, владелец текущего +репозитория и production-контура. + +Перед подачей в реестр нужно подготовить формальные подтверждения: + +- данные правообладателя; +- основание возникновения исключительного права; +- история разработки; +- сведения о сотрудниках/подрядчиках, если они участвовали; +- подтверждение передачи прав, если код писался не только правообладателем; +- выбранная лицензия поставки; +- при необходимости свидетельство Роспатента. + +## 3. Собственные части продукта + +К собственным частям относятся: + +- архитектура DetMir; +- Rust workspace `adk-rust/`; +- DetMir Portal; +- status/check/autoheal helpers; +- DLP/worktime/reporting Rust services; +- Ansible deployment automation; +- Windows collectors и scripts; +- AW-rus RU/WebUI patches; +- Grafana dashboard JSON; +- docs/runbooks/product docs; +- evidence workflow implementation. + +## 4. Внешние компоненты + +Внешние компоненты используются как dependencies/runtime platform: + +- ActivityWatch; +- Grafana; +- InfluxDB; +- ClickHouse; +- SQLite; +- Python ecosystem; +- Rust crates; +- PowerShell/Windows runtime; +- Hayabusa; +- Ansible. + +Они не должны описываться как созданные правообладателем DetMir. Их нужно +указывать как сторонние компоненты или интеграции. + +## 5. Что нельзя смешивать + +Не смешивать в документах: + +- право на собственный код DetMir; +- право на сторонние open-source компоненты; +- право на конкретные customer/runtime данные; +- право на торговое наименование; +- право на домен/сайт; +- право на screenshots с чувствительными данными. + +## 6. Что подготовить для Роспатента + +Минимальный пакет: + +1. Название программы: `DetMir`. +2. Альтернативное техническое название: `AWatch-rus`. +3. Описание назначения. +4. Реферат. +5. Исходные тексты или депонируемая часть. +6. Данные автора/правообладателя. +7. Подтверждение исключительных прав. +8. Дата создания и версия. +9. Состав модулей. + +## 7. Что подготовить для реестра российского ПО + +1. Сайт правообладателя/продукта. +2. Документация установки и эксплуатации. +3. Описание функциональных характеристик. +4. Сведения о правообладателе. +5. Сведения об основаниях исключительного права. +6. Информация о сторонних компонентах. +7. Поддерживаемые ОС/СУБД/среда исполнения. +8. Скриншоты и демонстрационные материалы. +9. Release artifacts. +10. License/dependency inventory. + +## 8. Связанные документы + +- `docs/THIRD_PARTY_LICENSES_RU.md` +- `docs/REGISTRY_CHECKLIST_RU.md` +- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md` diff --git a/docs/REGISTRY_CHECKLIST_RU.md b/docs/REGISTRY_CHECKLIST_RU.md new file mode 100644 index 0000000..9a315b0 --- /dev/null +++ b/docs/REGISTRY_CHECKLIST_RU.md @@ -0,0 +1,112 @@ +# DetMir: чек-лист подготовки к реестру российского ПО + +Статус: рабочий чек-лист. Не является юридическим заключением. + +Продуктовое имя: `DetMir`. + +Техническая база и репозиторий: `AWatch-rus`. + +Основной классификаторный ориентир: `09.10 Средства управления ИТ-службой, +ИТ-инфраструктурой и ИТ-активами`. + +## 1. Позиционирование + +- [x] Не заявлять продукт как DLP/SIEM/EDR/XDR/СЗИ. +- [x] Зафиксировать основную линию: операционный контроль, технический аудит, + управление ИТ-инфраструктурой. +- [x] Зафиксировать `09.10` как основной класс. +- [x] Описать DLP/evidence/Hayabusa как прикладные модули. +- [ ] Подготовить публичное описание продукта на 500-1000 знаков. +- [ ] Подготовить короткое описание на 1-2 предложения. + +## 2. Правообладание + +- [x] Зафиксировать текущего заявленного правообладателя. +- [ ] Подготовить формальные данные правообладателя. +- [ ] Подготовить основание возникновения исключительного права. +- [ ] Проверить историю участия третьих лиц. +- [ ] Подготовить документы о передаче прав, если нужно. +- [ ] Решить вопрос со свидетельством Роспатента. + +## 3. Название + +- [x] Принять `DetMir` как продуктовое имя. +- [x] Принять `AWatch-rus` как имя репозитория и технической базы. +- [x] Использовать формулу `DetMir, программный комплекс на базе AWatch-rus`. +- [ ] Проверить доступность домена/товарного обозначения. +- [ ] Проверить, нет ли конфликтов по названию. + +## 4. Документация + +- [x] Модель угроз: `docs/DETMIR_THREAT_MODEL_RU.md`. +- [x] Позиционирование: `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`. +- [x] Руководство администратора: `docs/ADMIN_GUIDE_RU.md`. +- [x] Руководство оператора: `docs/OPERATOR_GUIDE_RU.md`. +- [x] Установка: `docs/INSTALL_RU.md`. +- [x] Архитектура: `docs/ARCHITECTURE_RU.md`. +- [x] Правообладание: `docs/OWNERSHIP_RU.md`. +- [x] Сторонние компоненты: `docs/THIRD_PARTY_LICENSES_RU.md`. +- [ ] Подготовить публичный `README_PRODUCT_RU.md`. +- [ ] Подготовить сайт/mdBook. +- [ ] Очистить публичные docs от внутренних IP, секретов и временных путей. + +## 5. Сайт + +- [ ] Создать раздел `О продукте`. +- [ ] Создать раздел `Возможности`. +- [ ] Создать раздел `Архитектура`. +- [ ] Создать раздел `Установка`. +- [ ] Создать раздел `Эксплуатация`. +- [ ] Создать раздел `Безопасность и ограничения`. +- [ ] Создать раздел `Документация`. +- [ ] Создать раздел `Контакты правообладателя`. +- [ ] Разместить документацию на странице правообладателя. + +## 6. Сборка и поставка + +- [ ] Зафиксировать release version. +- [ ] Собрать Rust release binaries. +- [ ] Зафиксировать checksums release artifacts. +- [ ] Проверить clean build из репозитория. +- [ ] Подготовить installation bundle. +- [ ] Подготовить upgrade/rollback notes. + +## 7. Лицензии и зависимости + +- [ ] Добавить root `LICENSE`. +- [ ] Выполнить `cargo deny check`. +- [ ] Сформировать Rust license report. +- [ ] Сформировать Python license report. +- [ ] Подготовить SBOM. +- [ ] Проверить transitive dependencies. +- [ ] Подготовить `THIRD_PARTY_NOTICES`. + +## 8. Демонстрационные материалы + +- [ ] Скриншот портала DetMir. +- [ ] Скриншот раздела `Инциденты ИБ`. +- [ ] Скриншот evidence preview без чувствительных данных. +- [ ] Скриншоты Grafana dashboards. +- [ ] Пример operator daily flow. +- [ ] Пример admin health check. + +## 9. Безопасность + +- [x] Зафиксировать, что продукт не заявляется как сертифицированная СЗИ. +- [x] Зафиксировать остаточные риски. +- [x] Зафиксировать evidence controls. +- [ ] Подготовить evidence retention policy. +- [ ] Подготовить role/access policy. +- [ ] Подготовить public security boundaries. +- [ ] Подготовить vulnerability disclosure/contact. + +## 10. Финальная готовность + +- [ ] Все документы согласованы по названию `DetMir`. +- [ ] Нет противоречивых заявлений DLP/SIEM/EDR/XDR/СЗИ. +- [ ] Сайт доступен. +- [ ] Документация доступна с сайта правообладателя. +- [ ] Release artifacts готовы. +- [ ] Правообладательский пакет готов. +- [ ] License/SBOM пакет готов. +- [ ] Заявка может готовиться к подаче. diff --git a/docs/THIRD_PARTY_LICENSES_RU.md b/docs/THIRD_PARTY_LICENSES_RU.md new file mode 100644 index 0000000..b87dfe6 --- /dev/null +++ b/docs/THIRD_PARTY_LICENSES_RU.md @@ -0,0 +1,120 @@ +# DetMir: сторонние компоненты и лицензии + +Статус: первичный inventory для подготовки к реестру российского ПО. + +Этот документ не заменяет юридическую license audit. Перед подачей в реестр +нужно выполнить автоматизированную проверку зависимостей и сохранить отчет. + +Продуктовое имя: `DetMir`. + +Техническая база и репозиторий: `AWatch-rus`. + +## 1. Собственный код + +Собственный код проекта включает: + +- Rust workspace `adk-rust/`; +- Ansible playbooks; +- Windows PowerShell collectors и deployment scripts; +- AW-rus WebUI patches; +- DetMir Portal; +- DLP/worktime/status/reporting helpers; +- документацию проекта. + +В `adk-rust/Cargo.toml` для workspace указан license: + +```text +Apache-2.0 +``` + +Перед публичной поставкой нужно проверить, что license root файла и все +исходники согласованы с выбранной моделью поставки. + +## 2. Основные внешние компоненты runtime + +| Компонент | Роль | +|---|---| +| ActivityWatch | Базовый сбор и API событий активности. | +| Grafana | Dashboards и визуализация. | +| InfluxDB | Метрики и временные ряды. | +| ClickHouse | 1C/file analytics слой. | +| SQLite | Локальные state/warehouse/cases/policy хранилища. | +| Python | Telegram runtime и legacy-compatible tooling. | +| Rust crates ecosystem | Основной runtime DetMir helpers. | +| PowerShell | Windows collectors/deployment. | +| Hayabusa | Offline/DFIR enrichment. | +| Ansible | Deployment automation. | + +## 3. Rust зависимости + +Найдены workspace dependencies: + +| Dependency | Использование | +|---|---| +| `adk-rust` | Agent/tooling integration. | +| `anyhow` | Error handling. | +| `base64` | Evidence upload body decoding. | +| `chrono` | Time/date handling. | +| `clap` | CLI parsing. | +| `fs2` | File locks. | +| `reqwest` | HTTP client. | +| `regex` | Rules/content matching. | +| `rusqlite` | SQLite access. | +| `serde`, `serde_json`, `serde_yaml` | Serialization. | +| `sha2` | SHA-256 validation. | +| `tempfile` | Tests/temp files. | +| `tiny_http` | Lightweight HTTP services. | +| `url`, `urlencoding` | URL handling. | + +Перед релизом выполнить: + +```bash +cargo install cargo-about cargo-deny +cd adk-rust +cargo about generate about.hbs > ../docs/licenses-rust.html +cargo deny check +``` + +Шаблон `about.hbs` нужно добавить отдельно. + +## 4. Python зависимости + +Найдены requirements: + +| Файл | Зависимости | +|---|---| +| `aw-server/dlp-case-management/requirements.txt` | `fastapi`, `uvicorn`, `pydantic` | +| `aw-server/dlp-compliance/requirements.txt` | `requests` | +| `aw-server/dlp-content-analysis/requirements.txt` | `pytesseract`, `Pillow` | +| `aw-server/dlp-integrations/requirements.txt` | `PyYAML` | +| `aw-server/dlp-policy-engine/requirements.txt` | `fastapi`, `uvicorn`, `pydantic` | +| `clickhouse-1c/ai/requirements.txt` | `fastapi`, `uvicorn`, `clickhouse-connect` | +| `clickhouse-1c/etl/requirements.txt` | `clickhouse-connect`, `PyYAML`, `python-dateutil`, `openpyxl` | + +Перед релизом выполнить license scan: + +```bash +python3 -m pip install pip-licenses +pip-licenses --from=mixed --format=markdown > docs/licenses-python.md +``` + +Команду запускать в воспроизводимом virtualenv, где установлены реальные +runtime dependencies. + +## 5. Что нужно закрыть перед подачей + +1. Добавить root `LICENSE`. +2. Добавить `NOTICE`, если это потребуется выбранными лицензиями. +3. Сформировать полный SBOM. +4. Проверить transitive dependencies. +5. Зафиксировать список компонентов, которые поставляются вместе с продуктом. +6. Отделить компоненты, которые устанавливаются пользователем самостоятельно. +7. Проверить отсутствие GPL/AGPL-компонентов, если выбранная модель поставки с + ними несовместима. +8. Подготовить публичный `THIRD_PARTY_NOTICES`. + +## 6. Связанные документы + +- `docs/OWNERSHIP_RU.md` +- `docs/REGISTRY_CHECKLIST_RU.md` +- `docs/DETMIR_RUSSIAN_SOFTWARE_REGISTRY_POSITIONING_RU.md`