Was macht Kubernetes-Audit-Logs analysieren?
Verwendungszweck
- Bei der Untersuchung von Sicherheitsvorfällen, die eine Analyse von Kubernetes-Audit-Logs erfordern
- Beim Erstellen von Erkennungsregeln oder Threat-Hunting-Abfragen für diese Domäne
- Wenn SOC-Analysten strukturierte Verfahren für diesen Analysetyp benötigen
- Bei der Validierung der Sicherheitsüberwachungsabdeckung für zugehörige Angriffstechniken
Voraussetzungen
- Vertrautheit mit Container-Sicherheitskonzepten und -Werkzeugen
- Zugriff auf eine Test- oder Laborumgebung zur sicheren Ausführung
- Python 3.8+ mit installierten erforderlichen Abhängigkeiten
- Entsprechende Autorisierung für alle Testaktivitäten
Anleitung
Parsen Sie Kubernetes-Audit-Logdateien (JSON-Lines-Format), um sicherheitsrelevante Ereignisse zu erkennen, darunter unbefugter Zugriff, Privilegieneskalation und Datendiebstahl.
import json
with open("/var/log/kubernetes/audit.log") as f:
for line in f:
event = json.loads(line)
verb = event.get("verb")
resource = event.get("objectRef", {}).get("resource")
user = event.get("user", {}).get("username")
if verb == "create" and resource == "pods/exec":
print(f"Pod exec von {user}")
Wichtige zu erkennende Ereignisse:
- pods/exec und pods/attach (Shell in Container)
- Secrets-Zugriff (get/list/watch)
- Erstellung von ClusterRoleBindings (RBAC-Eskalation)
- Erstellung privilegierter Pods
- Anonymer oder system:unauthenticated-Zugriff
Beispiele
# Secrets-Aufzählung erkennen
if verb in ("get", "list") and resource == "secrets":
print(f"Secret-Zugriff: {user} -> {event['objectRef'].get('name')}")