Kubernetes ist zunehmend in aller Munde, wenn es um das Management von Multi-Cloud Strategien geht. Eine wichtige Rolle spielt dabei die Maschinenidentität, also X.509 TLS-Zertifikate, die für eine sichere Machine-to-Machine-Kommunikation zwischen den Cloud-Diensten und Containern sorgen.
Kubernetes wird von einigen Experten nicht umsonst als Betriebssystem der Zukunft angesehen und hat durchaus das Potential Linux abzulösen. Um es vor Kompromittierungen zu schützen ist es deshalb wichtig, die Maschinenidentitäten zu verwalten und sich deren Bedeutung vor Augen zu führen.
Manuell vs automatisiert
X.509-Zertifikate sind für Anwendungs- und Operation-Teams nichts, was sie mit IT-Sicherheit verbinden. Leider hat dieses mangelnde Interesse zu Sicherheitsvorfällen geführt. Nicht verwaltete und dadurch nicht bekannte Maschinenidentitäten haben durch ihr Ableben zu kostspieligen zertifikatsbezogenen Ausfällen geführt. Bei Kubernetes kommt die der Cloud innewohnende Dynamik erschwerend hinzu. Denn die schnelle Bereitstellung, Veränderung und Widerrufung von Maschinenidentitäten ist hier in minutenschnelle erledigt. Dies macht eine manuelle Änderung und Verwaltung sehr aufwendig und am Ende auch langsam und teuer. Darüber ist es keine gute Idee, IT-Mitarbeiter die keine PKI-Experten sind, die Möglichkeit zu geben, Zertifikatstypen, Schlüssellänge und Schlüsselspeicher sowie Verschlüsselungsalgorithmen dynamisch zu verändern. Am Ende verwenden sie Zertifikate von nicht autorisierten CAs. Dadurch leiden Compliance und vor allem die IT-Sicherheit.
Sicherheitslücken bleiben ein Dauerproblem
Sicherheitslücken lassen sich beispielsweise im Copy-Befehl finden. Ein Angreifer kann dann Mithilfe eines Implementierungsfehlers und unachtsamen Nutzers die volle Root-Kontrolle über das Host-System und alle anderen in Kubernetes betriebenen Container übernehmen. Schwachstellen fanden sich in der Vergangenheit außerdem in den Kubelet-Versionen 1.13.6 und 1.14.2. Externe Akteure hätten bei dieser Sicherheitslücke User Interface Designs (UID) in Container-Images aushebeln können.
Schwachstellen sind jedoch nur eine der Risiken für Kubernetes. Kompromittierte Container, die Malware herunterladen oder Systeme nach Schwachstellen und sensiblen Daten durchzusuchen gehörden ebenfalls dazu. Die Manipulation der über Kubernetes verwalteten Container sind eine weitere Möglichkeit für Angreifer, die durch einen ungebremsten Ressourcenverbrauch alle dort betriebenen Anwendungen zum Absturz bringen.
Um sicherzustellen, dass nur autorisierter Code ausgeführt wird und um zu erkennen, ob Code geändert wurde, empfiehlt sich das Rugged DevOps Konzept. Die Standardisierung der Maschinenidentitätsprozesse ist ein erster Schritt auf dem Weg zu diesem Konzept. Des Weiteren müssen Workflows so gestaltet werden, dass sie den Anforderungen an Maschinenidentitäten gerecht werden. Die Bereitstellung von Zertifikaten sollte ein wesentlicher Schritt in der Konfiguration einer modernen Infrastruktur sein. Erst dann können Unternehmen die Machine-to-Machine-Kommunikation über alle Arten von Infrastrukturen hinweg problemlos verschlüsseln.
Die Ausstellung der Maschinenidentitäten sollte zentral gesteuert und verwaltet werden. Unternehmen profitieren dann von einer schnelleren Bereitstellung vertrauenswürdiger und damit sicherer Zertifikate. Darüber hinaus profitieren Compliance und die IT-Sicherheitsabteilung hat weniger Aufwand bei Auditierungen.
Zertifikate managen in Kubernetes
Ein Tool zum managen von Maschinenidentitäten ist der Cert-Manager von Jetstack. Das Programm ist ein cert-manager, der als Kubernetes Add-on zur Automatisierung der Verwaltung und Ausgabe von TLS-Zertifikaten aus verschiedenen Quellen genutzt wird. Sie stellt sicher, dass die Zertifikate gültig und regelmäßig auf dem neuesten Stand sind und versucht, die Zertifikate zu einem angemessenen Zeitpunkt vor Ablauf zu verlängern.
Mit dem Cert-Manager von Jetstack kann die Verwaltung und Ausstellung von TLS-Zertifikaten in Kubernetes automatisiert werden.
Fazit
Generell ist die beste Methode um Zertifikatsbedingte Ausfälle zu vermeiden, wenn Unternehmen Zertifikate vor ihrem Ablauf automatisch verlängern oder austauschen. Unterstützen kann ein automatisierter Zertifizierungsdienst, der in bestehende DevOps-Tools wie Kubernetes, Docker, Chef, HashiCorp Terraform und anderen integriert ist. Er bietet DevOps-Abteilungen eine automatisierte Zertifikatsausstellung und -bereitstellung innerhalb ihrer bestehenden Tools.