:quality(80)/images.vogel.de/vogelonline/bdb/1787700/1787778/original.jpg)
Schutz für Container-Umgebungen Warum Kubernetes mehr Sicherheit braucht
Für Forrester stand schon 2018 der Sieger bei der Container-Orchestrierung fest: „Kubernetes“. Doch Gartner weist 2019 auf das unreife System und die wenigen Best Practices hin. Zudem steigert Kubernetes den internen Traffic von Anwendungen deutlich. Um trotzdem fehlerhaften Datenverkehr zu erkennen und mit der hohen Dynamik von Container-Umgebungen mitzuhalten, sind neue Sicherheitsansätze nötig.
Firmen zum Thema

Als System zur automatisierten Bereitstellung, Skalierung und Verwaltung von Container-Anwendungen nutzt Kubernetes kleine, abgetrennte Teile einer Applikation, welche über das eigene Netzwerk sowie interne Cloud-Netzwerke eines Unternehmens kommunizieren. Dies erhöht sowohl den Traffic innerhalb der Anwendung als auch den damit verbundenen verwaltungsbezogenen Datenverkehr erheblich. Dadurch wird die Protokollierung und Erkennung von fehlerhaften Daten zwischen den Containern sehr komplex.
Herkömmliche Sicherheitsanwendungen zur Entdeckung oder Bewältigung von Gefahren und Malware können mit der neuartigen Microservices-Architektur sowie der Dynamik der Container-basierten Umgebungen nicht Schritt halten. So sind sie häufig nicht in der Lage, alle kompromittierten Container sowie sämtliche nicht autorisierten Verbindungen zwischen Pods aufzudecken.
Außerdem besitzt jede Anwendung, die innerhalb eines Containers läuft, eine andere und einzigartig ausnutzbare Angriffsfläche, welche das eingesetzte Security-Tool berücksichtigen muss. Daher sollten moderne Anwendungen zur Absicherung von Kubernetes-Umgebungen folgende Funktionen aufweisen:
1. Autorisierung und Authentifizierung nutzen
Von entscheidender Bedeutung ist, dass das genutzte Security-Produkt mehrere Sicherheitsebenen innerhalb eines Systems aufweist. Als ebenso wichtig gilt eine rollenbasierte Zugangskontrolle, die den Zugriff auf Kubernetes Cluster ausschließlich für Nutzer freigibt, die ihn auch tatsächlich benötigen.
Es hat sich bewährt, die Linux-Funktionen mit nicht-privilegiertem Zugriff einzuschränken und Dateisysteme nach Möglichkeit auf schreibgeschützt zu setzen. Zudem sollte jede Applikation innerhalb eines Clusters möglichst getrennt oder isoliert laufen.
Passwörter, Multi-Faktor-Authentifizierung, Zertifikate und andere etablierte Maßnahmen gewährleisten, dass Einzelpersonen – sowohl intern als auch extern – keinen einfachen Zugang zu Systemen erhalten, für die sie nicht autorisiert sind. Wenn es sich als sinnvoll erweist, können Unternehmen private Register zur Sicherung von App-Images nutzen. Dabei sollten ausschließlich speziell dafür autorisierte Mitarbeiter darauf zugreifen dürfen.
2. Cloud-native Security-Lösungen einsetzen
Cloud-native Security-Tools müssen die Anwendungsentwicklung umfassend sichern. Dies gilt für den vollständigen Lebenszyklus von der CI/CD-Pipeline (CI/CD = Continuous Integration/ Continuous Delivery beziehungsweise Continuous Deployment) bis zur Laufzeit. Dabei sollten Unternehmen berücksichtigen, dass Scans auf Sicherheitslücken schon während eines Build-Vorgangs beginnen und sich bis zum produktiven Einsatz der App fortsetzen müssen.
Der in der Vergangenheit übliche Ansatz, Sicherheitstests erst vor der Freigabe für den produktiven Einsatz durchzuführen, ist heute keine Option mehr. Denn damit erhöht sich die Gefahr, Schwachstellen zu übersehen. Zudem steigt der Aufwand für die Behebung der Sicherheitslücken durch nachgelagerte Ausbesserungen erheblich.
Außerdem ist es entscheidend, bei der Skalierung von Prozessen am Ball zu bleiben. Das Management und die Absicherung von mehreren Hundert verschiedenen Clustern, die häufig über viele Clouds verteilt sind, kann sich schnell zu einer echten Herausforderung entwickeln. Entsprechend ist hier ein umfassendes Multi-Cluster-Management-System einzusetzen. Dieses muss jedoch im Einklang mit den zentralen Sicherheitsrichtlinien stehen, um die Compliance zu gewährleisten.
3. Den Code überwachen
Ein großes Problem stellt bei Container-Umgebungen die Sicherheit des Codes dar, wenn Anwendungen von Dritten – oder auch interne Applikationen – ausgeführt werden. Entsprechend sorgfältig müssen Entwickler bei der Versionskontrolle von Anwendungen vorgehen und alle damit verbundenen Sicherheitsrisiken vollständig verstehen. Dabei ist zu berücksichtigen, dass sich die Gefahren durch die hohe Dynamik von Container-Umgebungen zwangsläufig schnell verändern.
Außerdem ist es wichtig, System-Patches zeitnah zu aktualisieren. Dies kann sich verzögern, wenn aufwändige Entwicklungsprozesse und Tests nötig sind, um Probleme durch fehlerhafte Patches zu vermeiden.
Für diese Fälle gibt es mit Virtual Patching eine schnelle Lösung. Hier lässt sich über eine entsprechende Regel in der Web Application Firewall die Ausnutzung einer Schwachstelle verhindern, ohne sie zu beheben. Durch diese Übergangslösung erhalten Entwickler mehr Zeit, den vom Hersteller bereitgestellten Patch zu prüfen und bei Bedarf an die eigenen Systeme anzupassen.
Neben regelmäßigen Schwachstellen-Scans sollten Unternehmen auch konsequent auf das „Prinzip der geringsten Privilegien“ für Komponenten setzen, die außerhalb von Kubernetes laufen. So erhalten Anwendungen und Nutzer nur die Zugriffsrechte, die sie unbedingt benötigen, um ihre Aufgaben auszuführen.
(ID:46755998)