Die durchschnittliche Erkennungszeit eines Breach beträgt 207 Tage. Ohne qualitatives Logging operiert ein Angreifer unsichtbar.
Was protokollieren¶
- Authentifizierungsereignisse (Login, fehlgeschlagener Login)
- Autorisierungsfehler (403)
- Änderungen von Berechtigungen und Rollen
- Zugriffe auf sensible Daten
- Änderungen der Systemkonfiguration
Strukturiertes Logging¶
import structlog log = structlog.get_logger() log.warning(“auth.failed_login”, username=username, ip=request.remote_addr, reason=”invalid_password”)
NIEMALS Passwörter, Tokens oder API-Schlüssel protokollieren!¶
Alerting-Regeln¶
alerts: - name: brute_force_detected condition: “count(failed_login) > 10 in 5m WHERE same ip” severity: high action: block_ip + notify_security
Log-Pipeline¶
Anwendung → Fluentd/Vector → Elasticsearch/Loki → Grafana/Kibana → Alerting
- Logs zentralisieren — nie nur auf der lokalen Festplatte
- Vor Manipulation schützen (append-only)
- Aufbewahrung mindestens 90 Tage
- Alerting regelmäßig testen
Wichtigste Erkenntnis¶
Alle Sicherheitsereignisse strukturiert protokollieren. Zentralisieren, überwachen, alarmieren.