Sicherheit
22.03.2019
Best Practices

So geht Container-Sicherheit

Container-SicherheitContainer-SicherheitContainer-Sicherheit
LeoWolfert / shutterstock.com
Container sind zu einer verbreiteten IT-Infrastruktur geworden. Lesen Sie hier einige nützliche Tipps und Ratschläge, um die Sicherheit Ihrer eigenen Container zu verbessern.
Dieser Beitrag wurde erstellt von Michael Vogeler, Teamhead Applications & Services beim Managed-Cloud-Anbieter Plus-Service
Containervirtualisierung ist in den vergangenen Jahren unter DevOps-Teams zur führenden Technik für Microservices geworden. Dadurch rückt auch das Thema Security immer mehr in den Fokus. Es gibt einige wirksame Maßnahmen, mit denen sich Container schützen lassen. Wer diese Best Prac­tices befolgt, kann mit Containern nicht nur effizient, sondern auch sicher arbeiten.
Vertrauenswürdige Container: Zuallererst ist es wichtig, Container nur aus Quellen zu installieren, für die es gute Gründe gibt, ihnen zu vertrauen. Für Unternehmen ist es dabei empfehlenswert, eine eigene interne, abgesicherte Docker-Registry zu hosten. Verbreitete Open-Source-Docker-Registries sind Gitlab, Nexus und Jfrogs Artifactory.
„Immutable“ Container: Ein beliebtes Basis-Image für Container ist Alpine, das mit einer Größe von 2 MByte in den Versionen 3.7 und 3.8 keine bekannten Schwachstellen enthält. Bei der Verwendung von Basis-Images sollte man darauf verzichten, unnötige Pakete in den Container zu installieren. Eine in einen Container installierte Shell kann Tür und Tor für Angriffe öffnen. So ist jüngst der Fall eines kompromittierten Docker-Images bekannt geworden, das nach der Ausführung eine Reverse Shell als Hintertür geöffnet hat. Dieses Image war via Dockerhub erhältlich und fand somit oft Verwendung.
Container sollten „immutable“ sein. Das bedeutet, dass man persistente Daten außerhalb des Containers sichert. Dies ermöglicht es, jeden Container jederzeit wegzuwerfen und neu aufzusetzen. Im nächsten Schritt gilt es, die CI/CD-Pipeline in Jenkins oder anderen Plattformen wie Gitlab mit einem Step für Container-Security-Scanning zu erweitern. 
CI/CD-Build-Job scannen: Ein Image-Scan mit marktüblichen Container-Security-Scannern wie Clair, Anchore oder Jfrog XRay am Ende eines CI/CD-Build-Jobs ist zu empfehlen. Diese Scanner ziehen täglich frische CVE-Security-Feeds von Herstellern wie beispielsweise CentOS. Zudem ist es möglich, die im Image enthaltenen Paketkomponenten sowie die Container-Dateisystemstruktur anzuzeigen. So lassen sich unbekannte Images „auslesen“, um Malware zu erkennen. 
Server im Kubernetes-Cluster: Als weitere Komponente im CI/CD-Prozess rückt nun die Container-Orchestrierungsplattform in den Fokus. Kubernetes hat hier maßgeblich die Oberhand gewonnen. Die in einem Kubernetes-Cluster befindlichen Server sollten sich bei Betriebssystem-Patches auf dem neuesten Stand befinden. Es ist zwingend notwendig, diese Server abzusichern. Dafür steht das Open-Source-Werkzeug CIS Docker Benchmark zur Verfügung. Es bietet  eine Liste an Prüfungen und damit eine gute Baseline, um Docker zu härten. 
Containerzugriff einschränken: Um Datendiebstahl zu verhindern, sollte man den Containerzugriff auf das darunterliegende Host-Betriebssystem einschränken. Eine gängige Praxis ist es, die Container-Engine im Kernel und die Container selbst im User-Modus laufen zu lassen. Zusätzlich bietet Linux verschiedene Sicherheitsebenen, um Container zu limitieren. Dazu gehört die Möglichkeit, Kernel-Sicherheitsfunktionen und Module wie Namespaces, Seccomp, CGroups und SELinux zu nutzen.
Kubernetes-Security-Features nutzen: Im Kubernetes-Cluster stehen weitere Security-Features zur Verfügung. Gängige Praxis ist es hier, eine rollenbasierte Zugriffskontrolle (Role-Based Access Control, RBAC) sowie Pod-Security- und Network-Policies zu nutzen. Ein sehr hilfreiches Werkzeug, um fast 95 Prozent der möglichen Fehlkonfigurationen im Kubernetes-Cluster zu vermeiden, ist Kube-Bench. Es dient der Prüfung von Master Node oder Worker Node und der zugehörigen Control-Panel-Komponenten. CIS Kubernetes Benchmark gibt ähnlich wie CIS Docker Benchmark eine nützliche Liste an Hinweisen aus, um den Kubernetes-Cluster abzusichern.

mehr zum Thema