Files
AWatch-rus/docs/DLP_OPTIONAL_RUNTIME_RU.md
T

201 lines
8.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Optional DLP runtime for DetMir
Цель: DLP-контур должен отключаться управляемо, без ложных аварий в health/readiness и без автоматического подъема heavy-пайплайна, когда задача контура - снизить нагрузку на InfluxDB, Grafana и ClickHouse.
## Что отключается
Штатный runtime off включает:
- `AW_DLP_ENABLED=false` на AW server;
- `DETMIR_DLP_ENABLED=false` в управляющем DetMir contour check;
- `DETMIR_PORTAL_DLP_MODULE_ENABLED=false` для portal UI/API DLP-модуля;
- остановку DLP timers/services:
- `aw-dlp-influx-exporter.timer`;
- `activitywatch-dlp-aggregator.timer`;
- `aw-dlp-report-scheduler.timer`;
- `aw-dlp-syslog-forwarder.timer`;
- `aw-dlp-webhook-sender.timer`;
- `aw-dlp-cef-exporter.timer`;
- `aw-dlp-ioc-refresh.timer`;
- `aw-dlp-policy-engine.service`;
- `aw-dlp-case-management.service`;
- `detmir-portal-evidence.service`, если DLP evidence upload больше не нужен.
Worktime, ActivityWatch server, browser/window/AFK collection, Hayabusa,
Velociraptor findings ingest и 1C/ClickHouse core не считаются DLP runtime и
отдельно не отключаются.
Важно: отключение DLP runtime не удаляет DLP-контур из проекта. Это
эксплуатационный режим `disabled`, выбранный для production DetMir из-за
существенной нагрузки на виртуальную среду Proxmox, InfluxDB, Grafana,
ClickHouse и AW server. DLP должен оставаться подключаемым обратно через
описанный ниже enable-процесс, без переустановки продукта и без потери
исторических артефактов до отдельной retention/cleanup процедуры.
## Статистика перед отключением
На AW server:
```bash
sudo bash /usr/local/bin/detmir-dlp-runtime-control stats
sudo cat /var/lib/activitywatch/health/dlp-runtime-state.json
```
Из репозитория до деплоя:
```bash
sudo bash scripts/detmir_dlp_runtime_control.sh stats
```
JSON фиксирует:
- generated timestamp;
- effective mode;
- DLP unit `active/enabled/load` state;
- последние timestamps по DLP buckets для текущего host;
- причину отключения.
Каждый запуск дополнительно сохраняет неизменяемый снимок в
`/var/lib/activitywatch/health/dlp-runtime-history/`. При `disable` остаются
как минимум два снимка: `pre_disable` до остановки units и `disabled` после
остановки/disable/reset-failed.
## Отключение
На AW server:
```bash
sudo install -o root -g root -m 0755 scripts/detmir_dlp_runtime_control.sh /usr/local/bin/detmir-dlp-runtime-control
sudo sed -i \
-e 's/^AW_DLP_ENABLED=.*/AW_DLP_ENABLED=false/' \
-e 's/^AW_DLP_DISABLED_REASON=.*/AW_DLP_DISABLED_REASON=operator_disabled_to_reduce_influx_grafana_clickhouse_load/' \
/etc/activitywatch/aw-server.env
sudo /usr/local/bin/detmir-dlp-runtime-control disable
sudo systemctl restart aw-worktime-api.service || true
```
Для portal:
```bash
sudo sed -i 's/^DETMIR_PORTAL_DLP_MODULE_ENABLED=.*/DETMIR_PORTAL_DLP_MODULE_ENABLED=false/' /etc/detmir-portal.env
sudo systemctl restart detmir-portal.service
```
Если переменной нет, добавьте ее в соответствующий env-файл отдельной строкой.
## Проверка после отключения
```bash
AW_DLP_ENABLED=false DETMIR_DLP_ENABLED=false /usr/local/bin/dlp-health-check --json
DETMIR_DLP_ENABLED=false detmir-dlp
DETMIR_DLP_ENABLED=false detmir-check --json
AW_DLP_ENABLED=false check-aw-full
```
Ожидаемое поведение:
- `dlp-health-check` возвращает `ok=true` и `dlp:mode=disabled`;
- `detmir-dlp` не открывает SSH health probe и возвращает disabled payload;
- `detmir-check` не проверяет DLP buckets;
- `check-aw-full` показывает DLP buckets как `SKIPPED`;
- DLP units остаются stopped/disabled;
- worktime/core проверки продолжают работать.
## Live evidence 2026-06-25
На DetMir/AW server выполнен controlled disable:
- `AW_DLP_ENABLED=false`;
- `AW_DLP_INFLUX_ENABLED=false`;
- `AW_DLP_DISABLED_REASON=operator_disabled_to_reduce_influx_grafana_clickhouse_load`;
- `AW_DLP_DISABLED_SINCE=2026-06-25`.
Зафиксированы evidence-снимки:
```text
/var/lib/activitywatch/health/dlp-runtime-history/dlp-runtime-current-20260625T083619Z.json
/var/lib/activitywatch/health/dlp-runtime-history/dlp-runtime-pre_disable-20260625T083637Z.json
/var/lib/activitywatch/health/dlp-runtime-history/dlp-runtime-disabled-20260625T083700Z.json
```
Результат:
- pre-disable active units included DLP Influx exporter, aggregator, report,
integration, policy/case and evidence units;
- post-disable active/enabled DLP units: `0/0`;
- `dlp-health-check` returned `ok=true`, `dlp:mode=disabled`;
- `detmir-dlp` returned `ok=true`, `dlp:mode=disabled`;
- `check-aw-full` returned `DLP buckets ... SKIPPED`.
Отдельные non-DLP findings того же ручного прогона, до восстановления
`192.168.100.19`:
- AFK/window/worktime buckets were stale and require RDP collector/session
recovery;
- WinRM from server side to `192.168.100.18:5985` was unreachable;
- these findings are outside the DLP runtime disable boundary.
## Возврат DLP
```bash
sudo sed -i 's/^AW_DLP_ENABLED=.*/AW_DLP_ENABLED=true/' /etc/activitywatch/aw-server.env
sudo /usr/local/bin/detmir-dlp-runtime-control enable
sudo systemctl restart aw-worktime-api.service || true
```
Для portal:
```bash
sudo sed -i 's/^DETMIR_PORTAL_DLP_MODULE_ENABLED=.*/DETMIR_PORTAL_DLP_MODULE_ENABLED=true/' /etc/detmir-portal.env
sudo systemctl restart detmir-portal.service
```
После включения выполнить:
```bash
/usr/local/bin/dlp-health-check --json
detmir-dlp
detmir-check --json
```
Перед возвратом DLP в production обязательно проверить ресурсный бюджет
Proxmox/InfluxDB/Grafana/ClickHouse. Не включайте DLP timers/services
автоматически вместе с обычным deploy, если текущая цель - сохранить лёгкий
Workforce/AW контур.
## Hayabusa/Velociraptor при выключенном DLP
Hayabusa/Sigma и Velociraptor относятся к optional security findings /
forensics layer, а не к тяжёлому DLP runtime:
- Hayabusa drop/autoprocess может продолжать работать при выключенном DLP;
- Velociraptor findings ingest может использоваться в offline/server mode, если
администратор явно включил соответствующий режим;
- результаты должны попадать в Security Finding Inbox / ClickHouse как
контролируемые findings, а не запускать автоматическую блокировку без
approve/apply workflow;
- portal/workforce first screen не должен ждать Velociraptor или DLP;
- disabled DLP mode не должен превращаться в FAIL только из-за отсутствия DLP
buckets.
Velociraptor server/client runtime не должен стартовать автоматически в
production DetMir без отдельного ресурсного решения. Для малой виртуальной
среды предпочтителен `disabled` или `offline_collector` режим.
## Ansible
В inventory/group vars:
```yaml
aw_dlp_enabled: false
aw_dlp_disabled_reason: "operator_disabled_to_reduce_influx_grafana_clickhouse_load"
aw_dlp_disabled_since: "2026-06-25"
detmir_portal_dlp_module_enabled_override: false
```
При `aw_dlp_enabled: false` playbook пишет `AW_DLP_ENABLED=false`, не включает DLP service/timer runtime и не должен возвращать DLP Influx exporter/aggregator в active state.
## Ограничения
Это не удаление DLP-функциональности и не заявление, что DLP заменен другим средством. Это штатный режим временного/постоянного отключения тяжелого DLP runtime для стабилизации производительности. Исторические DLP buckets и артефакты могут оставаться на диске и в ActivityWatch до отдельной retention/cleanup процедуры.