feat(dlp-phase1): add policy-based incident pipeline and capability gap analysis
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
# DLP gap analysis: AWatch-rus vs enterprise DLP class
|
||||
|
||||
## Текущий контур AWatch-rus
|
||||
|
||||
- Endpoint activity tracking (`aw-watcher-afk`, `aw-watcher-window`).
|
||||
- Browser URL/domain collection (native UIAutomation collector).
|
||||
- Rule-based категоризация web-активности.
|
||||
- Phase-1 DLP policy: rule match + incident bucket `aw-dlp-incidents_<host>` + локальный incident log.
|
||||
- Автоматизированный deployment (PowerShell, Ansible, Proxmox).
|
||||
|
||||
## Разрыв до enterprise DLP уровня
|
||||
|
||||
1. **Каналы перехвата**: почта, USB/MTP, печать, clipboard, мессенджеры, облака, file transfer.
|
||||
2. **Контент-анализ**: PII/dictionaries/EDM/IDM, advanced OCR, document fingerprinting.
|
||||
3. **Реагирование**: block/quarantine/workflow approvals, исключения, эскалации.
|
||||
4. **Расследования**: case-management, evidence chain, immutable audit.
|
||||
5. **Управление**: RBAC/SoD, policy lifecycle, multi-tenant admin model.
|
||||
6. **Интеграции**: SIEM/SOAR/ITSM, AD/IdP, ticketing.
|
||||
|
||||
## Реалистичный roadmap
|
||||
|
||||
### Phase 1 (сделано)
|
||||
|
||||
- DLP policy JSON + rules.
|
||||
- Incident generation в отдельный AW bucket.
|
||||
- Incident cooldown/dedup.
|
||||
|
||||
### Phase 2 (следующий шаг)
|
||||
|
||||
- USB/print/clipboard collectors.
|
||||
- File-operation telemetry (create/copy/archive/upload hints).
|
||||
- Central incident aggregation/export.
|
||||
|
||||
### Phase 3
|
||||
|
||||
- Policy engine service (server-side), versioned policies, approval workflow.
|
||||
- Correlation engine (user + channel + object + time).
|
||||
- SIEM connector (CEF/JSON over syslog/HTTP).
|
||||
|
||||
### Phase 4
|
||||
|
||||
- Advanced detectors (dictionary packs, regex packs, OCR pipeline).
|
||||
- Risk scoring / UEBA.
|
||||
- Compliance reports (152-ФЗ / PCI DSS / ISO 27001-aligned evidence views).
|
||||
|
||||
## Reference links (product capability benchmark)
|
||||
|
||||
- https://www.infowatch.ru/products/dlp-sistema-traffic-monitor/vozmozhnosti-dlp-sistemy
|
||||
- https://www.infowatch.ru/products/dlp-sistema-traffic-monitor/sistemnye-trebovaniya-dlp
|
||||
- https://www.infowatch.ru/company/presscenter/news/zapatentovana-tekhnologiya-dlya-raspoznavaniya-teksta-na-izobrazheniyakh
|
||||
@@ -9,11 +9,13 @@
|
||||
- `windows/validate-deployment.ps1` — машинная проверка состояния и JSON-отчёт.
|
||||
- `windows/browser-domains-native-collector.ps1` — native collector доменов браузера с категоризацией.
|
||||
- `windows/web-category-rules.example.json` — пример кастомных правил категоризации.
|
||||
- `windows/dlp-policy.example.json` — пример DLP-политики (phase-1: alerting incidents).
|
||||
|
||||
## Что делает пакет
|
||||
|
||||
- Ставит `aw-watcher-afk` и `aw-watcher-window` из официального Windows ZIP ActivityWatch.
|
||||
- Копирует browser-domain collector в `C:\ProgramData\ActivityWatch`.
|
||||
- Копирует DLP policy в `C:\ProgramData\ActivityWatch\dlp-policy.json`.
|
||||
- Создаёт per-user задачи `ActivityWatch Launch [...]` с запуском при логоне.
|
||||
- Создаёт системную задачу `ActivityWatch Recovery`, которая циклически перезапускает per-user launch tasks.
|
||||
- Применяет ACL к `C:\Program Files\ActivityWatch`, `C:\ProgramData\ActivityWatch` и каталогу логов.
|
||||
@@ -36,7 +38,8 @@ Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope Process
|
||||
-ServerHost aw.example.local `
|
||||
-ServerPort 5600 `
|
||||
-TargetUser 'CONTOSO\svc.activity.user01' `
|
||||
-CustomRulesPath .\windows\web-category-rules.example.json
|
||||
-CustomRulesPath .\windows\web-category-rules.example.json `
|
||||
-CustomPolicyPath .\windows\dlp-policy.example.json
|
||||
```
|
||||
|
||||
Локальный пользователь:
|
||||
@@ -85,7 +88,8 @@ CSV-формат: колонка `User`, `Username`, `SamAccountName` или `Lo
|
||||
-ServerPort 5600 `
|
||||
-Domain CONTOSO `
|
||||
-UserListPath C:\Temp\aw-users.txt `
|
||||
-CustomRulesPath C:\Temp\web-category-rules.json
|
||||
-CustomRulesPath C:\Temp\web-category-rules.json `
|
||||
-CustomPolicyPath C:\Temp\dlp-policy.json
|
||||
```
|
||||
|
||||
Если список уже содержит `DOMAIN\user`, параметр `-Domain` не нужен.
|
||||
@@ -98,6 +102,7 @@ CSV-формат: колонка `User`, `Username`, `SamAccountName` или `Lo
|
||||
-ServerPort 5600 `
|
||||
-Domain CONTOSO `
|
||||
-Users user1,user2,user3,user4,user5 `
|
||||
-CustomPolicyPath C:\Temp\dlp-policy.json `
|
||||
-ValidateAfterDeploy
|
||||
```
|
||||
|
||||
@@ -119,6 +124,7 @@ CSV-формат: колонка `User`, `Username`, `SamAccountName` или `Lo
|
||||
- `C:\ProgramData\ActivityWatch\launch-watchers.ps1` — per-user launcher.
|
||||
- `C:\ProgramData\ActivityWatch\recovery-loop.ps1` — system recovery loop.
|
||||
- `C:\ProgramData\ActivityWatch\browser-domains-native-collector.ps1` — runtime collector.
|
||||
- `C:\ProgramData\ActivityWatch\dlp-policy.json` — активная DLP-политика.
|
||||
- `C:\ProgramData\ActivityWatch\logs\` — логи collector'а.
|
||||
|
||||
## Повторный прогон
|
||||
|
||||
@@ -22,6 +22,7 @@ C:\Deploy\AWatch-rus\windows\deploy-ensemble.ps1 `
|
||||
-ServerPort 5600 `
|
||||
-Domain AD `
|
||||
-Users user1,user2,user3,user4,user5 `
|
||||
-CustomPolicyPath C:\Deploy\AWatch-rus\windows\dlp-policy.example.json `
|
||||
-ValidateAfterDeploy
|
||||
```
|
||||
|
||||
|
||||
@@ -20,6 +20,7 @@ $report | ConvertTo-Json -Depth 12
|
||||
Test-Path 'C:\Program Files\ActivityWatch\aw-watcher-afk\aw-watcher-afk.exe'
|
||||
Test-Path 'C:\Program Files\ActivityWatch\aw-watcher-window\aw-watcher-window.exe'
|
||||
Test-Path 'C:\ProgramData\ActivityWatch\browser-domains-native-collector.ps1'
|
||||
Test-Path 'C:\ProgramData\ActivityWatch\dlp-policy.json'
|
||||
Test-Path 'C:\ProgramData\ActivityWatch\deployment-config.json'
|
||||
```
|
||||
|
||||
@@ -72,6 +73,7 @@ Invoke-WebRequest https://aw.example.local/api/0/info
|
||||
- `aw-watcher-window_<hostname>`
|
||||
- `aw-watcher-web-edge_<hostname>` или другой browser bucket
|
||||
- `aw-detmir-web-category_<hostname>`
|
||||
- `aw-dlp-incidents_<hostname>` (при срабатывании policy rule с `action=alert|block|quarantine`)
|
||||
|
||||
Проверка через API:
|
||||
|
||||
@@ -86,6 +88,17 @@ Invoke-WebRequest http://aw.example.local:5600/api/0/buckets | Select-Object -Ex
|
||||
3. Проверьте category bucket на сервере.
|
||||
4. Убедитесь, что поля `domain`, `rootDomain`, `category`, `categoryGroup`, `categoryRule` заполнены.
|
||||
|
||||
## Проверка DLP phase-1
|
||||
|
||||
1. В `dlp-policy.json` задайте правило на тестовый домен.
|
||||
2. Откройте этот домен в браузере.
|
||||
3. Проверьте `aw-dlp-incidents_<hostname>` через API.
|
||||
4. Проверьте локальный лог:
|
||||
|
||||
```powershell
|
||||
Get-Content "C:\ProgramData\ActivityWatch\logs\dlp-incidents-$env:USERNAME.log" -Tail 50
|
||||
```
|
||||
|
||||
## Проверка восстановления
|
||||
|
||||
1. Завершите `aw-watcher-afk.exe` и `aw-watcher-window.exe` у тестового пользователя.
|
||||
|
||||
Reference in New Issue
Block a user