Container Security: 7 Basis-Tipps, die jeder kennen sollte

Jetzt Artikel teilen:

Mit diesen Tipps zur Container Security erreichen Sie mehr Sicherheit und Stabilität bei Docker-Containern.

Container-Technologien haben sich in den letzten Jahren in der Anwendungsentwicklung durchgesetzt. Denn Container beschleunigen und vereinfachen die Entwicklung und den Rollout von Anwendungen erheblich. Zudem werden Rechen- und Speicherressourcen deutlich sparsamer genutzt. Auch macht der Einsatz von Containern die Anwendung plattformunabhängig. Dies sowie eine einfache Portabilität macht Container vor allem für den Einsatz in Multi-Cloud-Umgebungen sehr interessant.

Container Security nicht vergessen

Bei aller Beliebtheit von Containern und den nachweislichen Vorteilen: Auch bei dieser Technologie gilt es, nicht die Sicherheitsaspekte zu vernachlässigen. Denn die wachsende Beliebtheit von Containern macht sie auch vermehrt als Angriffsziel interessant. Der nächste logische Schritt im Rahmen der DevOps-Bemühungen von Unternehmen sollte deshalb in Richtung DevSecOps gehen. Hierbei wird die verbesserte Integration von Entwicklung (Dev) und Betrieb (Ops) mit dem Sicherheitsteam (Sec) angestrebt.

Wenn Unternehmen Container im Business-Kontext nutzen, müssen diese auch den gesetzlichen und internen Sicherheitsvorgaben entsprechen. In vielen Unternehmen haben sich die Produktionsumgebungen in den letzten Jahren durch den Einsatz der Container-Technologie gewandelt. In der Folge gilt es daher, auch die Sicherheitsstrategie zu aktualisieren. Und das bedeutet sowohl die Container-Entwicklungsumgebungen als auch die dahinterliegende Infrastruktur zu schützen. Die folgenden Tipps können dabei helfen.

7 Tipps für mehr Container Security

Tipp #1: Host-Systeme kontinuierlich aktualisieren

Sicherheit fängt beim Betriebssystem an. Veraltete Kernelversionen und daraus resultierende Sicherheitslücken öffnen möglichen Angreifern die Tür zur Container-Architektur von Unternehmen. Deshalb ist es unerlässlich, das Betriebssystem durch regelmäßige Patches immer auf dem neuesten Stand zu halten. Im Idealfall etabliert ein Unternehmen integrierte Prozesse, um Systeme regelmäßig auf veraltete Betriebssystem- und Kernelversionen zu überprüfen.

Tipp #2: Nur vertrauenswürdige Images verwenden

Unternehmen sollten Container Images nur aus verlässlichen Quellen installieren. Im Idealfall verwenden sie nur Container Images aus internen Repositories oder sicheren durch Docker zertifizierten Image-Repositories. Ansonsten ist es ratsam, sich auf Image Repositories von zertifizierten Drittanbietern zu beschränken. Das verringert die Gefahr, fehlerhafte oder gar absichtlich manipulierte Versionen aus anderen Libraries zu nutzen.

Tipp #3: Regelmäßige Image Vulnerability Scans

Neue Schwachstellen werden ständig entdeckt. Deshalb ist es wichtig, Images regelmäßig mittels Vulnerability Scans auf Schwachstellen zu überprüfen. Insbesondere Images aus frei zugänglichen Bibliotheken gilt es, am besten proaktiv auf Sicherheitsrisiken zu überprüfen. Tools für integriertes Image Scanning helfen, direkt nach dem Build-Prozess potenzielle Gefahren zu erkennen, bevor das Image in die Stage Registry gelangt.

Tipp #4: Wissen, welche Container von Schwachstellen betroffen sind

Mit der Einführung von Containern steigt auch die Menge an Open Source Code, den Entwickler in die Software einbringen. So basieren inzwischen viele Container-Ökosysteme auf Open Source Code. Das bedeutet, dass Entwickler entsprechend stark auf Module oder Code Snippets aus Open-Source-Projekten angewiesen sind. Auch hier werden fast täglich neue Sicherheitslücken entdeckt.

Daher ist es wichtig, betroffene Container möglichst schnell nicht nur in Images, sondern auch in laufenden Umgebungen finden zu können. Besonders wichtig ist es in der Produktion, Container schnell identifizieren zu können, die von Sicherheitslücken betroffen sind. Nur so können die Teams unmittelbar reagieren und eingreifen. Es genügt dabei nicht nur rasch herauszufinden, welche Container Sicherheitslücken aufweisen. Die Teams müssen auch in der Lage sein schnell festzustellen, ob die entsprechende Sicherheitslücke bereits ausgenutzt wurde.

Tipp #5: Docker Container nicht privilegiert laufen lassen

Container funktionieren über Root-Rechte. So benötigt der Docker-Daemon Root-Rechte, wenn Anwendungen und Container mit Docker verwendet werden. Anwender haben darüber einen privilegierten Zugriff auf das System. Eindeutige Richtlinien (Namespaces) in der Interaktion zwischen Containern und Host minimieren das Sicherheitsrisiko. Denn sie vergeben nur die Rechte, die für die Rolle notwendig sind. Kernel-Sicherheitsfunktionen unter Linux – wie Seccomp, CGroups oder SELinux – schränken den Container-Zugriff über das Host-Betriebssystem ein.

Doch selbst wenn die Verwendung von Docker auf vertrauenswürdige Benutzer beschränkt ist, können potenzielle Schwachstellen durch den Docker-Daemon ausgenutzt werden. Auch Anwendungen, die auf dem REST-Modell (Representational State Transfer) basieren, können Hackern mögliche Schwachstellen offenlegen. Das Sicherheitsrisiko bestimmt sich also letztlich daraus, wie sauber die Software im Container ist und ob sie bösartigen Code enthält.

Tipp #6: Container-Ressourcen limitieren

Es ist wichtig, Ressourcen einzuschränken, auf die Container zugreifen. Am besten ist es daher, Ressourcen wie CPU oder Memory vorab zu konfigurieren. Das vermeidet nicht nur den „Noisy Neighbour“-Effekt. Es verhindert auch Denial of Service (DoS) oder Forkbombs. Darüber hinaus ist es ratsam, die Kommunikation über das Internet zu limitieren, um DDoS-Angriffe (Distributed Denial of Service) zu vermeiden. In Kubernetes ist es zudem möglich, eine maximale Ressourcenmenge pro Container zu definieren und zuzuweisen.

Nicht zu vergessen sind Container-Anwendungsdienste, die ein externer Kubernetes-Cluster bereitstellt. Sie erhöhen das Sicherheitsrisiko und bieten möglichen Angreifern ein „Window to exploit“. Um potenzielle Angriffsvektoren zu minimieren, ist es deshalb wichtig, unnötige Kommunikationspfade zu deaktivieren.

Tipp #7: Docker Volumes für persistente Daten nutzen

Zustandsbehaftete Daten sollten immer außerhalb von Containern gespeichert werden. Die Verwendung von Volumes bietet sich bei zentralem Logging in verteilten Systemen beispielsweise mit ELK-Services (Elasticsearch, Logstash und Kibana) an. Auch Logfiles sollten an einer zentralen Stelle gesammelt und verarbeitet werden. Das erleichtert das Monitoring vor allem bei verteilten Microservices.

Container Security: Last but not least

Wie bei Cyber Security im Allgemeinen gilt auch bei Container Security das grundsätzliche Prinzip: Für eine effektive Sicherheit ist es nötig, die Angriffsfläche für Hacker zu minimieren. Dazu ist es besonders in Cloud-Umgebungen wichtig zu wissen, welche Netzwerk-Kommunikationspfade genutzt werden. Alle Pfade, die nicht aktiv genutzt werden, sollten identifiziert und geschlossen werden. Das minimiert die Angriffsfläche nachhaltig.

Container optimal im Griff

Was gehört alles zum erfolgreichen Einsatz von Containern in der Anwendungsentwicklung? Erfahren Sie mehr über die Planung und Orchestrierung von Container-Plattformen.

Jetzt kostenlos downloaden

Title Photo by Daniel von Appen on Unsplash

Jetzt Artikel teilen:

Das könnte Sie auch interessieren