Entwickler nutzen Kubernetes als Standardtool für die Container-Orchestrierung, da die Open-Source-Software die Arbeit mit Microservices sowie die Organisation agiler Teams ideal unterstützt. Da Kubernetes so geschätzt wird, sind die eingesetzten Systeme zu einem beliebten Angriffsziel für Hacker geworden. Auch Kubernetes-Plattformen sind ebenso wenig wie andere Cloud-Anwendungen oder lokale Systeme absolut sicher. Wie Systemadministratoren und Entwickler die Container einer Anwendung dennoch bestmöglich gegen Angriffe und Schadsoftware absichern können, zeigen die folgenden Maßnahmen.
Maßnahme 1: So wenig Root-Rechte wie möglich vergeben
Im Hinblick auf die Sicherheit einer Container-Anwendung stellen wir bei Adacor unseren Kunden folgende Frage: Gibt es Container, die Root-Rechte benötigen? Ein Container mit Root-Rechten stellt eine potenzielle Gefahr für Angriffe dar! Wenn ein Hacker diesen Container oder diese Anwendung kompromittieren kann, dann kann er über die Root-Rechte weitere Anwendungen und Daten manipulieren. Im Worst Case ist das gesamte Cluster betroffen. Deshalb fahren Administratoren am besten, wenn sie die Software in Containern nur ausnahmsweise mit Root-Rechten versehen – also nur dann, wenn es unbedingt notwendig ist.
Container mit Root-Rechten müssen genauso wie Workloads auf physikalischen oder virtualisierten Servern abgeschirmt werden. Ähnlich wie auf physikalischen Servern oder virtuellen Maschinen (VMs) wehrt nur eine wirkungsvolle Ressourcen-Trennung die Angriffe ab. Containern, die auf einem Host laufen, haben den Vorteil, dass sie viele kleinere Services bereitstellen und erhebliche Ressourcen-Einsparpotenziale bieten. Cloud-native Anwendungen, die als Microservices angelegt werden, profitieren von den leichtgewichtigen, aber nur begrenzt isolierten Containern. Das Risiko ist für jede Anwendung einzeln abzuwägen: Werden schwergewichtige, lang boomende VMs mit einbezogen oder verzichtet man weitgehend auf Root-Rechte.
Kubernetes Whitepaper für alle IT-Verantwortlichen
Unser Kubernetes Whitepaper ist für alle IT-Verantwortlichen von mittelständischen Unternehmen, die eine zukunftssichere IT-Infrastruktur anstreben. Erfahren Sie im Paper:
- Die Voraussetzungen für den optimalen Einsatz von Kubernetes
- Die wirklich größten Vorteile der Technologie
- Die Unterschiede zwischen dem Einsatz in der Public vs Private Cloud und was für Ihr Unternehmen die richtige Wahl ist
Maßnahme 2: Patch-Notes sorgfältig lesen
Allen Softwarenutzern klingt es in Sachen Sicherheit nach: Verwende stets die aktuellste Version! Ist dieses Vorgehen auch bei einem sich so dynamisch entwickelnden Projekt wie Kubernetes der Königsweg? Wie häufig gibt es im Durchschnitt überhaupt Versions-Updates? Die Kubernetes-Community veröffentlicht alle drei Monate ein neues Release. Für Kubernetes-Cluster stehen drei Aktualisierungstypen zur Verfügung:
- Major-Aktualisierungen
- Minor-Aktualisierungen
- Patches
Entwickler sind gut beraten, wenn sie Patch-Notes sorgfältig lesen, um auf dem neuesten Stand zu sein. Nicht unbedingt muss man bei der Null-Version einer Major- oder Minor-Aktualisierung sofort an Bord sein. Der Einstieg bei Version x.x.1 reicht aus, um auf der sicheren Seite zu stehen und eine Menge sinnvoller Patches mitzunehmen. Wenn eine aktualisierte Minor-Version freigegeben wird, werden bis zu zwei Vorgänger-Minor-Versionen unterstützt.
Maßnahme 3: Authentifizierung und Autorisierung klar regeln
Rollenbasierte Zugriffskontrollen zählen bei Kubernetes zu den wichtigen Sicherheitsaspekten. Nachdem ein Nutzer authentifiziert wurde, bestimmt die API die Berechtigungen mit dem in Kubernetes integrierten Modell der Role Based Access Control (RBAC). Je nachdem wie die Berechtigung aussieht, können Nutzer Kubernetes-Ressourcen erstellen, lesen, aktualisieren oder löschen. Das System unterscheidet Nutzer- von Dienstkonten. Wegen des hohen Automatisierungsgrades sind in der Container-Technologie die Zugriffskontrollen nicht mehr ausschließlich an Personen gekoppelt.
Hinter Nutzerkonten verbergen sich Personen mit Policy-Zugängen. Sie loggen sich über Konten ein, die nicht von Kubernetes verwaltet werden, aber dem System bekannt sind. Dienstkonten sind in Kubernetes erstellte und verwaltete Konten. Sie regeln den Zugriff der in Kubernetes erstellten Entitäten, zum Beispiel die Kommunikation von einem Pod zum nächsten. Im Sicherheitskonzept sollten zwei Fragen eindeutig geregelt sein:
- Was dürfen Personen, die mit einem Kubernetes-Cluster arbeiten?
- Was dürfen Pods, die in einem Kubernetes-Cluster Funktionen ausführen?
Beim Einsatz von Kubernetes ist es erforderlich, im Vorfeld ein Sicherheitskonzept zu erstellen: Mit der RBAC werden detaillierte Zugriffsrechte für Kubernetes-Ressourcen auf der Cluster-Ebene oder innerhalb von Namespaces konfiguriert.
Maßnahme 4: Richtlinien stets kontrollieren
Es ist sinnvoll, den Open Policy Agent (OPA) einzusetzen. OPA ist eine quelloffene, universell einsetzbare Engine, mit der sich die kontextbewusste Durchsetzung der definierten Richtlinien über den gesamten Cluster kontrolliert lässt. OPA unterstützt die Sicherstellung, dass interne Richtlinien eingehalten werden. Zudem sollten Deployments einzelner Microservices in einer Stage-Umgebung getestet werden. Bei Codeänderungen ist eine Kontrolle im Vier-Augen-Prinzip angeraten.
Maßnahme 5: Auf Serverstabilität und Ressourcenverteilung achten
Ein Kuberntes-Cluster betreibt eine große Anzahl von Containern, deshalb sollten Ressourcen-Anforderungen und -Grenzen für einzelne Container genau definiert werden. Das hilft Kubernetes, die Pods passgenau zu managen. Die Software ist auf eine gute Ausnutzung aller Ressourcen ausgelegt. In Systemen, die nicht mit Ressourcen-Quotas beschränkt werden, besteht die Gefahr, dass Pods oder Container bei bestimmten Anwendungen Unmengen CPU und Speicher verbrauchen. Im ungünstigsten Fall kann es zu einem Out-of-Memory Kill kommen – ein Pod oder Container monopolisiert alle verfügbaren Ressourcen und andere Pods oder Containern würden in Mitleidenschaft gezogen.
Maßnahme 6: Regelmäßige Sicherheits-Scans durchführen
Ob in VMs gehostet oder in Containeranwendungen orchestriert – regelmäßige Sicherheitsscans sind für alle Computeranwendungen eine sinnvolle Maßnahme. Auch in Container-Clustern werden immer wieder Schwachstellen in der verwendeten Software gefunden und ausgenutzt. Es empfiehlt sich mindestens monatlich die eigenen Systeme auf veraltete Software, bekannte Sicherheitslücken oder unsichere Konfigurationen zu überprüfen. So behalten alle Beteiligten den Überblick und die Systeme sind abgesichert. Bei Adacor haben wir Updates für unsere Kunden natürlich immer im Blick.
Die cloudnative Container-Registry-Harbor zum Beispiel enthält einen Schwachstellenscanner, der auf mögliche Lücken aufmerksam macht. Container-Images können in Intervallen auf Sicherheitsprobleme überprüft und bei Kritikalität für weitere Downloads gesperrt werden. Sobald das Image aktualisiert und abgesichert ist, wird es wieder freigegeben. Diese Funktionalitäten helfen Entwicklern und Administratoren, die eigenen Umgebungen effektiv abzusichern.
Fazit: Ein Sicherheitskonzept und die richtigen Maßnahmen schützen am besten
Kubernetes-Systeme sind für Hacker ein beliebtes Angriffsziel. Unternehmen können sich vor Angriffen schützen, indem sie im Vorfeld ein Sicherheitskonzept erstellen. Zu den primären Überlegungen sollte dabei zählen, ob es notwendig ist, Container mit Root-Rechten zu versehen oder ob man darauf weitestgehend verzichten kann. Die Risikoabwägung kann je nach Anwendung unterschiedlich ausfallen und wirkt sich auf Schnelligkeit und Flexibilität aus. Denn VMs booten länger und verbrauchen mehr Ressourcen als „leichtgewebte“ Container-Cluster. Ein absolutes Muss für Entwickler und Administratoren: Patch-Notes sorgfältig lesen und detaillierte Zugriffsrechte für alle Kubernetes-Ressourcen der verschiedenen Ebenen konfigurieren. Damit das System keine Overloads produziert, müssen Ressourcen-Anforderungen und -Grenzen zuvor definiert werden. Regelmäßige Sicherheits-Scans gehören wie bei jedem anderen IT-System zu den Bestandteilen eines umfassenden Sicherheitskonzepts.
Sie möchten sicher und schnell auf containerbasierte Anwendungen umsteigen? – Wir haben die Lösung!
Adacor Managed Kubernetes bietet Ihnen eine voll gemanagte, maßgeschneiderte und skalierbare Kubernetes-Plattform – je nach Bedarf in der Public Cloud von Azure oder in einer Private-Cloud-Infrastruktur. Informieren Sie sich jetzt über Ihre Möglichkeiten solutions@adacor.com.