Ein Penetrationstester erhielt in 15 Minuten Root-Zugriff auf unseren Kubernetes-Cluster. Hier ist, was sie ausgenutzt haben. Die Angriffsfolge: - Gefundene exponierte Kubernetes-Dashboard (unser Fehler) - Dashboard hatte ein nur lesendes Service-Konto (wir dachten, das sei sicher) - Service-Konto konnte Geheimnisse in allen Namespaces auflisten - Fand AWS-Anmeldeinformationen in einem Geheimnis - Nutzte AWS-Anmeldeinformationen, um auf das EC2-Instanzprofil zuzugreifen - Instanzprofil hatte vollständigen Kubernetes-Admin-Zugriff über IAM - Nutzte kubectl, um ein privilegiertes Pod zu erstellen - Entkam zum Knoten - Root-Zugriff auf den gesamten Cluster Was wir dachten, dass wir richtig gemacht haben: - Dashboard war schreibgeschützt - Geheimnisse waren im Ruhezustand verschlüsselt - Netzwerkrichtlinien waren vorhanden - Regelmäßige Sicherheitsupdates Was wir verpasst haben: - Dashboard sollte überhaupt nicht exponiert sein - Service-Konten benötigen das Prinzip der minimalen Berechtigung - Geheimnisse sollten keine AWS-Anmeldeinformationen enthalten (verwenden Sie stattdessen IRSA) - Pod-Sicherheitsrichtlinien wurden nicht durchgesetzt - Knoten-Zugriff war nicht gehärtet Die Behebung dauerte 2 Wochen: - Kubernetes-Dashboard vollständig entfernt - IRSA für den gesamten Pod-AWS-Zugriff implementiert - Strenge PSPs/Pod-Sicherheitsstandards angewendet...