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:
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.
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:
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.
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.
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.
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.
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).
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.
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 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 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 (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 (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.
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.
Container Security: Aktuelles aus dem Blog