docs(security): add implemented DLP functional profile for infosec
This commit is contained in:
@@ -0,0 +1,611 @@
|
||||
# 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, аппаратной изоляцией и криптографической подписью политик. Это важно учитывать при ИБ-оценке.
|
||||
|
||||
## 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
|
||||
|
||||
Сценарии и артефакты:
|
||||
|
||||
- `scripts/extract_ioc_from_sigma.py`
|
||||
Извлечение IOC из Sigma/Hayabusa rules.
|
||||
- `scripts/build_dlp_ioc_from_hayabusa.sh`
|
||||
Построение JSON/CSV/SQL артефактов IOC.
|
||||
|
||||
### 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 |
|
||||
|
||||
### 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:
|
||||
|
||||
- разбор Sigma/YAML правил;
|
||||
- извлечение IOC-полей;
|
||||
- выгрузка в `json/csv/sql`.
|
||||
|
||||
Извлекаемые типы:
|
||||
|
||||
- `Image|endswith`
|
||||
- `CommandLine|contains`
|
||||
- `OriginalFileName`
|
||||
- `Hashes|SHA256`
|
||||
|
||||
Назначение:
|
||||
|
||||
- preload blacklist/indicator данных для DLP и смежной аналитики.
|
||||
|
||||
## 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/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`
|
||||
|
||||
Reference in New Issue
Block a user