12 Best Practices für Ihre Container Security
Kubernetes-Container setzen sich immer mehr durch, doch ihr Einsatz kommt nicht ohne Security-Herausforderungen.
Container-Technologien wie Docker und Kubernetes revolutionieren die Softwareentwicklung, bringen jedoch auch neue Anforderungen in puncto IT Security mit sich. Durch unsichere Konfigurationen, veraltete Software oder falsche Berechtigungen entstehen Risiken, die sensible Daten und Anwendungen gefährden können. Eine durchdachte Sicherheitsstrategie ist daher unerlässlich. Hier erfahren Sie die besten Tipps und Strategien rund um das Thema Container Security.
In a nutshell: Was ist Container Security?
Bei der Container-Sicherheit in der IT geht es darum, Anwendungen, die in Containern ausgeführt werden, zu schützen und vor potenziellen Bedrohungen und Schwachstellen zu bewahren. IT-Container sind leichtgewichtige, isolierte Anwendungsumgebungen. Sie ermöglichen die konsistente Bereitstellung von Anwendungen und deren Abhängigkeiten über verschiedene Plattformen hinweg. Ihre Isolation bietet zwar ein gewisses Maß an Sicherheit, da sie eine Trennung zwischen den Anwendungen und dem zugrundeliegenden Betriebssystem gewährleistet. Doch dies allein reicht nicht aus.
Warum ist Container Security wichtig?
Die hohe Dynamik, welche die Container-Technologie in die Entwicklung und Bereitstellung von Anwendungen bringt, kommt nicht ohne ihre Schattenseiten. Bereits die Qualitätssicherung des Quellcodes, um etwa Schwachstellen zu vermeiden, wird durch das erhöhte Tempo deutlich erschwert.
Der nächste logische Schritt im Rahmen der DevOps-Bemühungen von Unternehmen sollte deshalb in Richtung DevSecOps gehen. Dies macht Security zum integralen Teil der Verschmelzung von Entwicklung (Dev) und Betrieb (Ops), die meist mit der Einführung von Container-Technologien einhergeht.
Doch nicht nur bei der Entwicklung der Anwendung, auch bei der Konfiguration der Container-Umgebung können sich Fehler einschleichen, die von Angreifern ausgenutzt werden könnten. Beachten Sie daher die folgenden Best Practices:
Container Security Best Practices
-
1. Nur vertrauenswürdige Images verwenden
Container-Sicherheit fängt schon beim Onboarding, also in einem sehr frühen Stadium an. Installieren Sie daher Container nur aus Quellen, die Sie als vertrauenswürdig einstufen können und hosten Sie dazu bestenfalls eine eigens abgesicherte interne Docker-Registry wie GitLab oder nutzen Sie die Private Registry von plusserver.
Geben Sie in den Richtlinien vor, dass auch die Admins nur vorab gescannte und validierte Container-Images verwenden dürfen. Darüber hinaus sollten Sie die Images regelmäßig überprüfen und bei Auffälligkeiten isolieren. - 2. Updates und Bugfixes installieren Open Source ist bei Containerisierung und Kubernetes Segen und Fluch zugleich. Denn aufgrund der quelloffenen Technologien werden Sicherheitslücken zwar von einer großen Community beobachtet und meist schnell gefixt. Doch zugleich ergibt sich daraus auch eine große Angriffsfläche, weil sich Cyberattacken aufgrund der großen Verbreitung für Angreifer besonders lohnen. Oberstes Ziel muss es daher sein, sämtliche Betriebssystem- und Kernel-Updates zeitnah zu installieren und gegebenenfalls mit automatisierten Rollout-Prozessen zu arbeiten.
- 3. Regelmäßige Image Vulnerability ScansNeue Schwachstellen werden ständig entdeckt. Deshalb ist es wichtig, Images regelmäßig mittels Vulnerability Scans auf Schwachstellen zu überprüfen. Insbesondere bei Images aus frei zugänglichen Bibliotheken gilt es, diese 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.
-
4. Wissen, welche Container von Schwachstellen betroffen sindMit 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 essenziell, 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. -
5. Container nicht privilegiert laufen lassen Container funktionieren über Root-Rechte. So benötigt zum Beispiel 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. -
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. Mit dem Management-Tool 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. - 7. Docker Volumes für persistente Daten nutzenZustandsbehaftete 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.
-
8. Zero-Trust im Netzwerkverkehr Der Datenverkehr, der sich zwischen den einzelnen Servern ergibt, ist im Container-Umfeld deutlich umfangreicher als bei herkömmlichen Anwendungen. Die Überwachung und Auswertung des Traffics ist daher etwas schwieriger. Unternehmen, die Cloud-Container-Dienste nutzen, sollten daher Zero-Trust-Sicherheit in ihre Architektur einplanen und so die Angriffsfläche für Hacker möglichst geringhalten.
Ein Zero-Trust-Ansatz stellt sicher, dass sämtliche Machine-to-Machine-Transaktionen authentifiziert und privat sind. Zero-Trust-Sicherheit ersetzt dabei implizites Vertrauen, das auf dem Netzwerkstandort eines Geräts oder der Authentifizierung eines Nutzers in einem bekannten Netzwerk basiert, durch eine explizite Verifizierung für den Zugriff auf einen Service, ein Gerät oder ein Daten-Repository. Dabei sollten die Sicherheitsrichtlinien, Benutzer- und Gruppen-IDs sowie Zertifikate portabel sein. Das gilt umso mehr für eine komplexe Multi-Cloud-Infrastruktur. -
9. Container-Monitoring-Tools nutzenKubernetes-Container können entweder von außen angegriffen werden oder durch Phishing-Attacken von innen. Angreifer agieren oftmals über Schwachstellen im Netzwerk oder in den Services selbst. Das Tückische an vielen Angriffen auf Container-Infrastrukturen ist, dass sich die Malware schon länger dort befindet, bevor es zur Auslösung kommt.
So nutzen beispielsweise vulnerable Bibliotheken und Pakete den Container zunächst aus. Sie lösen aber erst zu einem späteren Zeitpunkt eine Rechteerweiterung aus, um zusätzlichen Schaden zu verursachen und beispielsweise Datendiebstahl zu verüben. Moderne Kubernetes-Monitoring-Tools erkennen auch solche mehrstufigen Angriffe. -
10. Von Machine Learning profitieren Häufig finden bei Cyberangriffen im Container-Umfeld Privilegien-Erweiterungen und verdächtige Prozesse wie Port-Scans statt. Unternehmen sollten sich daher nicht nur auf eine herkömmliche Container Firewall verlassen, sondern den Schutz über einen zusätzlichen verhaltensbasierten Lernprozess verbessern.
Dieser erkennt, ob bestimmte Aktivitäten in der Vergangenheit regelmäßig erfolgt sind oder nicht. Solche lernenden Algorithmen und möglichst weitreichende Automatisierungsmaßnahmen können dazu beitragen, dass Admins auch in Zukunft das Katz-und-Maus-Spiel gegen die Cyberkriminalität gewinnen. -
11. Container-Sicherheit automatisieren Die Komplexität von Container-Infrastrukturen generiert eine immense Datenmenge. Unter den Alerts befinden sich deshalb zuweilen Fehlalarme. Daher ist es empfehlenswert, mit Hilfe von Wahrscheinlichkeiten zu arbeiten und möglichst viele Entscheidungen der Technik zu überlassen.
Erhöhen Sie so nach und nach den Automatisierungsgrad im Hinblick auf Ihre Container Security und arbeiten Sie mit einer zweistufigen Lösung mit unterschiedlichen Sicherheitsansätzen. Im Zweifelsfall kann eine automatisierte und regelbasiert arbeitende Sicherheitslösung im richtigen Moment die entsprechenden Teile des Systems abriegeln, um Schäden zu verhindern oder zu minimieren.
Einen solchen Grad an Automatisierung bring zum Beispiel die Workload Protection von plusserver, die Kunden bequem und günstig im As-a-Service-Modell beziehen können. -
12. Auf integrierte Sicherheitslösungen setzen Insgesamt sind es viele Stellschrauben, die zu einer zuverlässigen Container-Security-Strategie gehören. Dabei können entweder einzelne Tools unterstützen, die unabhängig voneinander installiert und betrieben werden. Oder Sie setzen als Unternehmen auf eine Art Schweizer Taschenmesser für Ihre Container Security.
Es gibt eine Vielzahl von Open-Source-Tools, die jeweils Teile der Container-Sicherheit abdecken können. Beispielsweise Istio als Service-Mesh, Grafeas für die Metadatenverwaltung und Anchore für die Überwachung der Dateisystemstruktur auf Sicherheitslücken. Diese Tools bieten zwar Schutz vor Cyberangriffen, decken aber immer nur einen bestimmten Bereich ab.
Eine integrierte Cloud-Lösung ist dagegen gerade für mittelständische Unternehmen meist die bessere Wahl, da sie auch tagesaktuellen Bedrohungsszenarien gerecht wird und angesichts überschaubarer Implementierungskosten wirtschaftlich sinnvoll ist.
Fazit: Container-Sicherheit ist ein Prozess
Container Security endet nicht mit der Implementierung von Best Practices – sie erfordert ständige Aufmerksamkeit. Automatisierung, regelmäßige Updates und eine kontinuierliche Überprüfung Ihrer Sicherheitsstrategie sind der Schlüssel zu einer sicheren und leistungsfähigen Container-Umgebung. Nutzen Sie spezialisierte Tools und schulen Sie Ihr Team, um Risiken zu minimieren und das Beste aus Container-Technologien herauszuholen.
Und wie immer in der IT gilt auch hier: No Backup, no pity! 😉
Container Security mit Workload Protection
Erfahren Sie mehr über die wirkungsvolle integrierte Lösung, um die Sicherheit von Kubernetes-Containern nachhaltig zu steigern.
Über den Autor
Daniel Graßer verantwortet seit Juni 2022 als Senior Director of Security Services das Security Portfolio & Services sowie die dazugehörige Strategie bei plusserver. Das Leistungsportfolio umfasst neben hochstandardisierten Cloud-Produkten u. a. Themen wie Security as a Service, Anti-Ransomware-Strategien bis hin zum Betrieb von SOC-Leistungen.
Erfahren Sie mehr
Blog
Security Operations Center (SOC): Der Königsweg der IT-Security?
Ein Security Operations Center (SOC) gehört zu den zentralen Bausteinen eines durchdachten IT-Security-Prozesses.
Produkt
EDR as a Service
Mit EDR as a Service überwachen Sie Ihre Endgeräte, Clouds und Server und stoppen Cybercrime.
Produkt
Private Registry
Container Images und Helm Charts einfach speichern, verwalten und nutzen.
Produkt
Managed Kubernetes
Mit unserem Managed Kubernetes erstellen und orchestrieren Sie Kubernetes-Cluster im Handumdrehen.
Produkt
SOC as a Service
Schieben Sie Cybercrime durch Echtzeitüberwachung einen Riegel vor.
Haben Sie noch Fragen?
Senden Sie mir einfach eine Nachricht mit Ihrem Anliegen und ich melde mich schnellstmöglich zurück.