feat(1c): add file-based analytics stack scaffold
This commit is contained in:
@@ -0,0 +1,127 @@
|
||||
# Файловая 1С: ClickHouse + Grafana + AI Investigator
|
||||
|
||||
Этот документ описывает целевой и уже подготовленный scaffold для **файловой 1С**.
|
||||
|
||||
Он нужен для случаев, когда:
|
||||
|
||||
- 1С работает как файловая база на Windows/RDP host;
|
||||
- на сам RDP host не хочется ставить лишние тяжёлые сервисы;
|
||||
- нужен не только KPI-обзор, но и audit/detection/investigation контур.
|
||||
|
||||
## Почему не `prometheus_1C_exporter`
|
||||
|
||||
`prometheus_1C_exporter` полезен для **серверной 1С** с `rac`.
|
||||
|
||||
Для файловой 1С он не даёт нужного контекста:
|
||||
|
||||
- нет кластера `rac`;
|
||||
- нет нормального session/license/runtime слоя как у серверной 1С;
|
||||
- остаются только host-level и export-level данные.
|
||||
|
||||
Поэтому для файловой 1С правильный путь другой:
|
||||
|
||||
```text
|
||||
1С exports + reglog + host telemetry
|
||||
↓
|
||||
ETL / normalize
|
||||
↓
|
||||
ClickHouse
|
||||
↓
|
||||
Grafana + detections
|
||||
↓
|
||||
AI Investigator
|
||||
```
|
||||
|
||||
## Что входит в scaffold
|
||||
|
||||
- `clickhouse-1c/` — новый каталог стека;
|
||||
- ClickHouse schema для raw/core/timeline/cases;
|
||||
- ETL loader CSV/JSON выгрузок;
|
||||
- detection catalog;
|
||||
- Grafana dashboard catalog;
|
||||
- AI Investigator API contract.
|
||||
|
||||
## Основные таблицы
|
||||
|
||||
- `raw_1c_documents`
|
||||
- `raw_1c_postings`
|
||||
- `raw_reglog`
|
||||
- `raw_audit`
|
||||
- `raw_host_metrics`
|
||||
- `documents`
|
||||
- `postings`
|
||||
- `reglog_events`
|
||||
- `audit_events`
|
||||
- `host_events`
|
||||
- `entity_timeline`
|
||||
- `detections`
|
||||
- `cases`
|
||||
|
||||
## Что визуализировать в Grafana
|
||||
|
||||
Роли:
|
||||
|
||||
1. `1C Executive Summary`
|
||||
2. `1C Operations Health`
|
||||
3. `1C Audit Overview`
|
||||
4. `1C Detections`
|
||||
5. `1C Investigation Timeline`
|
||||
6. `1C Data Quality`
|
||||
|
||||
Полный каталог панелей:
|
||||
|
||||
- `clickhouse-1c/grafana/dashboard-catalog.md`
|
||||
- `clickhouse-1c/grafana/query-pack.sql`
|
||||
|
||||
## Detections
|
||||
|
||||
Первый production-набор правил:
|
||||
|
||||
- вход вне рабочего времени;
|
||||
- всплеск failed logins;
|
||||
- массовое перепроведение;
|
||||
- изменение критичных объектов;
|
||||
- аномальный рост ручных корректировок;
|
||||
- аномальный рост возвратов;
|
||||
- рост просроченной дебиторки;
|
||||
- длительные операции;
|
||||
- всплеск ошибок обмена;
|
||||
- высокая задержка диска;
|
||||
- stale backup;
|
||||
- нетипичные проводки по счетам.
|
||||
|
||||
См.:
|
||||
|
||||
- `clickhouse-1c/detections/rules.yml`
|
||||
- `clickhouse-1c/detections/insert_detections.sql`
|
||||
- `clickhouse-1c/detections/build_entity_timeline.sql`
|
||||
- `clickhouse-1c/detections/open_cases_from_detections.sql`
|
||||
- `clickhouse-1c/ops/etl-cron.example`
|
||||
|
||||
## Операционный порядок
|
||||
|
||||
1. На файловом/RDP host:
|
||||
- выгрузить данные 1С в `CSV/JSON`;
|
||||
- выгрузить журнал регистрации;
|
||||
- снять host telemetry.
|
||||
2. На utility VM:
|
||||
- положить файлы в `clickhouse-1c/landing/*`;
|
||||
- прогнать `etl/load_1c_exports.py`;
|
||||
- прогнать `insert_detections.sql`;
|
||||
- открыть Grafana dashboards;
|
||||
- при необходимости построить AI summary поверх cases/timeline.
|
||||
|
||||
## Где граница AI
|
||||
|
||||
AI не должен:
|
||||
|
||||
- писать обратно в 1С;
|
||||
- выполнять произвольный SQL;
|
||||
- менять case state без явного правила.
|
||||
|
||||
AI должен:
|
||||
|
||||
- объяснять detections;
|
||||
- строить summary по case;
|
||||
- связывать audit/reglog/documents в timeline;
|
||||
- предлагать next steps.
|
||||
@@ -2,6 +2,12 @@
|
||||
|
||||
Документ описывает внедрение контура мониторинга 1С в Grafana через Prometheus и SQL Exporter.
|
||||
|
||||
> Важно: этот документ относится к сценарию, где 1С удобно читается через SQL/read-only views.
|
||||
> Для **файловой 1С** теперь есть отдельный контур:
|
||||
>
|
||||
> - `docs/1C_FILE_ANALYTICS_STACK_RU.md`
|
||||
> - `clickhouse-1c/README.md`
|
||||
|
||||
## 1. Целевая схема
|
||||
|
||||
1. База 1С (PostgreSQL или MS SQL) содержит KPI views.
|
||||
|
||||
@@ -26,7 +26,7 @@
|
||||
- `runbook.md` — быстрые операционные действия и проверки.
|
||||
- `operations.md` — сопровождение, бэкапы, rollback.
|
||||
- `windows/*` — отдельная ветка документации по Windows-оркестрации.
|
||||
- `1C_GRAFANA_DEPLOYMENT_RU.md`, `pfsense.md`, `linux-client.md` — специализированные подсистемы.
|
||||
- `1C_GRAFANA_DEPLOYMENT_RU.md`, `1C_FILE_ANALYTICS_STACK_RU.md`, `pfsense.md`, `linux-client.md` — специализированные подсистемы.
|
||||
|
||||
### `proxmox/`
|
||||
Скрипты ранней инфраструктурной фазы:
|
||||
@@ -65,6 +65,15 @@ PowerShell toolkit для клиентской стороны:
|
||||
### `grafana-1c/`
|
||||
Набор для SQL exporter + Prometheus + Grafana дашбордов по 1C метрикам.
|
||||
|
||||
### `clickhouse-1c/`
|
||||
Новый stack именно для **файловой 1С**:
|
||||
|
||||
- ETL выгрузок `CSV/JSON`,
|
||||
- ClickHouse schema,
|
||||
- rule-based detections,
|
||||
- Grafana dashboard catalog,
|
||||
- AI Investigator contract.
|
||||
|
||||
### `scripts/`
|
||||
Утилиты и quality gates:
|
||||
|
||||
@@ -84,7 +93,7 @@ PowerShell toolkit для клиентской стороны:
|
||||
4. Включение автозапуска и проверка (`systemd` + `docs/runbook.md`).
|
||||
5. Rollout клиентов (обычно `windows/`, иногда `scripts/install_aw_linux_client.sh`).
|
||||
6. Эксплуатация и изменения через `docs/operations.md`.
|
||||
7. При необходимости — расширение мониторинга (`grafana-1c/`, `pfsense/`).
|
||||
7. При необходимости — расширение мониторинга (`grafana-1c/`, `clickhouse-1c/`, `pfsense/`).
|
||||
|
||||
## 4) Что важно понять в первую очередь
|
||||
|
||||
@@ -120,7 +129,7 @@ PowerShell toolkit для клиентской стороны:
|
||||
|
||||
- Если интересует эксплуатация и инциденты: `docs/runbook.md`, `docs/operations.md`, `docs/windows/troubleshooting.md`.
|
||||
- Если интересует автодеплой: `ansible/provision_proxmox_ct_and_deploy_aw.yml` и `ansible/tasks/`.
|
||||
- Если интересует наблюдаемость: `grafana-1c/` + `pfsense/` + `prometheus`/`alerts` конфиги.
|
||||
- Если интересует наблюдаемость: `grafana-1c/`, `clickhouse-1c/` + `pfsense/` + `prometheus`/`alerts` конфиги.
|
||||
- Если интересует hardening и DLP: `windows/hardening-recovery.ps1`, `docs/dlp-gap-analysis.md`.
|
||||
|
||||
---
|
||||
|
||||
+42
-1
@@ -82,7 +82,42 @@ Playbook вычисляет `durationDefault` автоматически (вкл
|
||||
|
||||
## Типовые инциденты
|
||||
|
||||
### Hayabusa: production validation end-to-end
|
||||
### Hayabusa: операторский сценарий по умолчанию
|
||||
|
||||
Текущий production-сценарий уже не требует ручного `accept/process-inbox`.
|
||||
|
||||
Нормальный путь для оператора:
|
||||
|
||||
1. На Windows-хосте запустить:
|
||||
|
||||
```powershell
|
||||
powershell.exe -ExecutionPolicy Bypass -File C:\ProgramData\AWatch-rus\export-upload-hayabusa-to-aw-server.ps1 -HoursBack 6 -CaseId 30
|
||||
```
|
||||
|
||||
2. Сервер `10.10.10.13` сам:
|
||||
|
||||
- примет `zip` и `.meta.json` в `/opt/activitywatch/aw-rus-ops/drop`;
|
||||
- запустит `aw-hayabusa`;
|
||||
- посчитает severity/score;
|
||||
- создаст case при уровне от `medium`;
|
||||
- отправит Telegram alert при уровне от `high`.
|
||||
|
||||
3. Проверить результат:
|
||||
|
||||
```bash
|
||||
cat /opt/hayabusa/state/latest-intake.json
|
||||
journalctl -u aw-hayabusa-drop.service -n 80 --no-pager
|
||||
curl -fsS http://127.0.0.1:5602/api/0/dlp/cases/30
|
||||
```
|
||||
|
||||
Ожидаемо:
|
||||
|
||||
- `latest-intake.json` имеет `status=ok`;
|
||||
- `drop` после обработки пустой;
|
||||
- в case есть `forensics.hayabusa`;
|
||||
- Telegram alert уже уходит в операторский чат.
|
||||
|
||||
### Hayabusa: manual fallback / production validation end-to-end
|
||||
|
||||
Цель: подтвердить один реальный путь
|
||||
|
||||
@@ -94,6 +129,12 @@ Playbook вычисляет `durationDefault` автоматически (вкл
|
||||
|
||||
Минимальный production-proven сценарий:
|
||||
|
||||
Этот путь нужен только если:
|
||||
|
||||
- надо руками прогнать старый пакет;
|
||||
- надо повторно разобрать archived zip;
|
||||
- надо отладить сам `aw-hayabusa` без drop-автоматики.
|
||||
|
||||
1. На Windows-хосте сделать экспорт:
|
||||
|
||||
```powershell
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
# File 1C Analytics
|
||||
|
||||
Эта страница описывает новый контур для **файловой 1С**.
|
||||
|
||||
## Когда он нужен
|
||||
|
||||
Используй этот контур, если:
|
||||
|
||||
- 1С файловая;
|
||||
- на RDP host нельзя или нежелательно ставить тяжёлые агенты;
|
||||
- нужен audit/detection/investigation стек;
|
||||
- Grafana должна быть не только для KPI, но и для расследования.
|
||||
|
||||
## Схема
|
||||
|
||||
```text
|
||||
1С exports + reglog + host telemetry
|
||||
↓
|
||||
ETL / normalize
|
||||
↓
|
||||
ClickHouse
|
||||
↓
|
||||
Grafana + detections
|
||||
↓
|
||||
AI Investigator
|
||||
```
|
||||
|
||||
## Основные компоненты
|
||||
|
||||
- `clickhouse-1c/README.md`
|
||||
- `clickhouse-1c/clickhouse/init/*.sql`
|
||||
- `clickhouse-1c/etl/load_1c_exports.py`
|
||||
- `clickhouse-1c/detections/rules.yml`
|
||||
- `clickhouse-1c/grafana/dashboard-catalog.md`
|
||||
- `clickhouse-1c/ai/INVESTIGATOR_API.md`
|
||||
|
||||
## Основные dashboard-ы
|
||||
|
||||
- `1C Executive Summary`
|
||||
- `1C Operations Health`
|
||||
- `1C Audit Overview`
|
||||
- `1C Detections`
|
||||
- `1C Investigation Timeline`
|
||||
- `1C Data Quality`
|
||||
|
||||
## Связанные документы
|
||||
|
||||
- [File 1C analytics stack](../1C_FILE_ANALYTICS_STACK_RU.md)
|
||||
- [1C Grafana deployment](../1C_GRAFANA_DEPLOYMENT_RU.md)
|
||||
- [Runbook](../runbook.md)
|
||||
@@ -0,0 +1,103 @@
|
||||
# Hayabusa Security Analytics
|
||||
|
||||
Эта страница описывает текущий production-контур Hayabusa внутри `AW-rus`.
|
||||
|
||||
## Что уже работает
|
||||
|
||||
- Windows-хост раз в `6` часов делает `EVTX export + upload`
|
||||
- `AW-server` автоматически подхватывает пакет из `drop`
|
||||
- `aw-hayabusa` строит forensic-отчёт
|
||||
- `aw-hayabusa-case-alert` считает severity и score
|
||||
- при уровне от `medium` создаётся или обновляется case
|
||||
- при уровне от `high` уходит Telegram alert
|
||||
|
||||
## Операторский сценарий
|
||||
|
||||
На Windows-хосте:
|
||||
|
||||
```powershell
|
||||
powershell.exe -ExecutionPolicy Bypass -File C:\ProgramData\AWatch-rus\export-upload-hayabusa-to-aw-server.ps1 -HoursBack 6 -CaseId 30
|
||||
```
|
||||
|
||||
На сервере для проверки:
|
||||
|
||||
```bash
|
||||
cat /opt/hayabusa/state/latest-intake.json
|
||||
journalctl -u aw-hayabusa-drop.service -n 80 --no-pager
|
||||
curl -fsS http://127.0.0.1:5602/api/0/dlp/cases/30
|
||||
```
|
||||
|
||||
## Что получает оператор
|
||||
|
||||
- `summary.html`
|
||||
- `manifest.json`
|
||||
- `run.log`
|
||||
- `timeline.jsonl`
|
||||
- `logon-summary-successful.csv`
|
||||
- `logon-summary-failed.csv`
|
||||
- case в DLP case API
|
||||
- Telegram alert в операторский чат
|
||||
|
||||
## Как оценивается severity
|
||||
|
||||
Используются:
|
||||
|
||||
- Hayabusa `Level`
|
||||
- top `RuleTitle`
|
||||
- failed logons
|
||||
- suspicious PowerShell
|
||||
- credential-related detections
|
||||
- timestomp detections
|
||||
|
||||
Выход:
|
||||
|
||||
- `low`
|
||||
- `medium`
|
||||
- `high`
|
||||
- `critical`
|
||||
|
||||
## Границы
|
||||
|
||||
В case возвращается только bounded metadata:
|
||||
|
||||
- `tool`
|
||||
- `host`
|
||||
- `mode`
|
||||
- `status`
|
||||
- `intake_id`
|
||||
- `package_path`
|
||||
- `sha256`
|
||||
- `report_dir`
|
||||
- `summary_html`
|
||||
- `timeline_path`
|
||||
- `manifest_path`
|
||||
|
||||
Не возвращаются:
|
||||
|
||||
- сырые EVTX
|
||||
- полный timeline body
|
||||
- полный Sigma output
|
||||
|
||||
## Где настраивается
|
||||
|
||||
Windows:
|
||||
|
||||
- `aw_windows_hayabusa_auto_upload_enabled`
|
||||
- `aw_windows_hayabusa_auto_upload_interval_hours`
|
||||
- `aw_windows_hayabusa_auto_upload_hours_back`
|
||||
- `aw_windows_hayabusa_auto_upload_mode`
|
||||
|
||||
Server:
|
||||
|
||||
- `aw_hayabusa_auto_case_enabled`
|
||||
- `aw_hayabusa_auto_case_min_severity`
|
||||
- `aw_hayabusa_telegram_enabled`
|
||||
- `aw_hayabusa_telegram_min_severity`
|
||||
- `aw_hayabusa_telegram_bot_token`
|
||||
- `aw_hayabusa_telegram_chat_ids`
|
||||
|
||||
## Связанные документы
|
||||
|
||||
- [Runbook](../runbook.md)
|
||||
- [Windows EVTX Export](../windows-hayabusa-evtx-export.md)
|
||||
- [Security analytics stack v1](../security-analytics-stack-v1.md)
|
||||
+16
-7
@@ -13,6 +13,9 @@
|
||||
- [Runtime status: Content analysis](../dlp-content-analysis-runtime-status-2026-05-13.md) - фактический live-статус dictionary/regex/OCR/IOC
|
||||
- [Hayabusa AW-rus integration](../hayabusa-aw-rus-integration-2026-05-14.md) - bounded DFIR enrichment path для incidents/cases/operator flow
|
||||
- [Hayabusa operator and IB guide](../hayabusa-operator-ib-guide-2026-05-14.md) - когда запускать forensic path, где лежат артефакты и какие у него границы
|
||||
- [Hayabusa Security Analytics](Hayabusa-Security-Analytics) - текущий production-контур: auto-upload, auto-case, severity scoring и Telegram alerts
|
||||
- [Security analytics stack v1](../security-analytics-stack-v1.md) - целевая v1-модель без претензии на Splunk-class SIEM
|
||||
- [File 1C analytics](File-1C-Analytics) - ClickHouse/Grafana/AI Investigator контур для файловой 1С
|
||||
|
||||
### Компоненты
|
||||
- [DLP Endpoint Monitoring](DLP-Endpoint-Monitoring) - мониторинг clipboard, печати, USB
|
||||
@@ -37,14 +40,15 @@
|
||||
|
||||
### Минимальная конфигурация
|
||||
```bash
|
||||
# 1. Установка на Windows workstation
|
||||
.\windows\deploy-domain-users.ps1
|
||||
# 1. Развернуть сервер
|
||||
cd ansible
|
||||
ansible-playbook -i inventory.ini deploy_aw_server.yml
|
||||
|
||||
# 2. Запуск ActivityWatch Server
|
||||
./aw-server/aw-server
|
||||
# 2. Развернуть Windows collectors
|
||||
AW_WINRM_PASSWORD='...' bash ./run_deploy_aw_windows.sh
|
||||
|
||||
# 3. Применение RU патчей
|
||||
node aw-server/aw-ru-patch.js
|
||||
# 3. Проверить операторский forensic path
|
||||
powershell.exe -ExecutionPolicy Bypass -File C:\ProgramData\AWatch-rus\export-upload-hayabusa-to-aw-server.ps1 -HoursBack 6 -CaseId 30
|
||||
```
|
||||
|
||||
### Полная конфигурация
|
||||
@@ -60,7 +64,11 @@ ansible-playbook server-setup.yml
|
||||
cd ../grafana-1c
|
||||
docker-compose up -d
|
||||
|
||||
# 4. Агрегация DLP событий
|
||||
# 4. Для файловой 1С поднять ClickHouse/Grafana scaffold
|
||||
cd ../clickhouse-1c
|
||||
docker compose up -d
|
||||
|
||||
# 5. Агрегация DLP событий
|
||||
python3 scripts/aggregate_dlp_events.py
|
||||
```
|
||||
|
||||
@@ -73,6 +81,7 @@ ActivityWatch-Russian - это корпоративная система мон
|
||||
- **Аналитика** - агрегация данных и отчеты
|
||||
- **Мониторинг** - Prometheus + Grafana дашборды
|
||||
- **Автоматизация** - Ansible деплой на Windows и Linux
|
||||
- **Security analytics** - Hayabusa, auto-case, severity scoring, Telegram alerts
|
||||
|
||||
## 🔗 Ссылки
|
||||
|
||||
|
||||
@@ -70,9 +70,22 @@ Example with custom window:
|
||||
powershell.exe -ExecutionPolicy Bypass -File C:\ProgramData\AWatch-rus\export-evtx-for-hayabusa.ps1 -DaysBack 1
|
||||
```
|
||||
|
||||
Current production path:
|
||||
|
||||
```powershell
|
||||
powershell.exe -ExecutionPolicy Bypass -File C:\ProgramData\AWatch-rus\export-upload-hayabusa-to-aw-server.ps1 -HoursBack 6 -CaseId 30
|
||||
```
|
||||
|
||||
This wrapper:
|
||||
|
||||
- builds the EVTX package;
|
||||
- uploads `.caseid` if provided;
|
||||
- uploads `.meta.json`;
|
||||
- uploads the `zip` to the AW-server drop directory.
|
||||
|
||||
## Boundaries
|
||||
|
||||
- output stays outside standard AW buckets
|
||||
- output stays outside normal DLP screenshot artifacts
|
||||
- this phase only defines and validates Windows export
|
||||
- transfer to `10.10.10.13` and Hayabusa execution belong to later phases
|
||||
- server-side Hayabusa execution happens later on `10.10.10.13`
|
||||
- only bounded Hayabusa metadata returns into the case layer
|
||||
|
||||
Reference in New Issue
Block a user