feat: problem rules v1 brute-force, privilege spike, host silence (d1-3)
- Threshold rules on ingest; heartbeat auto-resolves host silence - Config thresholds in sac-api.env; unit tests Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
@@ -57,6 +57,16 @@ $SacSpoolDir = "D:\Soft\Logs\sac-spool"
|
||||
|
||||
Только правки `Sac-Client.ps1` / `sac-client.sh`: для RDP достаточно поднять patch в `version.txt` (и при необходимости `$ScriptVersion`); для Linux `sac-client.sh` обновится по checksum даже без смены `SSH_MONITOR_VERSION`, но **рекомендуется** поднимать обе метки для логов.
|
||||
|
||||
### 1.5. Правила Problems v1 (SAC backend)
|
||||
|
||||
| `rule_id` | Условие | Пороги (env) |
|
||||
|-----------|---------|--------------|
|
||||
| `rule:brute_force_burst` | `ssh.login.failed` / `rdp.login.failed`, один `source_ip` | `SAC_BRUTE_FORCE_WINDOW_MINUTES=15`, `SAC_BRUTE_FORCE_THRESHOLD=30` |
|
||||
| `rule:privilege_spike` | `privilege.sudo.command` на хосте | `SAC_PRIVILEGE_SPIKE_WINDOW_MINUTES=10`, `SAC_PRIVILEGE_SPIKE_THRESHOLD=10` |
|
||||
| `rule:host_silence` | был heartbeat, но устарел (`agent.heartbeat`) | `SAC_HEARTBEAT_STALE_MINUTES` (как для UI «Хосты») |
|
||||
|
||||
Свежий `agent.heartbeat` **автоматически resolve** open/ack проблему `rule:host_silence`. Одиночные `high`/`critical` (ban, mass bruteforce) — как раньше.
|
||||
|
||||
---
|
||||
|
||||
## 2. Протокол ingest
|
||||
|
||||
+2
-2
@@ -83,7 +83,7 @@
|
||||
|
||||
- [x] `d1-1` Ingest: `event_id` UUID обязателен, UNIQUE индекс, коды duplicate, логи, docs/schema
|
||||
- [x] `d1-2` MVP Problems: модель, корреляция `host+type+окно`, API `GET/ack/resolve`
|
||||
- [ ] `d1-3` Правила v1: `brute-force burst`, `privilege spike`, `host silence`
|
||||
- [x] `d1-3` Правила v1: `brute-force burst`, `privilege spike`, `host silence`
|
||||
|
||||
### День 2
|
||||
|
||||
@@ -112,7 +112,7 @@
|
||||
- [x] `13:00–14:30` модель Problems + миграция
|
||||
- [x] `14:30–16:00` корреляция при ingest (`fingerprint`, `count`, `last_seen`)
|
||||
- [x] `16:00–17:30` API `GET /problems`, `ack`, `resolve` + smoke
|
||||
- [ ] `18:00–19:00` правила `brute/privilege/silence` + unit tests
|
||||
- [x] `18:00–19:00` правила `brute/privilege/silence` + unit tests
|
||||
|
||||
#### День 2
|
||||
|
||||
|
||||
Reference in New Issue
Block a user