docs(detmir): add registry proof package

This commit is contained in:
igor04091968
2026-06-03 01:46:15 +03:00
parent 5f217b6dbb
commit 109c31f291
11 changed files with 1024 additions and 20 deletions
+9 -1
View File
@@ -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`.
Отложить:
+160
View File
@@ -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`
+155
View File
@@ -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`
@@ -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 остаются функциональными модулями платформы;
- не заявляем сертифицированную СЗИ;
- сначала готовим сайт, документацию и правообладательский пакет.
+15 -5
View File
@@ -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`
+11
View File
@@ -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. Операционный минимум, который нельзя терять
+159
View File
@@ -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`
+138
View File
@@ -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`
+117
View File
@@ -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`
+112
View File
@@ -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 пакет готов.
- [ ] Заявка может готовиться к подаче.
+120
View File
@@ -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`