# AWatch-rus: операционная модель угроз

Дата фиксации: `2026-06-03`

Статус: рабочая модель угроз `v0.1` для текущего production-контура `AWatch-rus`.

Нейминг для внешних материалов: `AWatch-rus` - продукт, `AWatch-rus` -
репозиторий и техническая база. Рекомендуемая формула: `AWatch-rus, программный
комплекс на базе AWatch-rus`.

Документ фиксирует фактически используемую модель угроз для эксплуатации,
аудита, развития продукта и подготовки к возможной регистрации как
отечественного программного продукта.

## 1. Правообладание и позиционирование

На момент фиксации правообладателем продукта заявлен Игорь, владелец текущего
репозитория AWatch-rus и production-контура AWatch-rus.

Рабочее позиционирование продукта:

> AWatch-rus - отечественная платформа операционного контроля,
> технического аудита, мониторинга действий пользователей, расследования
> инцидентов и автоматизации реагирования.

Текущую модель угроз не следует трактовать как:

- формальную модель угроз ИСПДн, ГИС или КИИ;
- сертифицированную модель угроз ФСТЭК;
- заявление соответствия классу сертифицированных DLP-систем;
- заявление соответствия классу SIEM, EDR или XDR;
- заверенную модель нарушителя для средства защиты информации.

Для реестра российского ПО и коммерческого позиционирования безопаснее
использовать классы:

- система автоматизации ИТ-эксплуатации;
- платформа технического аудита;
- платформа операционного контроля;
- система мониторинга и контроля регламентов.

Функции DLP, ИБ-инцидентов, evidence и Hayabusa в этой модели являются
прикладными возможностями платформы, а не основанием заявлять продукт как
сертифицированную СЗИ.

## 2. Границы модели

В модель входят:

- Windows/RDP endpoint collectors;
- ActivityWatch/AW-rus server;
- Rust-сервисы AWatch-rus на Proxmox и AW server;
- операторский портал AWatch-rus;
- Grafana/Influx/SQLite/warehouse/reporting layer;
- Telegram bot как постоянный Python runtime;
- DLP incident/evidence pipeline;
- Hayabusa/offline DFIR enrichment;
- 1C/file analytics контур как смежный аналитический слой;
- Ansible/systemd/scheduled-task deployment и recovery path.

В модель не входят:

- pfSense как объект активной доработки в рамках текущей фазы;
- внешняя юридическая аттестация;
- криптографическая защита канала сверх уже настроенной инфраструктуры;
- защита от администратора, полностью контролирующего endpoint или сервер;
- гарантия неизменности данных без внешнего WORM/подписанного хранилища.

## 3. Защищаемые активы

Основные активы:

| Актив | Почему важен |
|---|---|
| ActivityWatch buckets | Первичная телеметрия активности, worktime, browser, DLP и session-событий. |
| DLP incidents | Первичная фиксация событий, требующих проверки оператором или ИБ. |
| Evidence/screenshots | Подтверждения инцидентов, потенциально содержащие чувствительные данные. |
| Evidence audit | След просмотра, загрузки и скачивания доказательств. |
| DLP warehouse SQLite | Нормализованный источник для портала, Grafana и reporting. |
| Grafana dashboards | Управленческая и ИБ-витрина состояния контура. |
| 1C/file analytics | Деловая аналитика и признаки аномалий по компаниям/файлам. |
| Tokens/secrets | Доступ к upload API, SSH/WinRM, Grafana, gateway, Ansible runtime. |
| Systemd timers/services | Автономная работа без зависимости от ноутбука. |
| Runbooks/backups/rollback artifacts | Восстановление после ошибок deploy или runtime-регрессий. |

## 4. Доверенные зоны

Рабочая модель разделяет контур на зоны:

| Зона | Пример | Уровень доверия |
|---|---|---|
| Endpoint/RDP | `<WINDOWS_HOST>` | Доверенный источник сигналов, но допускается риск локального вмешательства. |
| AW server | `<AW_SERVER_HOST>` | Основной trusted data/control plane для AW/DLP/worktime. |
| Proxmox/operator | `<GATEWAY_HOST>` | Операторский gateway, portal, Telegram, automation entrypoint. |
| Grafana/data | Grafana/Influx/ClickHouse | Витрина и аналитика, не первичный источник доказательств. |
| Laptop/operator shell | рабочая станция владельца | Удобный admin-клиент, но не обязательный runtime. |
| External access | `<PUBLIC_GATEWAY_FQDN>` | Доступ только через gateway/auth/reverse proxy. |

Ключевой принцип: production-контур должен работать автономно на серверах.
Ноутбук не является обязательной частью runtime.

## 5. Модель нарушителя

Модель предполагает следующие типы нарушителей и отказов.

### 5.1 Обычный пользователь

Возможности:

- работает в RDP/Windows-сессии;
- использует браузер, файлы, печать, clipboard, email;
- может случайно или намеренно создать DLP-событие.

Цель контроля:

- обнаружить подозрительное действие;
- сохранить событие и доступные доказательства;
- показать оператору состояние в портале/Grafana;
- не создавать ложную аварию при нормальном отсутствии событий.

### 5.2 Внутренний нарушитель с локальными правами

Возможности:

- пытается остановить collectors;
- удаляет локальные artifacts;
- меняет локальные конфиги;
- пытается обойти endpoint monitoring.

Текущие ограничения:

- если у нарушителя полный локальный admin-контроль, endpoint не считается
  криптографически доверенным источником;
- текущая система фиксирует и восстанавливает runtime, но не является EDR.

### 5.3 Оператор или администратор, совершивший ошибку

Возможности:

- запускает неверный deploy;
- меняет переменные окружения;
- ломает systemd unit, scheduled task, Grafana datasource или policy;
- случайно открывает/удаляет evidence.

Контрмеры:

- runbook-first workflow;
- backup-first перед рискованными изменениями;
- read-only parity перед replacement;
- dry-run для опасных операций;
- audit evidence view/download/upload;
- rollback artifacts.

### 5.4 Внешний атакующий с доступом к gateway/VPN/порталу

Возможности:

- пытается открыть portal/Grafana/AW/evidence API;
- пробует прямые пути к файлам доказательств;
- пытается загрузить fake evidence;
- пытается получить внутренние endpoints через reverse proxy.

Контрмеры:

- gateway authentication;
- evidence routes only by opaque `evidence_id`;
- запрет raw path serving;
- canonical path/root allowlist;
- Bearer token для upload API;
- `403` при upload без токена;
- SHA-256 validation и file magic check;
- max-size limit;
- atomic evidence write.

### 5.5 Вредоносное ПО или скрипт на endpoint

Возможности:

- генерирует шумовые события;
- пытается подложить screenshot/artifact;
- мешает scheduled tasks;
- вызывает сетевые/HTTP ошибки.

Контрмеры:

- upload state tracking;
- SHA-256 contract между event metadata и artifact bytes;
- DLP health gates;
- Windows scheduled task recovery;
- AW SLO/current sample monitoring;
- Rust health/status helpers.

### 5.6 Отказ компонента

Отказы считаются частью операционной модели угроз:

- ActivityWatch API недоступен;
- Rocket/HTTP keep-alive закрывает соединение до конца ответа;
- Grafana datasource stale/empty;
- Influx/SQLite/reporting дает неполные данные;
- sync task не доставляет evidence;
- systemd timer/service падает;
- старые false samples искажают SLO.

Контрмеры:

- `detmir-status`, `detmir-check`, `dlp-health-check`;
- SLO summary/current sample;
- systemd failed-unit checks;
- browser smoke;
- Grafana data freshness check;
- controlled reset/trim только после анализа причины;
- автономные timers на серверах.

## 6. Основные угрозы

| ID | Угроза | Текущий статус контроля |
|---|---|---|
| T01 | Потеря или остановка endpoint collectors | Health/recovery/scheduled tasks, но local admin остается residual risk. |
| T02 | Ложные DLP warnings из-за старого состояния | Delta/baseline logic, SLO correction, health semantics. |
| T03 | Несанкционированный просмотр evidence | Gateway auth, opaque id, audit view/download. |
| T04 | Подмена screenshot/evidence | SHA-256 contract, magic check, upload token, atomic write. |
| T05 | Прямая выдача файлов по path traversal | Canonical path/root allowlist, no raw path route. |
| T06 | Утечка upload token/secrets | Token outside git, no secret printing policy, journald cleanup after incidents. |
| T07 | Поломка Grafana dashboards после миграции | Grafana check, datasource health, portal smoke. |
| T08 | Автоагент выполняет опасное действие | Allowlist/dry-run/read-only parity, pfSense frozen/no-touch. |
| T09 | Портал показывает неверный статус | AWatch-rus status backend, data freshness checks, smoke tests. |
| T10 | Ноутбук становится runtime-зависимостью | systemd/scheduled tasks on servers, autonomous sync/portal/services. |
| T11 | Evidence содержит чувствительные данные | Нужна формальная retention/access/redaction policy. |
| T12 | Злоупотребление админскими правами | Полностью не закрыто без отдельного PAM/RBAC/WORM/EDR слоя. |

## 7. Реализованные контрмеры

На момент фиксации реализованы и проверены:

- Rust-first production helpers для `detmir-status`, `detmir-check`,
  `detmir-dlp`, `detmir-auto`, DLP/worktime/status paths;
- Telegram runtime оставлен на Python, Rust используется как backend helper;
- evidence-only API на AW server;
- безопасные screenshot routes через portal/gateway;
- upload API с Bearer token;
- base64 decode server-side;
- PNG/JPEG magic validation;
- max-size enforcement;
- SHA-256 validation;
- atomic write в evidence storage;
- audit records для upload/view/download;
- Windows scheduled task `ActivityWatch DLP Evidence Sync` каждые 15 минут
  через Rust-бинарник `aw-windows-telemetry.exe dlp-evidence-sync`; копируются
  только DLP incident screenshots, 1C/обычные PNG из `incident-artifacts`
  игнорируются;
- external Playwright smoke для портала/evidence/Grafana routes;
- Grafana актуальность и datasource health checks;
- rollback-critical backups;
- запрет трогать pfSense без отдельной явной команды.

## 8. Остаточные риски

Остаточные риски, которые не надо скрывать:

- нет формальной модели угроз ИСПДн/ГИС/КИИ;
- нет ФСТЭК-сертификации;
- нет нативного полного RBAC в DLP policy/case/evidence workflow;
- screenshot artifacts могут содержать персональные, коммерческие или
  чувствительные данные;
- retention/redaction/access policy для evidence требует отдельной фиксации;
- endpoint с локальным admin не является полностью доверенным;
- policy distribution пока не является криптографически подписанной;
- SQLite/AW buckets не шифруются приложением;
- внешние syslog/webhook/CEF каналы зависят от конфигурации транспорта;
- Grafana остается витриной, а не первичным источником доказательств;
- юридическая доказательная сила evidence требует отдельного регламента.

## 9. Требования к эксплуатации

Для текущей модели обязательны:

1. Не хранить секреты в git.
2. Не печатать токены в stdout, journald, reports или Telegram.
3. Держать upload token только на AW server и Windows endpoint.
4. Доступ к portal/Grafana/evidence отдавать только через контролируемый gateway.
5. Не открывать внутренние сервисные порты наружу без отдельного решения.
6. Перед risky changes делать backup и фиксировать rollback path.
7. Для replacement scripts использовать read-only parity и shadow validation.
8. Проверять Grafana не только по HTTP login, но и по datasource/data freshness.
9. После DLP/evidence изменений выполнять synthetic incident smoke и cleanup.
10. Не трогать pfSense в рамках app-level работ без отдельной явной команды.

## 10. Roadmap усиления модели

Ближайшие улучшения:

1. Зафиксировать evidence retention/access policy.
2. Добавить role-aware views в AWatch-rus Portal.
3. Разделить operator/owner/security auditor роли.
4. Добавить immutable audit export для evidence actions.
5. Ввести policy signing или хотя бы signed policy bundle checksum.
6. Добавить периодический evidence integrity scan.
7. Описать data classification для screenshots/OCR/file analytics.
8. Подготовить отдельный пакет документов для реестра российского ПО.
9. Подготовить отдельный юридический контур, если понадобится заявлять СЗИ.

## 11. Практическая формулировка

Для внутренних и внешних описаний использовать:

> AWatch-rus использует рабочую операционную модель угроз для платформы
> технического аудита и операционного контроля. Модель покрывает сбор
> активности, DLP-события, доказательства инцидентов, мониторинг состояния
> сервисов, ошибки операторов, отказ компонентов и базовые сценарии
> несанкционированного доступа к evidence/portal/API. Модель не является
> сертифицированной моделью угроз ФСТЭК и не заявляет продукт как
> сертифицированное средство защиты информации.

## 12. Связанные документы

- `docs/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/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`
- `docs/security-analytics-stack-v1.md`
- `docs/runbook.md`
- `adk-rust/RUNBOOK.md`
- `.ai/runtime/detmir-current-session.md`
