Was ist Container-Sicherheit?

Vielfältige multiethnische Gruppe von Menschen, die auf Computerbildschirme starren

Autoren

Phill Powell

Staff Writer

IBM Think

Ian Smalley

Staff Editor

IBM Think

Was ist Container-Sicherheit?

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.

3D-Design aus Kugeln, die auf einer Schiene rollen

Die neuesten Erkenntnisse und Insights zu KI

Entdecken Sie von Experten kuratierte Erkenntnisse und Neuigkeiten zu KI, Cloud und mehr im wöchentlichen Newsletter Think. 

Die Schlüsselrolle von Anwendungen

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.

Wie funktionieren Container?

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:

  • Anwendungscode: Der Anwendungscode umfasst alle ausführbaren Dateien für die Anwendung, wie beispielsweise den Quellcode und den kompilierten Binärcode.
  • Laufzeitumgebung: Die Container-Laufzeitumgebung enthält die Frameworks, Bibliotheken und Tools, die zur Ausführung des Anwendungscodes erforderlich sind.
  • Systembibliotheken: Systembibliotheken sind gemeinsam genutzte Ressourcen, die allgemeine Funktionen wie Grafikbibliotheken, Netzwerkbibliotheken und Datei-Eingabe-/Ausgabe-Transportknoten bieten.
  • System-Tools: Jede App benötigt bestimmte Dienstprogramme und Tools, damit sie ihre Funktionen ordnungsgemäß ausführen kann.
  • Konfigurationsdateien: Konfigurationsdateien legen fest, wie sich die App verhält und welche Einstellungen für sie gelten.
  • Abhängigkeiten: Abhängigkeiten sind extern gespeicherte Frameworks, Komponenten und Bibliotheken, auf die die App zugreifen können muss, um wie erwartet zu funktionieren.
  • Umgebungsvariablen: Entwicklungs-, Test- und Produktionsumgebungen können entsprechend der vom Container ausgeführten Laufzeitaktivität geändert werden. Variablen in containerisierten Umgebungen helfen dabei, diese Einstellungen zu steuern.
  • Betriebssystemkern: Container benötigen kein vollständiges Betriebssystem (OS). Stattdessen verwenden sie eine Art Virtualisierung des Betriebssystems, die Funktionen des Betriebssystemkerns nutzt.
  • Sicherheitseinstellungen: Mit diesen Einstellungen kann der Benutzer die Sicherheitsmaßnahmen anpassen, um Variablen wie Zugriffskontrollen, Berechtigungen und Ressourcenbeschränkungen zu regeln.
OpenShift 

Erfahren Sie, wie Container in der Cloud mit OpenShift ausgeführt werden

Container erleichtern das Erstellen, Ausführen und Verschieben von Anwendungen in verschiedenen Umgebungen. Dieses Video zeigt, wie OpenShift on IBM Cloud Teams dabei hilft, containerisierte Anwendungen effizient zu verwalten und die Cloud-Entwicklung schneller und zuverlässiger zu machen.

Was sind Container-Images?

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.

Containersicherheit während des gesamten Softwareentwicklungslebenszyklus

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.

Planung

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:

  • CI/CD-Pipeline: Die Continuous Integration/Continuous Deployment (CI/CD)-Pipeline ist ein DevOps-Workflow, bei dem containerisierte Anwendungen durch automatisierte Sicherheitsprüfungen an Geschwindigkeit und Effizienz gewinnen. Durch automatisierte und kontinuierliche Sicherheitsüberwachung können Probleme zur Behebung gemeldet werden, sodass Reparaturen durchgeführt werden können, bevor weitere Folgen auftreten. Die Pipeline kann durch die Implementierung von Shift-Left weiter gestärkt werden, einem Ansatz, der Sicherheitsmaßnahmen früher in den DevOps-Prozess integriert. Die Verwendung von Containern in Verbindung mit einer CI/CD-Pipeline unterstützt die allgemeine Integration von Sicherheitspraktiken in die von DevSecOps-Teams verwendeten Workflows.
  • Lieferketten: Lieferketten sind ein weiteres Beispiel für eine verwandte Technologie, die eng mit Elementen der Containersicherheit verflochten ist. Sicherheitsteams, die sich mit der Verbesserung der Sicherheit von Containern in der Lieferkette befassen, führen regelmäßig Scans von Container-Images und zugehörigen Komponenten durch. Dies hilft dabei, neue Cyberbedrohungen und bekannte Schwachstellen zu bewältigen.

Anforderungsanalyse

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.

Design

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.

  • Cloud: Die weitverbreitete Einführung von Containern fiel mit der ähnlich breiten Akzeptanz von Cloud Computing zusammen. Container werden nun in großer Zahl in der Cloud eingesetzt, um cloudnative Anwendungen zu erstellen. Die Verantwortung für den Schutz cloudbasierter Informations-Assets liegt bei Cloud-Service-Providern wie IBM Cloud, Google Cloud, Microsoft Azure und Amazon Web Services (AWS). Die Einrichtung der Cloud-Sicherheit umfasst die Umsetzung von Sicherheitsmaßnahmen, die den Datenschutz, die Infrastruktursicherheit und das Identitätsmanagement fördern. Workloads, die in die Cloud verlagert werden, sind mit denselben grundlegenden Sicherheitsproblemen konfrontiert: Image-Repositorys müssen weiterhin regelmäßig gescannt werden, um ihre Funktionsfähigkeit sicherzustellen, auch wenn sie in Cloud-Umgebungen gespeichert sind. Die Cloud-Implementierung sollte idealerweise bereits in der Entwurfsphase des SDLC beginnen, da sie erhebliche Auswirkungen auf die Architektur und die Ressourcenplanung hat – beides Aspekte, die vor Beginn der Entwicklung berücksichtigt werden müssen.
  • Linux: Linux ist ein wichtiger Bestandteil der Containersicherheit. Die Open-Source-Plattform stellt die grundlegenden Bausteine für die Containersicherheit sowie erforderliche Sicherheitsfunktionen wie Firewalls bereit. Linux-Namespaces sind Bereiche, in denen laufende Container innerhalb ihrer Umgebung effektiv isoliert und ihr Zugriff auf Ressourcen minimiert werden können, während der sonstige konsistente Betrieb aufrechterhalten bleibt. Linux-Container nutzen die Fähigkeiten des Linux-Kernels voll aus, indem sie verschiedene Methoden zur Einschränkung und Isolierung containerisierter Workloads einsetzen. Unter Linux werden wichtige Programmdetails finalisiert und die eigentliche Programmierung beginnt. Daher kann sie während der Entwurfsphase oder später bei der Umsetzung erfolgen.
  • Microservices: Wie bei Linux verwenden Microservices Container, um jeden Microservice zu isolieren und ihm eine eigene „Sandbox“-Umgebung zuzuweisen, die vom Host-Betriebssystem und anderen Diensten getrennt ist. Dies reduziert die Angriffsfläche und verbessert die Abwehrfähigkeiten. Darüber hinaus erhalten Microservice-Container zusätzliche Skalierbarkeit. Wie bei anderen Best Practices für die Containersicherheit wird auch bei Microservices das Prinzip der minimalen Rechtevergabe angewendet, wonach ein Container nur die absolut notwendigen Berechtigungen erhält, damit er seine Funktion wie vorgesehen ausführen kann, ohne jedoch seine Zugriffsmöglichkeiten auf Ressourcen zu überschreiten oder andere Container zu beeinträchtigen. Idealerweise sollten Microservices bereits in der Entwurfsphase eingesetzt werden, da dort monolithische Anwendungen in kleinere Dienste zerlegt werden, die dann unabhängig voneinander bereitgestellt werden können. Unter bestimmten Umständen können Microservices jedoch auch während der Bereitstellung eingesetzt werden.
  • Virtuelle Maschinen: Virtuelle Maschinen (VMs) können zusätzliche Containersicherheit bieten, da sie eine zusätzliche Isolationsschicht bieten. VMs verfügen über ein eigenes unabhängiges Betriebssystem, wodurch das Risiko einer Kontamination von Containern durch Interaktion mit anderen Containern verringert wird, da sie keine Ressourcen vom Host-System anfordern müssen. VMs bieten außerdem eine stärkere Sicherheitsgrenze als Container allein, wodurch das Risiko verringert wird, dass sich eine Sicherheitsverletzung auf das gesamte Dateisystem ausbreitet und die verarbeiteten Workflows beeinträchtigt. Der Einsatz von virtuellen Maschinen sollte bereits in der Entwurfsphase erfolgen, da hier die Architektur und Struktur eines Systems konzipiert und geplant werden.  

Entwicklung

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.

Testen

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.

Bereitstellung

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

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.

Wartung

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.

Best Practices für die Container-Sicherheit

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:

Beschränkter Zugriff

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.

Exposition minimieren

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.

Routinemäßige Schwachstellenscans durchführen

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.

In der Defensive bleiben

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.

Weiterführende Lösungen
IBM Red Hat OpenShift

Red Hat OpenShift on IBM Cloud ist eine vollständig verwaltete OpenShift Container Platform (OCP).

Red Hat OpenShift erkunden
Container-Lösungen

Container-Lösungen führen Container-Workload aus und skalieren sie mit Sicherheit, Open-Source-Innovation und schneller Bereitstellung.

Container erkunden
Cloud-Beratungsleistungen 

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.

Cloud-Services
Machen Sie den nächsten Schritt

Modernisieren Sie Ihre Infrastruktur mit den Containerlösungen von IBM. Mit der umfassenden Container-Plattform von IBM können Sie containerisierte Workloads flexibel, sicher und effizient über verschiedene Umgebungen hinweg ausführen, skalieren und verwalten.

Containerlösungen kennenlernen Kostenloses IBM Cloud-Konto erstellen