Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ae048ac1c8 | ||
|
|
ded569207e | ||
|
|
55c0d06baa | ||
|
|
3b5fe0c116 | ||
|
|
a2575233b7 | ||
|
|
8236789781 | ||
|
|
02967629ff | ||
|
|
ff6d7155cd |
@@ -38,3 +38,82 @@
|
|||||||
Продукт относится к классу средств управления ИТ-службой,
|
Продукт относится к классу средств управления ИТ-службой,
|
||||||
ИТ-инфраструктурой и ИТ-активами. Продукт не заявляется как
|
ИТ-инфраструктурой и ИТ-активами. Продукт не заявляется как
|
||||||
сертифицированная DLP, SIEM, EDR/XDR или средство защиты информации.
|
сертифицированная DLP, SIEM, EDR/XDR или средство защиты информации.
|
||||||
|
|
||||||
|
|
||||||
|
## Профессиональные сильные стороны проекта
|
||||||
|
|
||||||
|
Ниже — краткая и профессиональная сводка ключевых преимуществ AWatch-rus,
|
||||||
|
предназначенная для реестра программного обеспечения и технического аудитa.
|
||||||
|
|
||||||
|
### 1. Архитектура и инженерный дизайн
|
||||||
|
|
||||||
|
- Rust-first, модульная архитектура: более 40 специализированных крейтов в
|
||||||
|
workspace, четкая декомпозиция ответственности и воспроизводимые сборки
|
||||||
|
(Cargo.lock).
|
||||||
|
- Разделение на логические уровни: endpoint -> серверные хранилища ->
|
||||||
|
processing -> operator -> automation, что упрощает тестирование и валидацию.
|
||||||
|
- Четкие migration-runbooks для последовательного перехода legacy-python → Rust.
|
||||||
|
|
||||||
|
### 2. Операционная зрелость
|
||||||
|
|
||||||
|
- Полноценный Ansible-ensemble для end-to-end развёртывания (Proxmox, Linux,
|
||||||
|
централизованный Windows rollout по WinRM), включая retry-политику,
|
||||||
|
smoke-тесты и валидацию после деплоя.
|
||||||
|
- Safe-run pattern: dry-run/apply planners, backup-before-delete, atomic
|
||||||
|
операции и conservative no-restart paths.
|
||||||
|
- Набор модулей для диагностики и качества (detmir-*, aw-*, quality-gate,
|
||||||
|
smoke checks) обеспечивает fast feedback при внедрении.
|
||||||
|
|
||||||
|
### 3. Безопасность и работа с evidence
|
||||||
|
|
||||||
|
- Изолированный путь evidence: opaque IDs, bearer-upload, magic validation
|
||||||
|
для изображений, размерные лимиты, SHA-256 валидация, atomic write и audit
|
||||||
|
trails.
|
||||||
|
- Security hardening guide: TLS по умолчанию, reverse-proxy, firewall
|
||||||
|
рекомендации, сервисные аккаунты и минимальные привилегии.
|
||||||
|
- Ясные границы продукта: не позиционируется как сертифицированная СЗИ/DLP;
|
||||||
|
это снижает юридические риски при регистрации и аудите.
|
||||||
|
|
||||||
|
### 4. Production-readiness и валидация пилота
|
||||||
|
|
||||||
|
- Полный комплект acceptance и pilot-checklists (30-дневный pilot success
|
||||||
|
criteria) с метриками доступности, coverage, freshness и времени реакции.
|
||||||
|
- Runbooks и операционная документация для восстановления, резервного копирования
|
||||||
|
и отката.
|
||||||
|
|
||||||
|
### 5. Наблюдаемость и качество данных
|
||||||
|
|
||||||
|
- Встроенные SLO/health monitoring, Prometheus/ Grafana витрины и
|
||||||
|
детализированные smoke/contour тесты.
|
||||||
|
- Механизмы объяснимости: UEBA v1 rule-based с reason-codes и объяснениями KPI
|
||||||
|
coverage/confidence.
|
||||||
|
|
||||||
|
### 6. Поддержка Windows/RDP и forensics
|
||||||
|
|
||||||
|
- Централизованный Windows rollout и валидация (API smoke-checks для
|
||||||
|
aw-watcher-afk/aw-watcher-window).
|
||||||
|
- Серверная автоматическая обработка Hayabusa: auto-upload, severity scoring,
|
||||||
|
case creation и уведомления (Telegram) с пороговой фильтрацией.
|
||||||
|
|
||||||
|
### 7. Документированность и готовность к реестру
|
||||||
|
|
||||||
|
- Полный набор документов для регистрации: product passport, architecture,
|
||||||
|
functional scope, dependency statement, deployment model и readiness checklist.
|
||||||
|
- Демонстрационные сценарии и фикстуры, исключающие реальные персональные и
|
||||||
|
сетевые данные — соответствует требованиям для публичных материалов.
|
||||||
|
|
||||||
|
### 8. Честное позиционирование и риски
|
||||||
|
|
||||||
|
- Прозрачность ограничений (что реализовано, что planned/future) — важный
|
||||||
|
аспект при подаче в реестр и при взаимодействии с заказчиком.
|
||||||
|
- Документированная gap-analysis и roadmap-conformance audit облегчают
|
||||||
|
процессы оценки соответствия и планирования доработок.
|
||||||
|
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Если нужно, могу:
|
||||||
|
- добавить этот раздел как отдельный файл в docs/ (например,
|
||||||
|
docs/PROFESSIONAL_HIGHLIGHTS_RU.md), либо
|
||||||
|
- вставить в другой документ (например, в architecture или registry passport),
|
||||||
|
- сгенерировать краткую выдержку на 1 страницу для подачи в реестр.
|
||||||
|
|||||||
@@ -5,21 +5,17 @@ AWatch-rus - программный комплекс операционного
|
|||||||
корпоративной ИТ-инфраструктуры на базе ActivityWatch, Rust-сервисов
|
корпоративной ИТ-инфраструктуры на базе ActivityWatch, Rust-сервисов
|
||||||
автоматизации, Grafana/Prometheus-витрин и модулей расследования инцидентов.
|
автоматизации, Grafana/Prometheus-витрин и модулей расследования инцидентов.
|
||||||
|
|
||||||
Проект не позиционируется как сертифицированная DLP/SIEM/EDR/XDR/СЗИ. DLP,
|
Проект не позиционируется как сертифицированная DLP/SIEM/EDR/XDR/СЗИ,хотя DLP,evidence и Hayabusa используются в проекте.
|
||||||
evidence и Hayabusa используются как прикладные модули внутри платформы
|
|
||||||
операционного контроля и технического аудита.
|
|
||||||
|
|
||||||
## Назначение
|
## Назначение
|
||||||
|
|
||||||
- AWatch-rus Workforce: активность сотрудников, загрузка, RDP/1C/рабочие
|
- AWatch-rus Workforce: активность сотрудников, загрузка, RDP/1C/рабочие
|
||||||
приложения и управленческие отчеты для владельца бизнеса.
|
приложения и управленческие отчеты для владельца бизнеса.
|
||||||
- AWatch-rus Security: DLP-сигналы, evidence, очередь кейсов и audit действий
|
- AWatch-rus Security: DLP-сигналы, evidence, очередь кейсов и audit действий оператора без заявления продукта как сертифицированной СЗИ.
|
||||||
оператора без заявления продукта как сертифицированной СЗИ.
|
- AWatch-rus Forensics: цепочки событий, Hayabusa/offline-разбор и материалы для внутреннего расследования.
|
||||||
- AWatch-rus Forensics: цепочки событий, Hayabusa/offline-разбор и материалы для
|
|
||||||
внутреннего расследования.
|
|
||||||
- Контроль доступности и свежести данных ActivityWatch.
|
- Контроль доступности и свежести данных ActivityWatch.
|
||||||
- Учет активного времени, RDP-сессий, окон, приложений и рабочих интервалов.
|
- Учет активного времени, Windows RDP-сессий окон, приложений и рабочих интервалов а также активности пользователей в Linux/Unix системах.
|
||||||
- Витрины Grafana для администратора, оператора ИБ и руководителя.
|
- витрины Grafana для администратора, оператора ИБ и руководителя(dashboards).
|
||||||
- Автоматизация runbook-проверок, health-check, SLO и безопасного auto-heal.
|
- Автоматизация runbook-проверок, health-check, SLO и безопасного auto-heal.
|
||||||
- Сбор evidence по инцидентам и аудит действий оператора.
|
- Сбор evidence по инцидентам и аудит действий оператора.
|
||||||
|
|
||||||
@@ -28,18 +24,17 @@ evidence и Hayabusa используются как прикладные мод
|
|||||||
Основной серверный runtime AWatch-rus переведен на Rust: status/check/auto-heal,
|
Основной серверный runtime AWatch-rus переведен на Rust: status/check/auto-heal,
|
||||||
SLO, worktime, DLP server-side helpers, evidence и install-kit tooling.
|
SLO, worktime, DLP server-side helpers, evidence и install-kit tooling.
|
||||||
|
|
||||||
Python в репозитории остается для вспомогательных направлений: Telegram bot
|
Python, присутствующий в коде репозитория, остается для вспомогательных направлений: Telegram bot
|
||||||
runtime, OCR/content-analysis, 1C/AI/ETL integration и MCP/dev helpers. Эти
|
runtime(для оперативного оповещения), OCR/content-analysis, 1C/AI/ETL integration и MCP/dev helpers. Эти части не являются ядром Rust-first runtime.
|
||||||
части не являются ядром Rust-first runtime.
|
|
||||||
|
|
||||||
Портальный слой зафиксирован как Rust server-rendered HTML + HTMX-compatible
|
Портальный слой зафиксирован как Rust server-rendered HTML + HTMX-compatible
|
||||||
JSON API, OpenAPI и TypeScript declarations. Dioxus не используется и не
|
JSON API, OpenAPI и TypeScript declarations. Dioxus не используется и не
|
||||||
рассматривается для Pilot v1.0. React, Tauri и Electron также не входят в
|
рассматривается для Pilot v1.0. React, Tauri и Electron также не входят в
|
||||||
текущий основной UI.
|
текущий основной UI, но возможна их интеграция в проект.
|
||||||
|
|
||||||
## Product Evolution
|
## Product Evolution
|
||||||
|
|
||||||
AWatch-rus уже является рабочей платформой Workforce + Security + Forensics.
|
AWatch-rus является рабочей платформой Workforce + Security + Forensics.
|
||||||
Архитектура предусматривает расширение на агентные и agentless-источники
|
Архитектура предусматривает расширение на агентные и agentless-источники
|
||||||
данных. Planned/Future элементы ниже не являются реализованной функциональностью
|
данных. Planned/Future элементы ниже не являются реализованной функциональностью
|
||||||
и не должны трактоваться как готовые collectors или integrations.
|
и не должны трактоваться как готовые collectors или integrations.
|
||||||
|
|||||||
@@ -13,23 +13,22 @@ Forensics с прозрачными rule-based объяснениями.
|
|||||||
| Продукт | Публичная категория | Сильная сторона | Как позиционировать AWatch-rus рядом |
|
| Продукт | Публичная категория | Сильная сторона | Как позиционировать AWatch-rus рядом |
|
||||||
| --- | --- | --- | --- |
|
| --- | --- | --- | --- |
|
||||||
| ActivityWatch | Open-source automated time tracker | Локальный, открытый и понятный сбор активности приложений и сайтов | AWatch-rus развивает этот подход в пилотный корпоративный контур с ролями, отчетами, Risk Narrative и эксплуатационной документацией |
|
| ActivityWatch | Open-source automated time tracker | Локальный, открытый и понятный сбор активности приложений и сайтов | AWatch-rus развивает этот подход в пилотный корпоративный контур с ролями, отчетами, Risk Narrative и эксплуатационной документацией |
|
||||||
| Стахановец | Контроль сотрудников, мониторинг активности, DLP-возможности | Зрелый классический контроль рабочих мест и политик мониторинга | AWatch-rus не должен заявлять функциональный паритет; его сильная зона - объяснимый управленческий KPI, Security Analytics и пилотная прозрачность |
|
| Стахановец | Контроль сотрудников, мониторинг активности, DLP-возможности | Зрелый классический контроль рабочих мест и политик мониторинга | AWatch-rus не заявляет функциональный паритет; его сильная зона - объяснимый управленческий KPI, Security Analytics и пилотная прозрачность |
|
||||||
| StaffCop | Employee Monitoring, Insider Risk, Workforce Analytics, DLP | Широкий набор функций мониторинга, productivity analytics, расследований и DLP-направления | AWatch-rus нужно показывать как более узкий и прозрачный пилотный контур, без обещания заменить StaffCop по широте функций |
|
| StaffCop | Employee Monitoring, Insider Risk, Workforce Analytics, DLP | Широкий набор функций мониторинга, productivity analytics, расследований и DLP-направления | AWatch-rus это более узкий и прозрачный пилотный контур, без обещания заменить StaffCop по широте функций |
|
||||||
| SearchInform | DLP, Risk Monitor, SIEM, TimeInformer и смежные продукты | Комплексная линейка ИБ-продуктов и мониторинга внутренних рисков | AWatch-rus не конкурирует как полноценный SIEM/DLP; он может быть легким аналитическим слоем для Workforce-first пилота |
|
| SearchInform | DLP, Risk Monitor, SIEM, TimeInformer и смежные продукты | Комплексная линейка ИБ-продуктов и мониторинга внутренних рисков | AWatch-rus не конкурирует как полноценный SIEM/DLP; он является легким аналитическим слоем для Workforce-first пилота |
|
||||||
| InfoWatch | DLP и защита от утечек конфиденциальной информации | Сильное DLP-направление, политики, интеграции и регуляторный контекст | AWatch-rus не заменяет DLP; он показывает операционную активность, объяснимые риски и материалы для внутренней проверки |
|
| InfoWatch | DLP и защита от утечек конфиденциальной информации | Сильное DLP-направление, политики, интеграции и регуляторный контекст | AWatch-rus не заменяет DLP; он показывает операционную активность, объяснимые риски и материалы для внутренней проверки |
|
||||||
|
|
||||||
## Где AWatch-rus уместен
|
## Где AWatch-rus уместен
|
||||||
|
|
||||||
- Быстрый пилот для руководителя, ИБ и эксплуатации без тяжелого SIEM/DLP
|
- Быстрый пилот для руководителя, ИБ и эксплуатации без тяжелого SIEM/DLP
|
||||||
внедрения.
|
внедрения в организациях,желающих иметь современное программное обеспечение такого типа.
|
||||||
- Workforce-first аналитика с объяснением KPI, coverage и confidence.
|
- Workforce-first аналитика с объяснением KPI, coverage и confidence.
|
||||||
- Разделение Executive, Workforce, Security и Forensics сценариев.
|
- Разделение Executive, Workforce, Security и Forensics сценариев.
|
||||||
- Прозрачная rule-based модель UEBA Score v1 и Risk Narrative без ML/LLM.
|
- Прозрачная rule-based модель UEBA Score v1 и Risk Narrative без дорогих средств использования Искусственного Интеллекта ML/LLM.
|
||||||
- Подготовка evidence package и Markdown-отчетов для ручной проверки.
|
- Подготовка evidence package и Markdown-отчетов для ручной проверки.
|
||||||
- Честная демонстрация границ: planned, future и contract_only не выдаются за
|
- Честная демонстрация границ: planned, future и contract_only не выдаются за implemented.
|
||||||
implemented.
|
|
||||||
|
|
||||||
## Где зрелые конкуренты обычно сильнее
|
## Где зрелые тяжелые конкуренты обычно сильнее
|
||||||
|
|
||||||
- Глубокие DLP-политики, контентная фильтрация и блокировки каналов утечки.
|
- Глубокие DLP-политики, контентная фильтрация и блокировки каналов утечки.
|
||||||
- Масштабные SIEM/SOC-процессы и готовые интеграции ИБ.
|
- Масштабные SIEM/SOC-процессы и готовые интеграции ИБ.
|
||||||
@@ -39,12 +38,10 @@ Forensics с прозрачными rule-based объяснениями.
|
|||||||
- Поддержка сложных enterprise-сценариев с централизованным управлением
|
- Поддержка сложных enterprise-сценариев с централизованным управлением
|
||||||
агентами и политиками.
|
агентами и политиками.
|
||||||
|
|
||||||
## Что нельзя заявлять
|
## Что не заявляется
|
||||||
|
|
||||||
- Что AWatch-rus заменяет DLP, SIEM, EDR или XDR.
|
- Что AWatch-rus заменяет DLP, SIEM, EDR или XDR.
|
||||||
- Что planned или future providers уже работают в production.
|
- Что planned или future providers уже работают в production.
|
||||||
- Что pfSense readiness означает готовый ingestion, если он находится в статусе
|
|
||||||
`contract_only`.
|
|
||||||
- Что Risk Narrative является ML-прогнозом.
|
- Что Risk Narrative является ML-прогнозом.
|
||||||
- Что система автоматически оценивает персонал или принимает кадровые решения.
|
- Что система автоматически оценивает персонал или принимает кадровые решения.
|
||||||
|
|
||||||
|
|||||||
+297
-542
@@ -1,667 +1,422 @@
|
|||||||
Полная инструкция по развёртыванию и поддержке AWatch-rus
|
# Полная инструкция по развёртыванию и поддержке ActivityWatch-Russian
|
||||||
|
|
||||||
Статус документа
|
Документ описывает полный цикл: Proxmox/LXC сервер, установка ActivityWatch Server, RU Web UI patch, развёртывание Windows-клиентов в другом AD-домене, валидация, сопровождение и rollback.
|
||||||
|
|
||||||
Этот документ описывает актуальный **Rust-fiWindows/PowerShell deployment flow больше не считается основным способом развёртывания, патчинга или эксплуатации. Если в репозитории остаются старые ".ps1"-файлы, они рассматриваются как legacy/history или как будущий provider-слой, но не как production runtime.
|
---
|
||||||
|
|
||||||
0. Назначение
|
## 0) Структура проекта (полные пути)
|
||||||
|
|
||||||
AWatch-rus — программный комплекс операционного контроля, технического аудита, оценки трудоотдачи сотрудников и мониторинга корпоративной ИТ-инфраструктуры на базе:
|
- `<PROJECT_ROOT>/private-config/deploy.env`
|
||||||
|
- `<PROJECT_ROOT>/proxmox/create-ct.sh`
|
||||||
|
- `<PROJECT_ROOT>/proxmox/push-aw-artifacts.sh`
|
||||||
|
- `<PROJECT_ROOT>/aw-server/install_aw_server.sh`
|
||||||
|
- `<PROJECT_ROOT>/aw-server/apply_webui_ru_patch.sh`
|
||||||
|
- `<PROJECT_ROOT>/windows/deploy-single-user.ps1`
|
||||||
|
- `<PROJECT_ROOT>/windows/deploy-domain-users.ps1`
|
||||||
|
- `<PROJECT_ROOT>/windows/deploy-ensemble.ps1`
|
||||||
|
- `<PROJECT_ROOT>/windows/hardening-recovery.ps1`
|
||||||
|
- `<PROJECT_ROOT>/windows/validate-deployment.ps1`
|
||||||
|
- `<PROJECT_ROOT>/windows/browser-domains-native-collector.ps1`
|
||||||
|
- `<PROJECT_ROOT>/windows/dlp-endpoint-signals-collector.ps1`
|
||||||
|
- `<PROJECT_ROOT>/ansible/deploy_aw_server.yml`
|
||||||
|
- `<PROJECT_ROOT>/ansible/provision_proxmox_ct_and_deploy_aw.yml`
|
||||||
|
- `<PROJECT_ROOT>/ansible/provision_proxmox_ct_matrix_and_deploy_aw.yml`
|
||||||
|
- `<PROJECT_ROOT>/ansible/deploy_aw_windows.yml`
|
||||||
|
|
||||||
- Rust backend/runtime;
|
---
|
||||||
- Rust Agent;
|
|
||||||
- Rust server-rendered HTML + HTMX-compatible JSON API;
|
|
||||||
- Grafana/Prometheus-витрин;
|
|
||||||
- модулей Workforce, Security и Forensics;
|
|
||||||
- evidence/reporting tooling;
|
|
||||||
- ActivityWatch-compatible источников данных, где это применимо.
|
|
||||||
|
|
||||||
Проект не позиционируется как сертифицированная DLP/SIEM/EDR/XDR/СЗИ. DLP, evidence, UEBA и расследовательские функции используются как внутренние аналитические и операционные модули.
|
## 1) Подготовка
|
||||||
|
|
||||||
1. Актуальная архитектура
|
### 1.1 Требования
|
||||||
|
|
||||||
1.1 Основной runtime
|
- Proxmox VE 8/9, доступ root (или sudo с правами на `pct`).
|
||||||
|
- Шаблон Debian 12 LXC на хосте Proxmox.
|
||||||
|
- Windows хост(ы) с PowerShell 5.1+ и правами локального администратора.
|
||||||
|
- Сетевой доступ Windows-клиентов до ActivityWatch Server (`5600/tcp`).
|
||||||
|
|
||||||
Основной production runtime AWatch-rus — Rust-first:
|
### 1.2 Подготовка единого файла секретов
|
||||||
|
|
||||||
- backend/runtime — Rust;
|
Скопируйте шаблон:
|
||||||
- agent — Rust;
|
|
||||||
- portal — Rust server-rendered HTML + HTMX-compatible JSON API;
|
|
||||||
- operational status/check — Rust;
|
|
||||||
- DLP server-side helpers — Rust;
|
|
||||||
- worktime helpers/exporters/prewarm — Rust;
|
|
||||||
- SLO/health/readiness helpers — Rust;
|
|
||||||
- evidence/install-kit tooling — Rust;
|
|
||||||
- auto-heal helpers — Rust, только в безопасном режиме.
|
|
||||||
|
|
||||||
1.2 Что не является основным runtime
|
```bash
|
||||||
|
cp <PROJECT_ROOT>/private-config/deploy.env.example \
|
||||||
|
<PROJECT_ROOT>/private-config/deploy.env
|
||||||
|
```
|
||||||
|
|
||||||
Не считать основным production deployment flow:
|
Заполните в файле `<PROJECT_ROOT>/private-config/deploy.env`:
|
||||||
|
|
||||||
- PowerShell deployment;
|
- все `CT_*` параметры контейнера;
|
||||||
- старые Windows ".ps1" rollout scripts;
|
- все `AW_SERVER_*` параметры сервера;
|
||||||
- ручное исправление production-файлов без release/backup;
|
- `CT_PASSWORD` (реальный пароль).
|
||||||
- прямое редактирование Web UI в "/opt" без воспроизводимого патча;
|
|
||||||
- Python/shell как основной operational runtime, если для компонента уже есть Rust-аналог.
|
|
||||||
|
|
||||||
Python, shell, Ansible или PowerShell могут оставаться в проекте только как:
|
Важно: этот файл подхватывается автоматически скриптами Proxmox.
|
||||||
|
|
||||||
- legacy compatibility;
|
---
|
||||||
- вспомогательные dev/test tools;
|
|
||||||
- миграционные сценарии;
|
|
||||||
- будущие provider-слои;
|
|
||||||
- Telegram/OCR/AI/ETL/MCP helpers, если они явно не входят в Rust-first core.
|
|
||||||
|
|
||||||
2. Типовые роли узлов
|
## 2) Развёртывание сервера в Proxmox
|
||||||
|
|
||||||
2.1 Server node
|
### 2.0 Ansible full-stack (создание CT + установка AW)
|
||||||
|
|
||||||
Серверный узел содержит:
|
Подготовьте:
|
||||||
|
|
||||||
- AWatch-rus backend/runtime;
|
- `<PROJECT_ROOT>/ansible/inventory.ini`
|
||||||
- portal;
|
- `<PROJECT_ROOT>/ansible/group_vars/all.yml`
|
||||||
- API;
|
- `<PROJECT_ROOT>/ansible/group_vars/proxmox.yml`
|
||||||
- exporters;
|
|
||||||
- health/readiness/status tooling;
|
|
||||||
- systemd units/timers;
|
|
||||||
- Grafana/Prometheus integration;
|
|
||||||
- evidence/reporting storage.
|
|
||||||
|
|
||||||
2.2 Agent node
|
Запуск:
|
||||||
|
|
||||||
Agent node содержит:
|
```bash
|
||||||
|
cd <PROJECT_ROOT>/ansible
|
||||||
|
ansible-playbook -i inventory.ini provision_proxmox_ct_and_deploy_aw.yml
|
||||||
|
```
|
||||||
|
|
||||||
- Rust Agent;
|
Этот сценарий полностью закрывает:
|
||||||
- локальную конфигурацию агента;
|
|
||||||
- systemd service или другой штатный supervisor;
|
|
||||||
- локальные логи;
|
|
||||||
- буфер/очередь, если предусмотрено конфигурацией;
|
|
||||||
- сетевой доступ до backend/API.
|
|
||||||
|
|
||||||
2.3 Monitoring node
|
- создание CT в Proxmox;
|
||||||
|
- bootstrap пакетов в CT;
|
||||||
|
- установку ActivityWatch Server;
|
||||||
|
- применение RU Web UI patch;
|
||||||
|
- проверку API.
|
||||||
|
|
||||||
Monitoring node может содержать:
|
Для массового режима (несколько CT):
|
||||||
|
|
||||||
- Prometheus;
|
```bash
|
||||||
- Grafana;
|
cd <PROJECT_ROOT>/ansible
|
||||||
- dashboards;
|
ansible-playbook -i inventory.ini provision_proxmox_ct_matrix_and_deploy_aw.yml
|
||||||
- alerting rules;
|
```
|
||||||
- external logs/metrics storage.
|
|
||||||
|
|
||||||
Monitoring node может совпадать с server node в пилотной установке.
|
### 2.1 Создать LXC контейнер
|
||||||
|
|
||||||
3. Требования
|
На узле Proxmox:
|
||||||
|
|
||||||
3.1 Базовые требования
|
```bash
|
||||||
|
cd <PROJECT_ROOT>
|
||||||
|
<PROJECT_ROOT>/proxmox/create-ct.sh
|
||||||
|
```
|
||||||
|
|
||||||
- Linux-сервер или LXC/VM.
|
По умолчанию читается:
|
||||||
- Доступ администратора к systemd.
|
|
||||||
- Rust toolchain для сборочного узла.
|
|
||||||
- Сетевой доступ между agent node и server node.
|
|
||||||
- Закрытый доступ к API и порталу через VPN, reverse proxy или внутренний контур.
|
|
||||||
- Backup/snapshot перед любым production patch.
|
|
||||||
|
|
||||||
3.2 Рекомендуемый production-подход
|
- `<PROJECT_ROOT>/private-config/deploy.env`
|
||||||
|
|
||||||
Для production не собирать проект прямо на боевом сервере, если есть отдельный build host.
|
При необходимости можно передать другой путь:
|
||||||
|
|
||||||
Рекомендуемый поток:
|
```bash
|
||||||
|
<PROJECT_ROOT>/proxmox/create-ct.sh /absolute/path/to/deploy.env
|
||||||
|
```
|
||||||
|
|
||||||
git checkout нужного commit/tag
|
### 2.2 Загрузить bootstrap-артефакты и env внутрь CT
|
||||||
→ cargo fmt / clippy / test / build
|
|
||||||
→ упаковка release artifacts
|
|
||||||
→ перенос artifacts на сервер
|
|
||||||
→ backup/snapshot
|
|
||||||
→ остановка/перезапуск нужных services
|
|
||||||
→ smoke tests
|
|
||||||
→ фиксация версии
|
|
||||||
|
|
||||||
4. Основные пути
|
```bash
|
||||||
|
cd <PROJECT_ROOT>
|
||||||
|
<PROJECT_ROOT>/proxmox/push-aw-artifacts.sh
|
||||||
|
```
|
||||||
|
|
||||||
Рекомендуемая структура на сервере:
|
Скрипт загружает в CT:
|
||||||
|
|
||||||
/opt/awatch-rus/
|
- `<CT_BOOTSTRAP_DIR>/install_aw_server.sh`
|
||||||
bin/
|
- `<CT_BOOTSTRAP_DIR>/apply_webui_ru_patch.sh`
|
||||||
etc/
|
- `<CT_BOOTSTRAP_DIR>/activitywatch-server.service`
|
||||||
portal/
|
- `<CT_BOOTSTRAP_DIR>/aw-ru-patch.js`
|
||||||
releases/
|
- `<CT_BOOTSTRAP_DIR>/aw-sw-cleanup.js`
|
||||||
evidence/
|
- `/etc/activitywatch/aw-server.env` (из `AW_SERVER_*`)
|
||||||
reports/
|
|
||||||
logs/
|
|
||||||
|
|
||||||
/etc/awatch-rus/
|
### 2.3 Установить ActivityWatch Server внутри CT
|
||||||
awatch-rus.env
|
|
||||||
agent.env
|
|
||||||
portal.env
|
|
||||||
|
|
||||||
/var/lib/awatch-rus/
|
```bash
|
||||||
data/
|
pct enter <CT_ID>
|
||||||
state/
|
bash <CT_BOOTSTRAP_DIR>/install_aw_server.sh
|
||||||
cache/
|
```
|
||||||
evidence/
|
|
||||||
reports/
|
|
||||||
|
|
||||||
/var/log/awatch-rus/
|
### 2.4 Применить RU patch Web UI
|
||||||
backend.log
|
|
||||||
agent.log
|
|
||||||
portal.log
|
|
||||||
exporter.log
|
|
||||||
|
|
||||||
Рекомендуемые runtime binaries:
|
```bash
|
||||||
|
bash <CT_BOOTSTRAP_DIR>/apply_webui_ru_patch.sh
|
||||||
|
systemctl restart activitywatch-server.service
|
||||||
|
```
|
||||||
|
|
||||||
/usr/local/bin/detmir-status
|
После применения патча доступны:
|
||||||
/usr/local/bin/detmir-check
|
|
||||||
/usr/local/bin/detmir-dlp
|
|
||||||
/usr/local/bin/detmir-auto
|
|
||||||
/usr/local/bin/detmir-heal-safe
|
|
||||||
/usr/local/bin/aw-rus-healthd
|
|
||||||
|
|
||||||
Имена конкретных бинарников должны соответствовать текущему "Cargo.toml" и фактически собранным artifacts. Если имя binary изменено, документация и systemd unit должны обновляться в том же commit.
|
- верхнее меню `DLP` в Web UI;
|
||||||
|
- DLP-страница bucket `aw-dlp-endpoint-signals_<HOST>`;
|
||||||
|
- встроенный центр `DLP review и правила`;
|
||||||
|
- служебные buckets `aw-dlp-review_<HOST>` и `aw-dlp-rules_<HOST>`.
|
||||||
|
|
||||||
5. Конфигурация
|
### 2.5 Проверка сервера
|
||||||
|
|
||||||
5.1 Общие правила
|
В CT:
|
||||||
|
|
||||||
- Не хранить production secrets в публичном репозитории.
|
```bash
|
||||||
- Не коммитить реальные hostnames, IP, логины, ФИО, токены, пароли.
|
systemctl status activitywatch-server.service --no-pager
|
||||||
- Для production использовать "/etc/awatch-rus/*.env".
|
curl -fsS http://127.0.0.1:5600/api/0/info
|
||||||
- Для demo использовать только обезличенные fixtures.
|
ss -ltnp | grep 5600
|
||||||
- Все параметры, влияющие на runtime, должны быть описаны в документации.
|
grep -n 'aw-ru-patch\|aw-sw-cleanup' /opt/activitywatch/webui-ru/index.html
|
||||||
|
```
|
||||||
|
|
||||||
5.2 Пример server env
|
Ожидается:
|
||||||
|
|
||||||
AWATCH_ENV=production
|
- сервис `active (running)`;
|
||||||
AWATCH_BIND_ADDR=127.0.0.1
|
- API отвечает JSON;
|
||||||
AWATCH_PORT=5600
|
- порт 5600 слушается;
|
||||||
AWATCH_DATA_DIR=/var/lib/awatch-rus/data
|
- в `index.html` присутствуют оба скрипта.
|
||||||
AWATCH_LOG_DIR=/var/log/awatch-rus
|
|
||||||
AWATCH_EVIDENCE_DIR=/var/lib/awatch-rus/evidence
|
|
||||||
AWATCH_REPORTS_DIR=/var/lib/awatch-rus/reports
|
|
||||||
RUST_LOG=info
|
|
||||||
|
|
||||||
5.3 Пример agent env
|
Дополнительно после первого входа в Web UI:
|
||||||
|
|
||||||
AWATCH_AGENT_ENV=production
|
- `#/home` должен показывать один корректный пункт `DLP`;
|
||||||
AWATCH_SERVER_URL=https://awatch.example.local
|
- `#/buckets/aw-dlp-endpoint-signals_<HOST>` должен открываться без ошибок;
|
||||||
AWATCH_AGENT_HOST_ID=HOSTNAME_OR_NODE_ID
|
- сохранение review/rule должно создавать buckets `aw-dlp-review_<HOST>` и `aw-dlp-rules_<HOST>`.
|
||||||
AWATCH_AGENT_DATA_DIR=/var/lib/awatch-rus/agent
|
|
||||||
AWATCH_AGENT_LOG_DIR=/var/log/awatch-rus
|
|
||||||
RUST_LOG=info
|
|
||||||
|
|
||||||
6. Сборка
|
---
|
||||||
|
|
||||||
6.1 Проверки перед сборкой
|
## 3) Развёртывание Windows-клиентов (другой AD-домен)
|
||||||
|
|
||||||
На build host:
|
### 3.1 Подготовка на Windows-хосте
|
||||||
|
|
||||||
cd /path/to/AWatch-rus
|
Скопируйте каталог:
|
||||||
|
|
||||||
git status --short
|
- `<PROJECT_ROOT>/windows`
|
||||||
cargo fmt --all -- --check
|
|
||||||
cargo clippy --workspace --all-targets -- -D warnings
|
|
||||||
cargo test --workspace
|
|
||||||
|
|
||||||
Если в репозитории есть проектные quality gates, выполнить их обязательно:
|
например в:
|
||||||
|
|
||||||
bash scripts/check_private_config_guard.sh
|
- `C:\Program Files\AWatch-rus\windows`
|
||||||
bash scripts/quality-gate.sh
|
|
||||||
|
|
||||||
Если какой-то скрипт отсутствует в текущей ветке, не создавать фиктивную замену. Зафиксировать это в release notes.
|
Откройте **elevated PowerShell**:
|
||||||
|
|
||||||
6.2 Release build
|
```powershell
|
||||||
|
Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
|
||||||
|
```
|
||||||
|
|
||||||
cargo build --release --workspace
|
### 3.2 Массовое доменное развёртывание (рекомендуется)
|
||||||
|
|
||||||
Проверить artifacts:
|
Если текущий production ещё работает в старых каталогах
|
||||||
|
`C:\Program Files\ActivityWatch-Phase2` и `C:\ProgramData\ActivityWatch-Phase2`,
|
||||||
|
сначала выполните безопасную миграцию:
|
||||||
|
|
||||||
find target/release -maxdepth 1 -type f -executable -print
|
```powershell
|
||||||
|
C:\Program Files\AWatch-rus\windows\migrate-awatch-rus-paths.ps1 -WhatIf
|
||||||
|
C:\Program Files\AWatch-rus\windows\migrate-awatch-rus-paths.ps1
|
||||||
|
```
|
||||||
|
|
||||||
6.3 Упаковка artifacts
|
Скрипт остановит `ActivityWatch Recovery`/`ActivityWatch Launch *`, создаст backup в
|
||||||
|
`C:\ProgramData\AWatch-rus\migration-backups\...`, перенесёт файлы в единые пути,
|
||||||
|
пересоздаст `deployment-config.json`/scheduled tasks и запустит validation.
|
||||||
|
|
||||||
Рекомендуемый вариант:
|
Пример со списком пользователей:
|
||||||
|
|
||||||
mkdir -p dist/awatch-rus-release/bin
|
```powershell
|
||||||
cp target/release/detmir-status dist/awatch-rus-release/bin/ 2>/dev/null || true
|
C:\Program Files\AWatch-rus\windows\deploy-domain-users.ps1 `
|
||||||
cp target/release/detmir-check dist/awatch-rus-release/bin/ 2>/dev/null || true
|
-ServerHost aw.example.local `
|
||||||
cp target/release/detmir-dlp dist/awatch-rus-release/bin/ 2>/dev/null || true
|
-ServerPort 5600 `
|
||||||
cp target/release/detmir-auto dist/awatch-rus-release/bin/ 2>/dev/null || true
|
-Domain CONTOSO `
|
||||||
cp target/release/detmir-heal-safe dist/awatch-rus-release/bin/ 2>/dev/null || true
|
-UserListPath C:\Deploy\aw-users.txt `
|
||||||
cp target/release/aw-rus-healthd dist/awatch-rus-release/bin/ 2>/dev/null || true
|
-CustomRulesPath C:\Program Files\AWatch-rus\windows\web-category-rules.example.json
|
||||||
|
```
|
||||||
|
|
||||||
tar -C dist -czf awatch-rus-release.tar.gz awatch-rus-release
|
Поддерживаемые варианты:
|
||||||
sha256sum awatch-rus-release.tar.gz > awatch-rus-release.tar.gz.sha256
|
|
||||||
|
|
||||||
Не использовать "cp ... || true" в CI без последующей проверки обязательных binaries. Для ручного production release список обязательных binaries должен быть проверен явно.
|
- `-Users user01,user02`
|
||||||
|
- `-Users 'CONTOSO\user01','CONTOSO\user02'`
|
||||||
|
- `-UserListPath <txt|csv>`
|
||||||
|
|
||||||
7. Первичное развёртывание server node
|
### 3.2.1 Ensemble orchestration (рекомендуется для production)
|
||||||
|
|
||||||
7.1 Создание каталогов
|
```powershell
|
||||||
|
C:\Program Files\AWatch-rus\windows\deploy-ensemble.ps1 `
|
||||||
|
-ServerHost aw.example.local `
|
||||||
|
-ServerPort 5600 `
|
||||||
|
-Domain CONTOSO `
|
||||||
|
-Users user1,user2,user3,user4,user5 `
|
||||||
|
-ValidateAfterDeploy
|
||||||
|
```
|
||||||
|
|
||||||
sudo mkdir -p /opt/awatch-rus/bin
|
Отчёт сохраняется в:
|
||||||
sudo mkdir -p /opt/awatch-rus/releases
|
|
||||||
sudo mkdir -p /etc/awatch-rus
|
|
||||||
sudo mkdir -p /var/lib/awatch-rus/data
|
|
||||||
sudo mkdir -p /var/lib/awatch-rus/state
|
|
||||||
sudo mkdir -p /var/lib/awatch-rus/evidence
|
|
||||||
sudo mkdir -p /var/lib/awatch-rus/reports
|
|
||||||
sudo mkdir -p /var/log/awatch-rus
|
|
||||||
|
|
||||||
7.2 Установка binaries
|
- `C:\ProgramData\AWatch-rus\ensemble-report-YYYYMMDD-HHMMSS.json`
|
||||||
|
|
||||||
sudo install -m 0755 dist/awatch-rus-release/bin/* /opt/awatch-rus/bin/
|
### 3.3 Single-user развёртывание
|
||||||
|
|
||||||
Создать symlink для удобства:
|
```powershell
|
||||||
|
C:\Program Files\AWatch-rus\windows\deploy-single-user.ps1 `
|
||||||
|
-ServerHost aw.example.local `
|
||||||
|
-ServerPort 5600 `
|
||||||
|
-TargetUser 'CONTOSO\user01' `
|
||||||
|
-CustomRulesPath C:\Program Files\AWatch-rus\windows\web-category-rules.example.json
|
||||||
|
```
|
||||||
|
|
||||||
sudo ln -sf /opt/awatch-rus/bin/detmir-status /usr/local/bin/detmir-status
|
### 3.4 Recovery / hardening
|
||||||
sudo ln -sf /opt/awatch-rus/bin/detmir-check /usr/local/bin/detmir-check
|
|
||||||
sudo ln -sf /opt/awatch-rus/bin/detmir-dlp /usr/local/bin/detmir-dlp
|
|
||||||
|
|
||||||
Если binary отсутствует, не создавать пустой symlink. Сначала проверить фактический состав release artifact.
|
```powershell
|
||||||
|
C:\Program Files\AWatch-rus\windows\hardening-recovery.ps1 `
|
||||||
|
-ConfigPath C:\ProgramData\AWatch-rus\deployment-config.json
|
||||||
|
```
|
||||||
|
|
||||||
7.3 Конфигурация
|
### 3.5 Валидация deployment-а (PowerShell report)
|
||||||
|
|
||||||
sudo install -m 0640 awatch-rus.env /etc/awatch-rus/awatch-rus.env
|
```powershell
|
||||||
|
$report = C:\Program Files\AWatch-rus\windows\validate-deployment.ps1 `
|
||||||
|
-ConfigPath C:\ProgramData\AWatch-rus\deployment-config.json
|
||||||
|
$report | ConvertTo-Json -Depth 12
|
||||||
|
```
|
||||||
|
|
||||||
Проверить права:
|
---
|
||||||
|
|
||||||
sudo chown root:root /etc/awatch-rus/awatch-rus.env
|
## 4) Что должно появиться на Windows после установки
|
||||||
sudo chmod 0640 /etc/awatch-rus/awatch-rus.env
|
|
||||||
|
|
||||||
8. systemd units
|
- `C:\Program Files\AWatch-rus\bin`
|
||||||
|
- `C:\ProgramData\AWatch-rus\deployment-config.json`
|
||||||
|
- `C:\ProgramData\AWatch-rus\launch-watchers.ps1`
|
||||||
|
- `C:\ProgramData\AWatch-rus\recovery-loop.ps1`
|
||||||
|
- `C:\ProgramData\AWatch-rus\browser-domains-native-collector.ps1`
|
||||||
|
- `C:\ProgramData\AWatch-rus\web-category-rules.json`
|
||||||
|
- `C:\ProgramData\AWatch-rus\logs\`
|
||||||
|
|
||||||
8.1 Пример backend service
|
Задачи планировщика:
|
||||||
|
|
||||||
[Unit]
|
- `ActivityWatch Launch [<user>]` (per-user, при логоне)
|
||||||
Description=AWatch-rus backend/runtime
|
- `ActivityWatch Recovery` (system-level recovery)
|
||||||
After=network-online.target
|
|
||||||
Wants=network-online.target
|
|
||||||
|
|
||||||
[Service]
|
---
|
||||||
Type=simple
|
|
||||||
EnvironmentFile=/etc/awatch-rus/awatch-rus.env
|
|
||||||
ExecStart=/opt/awatch-rus/bin/awatch-rus-backend
|
|
||||||
Restart=on-failure
|
|
||||||
RestartSec=5
|
|
||||||
WorkingDirectory=/opt/awatch-rus
|
|
||||||
NoNewPrivileges=true
|
|
||||||
PrivateTmp=true
|
|
||||||
ProtectSystem=full
|
|
||||||
ProtectHome=true
|
|
||||||
ReadWritePaths=/var/lib/awatch-rus /var/log/awatch-rus
|
|
||||||
|
|
||||||
[Install]
|
## 5) Полная валидация потока данных
|
||||||
WantedBy=multi-user.target
|
|
||||||
|
|
||||||
Если фактическое имя backend binary отличается, заменить "awatch-rus-backend" на актуальное имя из release artifact.
|
### 5.1 На Windows-хосте
|
||||||
|
|
||||||
8.2 Пример health service
|
Проверить процессы:
|
||||||
|
|
||||||
[Unit]
|
```powershell
|
||||||
Description=AWatch-rus health daemon
|
Get-Process aw-watcher-afk,aw-watcher-window -ErrorAction SilentlyContinue
|
||||||
After=network-online.target
|
Get-CimInstance Win32_Process | ? { $_.CommandLine -like '*browser-domains-native-collector.ps1*' } | select ProcessId,SessionId,CommandLine
|
||||||
Wants=network-online.target
|
```
|
||||||
|
|
||||||
[Service]
|
Проверить задачи:
|
||||||
Type=simple
|
|
||||||
EnvironmentFile=/etc/awatch-rus/awatch-rus.env
|
|
||||||
ExecStart=/opt/awatch-rus/bin/aw-rus-healthd
|
|
||||||
Restart=on-failure
|
|
||||||
RestartSec=5
|
|
||||||
WorkingDirectory=/opt/awatch-rus
|
|
||||||
NoNewPrivileges=true
|
|
||||||
PrivateTmp=true
|
|
||||||
ProtectSystem=full
|
|
||||||
ProtectHome=true
|
|
||||||
ReadWritePaths=/var/lib/awatch-rus /var/log/awatch-rus
|
|
||||||
|
|
||||||
[Install]
|
```powershell
|
||||||
WantedBy=multi-user.target
|
Get-ScheduledTask | ? { $_.TaskName -like 'ActivityWatch*' } | select TaskName,State
|
||||||
|
```
|
||||||
|
|
||||||
8.3 Применение unit files
|
### 5.2 На сервере ActivityWatch API
|
||||||
|
|
||||||
sudo systemctl daemon-reload
|
```bash
|
||||||
sudo systemctl enable --now awatch-rus-backend.service
|
curl -sS http://127.0.0.1:5600/api/0/buckets | jq 'keys'
|
||||||
sudo systemctl enable --now aw-rus-healthd.service
|
```
|
||||||
|
|
||||||
Если конкретный unit не используется в текущей инсталляции, не создавать фиктивный сервис. Документировать фактический набор services.
|
Ожидаемые bucket'ы:
|
||||||
|
|
||||||
9. Развёртывание Rust Agent
|
- `aw-watcher-afk_<HOST>`
|
||||||
|
- `aw-watcher-window_<HOST>`
|
||||||
|
- `aw-watcher-web-<browser>_<HOST>`
|
||||||
|
- `aw-detmir-web-category_<HOST>` (категоризованный поток)
|
||||||
|
- `aw-dlp-endpoint-signals_<HOST>` (endpoint сигналы)
|
||||||
|
- `aw-dlp-review_<HOST>` (ручная классификация через UI)
|
||||||
|
- `aw-dlp-rules_<HOST>` (suppress/rule записи через UI)
|
||||||
|
|
||||||
9.1 Установка agent binary
|
Проверка событий браузера:
|
||||||
|
|
||||||
sudo mkdir -p /opt/awatch-rus/bin
|
```bash
|
||||||
sudo mkdir -p /etc/awatch-rus
|
curl -sS "http://127.0.0.1:5600/api/0/buckets/aw-watcher-web-edge_<HOST>/events?limit=5" | jq
|
||||||
sudo mkdir -p /var/lib/awatch-rus/agent
|
```
|
||||||
sudo mkdir -p /var/log/awatch-rus
|
|
||||||
|
|
||||||
sudo install -m 0755 awatch-rus-agent /opt/awatch-rus/bin/awatch-rus-agent
|
Проверка категоризации:
|
||||||
sudo install -m 0640 agent.env /etc/awatch-rus/agent.env
|
|
||||||
|
|
||||||
9.2 Пример agent service
|
```bash
|
||||||
|
curl -sS "http://127.0.0.1:5600/api/0/buckets/aw-detmir-web-category_<HOST>/events?limit=5" | jq
|
||||||
|
```
|
||||||
|
|
||||||
[Unit]
|
Проверка DLP review/rules:
|
||||||
Description=AWatch-rus Rust Agent
|
|
||||||
After=network-online.target
|
|
||||||
Wants=network-online.target
|
|
||||||
|
|
||||||
[Service]
|
```bash
|
||||||
Type=simple
|
curl -sS "http://127.0.0.1:5600/api/0/buckets/aw-dlp-review_<HOST>/events?limit=20" | jq
|
||||||
EnvironmentFile=/etc/awatch-rus/agent.env
|
curl -sS "http://127.0.0.1:5600/api/0/buckets/aw-dlp-rules_<HOST>/events?limit=20" | jq
|
||||||
ExecStart=/opt/awatch-rus/bin/awatch-rus-agent
|
```
|
||||||
Restart=on-failure
|
|
||||||
RestartSec=5
|
|
||||||
WorkingDirectory=/opt/awatch-rus
|
|
||||||
NoNewPrivileges=true
|
|
||||||
PrivateTmp=true
|
|
||||||
ProtectSystem=full
|
|
||||||
ProtectHome=true
|
|
||||||
ReadWritePaths=/var/lib/awatch-rus /var/log/awatch-rus
|
|
||||||
|
|
||||||
[Install]
|
Ожидаемые поля review:
|
||||||
WantedBy=multi-user.target
|
|
||||||
|
|
||||||
9.3 Запуск agent
|
- `reviewId`
|
||||||
|
- `signalType`
|
||||||
|
- `verdict`
|
||||||
|
- `category`
|
||||||
|
- `comment`
|
||||||
|
- `archived`
|
||||||
|
|
||||||
sudo systemctl daemon-reload
|
Ожидаемые поля rules:
|
||||||
sudo systemctl enable --now awatch-rus-agent.service
|
|
||||||
sudo systemctl status awatch-rus-agent.service --no-pager
|
|
||||||
|
|
||||||
10. Развёртывание портала
|
- `ruleId`
|
||||||
|
- `signalType`
|
||||||
|
- `match`
|
||||||
|
- `category`
|
||||||
|
- `comment`
|
||||||
|
- `enabled`
|
||||||
|
|
||||||
Портальный слой AWatch-rus зафиксирован как Rust server-rendered HTML + HTMX-compatible JSON API.
|
---
|
||||||
|
|
||||||
10.1 Общий порядок
|
## 6) Сопровождение (обязательно)
|
||||||
|
|
||||||
build portal/backend binary
|
### 6.1 Backup перед любыми изменениями
|
||||||
→ install binary
|
|
||||||
→ install templates/static assets, если они выделены отдельно
|
|
||||||
→ update portal env
|
|
||||||
→ restart portal service
|
|
||||||
→ smoke check HTTP/API routes
|
|
||||||
|
|
||||||
10.2 Проверка портала
|
На Proxmox:
|
||||||
|
|
||||||
curl -fsS http://127.0.0.1:5600/healthz
|
|
||||||
curl -fsS http://127.0.0.1:5600/readyz
|
|
||||||
curl -fsS http://127.0.0.1:5600/version
|
|
||||||
|
|
||||||
Если конкретные endpoints в текущей версии отличаются, использовать фактически реализованные health/readiness/version endpoints и обновить этот документ в том же commit.
|
|
||||||
|
|
||||||
11. Патчи в развернутой среде
|
|
||||||
|
|
||||||
11.1 Правило
|
|
||||||
|
|
||||||
Любой production patch применяется только через контролируемый цикл:
|
|
||||||
|
|
||||||
определить commit/tag
|
|
||||||
→ собрать release artifact
|
|
||||||
→ выполнить локальные проверки
|
|
||||||
→ сделать backup/snapshot
|
|
||||||
→ установить новые binaries/configs
|
|
||||||
→ restart/reload services
|
|
||||||
→ smoke tests
|
|
||||||
→ зафиксировать результат
|
|
||||||
→ сохранить rollback path
|
|
||||||
|
|
||||||
11.2 Перед патчем
|
|
||||||
|
|
||||||
git rev-parse HEAD
|
|
||||||
git status --short
|
|
||||||
|
|
||||||
Сохранить:
|
|
||||||
|
|
||||||
дата/время
|
|
||||||
commit/tag
|
|
||||||
кто применяет
|
|
||||||
какие services затрагиваются
|
|
||||||
какой rollback path
|
|
||||||
|
|
||||||
11.3 Backup перед патчем
|
|
||||||
|
|
||||||
Если используется Proxmox/LXC:
|
|
||||||
|
|
||||||
|
```bash
|
||||||
vzdump <CT_ID> --mode snapshot --compress zstd --storage <BACKUP_STORAGE>
|
vzdump <CT_ID> --mode snapshot --compress zstd --storage <BACKUP_STORAGE>
|
||||||
|
```
|
||||||
|
|
||||||
Внутри сервера:
|
Конфиги внутри CT:
|
||||||
|
|
||||||
sudo tar -C / -czf /root/awatch-rus-backup-$(date +%Y%m%d-%H%M%S).tgz \
|
```bash
|
||||||
etc/awatch-rus \
|
pct exec <CT_ID> -- tar -C / -czf <PRIVATE_BACKUP_DIR>/activitywatch-config-backup.tgz \
|
||||||
opt/awatch-rus \
|
etc/activitywatch \
|
||||||
var/lib/awatch-rus \
|
etc/systemd/system/activitywatch-server.service \
|
||||||
var/log/awatch-rus
|
opt/activitywatch/webui-ru \
|
||||||
|
opt/activitywatch/releases
|
||||||
|
```
|
||||||
|
|
||||||
Если данные большие, backup "/var/lib/awatch-rus" выполнять отдельной процедурой согласно backup policy.
|
### 6.2 Обновление сервера
|
||||||
|
|
||||||
11.4 Установка нового binary
|
1. Обновить `AW_SERVER_VERSION` и `AW_SERVER_DOWNLOAD_URL` в
|
||||||
|
`<PROJECT_ROOT>/private-config/deploy.env`
|
||||||
|
2. Выполнить:
|
||||||
|
|
||||||
Сохранить предыдущую версию:
|
```bash
|
||||||
|
<PROJECT_ROOT>/proxmox/push-aw-artifacts.sh
|
||||||
|
pct enter <CT_ID>
|
||||||
|
bash <CT_BOOTSTRAP_DIR>/install_aw_server.sh
|
||||||
|
bash <CT_BOOTSTRAP_DIR>/apply_webui_ru_patch.sh
|
||||||
|
systemctl restart activitywatch-server.service
|
||||||
|
```
|
||||||
|
|
||||||
sudo mkdir -p /opt/awatch-rus/releases/previous
|
3. Повторить валидацию API/UI.
|
||||||
sudo cp -a /opt/awatch-rus/bin /opt/awatch-rus/releases/previous/bin-$(date +%Y%m%d-%H%M%S)
|
|
||||||
|
|
||||||
Установить новый artifact:
|
### 6.3 Rollback
|
||||||
|
|
||||||
sudo install -m 0755 dist/awatch-rus-release/bin/* /opt/awatch-rus/bin/
|
RU patch rollback:
|
||||||
|
|
||||||
11.5 Restart services
|
```bash
|
||||||
|
cp /opt/activitywatch/webui-ru/index.html.bak.<timestamp> /opt/activitywatch/webui-ru/index.html
|
||||||
|
systemctl restart activitywatch-server.service
|
||||||
|
```
|
||||||
|
|
||||||
sudo systemctl daemon-reload
|
Полный rollback:
|
||||||
sudo systemctl restart awatch-rus-backend.service
|
|
||||||
sudo systemctl restart aw-rus-healthd.service
|
|
||||||
|
|
||||||
Если патч касается только agent:
|
- восстановить CT из snapshot/backup;
|
||||||
|
- проверить API и Web UI;
|
||||||
|
- проверить доступность для Windows-клиентов.
|
||||||
|
|
||||||
sudo systemctl restart awatch-rus-agent.service
|
---
|
||||||
|
|
||||||
Если сервис в текущем контуре называется иначе, использовать фактическое имя systemd unit.
|
## 7) Безопасность
|
||||||
|
|
||||||
12. Smoke-тесты после патча
|
- Не хранить реальные приватные параметры вне `<PROJECT_ROOT>/private-config/deploy.env`.
|
||||||
|
- Не открывать `5600/tcp` в интернет напрямую.
|
||||||
|
- Публиковать через VPN или reverse proxy с ограничением доступа.
|
||||||
|
- Перед изменениями всегда делать backup.
|
||||||
|
|
||||||
12.1 Systemd
|
---
|
||||||
|
|
||||||
systemctl --failed --no-pager
|
## 8) Короткий чек-лист ввода в эксплуатацию
|
||||||
systemctl status awatch-rus-backend.service --no-pager
|
|
||||||
systemctl status aw-rus-healthd.service --no-pager
|
|
||||||
|
|
||||||
12.2 Rust operational checks
|
1. Заполнен `<PROJECT_ROOT>/private-config/deploy.env`.
|
||||||
|
2. Выполнен `<PROJECT_ROOT>/proxmox/create-ct.sh`.
|
||||||
detmir-status --json
|
3. Выполнен `<PROJECT_ROOT>/proxmox/push-aw-artifacts.sh`.
|
||||||
detmir-check --json
|
4. В CT выполнены `<CT_BOOTSTRAP_DIR>/install_aw_server.sh` и `<CT_BOOTSTRAP_DIR>/apply_webui_ru_patch.sh`.
|
||||||
detmir-dlp --json
|
5. Сервер API/порт/UI проверены.
|
||||||
|
6. На Windows выполнен `deploy-domain-users.ps1`.
|
||||||
Если отдельная команда не установлена в данном контуре, это не считается ошибкой только при наличии документированного исключения.
|
7. Проверены процессы, задачи и bucket'ы.
|
||||||
|
8. Зафиксированы параметры и дата ввода.
|
||||||
12.3 HTTP/API
|
|
||||||
|
|
||||||
curl -fsS http://127.0.0.1:5600/healthz
|
|
||||||
curl -fsS http://127.0.0.1:5600/readyz
|
|
||||||
curl -fsS http://127.0.0.1:5600/version
|
|
||||||
|
|
||||||
12.4 Portal smoke
|
|
||||||
|
|
||||||
Проверить в браузере:
|
|
||||||
|
|
||||||
/portal
|
|
||||||
/portal/reports
|
|
||||||
/portal/architecture
|
|
||||||
|
|
||||||
Для Pilot v1 проверить роли:
|
|
||||||
|
|
||||||
executive
|
|
||||||
manager
|
|
||||||
security
|
|
||||||
forensics
|
|
||||||
admin
|
|
||||||
|
|
||||||
12.5 Data freshness
|
|
||||||
|
|
||||||
Проверить, что витрины и отчёты не пустые из-за сбоя сбора:
|
|
||||||
|
|
||||||
последние события поступают
|
|
||||||
worktime reports обновляются
|
|
||||||
DLP/security events отображаются, если включены
|
|
||||||
evidence/reporting не падает
|
|
||||||
Grafana dashboards открываются
|
|
||||||
|
|
||||||
13. Rollback
|
|
||||||
|
|
||||||
13.1 Быстрый rollback binary
|
|
||||||
|
|
||||||
Найти предыдущий backup:
|
|
||||||
|
|
||||||
ls -lah /opt/awatch-rus/releases/previous/
|
|
||||||
|
|
||||||
Восстановить:
|
|
||||||
|
|
||||||
sudo rsync -a --delete /opt/awatch-rus/releases/previous/bin-YYYYMMDD-HHMMSS/ /opt/awatch-rus/bin/
|
|
||||||
sudo systemctl restart awatch-rus-backend.service
|
|
||||||
sudo systemctl restart aw-rus-healthd.service
|
|
||||||
|
|
||||||
13.2 Rollback конфигурации
|
|
||||||
|
|
||||||
sudo cp /etc/awatch-rus/awatch-rus.env.bak /etc/awatch-rus/awatch-rus.env
|
|
||||||
sudo systemctl restart awatch-rus-backend.service
|
|
||||||
|
|
||||||
13.3 Rollback CT/VM
|
|
||||||
|
|
||||||
Если повреждение затрагивает runtime, данные или systemd-конфигурацию:
|
|
||||||
|
|
||||||
остановить сервисы
|
|
||||||
восстановить snapshot/backup
|
|
||||||
проверить health/readiness/version
|
|
||||||
проверить портал
|
|
||||||
проверить поступление данных
|
|
||||||
зафиксировать incident note
|
|
||||||
|
|
||||||
14. Monitoring
|
|
||||||
|
|
||||||
14.1 Что должно контролироваться
|
|
||||||
|
|
||||||
- service status;
|
|
||||||
- process uptime;
|
|
||||||
- API health/readiness;
|
|
||||||
- latency;
|
|
||||||
- error rate;
|
|
||||||
- freshness данных;
|
|
||||||
- заполненность диска;
|
|
||||||
- размер логов;
|
|
||||||
- успешность exporters;
|
|
||||||
- SLO status;
|
|
||||||
- agent coverage;
|
|
||||||
- отсутствие failed systemd units.
|
|
||||||
|
|
||||||
14.2 Grafana
|
|
||||||
|
|
||||||
В Grafana должны быть разделены витрины:
|
|
||||||
|
|
||||||
- executive dashboard;
|
|
||||||
- security dashboard;
|
|
||||||
- operations dashboard;
|
|
||||||
- RDP/user activity dashboard;
|
|
||||||
- data quality/freshness dashboard;
|
|
||||||
- DLP/evidence dashboard, если модуль включён.
|
|
||||||
|
|
||||||
14.3 Prometheus
|
|
||||||
|
|
||||||
Prometheus scrape должен быть доступен только из внутреннего контура мониторинга. Не открывать metrics endpoints наружу.
|
|
||||||
|
|
||||||
15. Security hardening
|
|
||||||
|
|
||||||
Обязательные правила:
|
|
||||||
|
|
||||||
- не публиковать API напрямую в интернет;
|
|
||||||
- использовать VPN/reverse proxy/access control;
|
|
||||||
- закрыть лишние порты;
|
|
||||||
- хранить secrets вне git;
|
|
||||||
- ограничить права systemd services;
|
|
||||||
- использовать отдельного service user, если это поддерживается текущей установкой;
|
|
||||||
- включить backup;
|
|
||||||
- проверять логи после каждого патча;
|
|
||||||
- не использовать demo fixtures как production data;
|
|
||||||
- не смешивать реальные ФИО/IP/hostname с публичными demo screenshots.
|
|
||||||
|
|
||||||
16. Проверка перед вводом в эксплуатацию
|
|
||||||
|
|
||||||
Минимальный checklist:
|
|
||||||
|
|
||||||
[ ] выбран commit/tag release
|
|
||||||
[ ] cargo fmt прошёл
|
|
||||||
[ ] cargo clippy прошёл
|
|
||||||
[ ] cargo test прошёл
|
|
||||||
[ ] cargo build --release прошёл
|
|
||||||
[ ] private config guard прошёл
|
|
||||||
[ ] backup/snapshot создан
|
|
||||||
[ ] binaries установлены
|
|
||||||
[ ] systemd services запущены
|
|
||||||
[ ] health/readiness/version отвечают
|
|
||||||
[ ] detmir-status/check/dlp работают
|
|
||||||
[ ] portal открывается
|
|
||||||
[ ] роли Pilot v1 проверены
|
|
||||||
[ ] Grafana dashboards открываются
|
|
||||||
[ ] данные поступают
|
|
||||||
[ ] rollback path известен
|
|
||||||
[ ] дата/commit/оператор зафиксированы
|
|
||||||
|
|
||||||
17. Что больше не использовать как основной путь
|
|
||||||
|
|
||||||
Не использовать как основной production flow:
|
|
||||||
|
|
||||||
windows/deploy-single-user.ps1
|
|
||||||
windows/deploy-domain-users.ps1
|
|
||||||
windows/deploy-ensemble.ps1
|
|
||||||
windows/validate-deployment.ps1
|
|
||||||
windows/hardening-recovery.ps1
|
|
||||||
windows/browser-domains-native-collector.ps1
|
|
||||||
windows/dlp-endpoint-signals-collector.ps1
|
|
||||||
|
|
||||||
Если эти файлы физически остаются в репозитории, они должны быть явно помечены как:
|
|
||||||
|
|
||||||
legacy
|
|
||||||
planned provider
|
|
||||||
migration-only
|
|
||||||
dev/test helper
|
|
||||||
|
|
||||||
Они не должны описываться в основном deployment manual как обязательный production-путь.
|
|
||||||
|
|
||||||
18. Короткий production runbook
|
|
||||||
|
|
||||||
18.1 Развернуть
|
|
||||||
|
|
||||||
cargo fmt --all -- --check
|
|
||||||
cargo clippy --workspace --all-targets -- -D warnings
|
|
||||||
cargo test --workspace
|
|
||||||
cargo build --release --workspace
|
|
||||||
|
|
||||||
sudo install -m 0755 target/release/<binary> /opt/awatch-rus/bin/<binary>
|
|
||||||
sudo systemctl daemon-reload
|
|
||||||
sudo systemctl restart <service>.service
|
|
||||||
|
|
||||||
18.2 Проверить
|
|
||||||
|
|
||||||
systemctl --failed --no-pager
|
|
||||||
detmir-status --json
|
|
||||||
detmir-check --json
|
|
||||||
curl -fsS http://127.0.0.1:5600/healthz
|
|
||||||
curl -fsS http://127.0.0.1:5600/readyz
|
|
||||||
curl -fsS http://127.0.0.1:5600/version
|
|
||||||
|
|
||||||
18.3 Откатить
|
|
||||||
|
|
||||||
sudo rsync -a --delete /opt/awatch-rus/releases/previous/bin-YYYYMMDD-HHMMSS/ /opt/awatch-rus/bin/
|
|
||||||
sudo systemctl restart <service>.service
|
|
||||||
|
|
||||||
19. Правило актуализации этого документа
|
|
||||||
|
|
||||||
Если меняется:
|
|
||||||
|
|
||||||
- имя binary;
|
|
||||||
- имя systemd unit;
|
|
||||||
- порт;
|
|
||||||
- endpoint;
|
|
||||||
- путь хранения данных;
|
|
||||||
- способ сборки;
|
|
||||||
- способ доставки artifacts;
|
|
||||||
- smoke-test;
|
|
||||||
- rollback procedure;
|
|
||||||
|
|
||||||
то этот файл должен обновляться в том же commit, что и изменение кода или deployment-конфигурации.
|
|
||||||
|
|||||||
@@ -0,0 +1,89 @@
|
|||||||
|
# Профессиональные сильные стороны проекта AWatch-rus
|
||||||
|
|
||||||
|
Ниже — структурированная, формальная сводка ключевых преимуществ AWatch-rus,
|
||||||
|
подходит для включения в пакет документов при регистрации в реестре ПО и для
|
||||||
|
технического аудита.
|
||||||
|
|
||||||
|
## 1. Архитектура и инженерный дизайн
|
||||||
|
|
||||||
|
- Rust-first, модульная архитектура: более 40 специализированных крейтов в
|
||||||
|
workspace, четкая декомпозиция ответственности и воспроизводимые сборки
|
||||||
|
(Cargo.lock).
|
||||||
|
- Разделение на логические уровни: endpoint → серверные хранилища → processing
|
||||||
|
→ operator → automation, что упрощает тестирование, валидацию и аудит.
|
||||||
|
- Workspace resolver v3 и требуемая версия rust (1.85) — современный базис для
|
||||||
|
поддержки и сопровождения.
|
||||||
|
- Четкие migration-runbooks для последовательного и безопасного перехода
|
||||||
|
legacy Python → Rust.
|
||||||
|
|
||||||
|
## 2. Операционная зрелость и автоматизация
|
||||||
|
|
||||||
|
- Полноценный Ansible-ensemble для end-to-end развёртывания (Proxmox, Linux,
|
||||||
|
централизованный Windows rollout по WinRM) с retry-политикой, smoke-тестами
|
||||||
|
и пост-deploy валидацией.
|
||||||
|
- Safe-run pattern: dry-run/apply planners, backup-before-delete, atomic
|
||||||
|
операции, conservative no-restart paths — минимизация риска при операциях.
|
||||||
|
- Набор диагностических модулей (detmir-*, aw-*, quality-gate, smoke checks)
|
||||||
|
обеспечивает быстрый feedback и ускоряет внедрение.
|
||||||
|
|
||||||
|
## 3. Безопасность и обращение с evidence
|
||||||
|
|
||||||
|
- Изолированный путь evidence: opaque IDs, bearer-upload, magic validation для
|
||||||
|
PNG/JPEG, ограничение размера, SHA-256 валидация, atomic write и детальные
|
||||||
|
audit trails.
|
||||||
|
- Security hardening guide: обязательное TLS, reverse-proxy, firewall rules,
|
||||||
|
минимальные привилегии для сервисных аккаунтов и контроль доступа к
|
||||||
|
evidence-материалам.
|
||||||
|
- Позиционирование: продукт не позиционируется как сертифицированная DLP/SIEM/
|
||||||
|
EDR — это уменьшает юридические риски при регистрации и определяет четкие
|
||||||
|
ожидания заказчика.
|
||||||
|
|
||||||
|
## 4. Production-readiness и критерии приёмки
|
||||||
|
|
||||||
|
- Полный комплект acceptance и pilot-checklists (30-дневный Pilot Success
|
||||||
|
Criteria) с метриками: доступность портала, coverage источников, freshness
|
||||||
|
данных, время загрузки сценариев Executive/Reporting, доля подтверждённых
|
||||||
|
incident candidates.
|
||||||
|
- Runbooks для восстановления, backup & restore сценарии и documented rollback
|
||||||
|
steps.
|
||||||
|
|
||||||
|
## 5. Наблюдаемость, качество данных и объяснимость
|
||||||
|
|
||||||
|
- Встроенные SLO/health monitoring, Prometheus + Grafana витрины и
|
||||||
|
детализированные smoke/contour тесты для проверки консистентности данных.
|
||||||
|
- UEBA v1 — прозрачная rule-based модель с reason-codes; KPI показывают
|
||||||
|
coverage и confidence, что повышает доверие заказчика.
|
||||||
|
|
||||||
|
## 6. Поддержка Windows/RDP и forensic pipelines
|
||||||
|
|
||||||
|
- Централизованный Windows rollout: deploy-скрипты, winrm retry logic, API
|
||||||
|
smoke-checks (aw-watcher-afk / aw-watcher-window).
|
||||||
|
- Серверная Hayabusa pipeline: auto-upload EVTX, severity scoring, automatic
|
||||||
|
case creation, bounded metadata storage и Telegram-уведомления с пороговой
|
||||||
|
фильтрацией.
|
||||||
|
|
||||||
|
## 7. Документированность и готовность к реестру
|
||||||
|
|
||||||
|
- Набор документов для регистрации: product passport, architecture, functional
|
||||||
|
scope, dependency statement, deployment model, readiness checklist.
|
||||||
|
- Demo fixtures и скриншоты анонимизированы (не содержат реальных IP/логинов/ФИО)
|
||||||
|
— соответствует требованиям для публичных материалов и подачи в реестр.
|
||||||
|
|
||||||
|
## 8. Честное позиционирование и управление рисками
|
||||||
|
|
||||||
|
- Ясно задокументированы границы продукта и planned/future элементы — это
|
||||||
|
облегчает аудит и формирует реалистичные expectations у заказчика.
|
||||||
|
- Наличие gap-analysis и roadmap-conformance audit ускоряет планирование
|
||||||
|
необходимых доработок перед масштабированием.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
Файл сохранён в ветке `docs/add-professional-highlights` по пути
|
||||||
|
`docs/PROFESSIONAL_HIGHLIGHTS_RU.md`.
|
||||||
|
|
||||||
|
Далее могу:
|
||||||
|
- открыть Pull Request в main с этим изменением (рекомендуется для review),
|
||||||
|
- смержить напрямую в main (если вы хотите немедленно обновить основную ветку),
|
||||||
|
- или создать краткую 1-страничную выдержку для подачи в реестр.
|
||||||
|
|
||||||
|
Как предпочитаете поступить дальше?
|
||||||
@@ -0,0 +1,174 @@
|
|||||||
|
# Резолюция по проекту AWatch-rus
|
||||||
|
|
||||||
|
## 📋 РЕЗОЛЮЦИЯ ПО ПРОЕКТУ AWatch-rus
|
||||||
|
|
||||||
|
### 1. ОБЗОР ПРОЕКТА
|
||||||
|
|
||||||
|
**Название:** AWatch-rus — платформа операционного контроля и технического аудита
|
||||||
|
|
||||||
|
**Статус:** Активный проект в стадии Pilot v1.0
|
||||||
|
|
||||||
|
**Язык реализации:** Rust (основной backend) + Python (вспомогательные компоненты)
|
||||||
|
|
||||||
|
**Лицензия:** Apache License 2.0
|
||||||
|
|
||||||
|
**Видимость:** Открытый репозиторий
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 2. НАЗНАЧЕНИЕ И ЦЕННОСТЬ
|
||||||
|
|
||||||
|
Проект предназначен для:
|
||||||
|
- Workforce Analytics — мониторинг активности сотрудников, загруженности, использования приложений
|
||||||
|
- Security Operations — DLP-сигналы, detection событий, управление инцидентами
|
||||||
|
- Forensics & Incident Response — сбор evidence, offline-анализ через Hayabusa, расследования
|
||||||
|
|
||||||
|
**Целевая аудитория:** руководители, операторы ИБ, администраторы ИТ-инфраструктуры, forensics-специалисты
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 3. КЛЮЧЕВЫЕ КОМПОНЕНТЫ АРХИТЕКТУРЫ
|
||||||
|
|
||||||
|
| Компонент | Технология | Назначение |
|
||||||
|
|-----------|------------|-----------|
|
||||||
|
| Rust Backend | Rust runtime | Основной сервер, SLO, DLP-обработка, evidence, auto-heal |
|
||||||
|
| Windows Collector | PowerShell/Rust | Сбор данных: AFK, window-tracking, RDP-сессии, DLP-события |
|
||||||
|
| Grafana/Prometheus | Dashboards | Витрины для админов, операторов, руководителей |
|
||||||
|
| ActivityWatch | Modified base | Основа для сбора telemetry и worktime |
|
||||||
|
| Portal UI | Rust server-rendered HTML + HTMX | Веб-интерфейс на основе server-side rendering |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 4. ФУНКЦИОНАЛЬНЫЕ ВОЗМОЖНОСТИ (Implemented)
|
||||||
|
|
||||||
|
✅ Workforce Module:
|
||||||
|
- Отслеживание активности: рабочее время, простои, переключение окон
|
||||||
|
- RDP-сессии с детализацией
|
||||||
|
- Профилирование приложений и сайтов
|
||||||
|
- KPI-отчёты для руководства
|
||||||
|
|
||||||
|
✅ Security Module:
|
||||||
|
- DLP-детектирование (копирование, печать, USB)
|
||||||
|
- UEBA v1 (прозрачная rule-based модель, без ML)
|
||||||
|
- Управление очередью инцидентов
|
||||||
|
- Audit действий оператора
|
||||||
|
|
||||||
|
✅ Forensics Module:
|
||||||
|
- Hayabusa integration для EVTX-анализа
|
||||||
|
- Offline investigation packs
|
||||||
|
- Timeline и Evidence-галереи
|
||||||
|
- Расследование инцидентов
|
||||||
|
|
||||||
|
✅ Operations:
|
||||||
|
- Role-based access (executive, manager, security, forensics, admin)
|
||||||
|
- Pilot v1.0 validation
|
||||||
|
- Deployment topologies & sizing guide
|
||||||
|
- Production hardening
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 5. ПЛАНЫ И РАСШИРЕНИЕ
|
||||||
|
|
||||||
|
Planned:
|
||||||
|
- PowerShell Provider для мониторинга
|
||||||
|
- SSH Provider
|
||||||
|
- Syslog Provider
|
||||||
|
- 1C Integration Provider
|
||||||
|
- Russian OS support validation
|
||||||
|
|
||||||
|
Future:
|
||||||
|
- Extended Enterprise connectors
|
||||||
|
- SCUD/VPN integrations
|
||||||
|
- React/TypeScript Enterprise UI
|
||||||
|
- Tauri Desktop Forensics
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 6. ТЕХНИЧЕСКОЕ СОСТОЯНИЕ
|
||||||
|
|
||||||
|
| Метрика | Значение |
|
||||||
|
|---------|----------|
|
||||||
|
| Open Issues | 1 |
|
||||||
|
| Forks | 2 |
|
||||||
|
| Stars | 2 |
|
||||||
|
| Repository Size | ~10.5 MB |
|
||||||
|
| Last Push | 2026-06-12T19:17:35Z |
|
||||||
|
| Default Branch | main |
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 7. DEPLOYMENT И PRODUCTION-READINESS
|
||||||
|
|
||||||
|
Инструменты развёртывания:
|
||||||
|
- Ansible playbooks (полный automation stack)
|
||||||
|
- Proxmox provisioning (CT creation)
|
||||||
|
- Windows WinRM rollout (centralized deployment)
|
||||||
|
- Docker/CT topologies (multi-node)
|
||||||
|
|
||||||
|
Документация и валидация:
|
||||||
|
- Pilot v1.0 демо-сценарии
|
||||||
|
- Enterprise deployment guide
|
||||||
|
- Security hardening & backup/recovery
|
||||||
|
- Sizing guide
|
||||||
|
- Registry readiness документы
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 8. ТЕХНИЧЕСКИЕ ПРЕИМУЩЕСТВА
|
||||||
|
|
||||||
|
- Rust-first approach — производительность, безопасность памяти, надёжность
|
||||||
|
- Server-side rendering — снижение нагрузки на клиент
|
||||||
|
- API-first — OpenAPI contracts, TypeScript declarations
|
||||||
|
- Observability — Prometheus metrics, Grafana dashboards
|
||||||
|
- Security by default — read-only по умолчанию, безопасные mutation paths
|
||||||
|
- Modular Rust workspace — четкая декомпозиция модулей
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 9. ОГРАНИЧЕНИЯ И ПОЗИЦИОНИРОВАНИЕ
|
||||||
|
|
||||||
|
Не позиционируется как:
|
||||||
|
- Сертифицированная DLP/SIEM/EDR/XDR
|
||||||
|
- ML-based UEBA
|
||||||
|
- Юридически гарантированная неизменность evidence
|
||||||
|
|
||||||
|
Позиционируется как:
|
||||||
|
- Операционная платформа контроля (Workforce + Security + Forensics)
|
||||||
|
- Pilot-ready решение для технического аудита
|
||||||
|
- Расширяемая архитектура для агентных и agentless-источников
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 10. РЕКОМЕНДАЦИИ
|
||||||
|
|
||||||
|
Для потенциальных пользователей:
|
||||||
|
1. Начать с Pilot v1 demo
|
||||||
|
2. Пройти Pilot validation checklist
|
||||||
|
3. Использовать Ansible automation для развёртывания
|
||||||
|
4. Ознакомиться с Security hardening guide
|
||||||
|
5. Планировать интеграции через role-based contracts
|
||||||
|
|
||||||
|
Для разработчиков:
|
||||||
|
1. Контрибутировать через PR согласно guidelines
|
||||||
|
2. Использовать migration runbook для изменений
|
||||||
|
3. Поддерживать quality gates и smoke tests
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
### 11. ИТОГОВАЯ ОЦЕНКА
|
||||||
|
|
||||||
|
- Качество кода: высокое (Rust-first, модульная архитектура)
|
||||||
|
- Документация: полная, пригодна для реестра
|
||||||
|
- Production-readiness: готов к пилоту, требуется валидация
|
||||||
|
- Сообщество: ранняя стадия
|
||||||
|
- Расширяемость: высокая
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## ✅ ИТОГОВЫЙ ВЕРДИКТ
|
||||||
|
|
||||||
|
AWatch-rus — профессиональный, хорошо структурированный проект для операционного контроля корпоративной ИТ-инфраструктуры. Проект готов к оценке и пилотному развёртыванию; перед production рекомендуется пройти валидацию по чеклистам.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
*Файл добавлён в ветку `docs/add-professional-highlights` как `docs/RELEASE_RESOLUTION_RU.md`.*
|
||||||
Reference in New Issue
Block a user