Die Containersicherheit schützt containerisierte Anwendungen Anwendungen und die zugrunde liegende Infrastruktur während des gesamten Softwareentwicklungszyklus, vom Build über die Bereitstellung bis hin zur Laufzeit.
Die Containersicherheit zielt darauf ab, sowohl die Schutzmaßnahmen zu verbessern als auch Sicherheitsrisiken zu minimieren.
Zunächst sollte geklärt werden, worum es sich bei „Containersicherheit“ handelt, da es mehrere Bedeutungen haben kann. Container sind in sich geschlossene Softwareeinheiten, die Anwendungscode mit allen erforderlichen Bibliotheken und Abhängigkeiten bündeln. Sie ermöglichen die Ausführung von Code in jeder Computerumgebung, einschließlich Desktop, traditioneller IT und Cloud-Infrastruktur. Die hier beschriebenen Sicherheitsherausforderungen konzentrieren sich auf die Container, in denen Daten gespeichert und geschützt werden.
Daten sind heute das Lebenselixier von Handel und Kommunikation. Ohne Daten würde die moderne Welt zum Stillstand kommen, weshalb Informationen um jeden Preis geschützt werden müssen. Betrug und Verbrechen sind nach wie vor fester Bestandteil des menschlichen Daseins. Die Cyberkriminellen von heute haben dieselben Motive wie die Diebe von gestern, nur dass sie über die Tools und das Know-how verfügen, um Sicherheitslücken auszunutzen.
Um Daten vollständig zu schützen, müssen wir Container verstehen. Außerdem müssen wir uns über die Bedeutung von Apps im Klaren sein, denn genau das sind Container: Apps, die eine Vielzahl von Aktionen mit den Daten eines Unternehmens oder einer Person ausführen.
Wie viele Apps? Es ist schwierig, genaue Zahlen zu ermitteln, aber im April 2025 boten Google Play und der Apple App Store jeweils rund 2 Millionen verschiedene Apps an. Unabhängig davon, ob diese Apps von einem Unternehmen oder einer Einzelperson genutzt werden, entstehen aufgrund der Übertragung von Daten vom App-Nutzer zur App selbst mit ziemlicher Sicherheit Sicherheitslücken.
Diese Übermittlung reicht von einer Person, die persönliche Finanzdaten angibt, um eine Spiele-App zu nutzen, bis hin zu einem Unternehmen, das sensible Daten und geschützte Informationen an eine Buchhaltungs-App weitergibt. Wenn solche Informationen gestohlen (durch Malware oder andere Typen von Cyberbedrohungen) oder offengelegt werden, kann dies zu PR-Alpträumen, Verlust von Wettbewerbsvorteilen und Sicherheitsverletzungen führen. Dies könnte sogar den Diebstahl von Kundendaten im Wert von Millionen oder sogar Milliarden Dollar verursachen.
Auf allen Ebenen werden also riesige Mengen privater Informationen mit und über Apps ausgetauscht. Die Risiken sind erheblich, weshalb die Aufrechterhaltung einer starken Containersicherheit ein äußerst wichtiger Bestandteil der Cybersicherheit ist.
Im Kontext der Softwareentwicklung enthalten Container-Technologien alles, was für die Ausführung von Anwendungen erforderlich ist. Der Container verpackt alles als eigenständige Einheit, die sofort einsatzbereit ist und konsistent auf verschiedenen Typen von Umgebungen ausgeführt werden kann. Alle Dateien, die zum Ausführen der App erforderlich sind, befinden sich hier:
Container-Images sind statische, unveränderliche Dateien, die ausführbaren Code enthalten und isoliert in der IT-Infrastruktur ausgeführt werden. Das Container-Image enthält die Komponenten, die zum Erstellen eines Containers auf einem Betriebssystem erforderlich sind. Container-Images werden mit verschiedenen Layern aggregiert und fungieren wie Vorlagen.
Container-Images sind das Standardformat für die Bereitstellung von Anwendungen in cloudnativen Umgebungen und bilden den Ausgangspunkt für die Containersicherheit. Das Basisimage ist für die Sicherheit von entscheidender Bedeutung, da es die Grundlage für alle abgeleiteten Images bildet. Die Containersicherheit beginnt mit der Verwendung vertrauenswürdiger Quellen, um sicherzustellen, dass das Image von einem seriösen Unternehmen stammt, in einer zuverlässigen Registrierungsstelle gehostet wird und den zugänglichen Quellcode für alle Komponenten enthält.
Es ist unerlässlich, während des gesamten Lebenszyklus ein proaktives Schwachstellenmanagement einzusetzen, selbst wenn Sie mit einem vertrauenswürdigen Basisimage beginnen. Scannen Sie regelmäßig alle Container-Images mit einem Image-Scanner, der entweder in die Registry integriert ist oder als separates Tool bereitgestellt wird. Identifizieren Sie zusätzlich Container-Images, die gegen Richtlinien oder Best Practices verstoßen, was gemeinhin als Container-Fehlkonfigurationen bezeichnet wird.
Der Softwareentwicklungslebenszyklus (SDLC) regelt die „Phasen“ des Lebenszyklus einer Software und ihrer Funktionsfähigkeit. Die hier beschriebenen sieben Schritte sind alle notwendig und sollten nacheinander durchgeführt werden.
Zahlreiche Schlüsseltechnologien arbeiten Hand in Hand mit diesen Entwicklungsphasen, und diese Lösungen (sowie die damit verbundenen Sicherheitsmaßnahmen) werden auch an der Stelle im SDLC behandelt, an der sie zum Einsatz kommen sollten.
In der Anfangsphase werden alle Aspekte des Projekts definiert. Das bedeutet, zunächst den Umfang des Projekts sowie die erwarteten Ziele und die für die Umsetzung verfügbaren Ressourcen zu skizzieren. In der Regel umfasst sie jedoch auch weitere Aktivitäten wie Kosten-Nutzen-Analysen, Machbarkeitsstudien und Terminplanung.
Es wird empfohlen, die folgenden beiden verwandten Technologien in der Planungsphase zu diskutieren, da beide in jeder Phase des SDLC implementiert werden können:
In der nächsten Phase werden die Projektanforderungen aus Sicht der Stakeholder und Nutzer genauer untersucht. Alle verschiedenen Anforderungen, die für das Projekt gelten, müssen gesammelt, analysiert und verwaltet werden.
In dieser Phase steht in der Regel der Designer im Mittelpunkt, da nun alle gesammelten Informationen über die Anforderungen in ein funktionsfähiges Software-Design gefasst werden müssen. Dieser Blueprint beschreibt die erforderliche Architektur, die notwendigen Datenstrukturen und die zu verwendende Benutzeroberfläche.
Es gibt vier verwandte Technologien, die im Idealfall bereits in der Entwurfsphase berücksichtigt werden sollten, wenn sie zum Einsatz kommen sollen.
Nachdem alle Vorbereitungen abgeschlossen sind, ist es nun an der Zeit, die Software anhand der vom Softwareentwickler bereitgestellten Designspezifikationen zu erstellen. Der Entwickler schreibt den Code, erstellt Programmierschnittstellen (APIs) und stellt sicher, dass die Komponenten wie erforderlich integriert werden.
Obwohl Linux in der Regel in der Entwurfsphase eingesetzt wird, kommt es auch während der Entwicklung zum Einsatz, da zu diesem Zeitpunkt die Softwarearchitektur und die Plattform ausgewählt werden und der Software-Codierungsprozess beginnt.
Die Einrichtung eines geeigneten Testsystems gewährleistet, dass der erstellte Code wie erwartet funktioniert und fehlerfrei bleibt. Es ist wichtig, Richtlinien zu automatisieren, die Builds mit Sicherheitsproblemen kennzeichnen, insbesondere wenn neue Schwachstellen entdeckt werden. Das Patchen von Containern ist nicht so effektiv wie deren Neuerstellung. Daher sollten Sicherheitstests Richtlinien umfassen, die automatische Neuerstellungen auslösen. Die Testphase kann Integration Testing, Unit Testing und System Testing umfassen.
Vorausgesetzt, dass alle vorherigen Schritte abgeschlossen sind, ist es an der Zeit, die Software zu veröffentlichen und für die Benutzer freizugeben. Die Bereitstellung umfasst alle damit verbundenen Aufgaben, die erforderlich sind, um das Softwareprodukt für den Massenvertrieb vorzubereiten, wie beispielsweise die Verpackung und Konfiguration der Software.
Kubernetes unterstützt die Container-Orchestrierung und -Sicherheit durch eine automatisierte und Open-Source-Plattform zum Schutz containerisierter Anwendungen. Kubernetes-Umgebungen bieten Sicherheitsfunktionen wie rollenbasierte Zugriffskontrolle (RBAC) und Netzwerkrichtlinien, die die Kommunikation zwischen Pods (wie Kubernetes Container bezeichnet) regeln. Darüber hinaus bieten sie Geheimnisverwaltung (die die sichere Speicherung sensibler Daten wie Passwörter, API-Schlüssel, Chiffrierschlüssel und Tokens priorisiert).
Die Sicherheitsprozesse von Kubernetes umfassen eine regelmäßige Überwachung aller Kubernetes-Cluster auf mögliche Fehlkonfigurationen – also Einstellungen, die Sicherheitsrisiken eröffnen und Schwachstellen aufdecken können. Technisch gesehen kann Kubernetes zwar in jeder Phase der Softwareentwicklung eingesetzt werden, jedoch wird es in erster Linie für die Bereitstellung und Skalierung containerisierter Anwendungen verwendet.
Wie bereits erwähnt, können Microservices auch während der Bereitstellung eingesetzt werden.
Die letzte Phase des SDLC-Prozesses umfasst die fortlaufende Unterstützung der Software. Diese Phase kann die Erstellung von Programmverbesserungen, Fehlerbehebungen und anderen Typen von Leistungsverbesserungen umfassen.
Es gibt verschiedene Routinemaßnahmen, mit denen Unternehmen die Wirksamkeit ihrer Sicherheitsrichtlinien unterstreichen können. Die meisten davon entsprechen gängigen Vorgehensweisen und basieren auf bewährten Prinzipien des Schwachstellenmanagements:
Viele Maßnahmen zur Containersicherheit schränken den Zugang in irgendeiner Form ein. Vergeben Sie beispielsweise Container-Berechtigungen sparsam nach dem Prinzip der geringsten Berechtigungen und gewähren Sie Containern nur die Berechtigungen, die sie für ihren Betrieb benötigen. Beschränken Sie ebenfalls die Zugriffskontrollen, sodass nur autorisierte Benutzer auf Bilder in Container-Registries zugreifen und diese bearbeiten können. Befolgen Sie die Regeln der rollenbasierten Zugriffskontrolle (RBAC), um eine ordnungsgemäße Benutzerauthentifizierung sicherzustellen und unbefugten Zugriff zu verhindern. Stellen Sie schließlich sicher, dass Basisimages für Container ausschließlich aus genehmigten Quellen stammen. Überprüfen Sie vor der Implementierung die Basisbilder, um sicherzustellen, dass sie ordnungsgemäß geprüft wurden und aus offiziell anerkannten Quellen stammen.
Um Schwachstellen effektiv zu begrenzen, müssen Unternehmen die Angriffsfläche reduzieren, indem sie Container-Images bereinigen und unnötige Dienste, Prozesse und Pakete entfernen. Ziel ist es, potenzielle Angriffsvektoren für das Targeting von Container-Images zu minimieren.
Verwenden Sie Tools für die Containersicherheit, um routinemäßige Schwachstellenscans der Containerumgebung durchzuführen. Scannen Sie außerdem Bilder in regelmäßigen Abständen und aktualisieren Sie Container-Images regelmäßig, zusammen mit der von Ihnen verwendeten Container-Engine, wie beispielsweise Docker.
Schwachstellen können jederzeit auftreten. Daher ist es empfehlenswert, durch regelmäßige Laufzeitüberwachung und Absicherung der Laufzeitsicherheit stets wachsam zu bleiben. Achten Sie auch auf mögliche Probleme mit der Netzwerksicherheit. Teamarbeit erhöht die Sicherheit – alle Mitarbeiter des Unternehmens sollten einen Beitrag leisten und sich auf das immer wichtiger werdende Thema Containersicherheit konzentrieren.
Red Hat OpenShift on IBM Cloud ist eine vollständig verwaltete OpenShift Container Platform (OCP).
Container-Lösungen führen Container-Workload aus und skalieren sie mit Sicherheit, Open-Source-Innovation und schneller Bereitstellung.
Schalten Sie mit IBM Cloud Consulting Services neue Funktionen frei und steigern Sie die geschäftliche Agilität. Entdecken Sie, wie Sie mit Hybrid-Cloud-Strategien und Expertenpartnerschaften gemeinsam Lösungen entwickeln, die digitale Transformation beschleunigen und die Leistung optimieren können.