• ADACOR
  • FILOO

So schützen Sie Anwendungen in Kubernetes vor Hackern

Zuletzt aktualisiert am 12. August 2020

Das Open-Source-System Kubernetes hat sich in den letzten fünf Jahren zum Standardtool für die Container-Orchestrierung entwickelt. Entwickler setzen auf die Container-Technologie, da sie das Arbeiten mit Microservices und die Organisation in agilen Teams ideal unterstützt. Aufgrund der Beliebtheit von Kubernetes sind die entsprechenden Systeme zu einem beliebten Angriffsziel geworden. Kubernetes-Plattformen sind ebenso wenig wie andere Cloud-Anwendungen oder lokale Systeme absolut sicher. Wie Systemadministratoren und Entwickler die Container einer Anwendung bestmöglich absichern können, zeigt unser Artikel.

Wenn es um die Sicherheit einer Container-Anwendung geht, stellen wir bei Adacor unseren Kunden zunächst folgende Frage: Gibt es Container, die Rootrechte benötigen? Sobald ein Container Rootrechte hat, stellt er eine potenzielle Gefahr dar. Schafft es ein Angreifer diesen Container oder diese Anwendung zu kompromittieren, ermöglichen ihm die Rootrechte die Manipulation weiterer Anwendungen und Daten. Im schlimmsten Fall kompromittiert ein Angreifer das gesamte Cluster. Daher sind Admins gut beraten, wenn sie Software in Containern nur in seltenen Fällen mit Rootrechten versehen und das nur, wenn es unbedingt notwendig ist.

Managed Kubernetes

Auf Private Cloud in Deutschland oder MS Azure.
Setup, Konfiguration & Betrieb inklusive.
Hier informieren!

So wenig Rootrechte wie möglich

Container mit Rootrechten müssen ebenso wie Workloads auf physikalischen oder virtualisierten Servern abgeschirmt werden. Ähnlich wie auf physikalischen Servern oder virtuellen Maschinen (VMs) wehrt nur eine wirkungsvolle Trennung der Ressourcen Angriffe von Hackern ab. Der Vorteil von Containern, die auf einem Host laufen, besteht darin, dass sie zahlreiche 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. Es ist eine Risikoabwägung, die je nach Anwendung getroffen werden muss: Werden schwergewichtige VMs, die lange booten, miteinbezogen oder verzichten die Cloud-Experten weitgehend auf Rootrechte?

Ein Konzept dient als Basis für die Sicherheit in Kubernetes

Patch-Notes sorgfältig lesen

Allen Software-Usern klingt es in Sachen Sicherheit immer nach: Stets die aktuellste Version verwenden! Ist das bei einem sich so dynamisch entwickelnden Projekt wie Kubernetes ebenfalls der Fall? Wie häufig gibt es im Durchschnitt überhaupt Versions-Updates? Alle drei Monate veröffentlicht die Kubernetes-Community ein neues Release. Für Kubernetes-Cluster gibt es drei Typen von Aktualisierungen: Major-Aktualisierungen, Minor-Aktualisierungen und Patches. Unsere Empfehlung: Entwickler sollten sorgfältig die Patch-Notes 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. In der Regel ist man auf der sicheren Seite und nimmt eine Menge sinnvoller Patches mit, wenn man bei Version x.x.1 einsteigt. Wenn eine aktualisierte Minor-Version freigegeben wird, werden immer bis zu zwei Vorgänger-Minor-Versionen unterstützt.

Authentifizierung und Autorisierung

Rollenbasierte Zugriffskontrollen sind bei Kubernetes ein wichtiger Sicherheitsaspekt. Nach der Authentifizierung eines Benutzers bestimmt die API seine Berechtigungen mit dem in Kubernetes integrierten Modell der Role Based Access Control (RBAC). Je nach Berechtigung können Benutzer Kubernetes-Ressourcen erstellen, lesen, aktualisieren oder löschen. Dabei unterscheidet das System Nutzerkonten von Dienstkonten. Aufgrund des hohen Automatisierungsgrades sind in der Container-Technologie die Zugriffskontrollen nicht mehr länger ausschließlich an Personen gekoppelt.

Hinter Nutzerkonten verbergen sich Personen mit Policy-Zugängen. Sie loggen sich über Konten ein, die selbst nicht von Kubernetes verwaltet werden, Kubernetes aber bekannt sind. Dienstkonten sind in Kubernetes selbst erstellte und verwaltete Konten. Sie regeln den Zugriff der in Kubernetes erstellten Entitäten, zum Beispiel die Kommunikation von einem Pod zum nächsten. Das Sicherheitskonzept sollte eindeutig regeln: Was dürfen Personen, die mit einem Kubernetes-Cluster arbeiten? Und was dürfen Pods, die in einem Kubernetes-Cluster Funktionen ausführen?

Ein im Vorfeld erstelltes Sicherheitskonzept ist beim Arbeiten mit Kubernetes erforderlich: Mit der Role Based Access Control (RBAC) werden detaillierte Zugriffsrechte für Kubernetes-Ressourcen auf der Clusterebene oder innerhalb von Kubernetes-Namespaces konfiguriert.

Sie möchten sicher und schnell auf containerbasierte Anwendungen umsteigen? – Wir haben die Lösung!

Adacor Managed Kubernetes Cluster 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 bei unserem Solution Manager Bastian Kurz über Ihre Möglichkeiten solutions@adacor.com.

Richtlinien kontrollieren

Der Einsatz des Open Policy Agent (OPA) ist sinnvoll. OPA ist eine quelloffene, universell einsetzbare Engine, welche die kontextbewusste Durchsetzung der zuvor definierten Richtlinien über den gesamten Cluster kontrolliert. OPA hilft bei der Sicherstellung der Einhaltung interner Richtlinien. Zudem sollten Deployments einzelner Microservices stets in einer Stage-Umgebung getestet werden. Bei Codeänderungen ist eine Kontrolle im Vier-Augen-Prinzip angeraten.

Serverstabilität und Ressourcenverteilung

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 ansonsten die Gefahr, dass Pods oder Container bei bestimmten Anwendungen Unmengen CPU und Speicher verbrauchen. Schlimmstenfalls 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.

Regelmäßige Sicherheits-Scans

Ob in VMs gehostet oder in Containeranwendungen orchestriert – regelmäßige Sicherheits-Scans 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 entsprechender Kritikalität für weitere Downloads gesperrt werden. Wurde das Image aktualisiert und abgesichert, wird es wieder freigegeben. Diese Funktionalitäten helfen Entwicklern und Admins bei der effektiven Absicherung der eigenen Umgebung.

Fazit: Mit einem Sicherheitskonzept auf der sicheren Seite

Kubernetes-Systeme werden ein immer beliebteres Angriffsziel von Hackern. Mit einem im Vorfeld erstellten Sicherheitskonzept schützen sich Unternehmen vor Angriffen. Eine erste Überlegung sollte dabei sein, ob es notwendig ist, Container mit Rootrechten zu versehen, oder ob darauf weitestgehend verzichtet werden kann. Diese Risikoabwägung, die je nach Anwendung unterschiedlich ausfallen kann, hat Auswirkungen auf Schnelligkeit und Flexibilität. Denn VMs booten länger und verbrauchen mehr Ressourcen als „leichtgewebte“ Container-Cluster. Absolutes Muss für Entwickler und Admins: sorgfältig Patch-Notes 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 genau definiert werden. Regelmäßige Sicherheits-Scans gehören wie bei jedem anderen IT-System zu einem umfassenden Sicherheitskonzept.

Weitere spannende Artikel zu Kubernetes lesen Sie hier:

Schließen Sie sich über 1.300 IT-Experten an.
Alle 14 Tage Top-Infos zu Cloud, Hosting und Management erhalten.

Tags: , , , , , , , , , , ,

Verwandte Artikel