639 lines
26 KiB
Markdown
639 lines
26 KiB
Markdown
# AWatch-rus DLP: реализованный функционал для службы ИБ
|
||
|
||
Документ описывает фактически реализованный DLP и смежный контрольный функционал в репозитории `AWatch-rus` по состоянию на текущий `main`.
|
||
|
||
- Статус: действующая реализация, не roadmap
|
||
- Назначение: аудит службой ИБ, эксплуатационное понимание, оценка рисков
|
||
- Контур: Windows/RDP endpoint collectors + Linux AW server + WebUI overlay + интеграции + отчётность
|
||
|
||
## 1. Границы системы
|
||
|
||
Система построена поверх `ActivityWatch` и расширяет его до прикладного DLP/monitoring-контура:
|
||
|
||
- сбор активности пользователей на Windows/RDP-хостах;
|
||
- DLP-сигналы по каналам `clipboard`, `USB`, `print`, `browser domains`, `email outbound`, `file operations`;
|
||
- централизованная политика DLP;
|
||
- review/rules UI внутри AW WebUI;
|
||
- кейсы расследований;
|
||
- интеграции в SIEM/SOAR;
|
||
- compliance-отчёты;
|
||
- health-check и autoheal для production-эксплуатации.
|
||
|
||
Система не является полноценной DLP-платформой enterprise-класса с нативной аутентификацией, RBAC, аппаратной изоляцией и криптографической подписью политик. Это важно учитывать при ИБ-оценке.
|
||
|
||
Текущая модель угроз для всего контура AWatch-rus зафиксирована отдельно:
|
||
`docs/THREAT_MODEL_RU.md`. В ней DLP-функции рассматриваются как часть
|
||
платформы операционного контроля и технического аудита, а не как заявление о
|
||
сертифицированной DLP/СЗИ.
|
||
|
||
## 2. Реализованные компоненты
|
||
|
||
### 2.1 Windows endpoint / RDP host
|
||
|
||
Основные PowerShell-компоненты:
|
||
|
||
- `windows/dlp-endpoint-signals-collector.ps1`
|
||
Сбор и DLP-оценка `clipboard`, `USB`, `print`.
|
||
- `windows/file-operations-collector.ps1`
|
||
Сбор файловых операций и heartbeat состояния коллектора.
|
||
- `windows/browser-domains-native-collector.ps1`
|
||
Сбор активных доменов/категорий браузера, генерация DLP-инцидентов по web-правилам.
|
||
- `windows/email-outbound-collector.ps1`
|
||
Мониторинг исходящей почты, публикация почтовых событий и DLP-инцидентов.
|
||
- `windows/worktime-session-collector.ps1`
|
||
Сбор состояния RDP-сеансов через `query user`/`quser`.
|
||
- `windows/dlp-policy-client.ps1`
|
||
Pull-клиент централизованной политики.
|
||
- `windows/install-dlp-client.ps1`
|
||
Простой инсталлятор клиента.
|
||
- `windows/install-standalone-service.ps1`
|
||
Развёртывание DLP-агента как Windows Service.
|
||
- `windows/aw-standalone-service.ps1`
|
||
Service wrapper для поддержания collector-процессов без Task Scheduler.
|
||
|
||
Deployment/tooling:
|
||
|
||
- `windows/deploy-single-user.ps1`
|
||
- `windows/deploy-domain-users.ps1`
|
||
- `windows/deploy-ensemble.ps1`
|
||
- `windows/hardening-recovery.ps1`
|
||
- `windows/validate-deployment.ps1`
|
||
|
||
### 2.2 Linux AW server
|
||
|
||
Базовые серверные компоненты:
|
||
|
||
- `aw-server/aw-ru-patch.js`
|
||
RU/DLP overlay для WebUI.
|
||
- `aw-server/apply_webui_ru_patch.sh`
|
||
Применение WebUI-патча.
|
||
- `aw-server/aw-worktime-api.py`
|
||
API отчётов worktime на `:5610`.
|
||
- `aw-server/aw-worktime-ui-bridge.py`
|
||
Мост между `aw-worktime-sessions_*` и стандартными AW-представлениями.
|
||
- `aw-server/aw-worktime-autoheal.sh`
|
||
Автолечение worktime-представлений.
|
||
|
||
### 2.3 Policy Engine
|
||
|
||
Каталог: `aw-server/dlp-policy-engine/`
|
||
|
||
- `policy_service.py`
|
||
FastAPI service централизованной политики.
|
||
- `policy_storage.py`
|
||
SQLite storage и versioning.
|
||
- `policy_schema.py`
|
||
Pydantic schemas.
|
||
- `policy_distributor.py`
|
||
Формирование policy bundle для endpoint.
|
||
- `dlp-policy-engine.service`
|
||
systemd unit.
|
||
|
||
### 2.4 Content Analysis
|
||
|
||
Каталог: `aw-server/dlp-content-analysis/`
|
||
|
||
- `content_analyzer.py`
|
||
Унифицированный server-side анализ текста/артефактов.
|
||
- `dictionary_matcher.py`
|
||
Match по словарям и regex pack.
|
||
- `checksum_validator.py`
|
||
Валидация ИНН/СНИЛС/паспортных паттернов.
|
||
- `ocr_processor.py`
|
||
OCR через `pytesseract` + `Pillow`.
|
||
- `dictionaries/152-fz-pdn.json`
|
||
Словарь ПДн.
|
||
- `regex-packs/*.json`
|
||
Наборы regex для `financial`, `contacts`, `secrets`.
|
||
|
||
### 2.5 Case Management
|
||
|
||
Каталог: `aw-server/dlp-case-management/`
|
||
|
||
- `case_service.py`
|
||
FastAPI API для кейсов.
|
||
- `case_storage.py`
|
||
SQLite-хранилище кейсов, комментариев, аудита.
|
||
- `case_schema.py`
|
||
Схемы API.
|
||
- `evidence_chain.py`
|
||
Нормализация evidence и вычисление `sha256`.
|
||
- `case-service.service`
|
||
systemd unit.
|
||
|
||
### 2.6 SIEM / SOAR
|
||
|
||
Каталог: `aw-server/dlp-integrations/`
|
||
|
||
- `cef_exporter.py`
|
||
Экспорт `aw-dlp-incidents_*` в CEF.
|
||
- `webhook_sender.py`
|
||
Отправка webhook по severity.
|
||
- `syslog_forwarder.py`
|
||
Generic syslog-forwarding инцидентов.
|
||
- `cef-config.yaml`
|
||
- `webhook-config.yaml`
|
||
- `syslog-forwarder-config.yaml`
|
||
- service/timer units для каждого интеграционного потока.
|
||
|
||
### 2.7 Compliance / reporting
|
||
|
||
Каталог: `aw-server/dlp-compliance/`
|
||
|
||
- `report_generator.py`
|
||
Генератор месячных compliance-отчётов.
|
||
- `compliance_scheduler.py`
|
||
Scheduler wrapper.
|
||
- `templates/152-fz-report.html`
|
||
- `templates/pci-dss-report.html`
|
||
- `report-scheduler.service`
|
||
- `report-scheduler.timer`
|
||
|
||
### 2.8 IOC enrichment
|
||
|
||
Сценарии и артефакты:
|
||
|
||
- `adk-rust/crates/extract-ioc-from-sigma`
|
||
Production Rust extractor для извлечения IOC из Sigma/Hayabusa rules.
|
||
- `/usr/local/bin/aw-extract-ioc-from-sigma`
|
||
Установленный production binary на AW server.
|
||
- `scripts/build_dlp_ioc_from_hayabusa.sh`
|
||
Локальный/manual wrapper для построения JSON/CSV/SQL артефактов IOC.
|
||
- `aw-dlp-ioc-refresh.service` / `aw-dlp-ioc-refresh.timer`
|
||
Автоматическое пополнение IOC из upstream `Yamato-Security/hayabusa-rules`.
|
||
|
||
Подробный runtime contract: `docs/dlp-ioc-enrichment.md`.
|
||
|
||
### 2.9 Health / autoheal / operations
|
||
|
||
- `aw-server/health-check.sh`
|
||
Базовый AW health gate.
|
||
- `scripts/dlp-health-check.py`
|
||
DLP health gate.
|
||
- `scripts/diag_and_manual_restart.sh`
|
||
Диагностика и ручной heal/restart.
|
||
- `scripts/dlp-admin-cli.py`
|
||
CLI администратора.
|
||
- `grafana-1c/grafana/dashboards/dlp-dashboard.json`
|
||
DLP Grafana dashboard.
|
||
|
||
### 2.10 Telegram bot для операторского контура
|
||
|
||
Развёртывание:
|
||
|
||
- `ansible/deploy_tsj_guardian_bot_proxmox.yml`
|
||
|
||
Назначение:
|
||
|
||
- внешняя проверка AW-Rus + DLP;
|
||
- удалённый heal некоторых сценариев;
|
||
- контроль доступности worktime/DLP контура извне.
|
||
|
||
## 3. Какие данные реально собираются
|
||
|
||
| Канал | Компонент | Bucket | Содержимое |
|
||
|---|---|---|---|
|
||
| Clipboard | `dlp-endpoint-signals-collector.ps1` | `aw-dlp-endpoint-signals_<host>`, `aw-dlp-incidents_<host>` | hash, length, signal, rule hit, severity, action |
|
||
| USB | `dlp-endpoint-signals-collector.ps1` | `aw-dlp-endpoint-signals_<host>`, `aw-dlp-incidents_<host>` | drive letter, volume, signal, enforcement status |
|
||
| Print | `dlp-endpoint-signals-collector.ps1` | `aw-dlp-endpoint-signals_<host>`, `aw-dlp-incidents_<host>` | printer, owner, document name, signal, enforcement status |
|
||
| Browser domains | `browser-domains-native-collector.ps1` | `aw-watcher-web-*_<host>`, `aw-detmir-web-category_<host>`, `aw-dlp-incidents_<host>` | domain, category, matched policy |
|
||
| Email outbound | `email-outbound-collector.ps1` | `aw-email-monitor_<host>`, `aw-dlp-incidents_<host>` | sender/recipient metadata, subject/transport metadata, matched rule |
|
||
| File operations | `file-operations-collector.ps1` | `aw-file-operations_<host>` | operation, file path, old path, extension, archive hint |
|
||
| RDP sessions | `worktime-session-collector.ps1` | `aw-worktime-sessions_<host>` | username, session id, state, active flag |
|
||
| Manual review | `aw-ru-patch.js` | `aw-dlp-review_<host>`, `aw-dlp-rules_<host>` | operator review/suppress/rule decisions |
|
||
| Cases | `case_service.py` | SQLite case DB | case metadata, comments, audit, evidence chain |
|
||
|
||
Дополнительно:
|
||
|
||
- при DLP-инциденте система может сохранять screenshot artifact;
|
||
- OCR применяется к screenshot-артефактам на сервере, не к постоянному видео/потоку;
|
||
- compliance и SIEM работают по уже сформированным `aw-dlp-incidents_*`.
|
||
|
||
## 4. Что система не делает постоянно
|
||
|
||
- не пишет постоянную запись экрана;
|
||
- не делает screenshot по таймеру для обычной активности;
|
||
- не реализует встроенную LDAP/SSO/RBAC-аутентификацию внутри policy/case API;
|
||
- не подписывает policy bundle криптографически;
|
||
- не шифрует AW bucket contents на уровне приложения.
|
||
|
||
## 5. Основные потоки данных
|
||
|
||
### 5.1 Endpoint DLP flow
|
||
|
||
1. Windows collector получает локальное событие.
|
||
2. Загружает локальную или серверную DLP policy.
|
||
3. Вычисляет match по локальным правилам.
|
||
4. При необходимости применяет enforcement.
|
||
5. Отправляет heartbeat/event в AW API.
|
||
6. При совпадении правила публикует `aw-dlp-incidents_<host>`.
|
||
7. При включённом `incidentCapture` сохраняет screenshot artifact metadata.
|
||
|
||
### 5.2 Policy flow
|
||
|
||
1. Администратор создаёт/обновляет policy через Policy Engine API.
|
||
2. Политика хранится в SQLite с versioning и audit trail.
|
||
3. Endpoint в `server` mode делает:
|
||
- `GET /api/0/dlp/policies/active`
|
||
- `GET /api/0/dlp/policies/agents/{agent_id}/desired`
|
||
- `POST /api/0/dlp/policies/agents/{agent_id}/heartbeat`
|
||
4. Endpoint кэширует последнюю валидную policy локально.
|
||
5. При недоступности сервера используется cached/local fallback.
|
||
|
||
### 5.3 Review / investigation flow
|
||
|
||
1. Оператор открывает `#/buckets/aw-dlp-endpoint-signals_<HOST>`.
|
||
2. `aw-ru-patch.js` добавляет DLP review/rules центр.
|
||
3. Оператор создаёт review/rule запись.
|
||
4. UI сохраняет решение в `aw-dlp-review_<host>` или `aw-dlp-rules_<host>`.
|
||
5. Из DLP review можно создать кейс расследования.
|
||
6. Case Management сохраняет кейс, комментарии и evidence chain.
|
||
|
||
### 5.4 SIEM / SOAR flow
|
||
|
||
1. Серверные integrations читают новые события из `aw-dlp-incidents_*`.
|
||
2. В зависимости от конфигурации выполняется:
|
||
- CEF export;
|
||
- webhook notification;
|
||
- syslog forwarding.
|
||
3. Состояние последнего обработанного `id` хранится локально в state files.
|
||
|
||
### 5.5 Compliance flow
|
||
|
||
1. `report-scheduler.timer` запускает генерацию monthly report.
|
||
2. `report_generator.py` агрегирует `aw-dlp-incidents_*`.
|
||
3. Формируются:
|
||
- HTML отчёт;
|
||
- JSON metadata.
|
||
|
||
## 6. Реализованные API, службы и порты
|
||
|
||
### 6.1 HTTP API
|
||
|
||
| Сервис | Порт | Назначение |
|
||
|---|---:|---|
|
||
| ActivityWatch API | `5600` | основной API buckets/events/settings |
|
||
| Policy Engine | `5601` | централизованная политика DLP |
|
||
| Case Management | `5602` | кейсы расследования |
|
||
| Worktime API | `5610` | отчёты worktime CSV/JSON/HTML и management view `/reports/worktime/management` |
|
||
|
||
### 6.2 Systemd units
|
||
|
||
Критичные сервисы:
|
||
|
||
- `activitywatch-server`
|
||
- `aw-dlp-policy-engine.service`
|
||
- `aw-dlp-case-management.service`
|
||
- `aw-worktime-api.service`
|
||
|
||
Критичные timers/services:
|
||
|
||
- `aw-worktime-ui-bridge.timer`
|
||
- `aw-worktime-autoheal.timer`
|
||
- `activitywatch-dlp-aggregator.timer`
|
||
- `aw-dlp-report-scheduler.timer`
|
||
- `aw-dlp-cef-exporter.timer`
|
||
- `aw-dlp-webhook-sender.timer`
|
||
- `aw-dlp-syslog-forwarder.timer`
|
||
- `aw-dlp-ioc-refresh.timer`
|
||
|
||
## 7. DLP policy engine: реализованный профиль
|
||
|
||
Policy Engine поддерживает:
|
||
|
||
- CRUD политик;
|
||
- status workflow: `draft -> pending_approval -> approved -> deployed`;
|
||
- versioning;
|
||
- rollback активной политики;
|
||
- audit trail;
|
||
- agent heartbeat/desired synchronization.
|
||
|
||
Ключевые endpoints:
|
||
|
||
- `GET /healthz`
|
||
- `GET/POST/PUT/DELETE /api/0/dlp/policies`
|
||
- `GET /api/0/dlp/policies/active`
|
||
- `GET /api/0/dlp/policies/active/version`
|
||
- `POST /api/0/dlp/policies/{id}/submit`
|
||
- `POST /api/0/dlp/policies/{id}/approve`
|
||
- `POST /api/0/dlp/policies/{id}/draft`
|
||
- `POST /api/0/dlp/policies/{id}/activate`
|
||
- `POST /api/0/dlp/policies/rollback`
|
||
- `GET /api/0/dlp/policies/audit`
|
||
- `GET /api/0/dlp/policies/{id}/audit`
|
||
- `POST /api/0/dlp/policies/agents/{agent_id}/heartbeat`
|
||
- `GET /api/0/dlp/policies/agents/{agent_id}/desired`
|
||
|
||
Текущая модель доверия:
|
||
|
||
- встроенной аутентификации нет;
|
||
- защита предполагается сетевой сегментацией, приватным доступом и эксплуатационным контролем.
|
||
|
||
## 8. Endpoint policy model
|
||
|
||
Примерные секции политики:
|
||
|
||
- `defaults`
|
||
- `rules`
|
||
- `endpoint.clipboard[]`
|
||
- `endpoint.usb[]`
|
||
- `endpoint.print[]`
|
||
- `contentAnalysis.dictionaryPack`
|
||
- `contentAnalysis.regexPack`
|
||
- `contentAnalysis.ocrEnabled`
|
||
|
||
Поддерживаемые параметры правил:
|
||
|
||
- `enabled`
|
||
- `cooldownSeconds`
|
||
- `action`
|
||
- `severity`
|
||
- `message`
|
||
- `regexPatterns`
|
||
- `documentRegex`
|
||
- `minLength`
|
||
- `dictionaryPack`
|
||
- `regexPack`
|
||
- `ocrEnabled`
|
||
|
||
## 9. Enforcement: что реально блокируется
|
||
|
||
Поддержаны активные действия `action="block"`:
|
||
|
||
- `clipboard`
|
||
Очистка clipboard.
|
||
- `usb`
|
||
Перевод USB media в `read-only`.
|
||
- `print`
|
||
Отмена print job.
|
||
|
||
При enforcement:
|
||
|
||
- событие всё равно публикуется как инцидент;
|
||
- в payload указывается `enforced=true|false`;
|
||
- пользователю показывается Windows notification.
|
||
|
||
Ограничения enforcement:
|
||
|
||
- для `USB` и части `print` нужны повышенные права;
|
||
- при недостатке прав событие будет зафиксировано, но блокировка может не сработать.
|
||
|
||
## 10. Advanced Content Analysis
|
||
|
||
Реализовано:
|
||
|
||
- словари ПДн;
|
||
- checksum validation;
|
||
- regex packs;
|
||
- OCR по screenshot artifact;
|
||
- server-side analyzer CLI/module.
|
||
|
||
Сценарий использования:
|
||
|
||
1. Endpoint rule указывает `dictionaryPack` и/или `regexPack`.
|
||
2. Collector применяет локальный расширенный анализ текста.
|
||
3. При наличии screenshot/OCR серверный анализатор может дополнительно разбирать артефакт.
|
||
|
||
Критичный нюанс:
|
||
|
||
- OCR и dictionary/regex анализ повышают чувствительность собираемых данных;
|
||
- screenshot artifacts и распознанный текст должны рассматриваться как sensitive evidence.
|
||
|
||
## 11. Case Management
|
||
|
||
Реализовано:
|
||
|
||
- создание кейса;
|
||
- обновление кейса;
|
||
- комментарии;
|
||
- audit trail;
|
||
- evidence chain с `sha256`.
|
||
|
||
Ключевые endpoints:
|
||
|
||
- `GET /health`
|
||
- `POST /api/0/dlp/cases`
|
||
- `GET /api/0/dlp/cases`
|
||
- `GET /api/0/dlp/cases/{id}`
|
||
- `PATCH /api/0/dlp/cases/{id}`
|
||
- `POST /api/0/dlp/cases/{id}/comments`
|
||
- `GET /api/0/dlp/cases/{id}/comments`
|
||
|
||
Особенность текущей реализации:
|
||
|
||
- `case_service.py` сейчас использует permissive CORS, включая `"*"`;
|
||
- для hardened production это должно быть сужено до контролируемых origin.
|
||
|
||
## 12. WebUI overlay и операторский workflow
|
||
|
||
В `aw-ru-patch.js` реализованы:
|
||
|
||
- русифицированная навигация;
|
||
- DLP bucket deep-links;
|
||
- DLP review center;
|
||
- DLP rules manager;
|
||
- создание кейса из review;
|
||
- отдельная секция DLP incidents.
|
||
|
||
Операторские служебные buckets:
|
||
|
||
- `aw-dlp-review_<host>`
|
||
- `aw-dlp-rules_<host>`
|
||
|
||
Это не источники endpoint-телеметрии, а слой операторской классификации и suppression.
|
||
|
||
## 13. SIEM / SOAR
|
||
|
||
Реализованы три потока:
|
||
|
||
- CEF export;
|
||
- webhook notifications;
|
||
- syslog forwarding.
|
||
|
||
Источник всегда один: `aw-dlp-incidents_*`.
|
||
|
||
Текущая модель:
|
||
|
||
- state хранится локально на сервере;
|
||
- обработка идёт по event `id`;
|
||
- доставка зависит от сетевой доступности получателя и конфигурации transport.
|
||
|
||
ИБ-нюанс:
|
||
|
||
- безопасность отправки определяется настройкой конкретного канала;
|
||
- если syslog/webhook настроены без TLS или во внешний контур, это уже операционный риск, а не защита приложения.
|
||
|
||
## 14. Compliance reporting
|
||
|
||
Реализованы профили:
|
||
|
||
- `152-fz`
|
||
- `pci-dss`
|
||
|
||
Результат:
|
||
|
||
- HTML report;
|
||
- JSON metadata.
|
||
|
||
Отчёт агрегирует:
|
||
|
||
- общее число инцидентов;
|
||
- распределение по severity;
|
||
- распределение по host;
|
||
- распределение по channel.
|
||
|
||
## 15. IOC enrichment через Hayabusa / Sigma
|
||
|
||
Реализован автоматический pipeline пополнения DLP IOC/сигнатур:
|
||
|
||
- источник: GitHub ruleset `Yamato-Security/hayabusa-rules`;
|
||
- deployment variable: `aw_dlp_ioc_rules_zip_url`;
|
||
- расписание: `aw-dlp-ioc-refresh.timer`, по умолчанию каждые `6h`;
|
||
- production extractor: Rust binary `/usr/local/bin/aw-extract-ioc-from-sigma`;
|
||
- разбор Sigma/YAML правил из `hayabusa-rules`;
|
||
- извлечение IOC-полей;
|
||
- выгрузка в `ioc_blacklist.json`, `ioc_blacklist.csv`, `ioc_blacklist.sql`;
|
||
- публикация через `aw-worktime-api` на `/dlp-ioc/ioc_blacklist.*`;
|
||
- потребление Windows DLP policy через `ioc.source` и формат
|
||
`hayabusa_sigma_v1`.
|
||
|
||
Извлекаемые типы:
|
||
|
||
- `Image|endswith`
|
||
- `CommandLine|contains`
|
||
- `OriginalFileName`
|
||
- `Hashes|SHA256`
|
||
|
||
Назначение:
|
||
|
||
- preload blacklist/indicator данных для DLP и смежной аналитики.
|
||
- автоматическое обогащение DLP rules без ручного редактирования endpoint JSON.
|
||
|
||
Границы:
|
||
|
||
- DLP Policy Engine управляет жизненным циклом политик
|
||
(`draft/approve/deploy/rollback`), но не является источником upstream
|
||
сигнатур.
|
||
- Hayabusa/Sigma IOC enrichment не равен Hayabusa EVTX forensics runner; это
|
||
отдельный контур пополнения IOC blacklist.
|
||
|
||
## 16. Health-check, autoheal и эксплуатационная устойчивость
|
||
|
||
### 16.1 Базовые проверки
|
||
|
||
- `/usr/local/bin/aw-health-check`
|
||
- `/usr/local/bin/dlp-health-check`
|
||
|
||
Проверяется:
|
||
|
||
- HTTP-доступность сервисов;
|
||
- состояние systemd units/timers;
|
||
- свежесть bucket-ов;
|
||
- наличие transport self-test metrics;
|
||
- наличие compliance artifacts.
|
||
|
||
### 16.2 File-operations health model
|
||
|
||
Текущая логика `dlp-health-check.py` специально учитывает production-реальность:
|
||
|
||
- `aw-file-operations_*` обязателен только для managed host с реально активным `aw-worktime-sessions_*`;
|
||
- исторические или unmanaged bucket-ы не считаются аварией;
|
||
- это устраняет ложные alarms при отсутствии активной интерактивной RDP-сессии.
|
||
|
||
### 16.3 Worktime autoheal
|
||
|
||
`aw-worktime-autoheal.sh`:
|
||
|
||
- проверяет доступность worktime report endpoint;
|
||
- при необходимости перезапускает `aw-worktime-api.service`;
|
||
- нормализует `aw-watcher-window_*` и `aw-watcher-afk_*` из `aw-worktime-sessions_*`;
|
||
- выполняет hard normalization повреждённых bucket-ов.
|
||
|
||
### 16.4 Manual recovery
|
||
|
||
`scripts/diag_and_manual_restart.sh`:
|
||
|
||
- запускает health-check;
|
||
- при fail рестартует серверные компоненты;
|
||
- опционально инициирует Windows recovery/launch tasks;
|
||
- может выполнить seed self-test событий для восстановления freshness.
|
||
|
||
## 17. Деплой и управление изменениями
|
||
|
||
Ключевые playbook:
|
||
|
||
- `ansible/deploy_aw_server.yml`
|
||
- `ansible/deploy_aw_windows.yml`
|
||
- `ansible/deploy_dlp_full_stack.yml`
|
||
- `ansible/deploy_tsj_guardian_bot_proxmox.yml`
|
||
|
||
Роли:
|
||
|
||
- `ansible/roles/dlp-policy-engine`
|
||
- `ansible/roles/dlp-content-analysis`
|
||
- `ansible/roles/dlp-integrations`
|
||
- `ansible/roles/dlp-case-management`
|
||
- `ansible/roles/dlp-compliance`
|
||
|
||
Post-deploy gates:
|
||
|
||
- `aw-health-check`
|
||
- `dlp-health-check --json`
|
||
|
||
## 18. Минимальный эксплуатационный набор для ИБ
|
||
|
||
Для регулярной проверки достаточно:
|
||
|
||
```bash
|
||
/usr/local/bin/aw-health-check
|
||
/usr/local/bin/dlp-health-check --json
|
||
python3 scripts/dlp-admin-cli.py health check
|
||
python3 scripts/dlp-admin-cli.py policies active
|
||
python3 scripts/dlp-admin-cli.py incidents list --since-hours 24 --limit 50
|
||
python3 scripts/dlp-admin-cli.py cases list --limit 50
|
||
```
|
||
|
||
## 19. Ограничения и остаточные риски
|
||
|
||
Критичные ограничения текущей реализации:
|
||
|
||
- нет встроенной auth/RBAC в Policy Engine;
|
||
- нет встроенной auth/RBAC в Case Management;
|
||
- Case Management использует permissive CORS;
|
||
- policy distribution не подписывается криптографически;
|
||
- данные в AW buckets и локальных SQLite DB не шифруются приложением;
|
||
- screenshot/OCR artifacts содержат чувствительные данные и требуют отдельного режима хранения/ретенции;
|
||
- эффективность enforcement зависит от запуска collector под достаточными правами;
|
||
- webhook/syslog/CEF transport security зависит от конфигурации канала;
|
||
- AGENT heartbeat state в Policy Engine хранится в памяти процесса и не является полноценным durable registry;
|
||
- manual review buckets являются операторским слоем и не должны трактоваться как первичный доказательный источник без сверки с исходным incident bucket.
|
||
|
||
## 20. Рекомендации службе ИБ по допуску в production
|
||
|
||
Перед formal acceptance рекомендуется как минимум:
|
||
|
||
1. Ограничить доступ к `5601` и `5602` сетевой сегментацией и reverse proxy policy.
|
||
2. Убрать wildcard CORS из `Case Management`.
|
||
3. Определить политику хранения и удаления screenshot/OCR artifacts.
|
||
4. Формализовать список доверенных операторов review/case workflow.
|
||
5. Включить TLS или закрытый management network для syslog/webhook/CEF маршрутов.
|
||
6. Зафиксировать backup/restore для:
|
||
- `dlp-policy-engine.sqlite`
|
||
- `cases.db`
|
||
- compliance reports
|
||
- IOC artifacts
|
||
7. Прописать регламент ручной верификации после каждого `deploy_aw_server.yml` и `deploy_aw_windows.yml`.
|
||
|
||
## 21. Связанные документы
|
||
|
||
- `docs/THREAT_MODEL_RU.md`
|
||
- `docs/dlp-policy-engine.md`
|
||
- `docs/dlp-integrations.md`
|
||
- `docs/dlp-enforcement.md`
|
||
- `docs/dlp-aggregator.md`
|
||
- `docs/email-outbound-collector.md`
|
||
- `docs/windows/deployment.md`
|
||
- `docs/windows/validation.md`
|
||
- `docs/runbook.md`
|
||
- `docs/worktime_aql_detmir.md`
|