101 lines
3.2 KiB
Markdown
101 lines
3.2 KiB
Markdown
# Greenfield SIEM – Architektur 1.2
|
||
|
||
## Leitprinzip
|
||
|
||
Der skalierbare Eventpfad und die SIEM-Produktebene sind getrennt. Ein langsames Dashboard, eine Rule-Auswertung oder ein Grafana-Query darf niemals den HTTP-Ingress blockieren.
|
||
|
||
```text
|
||
Collectors
|
||
│
|
||
▼
|
||
HTTP Ingress ───────────────► PostgreSQL (Agent-Auth)
|
||
│ 202 Accepted
|
||
▼
|
||
Redpanda
|
||
│
|
||
▼
|
||
Processor ─────► ClickHouse events ─────► Rule Engine
|
||
│ │ │
|
||
│ │ ▼
|
||
│ │ PostgreSQL Findings
|
||
│ │
|
||
│ ├────► Analyst API/UI
|
||
│ └────► Grafana (read-only)
|
||
│
|
||
└────► gzip spool ─────► Garage/S3
|
||
|
||
Prometheus ◄──── Ingress / Redpanda / ClickHouse
|
||
│
|
||
└─────────────────────► Grafana Pipeline Health
|
||
```
|
||
|
||
## Stores
|
||
|
||
### ClickHouse
|
||
|
||
Einzige kanonische, vollständig durchsuchbare Eventtabelle. Normalisierte Felder werden spaltenorientiert gespeichert; unbekannte Restattribute liegen begrenzt in einer Map. Vollständige XML-/Raw-Batches werden nicht dupliziert.
|
||
|
||
- `events`: 90 Tage Standard-TTL
|
||
- `events_5m`: 5-Minuten-Rollup, 730 Tage Standard-TTL
|
||
- `ReplacingMergeTree` + stabile `event_uid` gegen Retry-Duplikate
|
||
|
||
Auf dem bekannten KVM-Host wird `26.3.17.56` verwendet, weil diese Version mit dem präsentierten QEMU-CPU-Modell läuft.
|
||
|
||
### PostgreSQL
|
||
|
||
Nur Control Plane und Workflow:
|
||
|
||
- Agents / Enrollment
|
||
- Rule-Sets und Rule-Registry
|
||
- Suppressions
|
||
- Detections / Status
|
||
|
||
Keine Eventhistorie.
|
||
|
||
### Redpanda
|
||
|
||
Persistenter Recovery-Puffer und Entkopplung zwischen Ingress und Verarbeitung. Standard-Retention 24 Stunden.
|
||
|
||
### Garage/S3
|
||
|
||
Komprimiertes Rohdatenarchiv. Standard-Retention 30 Tage.
|
||
|
||
### Prometheus
|
||
|
||
Nur Betriebsmetriken. Keine Benutzer/IP/Event-ID-Kardinalität als Labels.
|
||
|
||
## Rule Engine
|
||
|
||
Built-in-Rule-Sets liegen unter `deploy/rules/*.json`. Der Detector synchronisiert sie nach PostgreSQL. Das ermöglicht Versionierung im Repository und Laufzeitsteuerung über das UI.
|
||
|
||
Die Rule-Definition enthält kein freies SQL. Der Compiler akzeptiert nur erlaubte Felder, Operatoren, Gruppierungen und Regeltypen und erzeugt daraus begrenzte ClickHouse-Abfragen.
|
||
|
||
Regeltypen:
|
||
|
||
- Event Match
|
||
- Threshold
|
||
- Distinct/Spread
|
||
|
||
Rule-Set- und Regel-Aktivierungszustände werden nicht durch ein Softwareupdate zurückgesetzt.
|
||
|
||
## Analystenoberflächen
|
||
|
||
### SIEM Analyst UI
|
||
|
||
Für operative Arbeit:
|
||
|
||
- Overview
|
||
- Event Investigation und Drill-down
|
||
- Detections / Status
|
||
- Rule-Sets / Custom Rules
|
||
- Suppressions
|
||
- Agents
|
||
|
||
### Grafana
|
||
|
||
Für Exploration, Visualisierung und Betriebsüberwachung. Grafana erhält einen eigenen ClickHouse-Account mit ausschließlich SELECT-Rechten. Das mitgelieferte Datasource-Provisioning verbindet Grafana direkt mit ClickHouse; Prometheus ist die zweite provisionierte Datasource.
|
||
|
||
## Availability
|
||
|
||
Das One-Click-Compose ist ein Single-Node-Deployment und nicht hochverfügbar. Die Architektur erlaubt später getrennte Redpanda-/ClickHouse-/PostgreSQL-/Object-Storage-Nodes, ohne den HTTP-Vertrag oder das Eventmodell zu ändern.
|