Was ist Container-Sicherheit? 

Container-Sicherheit ist die Praxis der Implementierung von Mechanismen/Prozessen zur Sicherung containerisierter Anwendungen und Workloads. In heutigen Cloud-Umgebungen ist es von entscheidender Bedeutung, maximale Transparenz über die Standorte des Container-Hosts zu haben, laufende oder gestoppte Container zu identifizieren, Container-Hosts zu erkennen, die nicht den CIS-Benchmarks entsprechen, und Schwachstellenanalysen durchzuführen.

Was ist ein Container? Google Cloud definiert Container als leichtgewichtige Pakete von Anwendungscode, kombiniert mit Abhängigkeiten wie bestimmten Versionen von Programmiersprachen und Bibliotheken, die für die Ausführung Ihrer Softwaredienste erforderlich sind. Eine Container-Orchestrierungsplattform wie Kubernetes hat eine große Aufgabe zu erfüllen: Sie automatisiert die Bereitstellung sowie das Starten, Stoppen und die Wartung von Images.

Da die Container-Orchestrierung über Tools wie Kubernetes abstrahiert und automatisiert wird, eignet sie sich gut für die Integration in den Lebenszyklus der Continuous Integration/Continuous Deployment(CI/CD) und ist eine Schlüsselkomponente bei der Einführung von DevOps-Verfahren. Dieser Prozess ist eine effiziente und zuverlässige Möglichkeit, neue Anwendungen oder Code-Updates bereitzustellen. Allerdings sind hierbei „Leitplanken“ notwendig, um sicherzustellen, dass die Dinge nicht aus dem Ruder laufen. In Bezug auf Container sollten wir:

  • Einen Echtzeit-Überblick über alle Container behalten, die in einer Umgebung ausgeführt werden. 
  • Basis- oder Golden-Images scannen, um sicherzustellen, dass keine neuen Container mit Schwachstellen erstellt werden
  • Die Abdeckung bis zur Laufzeit erweitern und die Prozesse scannen, die innerhalb des Containers selbst laufen, um anomale/verdächtige Aktivitäten zu identifizieren und zu blockieren.

Doch wie bei allem, was in hoher Geschwindigkeit ausgeführt wird, laufen wir auch hier Gefahr, Sicherheit und Kontrolle zu verlieren. Das bedeutet, dass die Sicherheitsteams mit ihren Kollegen in der Entwicklungsabteilung eng zusammenarbeiten müssen, um sicherzustellen, dass die richtigen Leitplanken und Kontrollen vorhanden sind.

Container-Sicherheit sollte so früh wie möglich in der CI/CD-Pipeline implementiert werden, um Anwendungsrisiken schneller aufzudecken und Unstimmigkeiten im Entwicklungsprozess so weit wie möglich zu reduzieren.

Warum ist Container-Sicherheit wichtig? 

Container-Sicherheit ist aufgrund der betrieblichen Komplexität der Technologie in Cloud-Workload-Umgebungen wichtig. Sicherheit ist auch deshalb wichtig, weil Container die Grundlage bilden, auf der so viele der heutigen Anwendungen mit Zugriff auf das öffentliche Internet basieren. Dadurch sind sie vielen potenziellen Risiken ausgesetzt. Diese mit der Containerisierung digitaler Assets verbundenen Risiken sind beherrschbar und können durch folgende Schritte reduziert werden:

  • Verschiebung nach links: Um etwaige Kommunikations- oder „Reibungsprobleme“ zwischen Teams zu beseitigen, ist es wichtig, dass die Sicherheit bereits in den frühesten Build-Phasen in den Prozess einbezogen wird, um etwaige Fehler oder Fehlkonfigurationen zu erkennen, bevor sie sich auf das Endprodukt auswirken.
  • Sicherung der Container von der Erstellung bis zur Laufzeit: Die Container-Sicherheit endet nicht mit der Bereitstellung. Die Überwachung von Containern, die in der Produktion ausgeführt werden, ist aufgrund ihrer kurzlebigen Natur von entscheidender Bedeutung. Eine Sicherheitslösung, die eine kontinuierliche Sichtbarkeit und Bewertung von Containern zur Laufzeit ermöglicht, ist für die Identifizierung von Risiken und Bedrohungen in Ihren Container-Umgebungen entscheidend.
  • Nutzung der richtigen Tools: Was ist die richtige Mischung für die Integration kontinuierlicher Sicherheit und Überwachung in Containerumgebungen? Wie oben erwähnt, kann die Kommunikation mit den Plänen und Zeitplänen der Entwickler dabei helfen, zu bestimmen, wo und in welchem Rhythmus die Sicherheit in den Container-Build-Prozess integriert werden sollte. Dies ist besonders wichtig, wenn man die von Cloud-Anbietern bereitgestellten Sicherheits- und Tools im Vergleich zu den Tools und Lösungen betrachtet, die ein internes Team in den Prozess einbringen kann, und wie diese beiden Sicherheitsebenen harmonisch funktionieren können.

Best Practices für die Container-Sicherheit 

Wir wissen nun ein wenig mehr über den Betrieb von Containern und haben erfahren, warum sie heutzutage so beliebt sind. Werfen wir als nächstes einen Blick darauf, wie Teams einige Best Practices für die Sicherung dieser Umgebungen umsetzen können.

Sicherung zur Laufzeit 

Es ist wichtig, Sicherheit nicht nur für Container und Scan-Images im Ruhezustand zu implementieren, sondern auch während der Laufzeit, wenn Container in Betrieb sind. Probleme können und sollten nach der Bereitstellung behoben werden, denn Sicherheit ist ein kontinuierlicher Prozess, der während der Entwicklung nicht vollständig gewährleistet werden kann.

Regelmäßiges Scannen von Basis- oder „goldenen“ Images 

In einer CI/CD-Umgebung können Schwachstellen jederzeit auftauchen – oder schon seit Monaten darauf warten, entdeckt zu werden. Wenn regelmäßig Bereitstellungen und Updates durchgeführt werden, ist es für ein Sicherheitsteam von entscheidender Bedeutung, jede einzelne Schwachstelle erkennen zu können. Regelmäßige Scans zur Identifizierung von Schwachstellen sind für ein Container-Sicherheitsprogramm unerlässlich. Beim Scannen von Container-Images wird in der Regel auf eine Datenbank für Schwachstellen und Exploits verwiesen, die eine Liste öffentlich bekannter Schwachstellen enthält.

Sicherung Ihres Codes und seinen Abhängigkeiten 

Infrastrukturen werden immer kleinteiliger, kurzlebiger und hängen mehr von Code als von physischen Maschinen ab. Um den Zustand des Systems zu pflegen ist es daher sehr wichtig, Container auf Schwachstellen zu überprüfen. Selbst wenn alles getestet wird und die entsprechenden Prüfungen besteht, können bei der Durchführung von Tests nach der Bereitstellung immer noch Probleme auftreten. Deshalb ist es so wichtig, eine Lösung zu verwenden, die konsistente Sicherheitsüberprüfungen in der gesamten CI/CD-Pipeline bietet. So können Teams Fehlkonfigurationen und Richtlinienverstöße korrigieren, ohne die Bereitstellung zu verzögern.

Festlegen von Leitplanken für die Container-Orchestrierung 

Die Entscheidung, den Betrieb in die virtuelle Welt zu verlagern, ist ein Wendepunkt in einer DevOps-Organisation, und Container bieten viele Vorteile. Wenn ein Unternehmen in diese Infrastruktur investiert, ist es eine gute Idee, es bis zur Anwendungsebene abzusichern und Standards für die Bereitstellung von Containern festzulegen. Die Überwachung und Verfolgung kritischer Containerereignisse in Echtzeit kann zur Optimierung der Anwendungsleistung beitragen. Darüber hinaus empfiehlt es sich, die Leistung aller laufenden Container in Echtzeit zu überwachen und zu analysieren (z. B. CPU-, Speicher- und Netzwerknutzung).

Container in Ihre umfassendere IAM-Strategie einbeziehen

Wie anderen Cloud-Ressourcen werden Containern und den darin ausgeführten Prozessen Rollen/Berechtigungen zugewiesen, die mit einem Plan für die Identitäts- und Zugriffsverwaltung (IAM) verfolgt und verwaltet werden müssen, vorzugsweise in Übereinstimmung mit LPA (Least Privilege Access). Nachdem eine DevSecOps- Organisation eine schicke, neue Multi-Cloud-Containerumgebung kalibriert hat, sollte der Zugriff auf diejenigen beschränkt werden, die ihn benötigen. IAM ist der Schlüssel, um Cloud- und Containerdienste sicher und konform zu machen. Es kann auch dazu beitragen, einen rationalen und nachhaltigen Ansatz zur Bewältigung der Perimeter-Fluidität und der erheblichen Herausforderungen bei der Verwaltung von Cloud-Umgebungen in großem Maßstab zu entwickeln.

Gängige Cloud-Container-Plattformen

Kunden haben im Rahmen Ihrer Entscheidung für einen Cloud-Service-Provider (CSP) die Wahl zwischen verschiedenen Anbietern. Zudem stehen eine Vielzahl verschiedener Container-Runtimes und Container-Orchestrierungsplattformen zur Auswahl. Es ist jedoch wichtig, eine Plattform auszuwählen, die von Ihrer bereits vorhandenen Cloud-Plattform angemessen unterstützt wird, und dabei zu berücksichtigen, dass CSPs mehrere Angebote für die Verwaltung von Containern haben.

Docker Engine 

Docker kam erstmals 2013 auf den Markt und bietet die Möglichkeit, eine Anwendung in einem Container zu verpacken und auszuführen. Die Plattform ermöglicht die gemeinsame Nutzung von Containern, während ein Nutzer arbeitet, und stellt sicher, dass jeder denselben Container und dieselbe Funktionalität sieht und damit arbeitet. Sie hilft bei der Verwaltung des Container-Lebenszyklus durch Entwicklung, Verteilung, Tests und Deployment.

Kubernetes

Kubernetes ist eine Open-Source-Plattform zur Orchestrierung von Containern für die Verwaltung von Workloads und Services. Kubernetes kümmert sich um die Bereitstellung von Containern und verwaltet auch die softwaredefinierte Netzwerkebene, über die Container miteinander kommunizieren können. Die Plattform ist portabel und erleichtert die deklarative Konfiguration und Automatisierung. Google hat das Kubernetes-Projekt im Jahr 2014 als Open-Source-Lösung bereitgestellt.

Google Kubernetes Engine

Google Kubernetes Engine (GKE) wurde 2018 eingeführt und ist ein Cluster-Manager und Orchestrierungssystem, das Docker-Container ausführt. Es funktioniert mit hybriden oder Public-Cloud-Infrastrukturen sowie vor Ort und kann Container-Cluster mit virtuellen Maschinen verwalten, um sie schnell bereitzustellen. GKE kann deklarierte Container als deklarierte und aktiv verwaltete Anwendungen planen.

Amazon Elastic Container Service

Amazon Elastic Container Service (ECS) wurde 2014 eingeführt und ist so konzipiert, dass es in den Rest der AWS-Plattform integriert werden kann, um Container-Workloads in der Cloud und vor Ort auszuführen. ECS bietet einheitliche und umgebungsübergreifende Tools, Verwaltung, Workload-Planung und Überwachung für alle Umgebungen. Nutzer können Apps auch automatisch über Verfügbarkeitszonen hinweg skalieren und Container beliebig platzieren, je nach Ressourcenbedarf und Verfügbarkeit.

Häufige Herausforderungen bei der Container-Sicherheit 

Wir haben es bereits angesprochen: Diese Cloud-Container-Umgebungen können hinter den Kulissen komplex sein. Die Benutzerfreundlichkeit wurde von den Anbietern in den letzten Jahren so sehr in den Vordergrund gestellt, dass die Komplexität in der Tat in den Hintergrund getreten ist. Das bedeutet jedoch nicht, dass Nutzer sich der Herausforderungen, die mit der Sicherung dieser Umgebungen verbunden sind, nicht bewusst sein müssen. Mit anderen Worten: Sie müssen wissen, wie es funktioniert, um zu wissen, wie Sie es verwalten können. Werfen wir einen Blick auf einige häufige Herausforderungen bei der Container-Sicherheit.

  • Mangelnde Scan-Reife: In einer aktuellen Umfrage des SANS Institute wurde festgestellt, dass Sicherheitsteams zwar große Fortschritte bei der Implementierung starker Vulnerability Management (VM)-Prozesse in ihren On-Premise-Umgebungen machen, die Komplexität moderner Cloud- und Containerumgebungen jedoch weiterhin zunimmt hinterherhinken. Dies ist natürlich teilweise auf die Tatsache zurückzuführen, dass traditionelle VM-Tools allgegenwärtig geworden sind, im Gegensatz zu Lösungen, die speziell für den Umgang mit dynamischen Cloud-Umgebungen entwickelt wurden. Dies ist zum Teil darauf zurückzuführen, dass Unternehmen auf herkömmliche Scantechnologien zurückgreifen, die sie möglicherweise bereits eingesetzt haben, im Gegensatz zu einer dynamischeren Lösung, die in der Lage ist, über ein verteiltes Netzwerk zu scannen.
  • Einfache Erweiterung: Die kurzlebige und stark verteilte Natur von containerfähigen Mikroservices kann zu einer exponentiell wachsenden Umgebung führen, mit der es schwierig sein kann, Schritt zu halten. Dies wird durch die Demokratisierung der Cloud noch verschärft, die dazu führt, dass immer mehr Mitarbeiter im gesamten Unternehmen in der Lage sind, Ressourcen nach dem Self-Service-Prinzip bereitzustellen. Dadurch ist es schwierig zu wissen, wo man bei der Fehlerbehebung suchen muss, wer „Eigentümer“ einer anfälligen Ressource ist und wer das Problem beheben kann. Denken Sie daran, dass Cloud- und Container-Plattformen ein schnelles Wachstum ermöglichen und die Sicherheit damit Schritt halten muss, um nicht die Kontrolle zu verlieren.
  • Mitarbeiter und Kultur: Es kann schlichtweg sehr schwierig sein, die richtigen Mitarbeiter mit den spezifischen Fähigkeiten zu finden, die für eine angemessene und kontinuierliche Minimierung der kurzlebigen Risiken von Containern erforderlich sind. Ein Sicherheitsteam ist möglicherweise mit modernen Cloud-Architekturen, die auf Microservices und Containern basieren, nicht besonders vertraut. Das ist sogar bei sehr talentierten Ingenieuren häufig der Fall, weil diese Technologien noch so jung sind. Eine Managed-Services-Lösung könnte einem Security Operations Center (SOC) dabei helfen, viele dieser Probleme zu lösen.

Erfahren Sie mehr über Container Security

Container Security: Aktuelles aus dem Blog