ArtikelVirtualisierung

Eine Frage des Vertrauens: Wenn gute Container schlecht werden

Wie ist „Vertrauen in Container“ zu definieren?

Man muss Container-Images sowohl „vertrauen“ als auch „verifizieren“. Es ist von grundlegender Bedeutung, die Vertrauenswürdigkeit des Herausgebers des zu verwendenden Container-Images zu bestimmen und zu prüfen, dass die Inhalte dieses Images keine ernsthaften und ausnutzbaren Sicherheitsschwachstellen in die eigene Umgebung einbringen. Im Idealfall vertraut man den laufenden Containern in seinem Cluster. Sie führen die Aufgaben aus, die von ihnen erwartet werden, und setzen das Unternehmen keinem Risiko aus. Dieser Vorgang beginnt mit der Einrichtung von vertrauenswürdigen Verfahren für alle Images, die in das Unternehmen gelangen. Dieser Mix aus Sicherheitsarchitektur und vertrauenswürdigem Code-Management sollte Erkenntnisse zur Image-Zusammensetzung, dem Sicherheitskontext, der zur Ausführung des Images erforderlich ist, und aller Dienste, die dem Image ausgesetzt sind oder von ihm genutzt werden, umfassen.

Was kann proaktiv getan werden, um Risiken zu minimieren?

Zuerst muss sichergestellt werden, dass alle containerisierten Anwendungen einer statischen Codeanalyse und einem Penetrationstest unterzogen wurden. So ist man in der Lage, die Herkunft des Container-Images durch Signaturen und aus vertrauenswürdigen Repositories zu bestimmen. Dann ist Sorge zu tragen, dass an den Perimetern geeignete Abwehrmaßnahmen vorhanden sind und die Autorisierungskontrolle die Deployment-Änderungen ansteuert.

Es ist auch wichtig, den Angreifern das Leben schwer zu machen, indem man die SELinux- oder AppArmor-Sicherheitsmodule für die verwendete Distribution aktiviert und entsprechende Seccomp-Profile einrichtet. Schließlich sollte man aus Sicherheitsgründen die Angriffsfläche des Containerhosts minimieren. Dies kann leicht mit einem der verfügbaren minimierten Linux-Host-Systemen wie Red Hat Enterprise Linux Atomic Host, CoreOS Container Linux oder RancherOS durchgeführt werden.

Gibt es darüber hinaus noch etwas?

Container-Technologien werden zur Norm für die Bereitstellung von Anwendungen in modernen Datacentern. Wie bei jeder Technologie wird es Paradigmenwechsel in der Administration geben, die Nutzer sich zu eigen machen sollten. Container haben Eigenschaften wie unveränderliche Images, die einige Sicherheitsaufgaben wie Patching und kontinuierliches Monitoring erleichtern. Echte containerisierte Anwendungen sind so ausgelegt, dass sie tolerant gegenüber Fehlern und zustandslos sind. Wenn eine Anwendung dazu konzipiert wurde, zustandslos zu sein, kann ihre Lebensdauer verkürzt werden, was wiederum das Angriffsfenster für einen bestimmten Container verkleinert. Container unterstützen auch eingeschränkte Ressourcenverwaltung, die kombiniert mit einer verkürzten Lebensdauer helfen kann, das Potential für die Ausnutzung von Sicherheitslücken zu reduzieren.