Sicherstellen, dass Container-Images vor der Bereitstellung frei von bekannten Schwachstellen sind.
→Integrieren Sie einen Image Scanner wie Trivy, Clair oder Grype in die CI/CD-Pipeline, um Images zu scannen und den Build fehlschlagen zu lassen, wenn kritische Schwachstellen gefunden werden.
Warum: Automatisiert die Schwachstellen-Erkennung frühzeitig ("Shift Left") und verhindert, dass anfälliger Code in die Produktion gelangt.
Sicherstellen, dass nur vertrauenswürdige, unveränderte Container-Images im Cluster bereitgestellt werden.
→Signieren Sie Images mit einem Tool wie Cosign in der CI-Pipeline. Verwenden Sie einen Validating Admission Controller (z. B. Kyverno, Gatekeeper), um die Signatur zum Zeitpunkt der Bereitstellung zu überprüfen.
Warum: Bietet kryptographischen Nachweis der Image-Integrität (es wurde nicht manipuliert) und der Herkunft (es stammt aus einer vertrauenswürdigen Quelle).
Erkennung bösartiger Aktivitäten innerhalb eines laufenden Containers (z. B. Shell gestartet, Zugriff auf sensible Dateien).
→Stellen Sie ein Laufzeit-Sicherheitstool wie Falco bereit, das eBPF verwendet, um Syscalls zu überwachen und bei verdächtigem Verhalten basierend auf einem definierten Regelsatz zu alarmieren.
Warum: Bietet Einblick in Laufzeitaktivitäten, die statisches Scannen und Admission Control nicht erfassen können. Es ist entscheidend für die Erkennung aktiver Sicherheitsverletzungen.
Durchsetzen von benutzerdefinierten, organisationsspezifischen Sicherheitsrichtlinien (z. B. "alle Images müssen aus unserem Unternehmens-Registry stammen").
→Verwenden Sie eine Policy Engine wie OPA Gatekeeper oder Kyverno als Validating Admission Controller, um in Rego oder YAML geschriebene Policies durchzusetzen.
Warum: Ermöglicht eine flexible, deklarative und automatisierte Durchsetzung von Sicherheitsrichtlinien, die über die integrierten Kontrollen von Kubernetes hinausgehen.
Verschlüsselung und Authentifizierung des gesamten Service-to-Service-Verkehrs innerhalb des Clusters.
→Implementieren Sie ein Service Mesh (z. B. Istio, Linkerd), um automatisch Mutual TLS (mTLS) für alle gemeshten Services bereitzustellen.
Warum: Erreicht Zero-Trust-Networking, indem sichergestellt wird, dass der gesamte In-Cluster-Datenverkehr verschlüsselt ist und Services die Identität des jeweils anderen gegenseitig überprüfen.
Ausführen von nicht vertrauenswürdigen oder Multi-Tenant-Workloads, die eine stärkere Isolation als Standard-Container erfordern.
→Verwenden Sie eine Sandboxed Container Runtime wie gVisor oder Kata Containers, die eine zusätzliche Isolationsschicht zwischen dem Container und dem Host-Kernel bereitstellen.
Warum: Reduziert die Angriffsfläche des Host-Kernels und erschwert die Container-Flucht erheblich.
Feingranulare Kontrolle über die Berechtigungen eines Containers auf Kernel-Ebene.
→Verwenden Sie Seccomp-Profile, um erlaubte Syscalls zu filtern, und AppArmor/SELinux-Profile, um Mandatory Access Controls (MAC) für den Datei- und Netzwerkzugriff durchzusetzen.
Warum: Diese Linux-nativen Sicherheitsfunktionen bieten eine tiefe Verteidigungsebene, die einschränkt, was ein kompromittierter Container-Prozess grundsätzlich tun kann.
Reduzierung der Angriffsfläche innerhalb eines Container-Images.
→Erstellen Sie Anwendungs-Images unter Verwendung minimaler oder "distroless" Basis-Images, die nur die Anwendung und deren direkte Abhängigkeiten enthalten.
Warum: Entfernt Shells, Paketmanager und andere Dienstprogramme, die für die Produktion unnötig sind und von einem Angreifer nach einer Kompromittierung genutzt werden könnten.