10 - Sicherheitshandbuch

Version: 1.0 Datum: 2026-02-10 Klassifikation: Vertraulich / Intern Projekt: IceDataEmphasise

Revisionshistorie

VersionDatumAutorBeschreibung
1.02026-02-10Marcus PauliErstversion: RBAC, TLS, Netzwerksicherheit, Haertung, Compliance

Inhaltsverzeichnis

  1. Zugriffsschutz (RBAC)
  2. TLS/SSL-Konfiguration
  3. Netzwerksicherheit
  4. Haertung des Cribl-Servers
  5. Geheimnis-Management
  6. Audit-Logging
  7. Schwachstellen-Management und Update-Prozess
  8. Compliance-relevante Einstellungen

1. Zugriffsschutz (RBAC)

1.1 Rollenkonzept

Cribl Stream verfuegt ueber ein rollenbasiertes Zugriffsmodell (Role-Based Access Control, RBAC). Im IceDataEmphasise-PoC werden folgende Rollen definiert:

RolleBeschreibungBerechtigungenZugewiesene Personen
admin Vollzugriff auf alle Cribl-Funktionen Konfiguration, Benutzer-Verwaltung, System-Einstellungen, API-Zugriff Cribl-Administrator (max. 2 Personen)
editor Konfigurationsaenderungen an Pipelines, Routes, Sources Pipelines erstellen/aendern, Routes konfigurieren, Preview nutzen Senior-Operatoren
reader Nur-Lese-Zugriff auf Konfiguration und Monitoring Dashboard einsehen, Metriken lesen, Log-Viewer nutzen IT-Betrieb, Security-Analysten
api_only Programmatischer Zugriff via API Nur API-Endpunkte (kein UI-Zugang) Automatisierungsskripte, Monitoring-Tools

1.2 Lokale Benutzer konfigurieren

Im PoC werden lokale Benutzer verwendet (keine LDAP/SAML-Integration):

# Cribl Stream UI: Settings → Access Management → Users
# Neuen Benutzer anlegen:
# - Username: operator1
# - Role: reader
# - Passwort: Mindestens 12 Zeichen, Gross-/Kleinbuchstaben, Zahl, Sonderzeichen
Passwort-Richtlinie (BAIT II.4):

1.3 Mindestprivilegien-Prinzip (Least Privilege)

1.4 Berechtigungspruefung

2. TLS/SSL-Konfiguration

2.1 Uebersicht der TLS-Endpunkte

EndpunktPortTLS-Status (PoC)TLS-Status (Produktion)Beschreibung
Cribl Stream UI9000Aktiviert (selbstsigniert)Aktiviert (CA-signiert)Web-Verwaltungsoberflaeche
Cribl API9000Aktiviert (selbstsigniert)Aktiviert (CA-signiert)REST-API fuer Automatisierung
HEC Destination8088AktiviertAktiviert (CA-signiert)Ausgehende Verbindung zu Splunk HEC
S2S Destination9997Deaktiviert (VPN)AktiviertAusgehende Verbindung zu Splunk S2S
Edge → Stream9420AktiviertAktiviert (mTLS)Kommunikation Edge-Nodes zu Stream

2.2 TLS-Konfiguration fuer Cribl Stream UI

# Zertifikate hinterlegen unter /opt/cribl/certs/
/opt/cribl/certs/
  server.crt    # Server-Zertifikat (PEM)
  server.key    # Privater Schluessel (PEM, unverschluesselt)
  ca-bundle.crt # CA-Zertifikatskette (PEM)

# In Cribl UI: Settings → Global Settings → API Server
# TLS Settings:
#   Certificate: /opt/cribl/certs/server.crt
#   Private Key: /opt/cribl/certs/server.key
#   CA Certificate: /opt/cribl/certs/ca-bundle.crt
#   Minimum TLS Version: TLSv1.2

2.3 TLS-Anforderungen

ParameterAnforderungBegruendung
Minimum TLS-VersionTLS 1.2TLS 1.0 und 1.1 gelten als unsicher (BSI TR-02102-2)
Empfohlene TLS-VersionTLS 1.3Aktuelle Best Practice, bessere Performance
Cipher SuitesECDHE + AES-GCMForward Secrecy, authentifizierte Verschluesselung
Schluessellaenge (RSA)Mindestens 2048 BitBSI-Empfehlung
Schluessellaenge (ECDSA)Mindestens 256 Bit (P-256)BSI-Empfehlung
ZertifikatslaufzeitMaximal 1 JahrBranchenstandard, CA/Browser Forum

2.4 Zertifikats-Erneuerung

# Zertifikatslaufzeit pruefen
openssl x509 -enddate -noout -in /opt/cribl/certs/server.crt

# Warnung: 30 Tage vor Ablauf muss ein neues Zertifikat beantragt werden
# Automatisierung via Cron:
0 8 * * 1 openssl x509 -checkend 2592000 -noout -in /opt/cribl/certs/server.crt || \
  echo "WARNUNG: Cribl-Zertifikat laeuft in weniger als 30 Tagen ab" | \
  mail -s "Cribl TLS Certificate Expiry Warning" admin@example.de

3. Netzwerksicherheit

3.1 Firewall-Regeln

Die folgenden Ports muessen auf dem Cribl-Server geoeffnet sein. Alle anderen Ports werden durch die Host-Firewall (iptables/nftables) blockiert.

PortProtokollRichtungQuelle/ZielBeschreibung
9000TCPEingehendAdmin-NetzwerkCribl Stream UI + API
9420TCPEingehendCribl Edge NodesEdge-to-Stream Kommunikation
514TCP/UDPEingehendQuell-ServerSyslog-Empfang (optional)
4200TCPEingehendCribl Edge NodesCribl Edge Management
8088TCPAusgehendSplunk-IndexerHEC-Zustellung
9997TCPAusgehendSplunk-IndexerS2S-Zustellung
443TCPAusgehendcdn.cribl.ioCribl-Updates und Lizenzpruefung
41641UDPEin-/AusgehendTailscale DERPTailscale VPN WireGuard

3.2 iptables-Beispielkonfiguration

# Grundlegende Firewall-Regeln fuer den Cribl-Server
# Loopback erlauben
iptables -A INPUT -i lo -j ACCEPT

# Bestehende Verbindungen erlauben
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

# SSH (nur aus Admin-Netzwerk)
iptables -A INPUT -p tcp --dport 22 -s 10.0.0.0/24 -j ACCEPT

# Cribl Stream UI (nur aus Admin-Netzwerk)
iptables -A INPUT -p tcp --dport 9000 -s 10.0.0.0/24 -j ACCEPT

# Cribl Edge Kommunikation (Tailscale-Netzwerk)
iptables -A INPUT -p tcp --dport 9420 -s 100.64.0.0/10 -j ACCEPT
iptables -A INPUT -p tcp --dport 4200 -s 100.64.0.0/10 -j ACCEPT

# Tailscale WireGuard
iptables -A INPUT -p udp --dport 41641 -j ACCEPT

# Alles andere verwerfen
iptables -A INPUT -j DROP

3.3 Tailscale-VPN

Die Kommunikation zwischen Cribl Stream, den Edge Nodes und dem Splunk-Indexer erfolgt ueber ein Tailscale-VPN (WireGuard-basiert). Dies bietet:

# Tailscale-Status pruefen
tailscale status

# ACL-Konfiguration (Beispiel in tailscale admin console):
{
  "acls": [
    {"action": "accept", "src": ["tag:cribl-edge"], "dst": ["tag:cribl-stream:9420"]},
    {"action": "accept", "src": ["tag:cribl-stream"], "dst": ["tag:splunk:8088,9997"]},
    {"action": "accept", "src": ["tag:admin"], "dst": ["tag:cribl-stream:9000,22"]}
  ]
}
Hinweis: Im PoC wird Tailscale als alleinige Netzwerkabsicherung fuer die S2S-Verbindung verwendet (TLS auf S2S deaktiviert). Fuer die Produktivstellung muss TLS zusaetzlich auf S2S-Ebene aktiviert werden (Defense in Depth).

4. Haertung des Cribl-Servers

4.1 CIS-Benchmark-Referenz

Die Haertung des Cribl-Servers orientiert sich am CIS Benchmark for Debian/Ubuntu Linux. Die folgenden Massnahmen sind fuer den Cribl-Server relevant:

CIS-ReferenzMassnahmeStatusBeschreibung
1.1.1Separate PartitionenUmgesetzt/opt auf separater Partition (Cribl-Daten)
1.3.1AIDE installiertGeplantIntegritaetspruefung fuer Konfigurationsdateien
1.4.1Bootloader-PasswortUmgesetztGRUB-Passwort gesetzt
3.4.1Host-Firewall aktivUmgesetztiptables-Regeln (siehe oben)
4.1.1Audit-Daemon (auditd)UmgesetztSystem-Audit-Logs aktiviert
4.2.1Syslog konfiguriertUmgesetztrsyslog leitet an Cribl Edge weiter (Selbstmonitoring)
5.2.1SSH-HaertungUmgesetztKey-Only-Auth, Root-Login deaktiviert, Protocol 2
5.3.1Passwort-RichtlinienUmgesetztpam_pwquality konfiguriert
5.4.1Inaktive Konten sperrenUmgesetztAutomatische Sperre nach 90 Tagen Inaktivitaet
6.1.1DateiberechtigungenUmgesetztCribl-Dateien: cribl:cribl, 0750/0640

4.2 Betriebssystem-Haertung

# SSH-Haertung (/etc/ssh/sshd_config)
PermitRootLogin no
PasswordAuthentication no
PubkeyAuthentication yes
MaxAuthTries 3
ClientAliveInterval 300
ClientAliveCountMax 2
AllowUsers mpauli cribl-admin

# Unnoetige Dienste deaktivieren
sudo systemctl disable --now avahi-daemon
sudo systemctl disable --now cups
sudo systemctl disable --now bluetooth

# Dateiberechtigungen fuer Cribl
sudo chmod 0750 /opt/cribl/
sudo chmod 0640 /opt/cribl/local/cribl/auth/*.json
sudo chown -R cribl:cribl /opt/cribl/

4.3 Cribl-spezifische Haertung

5. Geheimnis-Management

5.1 Grundprinzip: Keine Secrets in Git

Strikte Regel: Sensible Daten (Tokens, Passwoerter, Zertifikats-Schluessel) duerfen niemals in das Git-Repository eingecheckt werden. Verstoesse muessen als Sicherheitsvorfall behandelt werden.

5.2 .env-Konzept

Alle sensiblen Konfigurationswerte werden ueber Umgebungsvariablen aus der .env-Datei bezogen. Diese Datei ist in .gitignore eingetragen.

# .env (Beispielstruktur - nicht die echten Werte!)
SPLUNK_HOST=splunk.example.internal
SPLUNK_HEC_TOKEN=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
SPLUNK_HEC_PORT=8088
SPLUNK_S2S_PORT=9997
CRIBL_ADMIN_PASSWORD=CHANGE_ME_ON_FIRST_LOGIN
TAILSCALE_AUTH_KEY=tskey-auth-xxxxx

5.3 Secrets-Schutz auf Dateisystemebene

# Dateiberechtigungen fuer .env
chmod 0600 /home/mpauli/IceDataEmphasise/.env
chown root:root /home/mpauli/IceDataEmphasise/.env

# Dateiberechtigungen fuer TLS-Schluessel
chmod 0600 /opt/cribl/certs/server.key
chown cribl:cribl /opt/cribl/certs/server.key

5.4 .gitignore-Eintraege

# Sensible Dateien (in .gitignore)
.env
.env.*
*.key
*.pem
*.p12
credentials/
secrets/

5.5 Rotation von Geheimnissen

GeheimnisRotationsintervallVerantwortlichProzedur
HEC-TokenQuartalsweiseSplunk-AdminIn Splunk neues Token erstellen, in .env aktualisieren, Cribl neu starten
Cribl-Admin-Passwort90 TageCribl-AdminIn Cribl UI aendern
TLS-ZertifikateJaehrlichPKI-TeamNeues Zertifikat ausstellen, auf Server kopieren, Cribl neu starten
Tailscale Auth KeyBei ErneuerungNetzwerk-TeamNeuen Key in Tailscale Admin erstellen, auf Nodes verteilen

5.6 Notfall: Secret in Git eingecheckt

  1. Sofort: Secret rotieren (neues Token/Passwort generieren)
  2. Git-Historie bereinigen:
    # Mit git-filter-repo (empfohlen)
    git filter-repo --path .env --invert-paths
    git push --force-with-lease origin main
  3. Vorfall dokumentieren im Incident-Management-System
  4. Review: .gitignore pruefen und Pre-Commit-Hooks einrichten

6. Audit-Logging

6.1 Cribl-internes Audit-Log

Cribl Stream protokolliert alle administrativen Aktionen im Audit-Log unter /opt/cribl/log/audit.log. Folgende Ereignisse werden erfasst:

EreignisBeschreibungErfasste Details
LoginErfolgreicher/fehlgeschlagener UI-LoginBenutzername, Quell-IP, Zeitstempel
Config ChangeAenderung an Pipelines, Routes, Sources, DestinationsBenutzername, geaenderte Ressource, Vorher/Nachher-Diff
User ManagementBenutzer erstellt, geaendert, geloeschtAdmin-Benutzername, betroffener Benutzer, Aenderung
System ActionsRestart, Commit, DeployBenutzername, Aktion, Zeitstempel
API AccessAPI-Aufrufe (authentifiziert)API-Endpunkt, Methode, Quell-IP

6.2 Audit-Log an Splunk weiterleiten

Zur zentralen Auswertung und Langzeitaufbewahrung wird das Audit-Log an Splunk weitergeleitet. Dies erfolgt ueber eine dedizierte File-Monitor-Quelle in Cribl Edge:

# Source-Konfiguration fuer Audit-Log
{
  "id": "cribl_audit",
  "type": "file_monitor",
  "filename": "/opt/cribl/log/audit.log",
  "sourcetype": "cribl:audit",
  "index": "idx_security"
}

6.3 Aufbewahrung

Compliance: Die zentrale Erfassung aller administrativen Aktionen in einem manipulationssicheren System (Splunk-Index mit beschraenktem Loeschzugriff) erfuellt die Anforderungen der MaRisk AT 7.2 Nr. 4 und BAIT II.7 an die Protokollierung sicherheitsrelevanter Ereignisse.

7. Schwachstellen-Management und Update-Prozess

7.1 Informationsquellen

QuelleURLPruefungsintervall
Cribl Release Notesdocs.cribl.io/stream/release-notesWoechentlich
Cribl Security Advisoriescribl.io/securityWoechentlich
Debian Security Trackersecurity-tracker.debian.orgTaeglich (automatisch)
CVE-Datenbankcve.mitre.orgBei Bedarf
BSI-Warnungenbsi.bund.de/certTaeglich

7.2 Patch-Klassifizierung

KlassifikationBeschreibungZeitrahmen fuer Installation
KritischRemote Code Execution, aktiv ausgenutzte SchwachstelleInnerhalb von 72 Stunden
HochPrivilege Escalation, Umgehung von AuthentifizierungInnerhalb von 7 Tagen
MittelInformation Disclosure, Denial of ServiceInnerhalb von 30 Tagen
NiedrigKosmetisch, geringes RisikoNaechstes Wartungsfenster

7.3 Cribl-Update-Prozedur

  1. Release Notes und Changelog pruefen
  2. Change-Antrag stellen (Standard-Change fuer Minor Updates)
  3. Backup erstellen (siehe Betriebshandbuch, Abschnitt 6)
  4. Update im Wartungsfenster durchfuehren:
    # Cribl Stream Update
    sudo systemctl stop cribl
    cd /opt/cribl
    sudo curl -Lo cribl-update.tar.gz "https://cdn.cribl.io/dl/latest-x64"
    sudo tar xzf cribl-update.tar.gz --strip-components=1
    sudo chown -R cribl:cribl /opt/cribl/
    sudo systemctl start cribl
    
    # Verifikation
    curl -s http://localhost:9000/api/v1/system/info | jq '.version'
  5. Funktionspruefung (Checkliste aus Betriebshandbuch)
  6. Change-Ticket schliessen

7.4 Betriebssystem-Updates

# Woechentliche Sicherheitsupdates (automatisiert via unattended-upgrades)
sudo apt update && sudo apt upgrade -y --only-upgrade

# Kernel-Updates erfordern Neustart und Wartungsfenster
sudo apt install linux-image-amd64
# Neustart im naechsten Wartungsfenster planen

8. Compliance-relevante Einstellungen

8.1 Regulatorischer Rahmen

Als Proof of Concept fuer eine regulierte deutsche Bank unterliegt das System den folgenden regulatorischen Anforderungen:

RegelwerkHerausgeberRelevante AbschnitteBezug zu IceDataEmphasise
MaRisk BaFin AT 7.2 (IT-Betrieb), AT 4.3.1 (Aufgabentrennung) Betriebsprozesse, RBAC, Dokumentation
BAIT BaFin II.4 (Berechtigungsmanagement), II.7 (Protokollierung), II.9 (Outsourcing) Zugriffsschutz, Audit-Logging, Vertragsmanagement Cribl
DORA EU Art. 6 (IKT-Risikomanagement), Art. 9 (Schutz und Praevention), Art. 12 (Backup) Risikobewertung, TLS/Verschluesselung, Backup-Konzept
BSI IT-Grundschutz BSI OPS.1.1.3 (Patch-Management), NET.1.1 (Netzarchitektur) Update-Prozess, Netzwerksegmentierung

8.2 Compliance-Mapping

AnforderungRegelwerkUmsetzung im PoCNachweis
Zugriffsschutz nach Mindestprivilegien MaRisk AT 4.3.1, BAIT II.4 RBAC mit 4 Rollen, Vier-Augen-Prinzip fuer Admin Benutzer-Konfiguration, Audit-Log
Verschluesselung in Transit DORA Art. 9, BSI TR-02102-2 TLS 1.2+ fuer UI/API/HEC, WireGuard fuer VPN TLS-Konfiguration, Tailscale-ACLs
Protokollierung admin. Aktionen BAIT II.7, MaRisk AT 7.2 Cribl Audit-Log, Weiterleitung an Splunk (365 Tage) Audit-Log in idx_security
Datenverlustfreiheit MaRisk AT 7.2 Persistent Queues auf beiden Destinations PQ-Konfiguration, Monitoring-Metriken
Backup-Konzept DORA Art. 12 Taegliches Backup der Konfiguration, dokumentierte Restore-Prozedur Backup-Skript, Restore-Dokumentation
Patch-Management BSI OPS.1.1.3 Woechentliche Pruefung, Patch-Klassifizierung, definierte Zeitrahmen Update-Protokoll, Change-Tickets
Aufgabentrennung MaRisk AT 4.3.1 Security-Daten via S2S, Anwendungsdaten via HEC (getrennte Kanaele) Route-Konfiguration, Index-Mapping
Geheimnis-Management BAIT II.4 .env-Konzept, keine Secrets in Git, Rotationsplaene .gitignore, Dateiberechtigungen

8.3 Audit-Vorbereitung

Fuer eine Audit-Pruefung (intern oder extern) sollten folgende Nachweise bereitgestellt werden koennen:

8.4 DORA-spezifische Anforderungen

DORA (Digital Operational Resilience Act): Seit Januar 2025 verbindlich fuer alle EU-Finanzinstitute. Die folgenden DORA-Anforderungen sind fuer IceDataEmphasise relevant:
DORA-ArtikelAnforderungUmsetzung
Art. 6 Abs. 1 Umfassendes IKT-Risikomanagement-Framework Risikobewertung des Cribl-Deployments, Dokumentation der Abhaengigkeiten
Art. 9 Abs. 2 Verschluesselung ruhender und uebertragener Daten TLS fuer Transport, PQ-Daten auf verschluesseltem Dateisystem (LUKS empfohlen)
Art. 10 Erkennung anomaler Aktivitaeten MITRE ATT&CK-Tagging in pipeline_security_auth, Splunk-Alerts
Art. 12 Backup-Richtlinien und Wiederherstellungsverfahren Taegliches Backup, dokumentierte Restore-Prozedur, Restore-Tests
Art. 28 Management von IKT-Drittanbieter-Risiken Bewertung von Cribl als IKT-Dienstleister, Vertragsgestaltung