Was ist Container-Sicherheit?

Container-Sicherheit ist:

Container-Sicherheit ist der Prozess der Implementierung von Sicherheitstools und -richtlinien, um sicherzustellen, dass alles in Ihrem Container läuft wie vorgesehen. Dazu gehört der Schutz der Infrastruktur, der Software-Lieferkette, der Laufzeitumgebung und aller Bereiche dazwischen.

Container-Sicherheit

Container-Sicherheit ist der Prozess der Implementierung von Sicherheitstools und -richtlinien, die Ihnen die Gewissheit geben, dass alle Vorgänge in Ihrem Container laufen wie vorgesehen – und zwar ausschließlich wie vorgesehen. Dazu gehört der Schutz der Infrastruktur, der Software-Lieferkette, der Laufzeitumgebung und aller Bereiche dazwischen.

In dieser Hinsicht ist die Container-Sicherheit ein kontinuierlicher Prozess. Sie sollte in Ihren Entwicklungsprozess integriert und automatisiert sein, damit Sie möglichst wenig manuell eingreifen müssen. Außerdem sollte sie auch die Wartung und den Betrieb der zugrunde liegenden Infrastruktur einschließen. Das bedeutet, dass Sie die Container-Images in der Build Pipeline und die Host-, Plattform- und Anwendungsebenen in der Runtime schützen müssen. Wenn Sie Sicherheit als Teil des kontinuierlichen Lieferzyklus implementieren, kann Ihr Unternehmen Risiken minimieren und die Schwachstellen auf einer immer größer werdenden Angriffsoberfläche reduzieren.

Kernthemen beim Schutz von Containern sind:

  • Sicherheit des Container-Hosts
  • Container-Netzwerkdatenverkehr
  • Sicherheit Ihrer Anwendung innerhalb des Containers
  • Bösartige Verhaltensweisen innerhalb Ihrer Anwendung
  • Sicherheit für Ihren Container-Management-Stack
  • Basisebenen Ihrer Anwendung
  • Integrität der Build-Pipeline

Die Maßnahmen für die Cybersicherheit sollen gewährleisten, dass alles, was Sie entwickeln, kontinuierlich funktioniert wie vorgesehen – und zwar ausschließlich wie vorgesehen.

Folgende Lösungen verwenden viele Unternehmen für ihre Container: Docker®, Kubernetes®, Amazon Web Services™ (AWS) und Microsoft®

Sicherheit für Docker

Bevor Sie damit beginnen, Ihre Container zu schützen, sollten Sie die wesentlichen Komponenten von Containern kennen. Docker, ein führender Anbieter auf dem Markt für Container-Lösungen, bietet eine Container-Plattform für die Entwicklung, Verwaltung und Sicherung von Anwendungen. Ob herkömmliche Anwendungen oder aktuelle Mikroservices – Docker ermöglicht Kunden, sie überall bereitzustellen. Wie bei jeder anderen Container-Plattform müssen Sie für einen angemessenen Schutz sorgen. Erfahren Sie mehr über Container-Sicherheit für Docker.

Sicherheit für Kubernetes

Kubernetes ist der nächste wichtige Anbieter, den Sie kennen sollten. Der Anbieter bietet eine portierbare und erweiterbare Open-Source-Plattform für die Verarbeitung von Container-Workloads und -Services. Auch wenn Kubernetes Sicherheitsfunktionen bereitstellt, brauchen Sie eine dedizierte Sicherheitslösung, die Sie schützt, da die Zahl der Angriffe auf Kubernetes-Cluster gestiegen ist. Hier erfahren Sie mehr über Sicherheitslösungen für Kubernetes.

Amazon Web Services (AWS) und Container-Sicherheit

Als nächster Anbieter ist AWS zu nennen. AWS versteht, dass Container notwendig sind und Entwickler in die Lage versetzen, Anwendungen schneller und konsistenter bereitzustellen. Daher gibt es Amazon Elastic Container Service (Amazon ECS), einen skalierbaren und leistungsstarken Service für die Container-Orchestrierung. Er unterstützt Docker-Container, beseitigt die Abhängigkeiten rund um die Verwaltung Ihrer virtuellen Computer und Container-Umgebung und ermöglicht Ihnen, Container-Anwendungen in AWS mühelos auszuführen und zu skalieren. Aber wie bei allen großen Anbietern ist auch bei AWS Sicherheit Voraussetzung für die Nutzung sämtlicher Vorteile des Services. 

Sicherheit für Microsoft Azure Container Instances

Zu guter Letzt folgen Microsoft® Azure™ Container Instances (ACI). Diese Lösung ermöglicht Entwicklern, Container in der Microsoft® Azure™ Public Cloud bereitzustellen, ohne eine zugrunde liegende Infrastruktur betreiben oder verwalten zu müssen. Sie können im Portal von Microsoft® Azure™ einfach einen neuen Container einrichten. Anschließend liefert und skaliert Microsoft automatisch die zugrunde liegenden Compute-Ressourcen. Azure Container Instances bieten hohe Geschwindigkeit und Agilität, müssen jedoch geschützt werden, damit Sie alle Vorteile nutzen können. 

Nachdem Sie die großen Anbieter kennen, sollten Sie sich im nächsten Schritt ansehen, wie Sie für die entsprechende Sicherheit sorgen. Sie können auch den Links oben folgen, um sich Details zum Schutz der einzelnen Lösungen anzeigen zu lassen. Erfahren Sie mehr über Sicherheit für Microsoft Azure Container Instances.

Schutz des Hosts

Der Schutz des Hosts beginnt mit der Auswahl des Betriebssystems, das darauf läuft. Wann immer möglich, sollten Sie ein verteiltes Betriebssystem verwenden, das für die Ausführung von Containern optimiert ist. Wenn Sie Standardverteilungen von Linux® oder Microsoft® Windows® verwenden, sollten Sie nicht notwendige Services deaktivieren oder entfernen und das Betriebssystem allgemein härten. Anschließend ergänzen Sie eine Ebene mit Sicherheits- und Überwachungstools, um sicherzustellen, dass Ihr Host funktioniert wie erwartet. Tools wie eine Applikationskontrolle oder ein Intrusion Prevention System (IPS) sind in solchen Situationen sehr nützlich.

Wenn Ihr Container in der Produktion eingesetzt wird, muss er mit anderen Containern und Ressourcen interagieren. Dieser interne Datenverkehr muss überwacht und geschützt werden. Sie erreichen dies, indem Sie den gesamten Netzwerkdatenverkehr aus Ihren Containern über ein IPS leiten. Das verändert die Art und Weise, wie Sie Sicherheitskontrollen einsetzen. Statt eine kleine Zahl sehr großer herkömmlicher IPS-Engines im Perimeter einzusetzen, implementieren Sie das IPS auf jedem einzelnen Host. Das ermöglicht Ihnen, den gesamten Verkehr wirksam zu überwachen, ohne die Leistung wesentlich zu beeinträchtigen.

Schutz der Anwendung im Container

Wenn Ihr Container in der Produktion eingesetzt wird, verarbeitet er fortwährend Daten für Ihre Anwendung, generiert Protokolldateien, speichert Dateien im Cache usw. Sicherheitskontrollen können zu gewährleisten helfen, dass es sich dabei um gewöhnliche und nicht um bösartige Aktivitäten handelt. Die Echtzeit-Anti-Malware-Kontrollen, die auf dem Inhalt des Containers laufen, sind für den Erfolg entscheidend.

Auch hier spielt ein IPS eine wichtige Rolle, und zwar in Form eines Nutzungsmusters, das unter der Bezeichnung „virtuelles Patching“ bekannt ist. Wird remote eine Sicherheitslücke erkannt, kann die IPS-Engine Versuche erkennen, sie auszunutzen, und Pakete ausgeben, die

Ihre Anwendung schützen. Dies verschafft Ihnen die Zeit, die Sie brauchen, um die Ursache in der nächsten Version dieses Containers zu beheben, statt eine Notlösung zu forcieren.

Überwachung Ihrer Anwendung

Wenn Sie Ihre Anwendung in einem Container bereitstellen, kann eine Sicherheitskontrolle nützlich sein, mit der sich Ihre Anwendung zur Laufzeit selbst schützt (Runtime Application Self-Protection, RASP). Diese Sicherheitskontrollen laufen innerhalb Ihres Anwendungscodes und fangen häufig Schlüsselaufrufe innerhalb des Codes ab oder halten sie fest. Neben Sicherheitsfunktionen wie SQL-Überwachung, Prüfung und Beseitigung von Abhängigkeiten, URL-Verifizierung und anderen Kontrollmaßnahmen kann RASP auch eine der größten Herausforderungen im Bereich Sicherheit bewältigen: die Ermittlung der Ursache.

Da sie innerhalb des Anwendungscodes positioniert sind, können diese Sicherheitskontrollen helfen, die Verbindung zwischen einem Sicherheitsproblem und der Codezeile herzustellen, die das Sicherheitsproblem verursacht. Dieser Grad an Intelligenz ist nur schwer zu übertreffen und verbessert Ihre Sicherheitslage deutlich.

Sicherheit für Ihren Container-Management-Stack

Hinsichtlich der Sicherheit wird der Management-Stack, der die Koordination Ihrer Container unterstützt, häufig übersehen. Jede Organisation, die es mit dem Einsatz von Containern ernst meint, braucht letzten Endes zwei kritische Infrastrukturkomponenten, die bei der Verwaltung des Prozesses helfen: eine Container-Registry für Datenschutz, wie Amazon ECS, und Kubernetes (um den Einsatz von Containern zu orchestrieren).

Die Kombination aus Container-Registry und Kubernetes ermöglicht Ihnen, vor und während der erneuten Bereitstellung in Ihrer Umgebung automatisch einen Satz von Qualitäts- und Sicherheitsstandards durchzusetzen.

Registrys vereinfachen die gemeinsame Nutzung von Containern und helfen den Teams, auf den Ergebnissen anderer aufzubauen. Um jedoch sicherzustellen, dass jeder einzelne Container Ihre Entwicklungs- und Sicherheitsstandards erfüllt, benötigen Sie einen automatisierten Scanner. Wenn Sie die einzelnen Container auf bekannte Sicherheitslücken, Malware und exponierte Geheimnisse scannen, bevor sie in der Registry verfügbar sind, können Sie nachgelagerte Probleme reduzieren.

Zusätzlich sollten Sie sicherstellen, dass die Registry selbst gut geschützt ist. Sie sollte auf einem gehärteten System oder einem sehr seriösen Cloud-Service betrieben werden. Auch wenn Sie auf ein Service-Szenario setzen, müssen Sie das Modell der geteilten Verantwortung verstehen und einen starken rollenbasierten Ansatz für den Zugriff auf die Registry implementieren.

Wenn Kubernetes in Ihrer Umgebung eingesetzt wird, erzielen Sie eine Menge an Vorteilen für die Orchestrierung. Ihre Teams können Ihre Umgebung dadurch optimal nutzen. Kubernetes ermöglicht Ihnen außerdem, eine Reihe von Kontrollen für den Betrieb und für Sicherheit zu implementieren, z. B. Richtlinien für Pods (Ressourcen auf Cluster-Ebene) und für Netzwerksicherheit. Auf diese Weise können Sie verschiedene Optionen durchsetzen, um Ihre Grenzwerte für Risikotoleranz einzuhalten.

Entwicklung Ihrer Anwendung auf einer sicheren Grundlage: Scannen von Containern

Sie sollten einen Workflow für das Scannen von Container-Images einrichten, um sicherzustellen, dass die Container, die Sie als Komponenten verwenden, zuverlässig und vor häufigen Bedrohungen geschützt sind. Im Rahmen dieses Workflows scannen Tools die Inhalte eines Containers und suchen nach Problemen, bevor der betreffende Container als Element für Ihre Anwendung verwendet wird. Vor der Bereitstellung des Containers in der Produktion wird außerdem ein abschließender Satz von Prüfungen durchgeführt.

Wenn es korrekt implementiert ist, wird das Scannen zu einem natürlichen Bestandteil des Kodierungsprozesses. Es ist ein vollautomatisierten Prozess, der schnell und einfach Probleme erkennt, während Sie Ihre Anwendung und deren Container entwickeln. 

Sicherstellung der Integrität der Build-Pipeline

Angreifer verlagern zurzeit ihre Angriffe auf frühere Phasen Ihrer Pipeline für kontinuierliche Integration und Bereitstellung (CI/CD). Wenn ein Angriff auf Ihren Build-Server, Ihr Code-Repository oder Ihre Entwickler-Workstations erfolgreich ist, kann sich der jeweilige Angreifer deutlich länger in Ihrer Umgebung aufhalten. Daher benötigen Sie eine Reihe starker Sicherheitskontrollen, die kontinuierlich aktualisiert werden.

Sie müssen für die gesamte Pipeline eine robuste Strategie für die Zugriffskontrolle implementieren, vom Code-Repository und der Verzweigungsstrategie bis zum Container-Repository. Bauen Sie dabei auf den Grundsatz der minimal benötigten Berechtigung. Das heißt, Sie dürfen den Zugriff nur in dem Ausmaß erteilen, der für die Ausführung der jeweiligen Aufgaben erforderlich ist. Dieser Zugriff muss regelmäßig überprüft werden.

Verbindung der einzelnen Elemente

Der Schutz Ihrer Container erfordert einen umfassenden Sicherheitsansatz. Sie müssen die Anforderungen der übrigen Teams innerhalb Ihrer Organisation erfüllen. Ihr Ansatz muss außerdem automatisierbar sein, um Ihren DevOps-Prozessen zu entsprechen. Dadurch können Sie Termine einhalten, Anwendungen schnell bereitstellen und sie gleichzeitig schützen. Das Team für Sicherheit darf nicht länger nur von außen auf Ihre Anwendungen schauen oder in letzter Minute auftauchen und Änderungen Ihres Workflows fordern. Wenn Sie von Anfang an zuverlässige Sicherheitskontrollen und automatisierte Prozesse integrieren, zerstreuen Sie Sicherheitsbedenken und können die Lücken zwischen den verschiedenen Teams leichter schließen. 

Container-Sicherheit – Themen