Zum Inhalt springen

Audit-Export (SIEM)

Orimora kann seinen Audit-Log an ein externes SIEM streamen (Splunk, Elastic, einen Syslog-Collector, …). Ein Hintergrund-Drain liest neue Audit-Events der Reihe nach und schickt sie an jeden konfigurierten Sink; ein persistierter Cursor erlaubt das Fortsetzen nach Neustart oder Ausfall.

Der Exporter ist automatisch aktiv, sobald mindestens ein Sink konfiguriert ist — es gibt keinen separaten Schalter. Sinks werden über Umgebungsvariablen konfiguriert (SIEM-Verdrahtung gehört in die Infrastruktur-Konfig, nicht in ein UI-Formular). Eine schreibgeschützte Status-Seite liegt unter Einstellungen → Admin → Audit-Export.

Konfiguriere einen oder mehrere. Jedes Event wird an alle konfigurierten Sinks zugestellt.

POSTet Batches als JSON { "events": [ … ] } an deinen Collector. Die Anfrage läuft über Orimoras SSRF-geschützten Outbound-Fetch (private/Metadaten-IPs werden abgewiesen).

Terminal-Fenster
AUDIT_EXPORT_HTTP_URL=https://siem.example.com/ingest
# Optional: Body signieren. Header X-Orimora-Signature: sha256=<hex von HMAC-SHA256(body)>
AUDIT_EXPORT_HTTP_SECRET=ein-shared-secret

Sendet eine RFC-5424-Zeile pro Event über UDP (Standard) oder TCP. Facility ist local0; die Severity wird abgebildet (info→6, warning→4, critical→2). Der Nachrichtentext ist das Event-JSON.

Terminal-Fenster
AUDIT_EXPORT_SYSLOG_HOST=10.0.0.20
AUDIT_EXPORT_SYSLOG_PORT=514
AUDIT_EXPORT_SYSLOG_PROTOCOL=udp # oder tcp

Hängt newline-getrenntes JSON (ein Objekt pro Zeile) an einen Pfad an — praktisch für einen Sidecar-Log-Shipper (Vector, Fluent Bit, Promtail).

Terminal-Fenster
AUDIT_EXPORT_FILE_PATH=/var/log/orimora/audit-export.ndjson
Terminal-Fenster
AUDIT_EXPORT_FLUSH_INTERVAL_SECONDS=60 # wie oft der Drain läuft
AUDIT_EXPORT_BATCH_SIZE=500 # max. Events pro Batch
AUDIT_EXPORT_VISIBILITY_LAG_SECONDS=10 # Events jünger als dies überspringen (Commit-Ordering-Sicherheit)

Ein kurzer Visibility-Lag (Standard 10s) bedeutet, dass ein Event erst exportiert wird, wenn es einige Sekunden alt ist; das verhindert, dass eine leicht verspätet committete Transaktion vom Cursor übersprungen wird. Es exportiert immer nur eine Instanz gleichzeitig (Postgres-Advisory-Lock), horizontale Skalierung ist also sicher.

Unter Einstellungen → Admin → Audit-Export siehst du die aktiven Sinks, die Cursor-Position, den aktuellen Backlog (noch nicht exportierte Events) und den letzten Drain — und kannst per Test-Event senden ein synthetisches Event an deine Sinks schicken, ohne den Audit-Log zu beschreiben.

Vollständige action-Werte siehe Audit-Log-Aktionen.