Probleme in segmentierten Anwendungen aufdecken Container-Probleme mit Security und Monitoring
Die Bedeutung von Docker und Kubernetes in der aktuellen Softwareentwicklung wächst. Deren vorteilhaften Eigenschaften werfen allerdings auch Fragen in Hinblick auf ihre Überwachung und Sicherheit auf.
Anbieter zum Thema

Docker und Lösungen wie Kubernetes haben offenbar einen Nerv in der agilen Softwareentwicklung getroffen. Der Einsatz von Containern bei der Bereitstellung von Anwendungen und Services erfreut sich wachsender Beliebtheit. Inzwischen hantieren selbst ambitionierte Heimnutzer wie selbstverständlich mit Docker-Images, um damit Server-Anwendungen auf PC oder ihrem NAS zu installieren.
Containerisierung als Basis aktueller IT-Konzepte
Containerlösungen sind technische Antworten auf einen seit Jahren erkennbaren Paradigmenwechsel in der IT. Der begann mit agilen Vorgehensmodellen in der Entwicklung, die stark auf die Automatisierung setzen. Das Konzept von DevOps ermöglicht es Teams heute, mit „Infrastructure as Code“ und „Configuration as Code“ ihre Infrastruktur selbst aufzubauen und skalieren. Statt einzelne Komponenten oder Bibliotheken zu aktualisieren, werden neue Image-Dateien erstellt und als Ganzes automatisiert ausgerollt.
Mit der Aufspaltung umfangreicher IT-Projekte in kleinere Arbeitspakete, die in Sprints umgesetzt werden, geht eine Aufspaltung der IT-Strukturen einher. Statt monolithischer Anwendungen wird an Mikroservices gearbeitet, die in Orchestrierungsumgebungen zur Gesamtanwendung zusammengestellt werden.
Die Vorteile liegen nahe: Anwendungstests können bereits vor der Bereitstellung durchgeführt werden, und zwar in einer Umgebung, die sich nicht von der Produktivumgebung unterscheidet. In Multi-Cloud-Umgebungen lassen sich Container mit geringen Aufwänden verschieben. Und potenziell kann jeder Service in einem eigenen Container laufen.
Mehr Fragmente bedeuten mehr Bedrohung
Gerade diese Fragmentierung der Infrastruktur wirft aber auch auf Fragen in Hinblick auf die IT-Sicherheit auf. Aktuelle Infrastrukturen sind ein Geflecht aus Containern, Cloud-Umgebungen und Netzwerkverbindungen. Damit werden sowohl die Überprüfung auf Schwachstellen und das Schließen von Sicherheitslücken deutlich anspruchsvoller. Potenzielle Bedrohungen jedes einzelnen Containers ergeben sich aus:
- DDoS-Attacken auf Anwendungsebene und Cross-Site-Scripting-Angriffe auf öffentlich zugängliche Container.
- Kompromittierung des Containers, die bereits im Entwicklungsprozess beginnen kann. Viel zu oft gehen Entwickler davon aus, dass die benutzten Code-Libraries sicher sind. Doch gerade die Libraries von Drittanbietern können sich als besonders riskant erweisen. Das gilt auch für externe Images, die niemals ungeprüft genutzt werden sollten. Gefahren erwachsen hier ebenfalls aus der Codebasis und möglicherweise falsch gesetzten Rechten, die zu viele Privilegien umfassen.
- Container-Breakouts, also die Isolationsschicht der Container wird überwunden. Damit besteht die Gefahr, dass ein nicht autorisierter Zugriff auf andere Container, das Host-System oder gar das Rechenzentrum erfolgt.
- Schwachstellen im Framework selbst, also Sicherheitslücken in der Docker-Umgebung oder Orchestrierungslösungen wie Kubernetes.
Als unmittelbare Folge dieser Schwachstellen, könnten unbemerkt Mechanismen eingeschleust werden, die den Container dazu zwingen, besonders viele Systemressourcen an sich zu ziehen, um so die Performance anderer Container oder Umgebung zu beeinträchtigen. Zudem kann es Lücken in den Kommunikationsprotokollen geben, die für den Datenaustausch verwendet werden.
Erschwert wird das Aufspüren und Schließen von Schwachstellen im Umfeld von Containern dadurch, dass diese oft eine begrenzte Lebenszeit haben.
Docker und Kubernetes fordern Monitoring heraus
Das Schließen von Sicherheitslücken ist indes nur ein Aspekt bei der Nutzung der Containerisierung. Schließlich geht es nicht nur um sichere, sondern funktionierende und belastbare Anwendungen. Leistung und Verfügbarkeit aller Anwendungen innerhalb eines Containers müssen genauso geprüft werden, wie CPU- und Speicherverbrauch in Hinblick auf einen Maximalwert. Anforderungsraten, Datendurchsatz und Fehlerquote liefern wichtige Informationen über die Gesundheit einzelner Container respektive der Gesamtanwendung.
Klassisches Application Performance Monitoring oder Infrastruktur-Monitoring müssen in einer zunehmend komplexen IT-Struktur zwangsläufig an ihre Grenzen stoßen. Denn je fragmentierter die gesamte Umgebung, umso schwieriger wird eine rein manuelle Überwachung, um operative Kennzahlen (Work Metrics) und Werte, die die Ressourcen betreffen (Resource Metrics), zu ermitteln. Aufgrund der gewählten Struktur ist typischerweise eine ganze Reihe von Dingen parallel im Auge zu behalten: Die Container selbst, die jeweilige Cloud-Plattform, einzelne Services und auch die Kubernetes-Umgebung, um etwa über fehlgeschlagene Starts oder Pod-Neustarts Informationen zu erhalten. Diese Aufgaben sind mit klassischen Monitoring-Ansätzen kaum zu bewältigen.
Sicherer Betrieb, aber mit den richtigen Werkzeugen
Aus den genannten Gründen und Voraussetzungen ergibt sich, dass ein sicherer und stabiler Betrieb von Container-Umgebungen und aktueller Infrastruktur am besten durch optimal darauf abgestimmte Lösungen für das Monitoring gewährleistet wird. Damit darf und sollte auch schon im Rahmen des Entwicklungsprozesses begonnen werden. Denn das Monitoring kann bereits wichtige Ergebnisse liefern, um Schwachstellen in der Performance der Gesamtanwendung aufzudecken.
Eine umfassende Überwachungslösung für containerisierte Umgebungen berücksichtigt zum einen die Sicherheit. „Static Application Security Testing“ (SAST) kann bereits in einer frühen Phase, in der Code noch nicht vollständig ausführbar sein muss, durchgeführt werden, um Risiken in Containern und den verwendeten Libraries zu entdecken. „Dynamic Application Security Testing“ verhindert das Deployment von anfälligem Code zu verhindern.
Gerade weil in komplexen Umgebungen eine Vielzahl von Containern und Services mit der damit korrespondierenden Zahl von Metriken zu überwachen sind, muss das Monitoring übersichtlich sein und über Automatisierungen verfügen, damit DevOps- und DevSecOps-Teams potenzielle Probleme rasch erkennen. Nur so können sie so rechtzeitig handeln, um größere Ausfälle oder gar Stillstände zu verhindern.
Methoden des maschinellen Lernens leisten im Monitoring gute Dienste, weil sie nicht ausschließlich Abweichungen gegenüber vorher definierten Schwellenwerten bemerken, die ein „gesundes“ System beschreiben, sondern in der Lage sind, auf Basis eigener Prognosen auf mögliche Probleme hinweisen. Das können bereits sich verstärkende Latenzen bei Datenbankabfragen sein, die dem Team so gar nicht aufgefallen wären.
Ein sicherer und stabiler Betrieb von Container-Umgebungen ist somit möglich, wenn das Monitoring Sicherheit und Performance abdeckt, Anomalien automatisiert erkennt und „Real User Monitoring“ und „Application Performance Monitoring“ nicht in separaten Datensilos voneinander trennt.
* Alexander Weber ist Regional Vice President Central Europe bei Datadog, der Überwachungs- und Sicherheitsplattform für Cloud-Anwendungen. Weber, der über knapp 20 Jahre Vertriebs- und Managementerfahrung verfügt, zeichnet in der Rolle das operative Geschäft und das Wachstum von Datadog in den Kernregionen DACH, BeNeLux sowie Osteuropa verantwortlich. Vor seinem Wechsel zu Datadog Ende 2021 war Alexander Weber bei dem IT-Security-Anbieter Tanium als Regional Vice President für Deutschland beschäftigt. Davor war er Director of Sales bei ServiceNow. Weitere Stationen seiner Karriere umfassen unter anderem Juniper Networks, CA Technologies und Dell. In seiner neuen Position bei Datadog berichtet Weber direkt an Patrik Svanström, Vice President EMEA Sales.
(ID:48109520)