Schwachstellen-Management für Container Sicherheit bei der Verwendung von Containern

|

Der Hype um Container und den Betrieb von Workloads als Microservice ist mittlerweile auch in der Windows-Welt angekommen. Windows Server 2016 unterstützt Container, genauso wie Linux und VMware mit vSphere. Die Sicherheit darf dabei aber nicht vernachlässigt werden, unabhängig vom eingesetzten Betriebssystem.

Gesponsert von

Unsichere Container oder Container-Images mit unsicheren Anwendungen können für ein Unternehmen eine noch größere Gefahr darstellen, als einzelne unsichere Server.
Unsichere Container oder Container-Images mit unsicheren Anwendungen können für ein Unternehmen eine noch größere Gefahr darstellen, als einzelne unsichere Server.
(© Vit & Ralf Gosch - Fotolia.com)

Der Vorteil von Containern liegt auf der Hand. Vor allem Microservices, aber auch andere Workloads wie Webserver, Web Apps oder anderen Anwendungen, lassen sich in Containern schneller bereitstellen und skalierbarer betreiben. Die Fehler bei der Bereitstellung herkömmlicher Server-Workloads sollen bei der Verwendung von Containern minimiert werden, und Anwendungen lassen sich schneller bereitstellen. Darüber hinaus ist die Lösung kostengünstiger oder sogar kostenlos.

Die Verwendung von Containern ist aber kein Allheilmittel. Container werden über Images bereitgestellt. Enthält der Code des Images Schwachstellen, dann werden diese Schwachstellen auf alle Container übertragen, die dieses Image und diesen Code nutzen. Wird der Code nicht optimiert und werden Schwachstellen nicht entfernt, helfen auch zusätzliche Sicherheitstools nicht. Aus diesem Grund spielt die Sicherheit und deren Überwachung bei Containern eine besondere wichtige Rolle. Vor allem können die klassischen VM Lösungen keine Container scannen oder sogar erkennen.

Container teilen sich den Betriebssystemkern und andere Funktionen mit dem Container-Host und damit generell auch mit anderen Containern. Es besteht daher die Gefahr, dass ein Container andere Container kompromittieren kann, wenn er erfolgreich angegriffen wurde, und sogar Zugriff auf unberechtigte Bereiche des Host-Betriebssystems erhalten kann.

Microsoft versucht das in Windows Server 2016 zum Beispiel mit den Hyper-V-Containern zu umgehen, in dem jedem Container ein eigener Betriebssystem-Kernel zur Verfügung gestellt wird. Allerdings ist auch hier nicht sicher, ob ein übernommener Hyper-V-Container keine Gefahr für andere Container darstellt.

So sorgen die Anbieter für mehr Sicherheit

Docker, einer der bekanntesten Anbieter für Container, integriert in neuen Versionen seiner Container-Software ständig neue Sicherheitsfeatures, wie zum Beispiel das strikte Trennen der Container-Operationen und der Systemebene des Hosts. Docker erlaubt bei den Linux-Containern eine solche strikte Trennung zum Linux-Container über Secure Compute Mode (Seccomp). Dadurch wird zum Beispiel festgelegt, dass nur Aufrufe an den Kernel gestattet sind, die zuvor festgelegt wurden. Alle anderen Aufrufe blockiert das System. Natürlich müssen diese Aufrufe auch entsprechend definiert und vor allem auch überwacht werden.

Bei Opensource-Code umsichtig vorgehen

Manche Entwickler oder Administratoren übernehmen Opensource-Code nahezu ungeprüft in eigene Images, Repositories oder anderen Objekten, und dann später auch in die eigenen Container oder Images. Enthält der Code Fehler, dann sind diese Fehler auch in allen Containern enthalten, die auf diesem Code aufbauen.

Wie jede Software enthält natürlich auch Open Source-Code Fehler, die zwar durch die Community häufig erkannt und entfernt werden, aber dennoch eine Rolle für die Bereitstellung spielen. Denn nicht in allen Versionen einer Software sind alle Fehler bereits behoben. Dazu kommt, dass durch neue Versionen häufig auch neue Sicherheitslücken entstehen. Ungeprüft sollte Open Source-Code also auch bei Containern nicht verwendet werden, und Aktualisierungen sollten natürlich so schnell wie möglich bereitgestellt werden, idealerweise auf allen Containern. Vor allem vor der Bereitstellung zahlreicher Container sollte genau überprüft werden, ob der Code und die verwendeten Images keine Sicherheitslücken enthalten.

Befinden sich in einem Container Sicherheitslücken, zum Beispiel durch ein veraltetes Betriebssystem oder Sicherheitsschwachstellen bei integrierter Software oder vorhandener Libraries, dann wirken sich diese auf den kompletten Container aus, auch wenn der Herausgeber der Container-Software generell zuverlässig ist. Wird der Container als Image definiert und werden auf Basis dieses Images weitere Container erstellt, dann wirken sich die Sicherheitslücken gravierender aus. Das sollte bei der Bereitstellung beachtet werden.

Sensible Daten absichern und Firewalls einsetzen

In diesem Bereich spielen natürlich auch die Daten eine wichtige Rolle, die im Container verarbeitet werden. Außerdem muss geplant werden, an welcher Stelle im Netzwerk Container positioniert werden. Hier sind vor allem die interne und externe Firewall wichtig. Vor allem bei Containern, die über das Internet erreichbar sind, spielt die Sicherheit eine maßgebliche Rolle, da diese Container besonders leicht erreichbar und damit angreifbar sind.

Öffentliche Systeme lassen sich mit verbreiteten Angriffen natürlich schneller erreichen, als Container, die komplett im internen Netzwerk zur Verfügung stehen. Hier spielt natürlich auch die Firewall eine wichtige Rolle. Angriffe wie SQL Injection oder Denial-Of-Service-Attacken sind auch für Container ein Problem, nicht nur für herkömmliche Serversysteme. Sicherheitslücken in öffentlichen Systemen sollten zuverlässig erkannt und so schnell wie möglich behoben werden.

Virtualisierung kann auch Probleme bereiten

Es gibt mittlerweile Angriffe auf Virtualisierungs-Hosts, beziehungsweise auf virtuelle Server, die es ermöglichen, aus einer VM heraus auf den Host und damit auf andere VMs zuzugreifen. Wird ein Container-Host virtualisiert, besteht also durchaus die Gefahr, dass sowohl die Container, als auch der Container-Host sowie der physische Virtualisierungs-Host von Angreifern übernommen werden können. Diese Schwachstellen sollten von vorneherein in die Sicherheitsplanung mit eingeschlossen werden.

Sicherheitslücken durch Anwendungen

Sicherheitslücken und damit verbundene Probleme tauchen aber nicht nur durch Container und deren Images auf, sondern natürlich auch durch die Anwendungen, die im Container betrieben werden. Auch hier muss darauf geachtet werden, dass Sicherheitslücken möglichst schnell geschlossen und die verschiedenen Container auf den neusten Stand gebracht werden.

Container lassen sich in hoher Geschwindigkeit sehr einfach skalieren und bereitstellen. Dadurch werden fehlerhafte Anwendungen ebenfalls schnell im Netzwerk verbreitet. Durch diesen Vorgang entsteht dann nicht nur eine Sicherheitslücke, sondern gleich mehrere. Hier sind vor allem Web Apps betroffen, die auch öffentlich zugänglich sind.

Container sind außerdem sehr dynamisch. In skalierbaren Umgebungen kann es notwendig sein, dass zu Spitzenzeiten mehr Container zur Verfügung stehen, als bei normaler Last in der Umgebung. Dadurch lassen sicher Sicherheitslücken wesentlich schwerer finden und die Umgebung ist komplizierter in der Verwaltung. Aus diesem Grund sollte die Umgebung und deren Anwendungen entsprechend überwacht werden.

Schwachstellenmanagement-Plattform einsetzen – Tenable.io

Es wird schnell klar, dass Unternehmen, die auf Container setzen, und damit in den meisten Fällen eine Vielzahl an Container-Hosts und Container, eine Lösung brauchen, um für mehr Sicherheit zu sorgen. Beim Betreiben einer heterogenen Umgebung, in der Container verschiedener Hersteller und Versionen eingesetzt werden, ist das noch wichtiger.

Tenable.io überwacht die Container im Netzwerk und zeigt den Sicherheitsstatus verschiedener Container an und vor allem der Container-Images. Auch das Umsetzen von Richtlinien und die Erkennung von Malware ist damit möglich. Neben der Überwachung der Container und deren Images, lassen sich auch die Anwendungen in den Containern überwachen. Durch das Scannen von Web Apps wird die Sicherheit der Anwendung selbst und des Containers sowie der anderen Container im Netzwerk sichergestellt. Durch diese Sicherheitsfunktionen werden die Container wesentlich sicherer bereitgestellt, als ohne eine Lösung, welche die Sicherheit überwacht und Richtlinien umsetzt. Denn Tenable.io überwacht Container und die installierten Anwendungen.

Tenable.io bietet eine Testversion, die für 60 Tage funktioniert. Das Tenable.io-Schwachstellen-Management bietet auch in der Testversion eine Cloudbasierte Verwaltung an und bietet in der Demoversion nach 60 Sekunden erste Ergebnisse. Ein Blick auf die Demoversion lohnt sich also in jedem Fall, da so recht schnell klar wird, wo bei den Containern Sicherheitslücken entstehen.

Fazit

Die Sicherheit spielt auch in der Container-Technologie eine wichtige Rolle, unabhängig davon welcher Hersteller eingesetzt ist. Neben einer vernünftigen Planung für mehr Sicherheit, sollten sich Verantwortliche im Unternehmen auch Gedanken über eine Lösung wie Tenable.io machen, die Cloudbasiert für mehr Sicherheit bei Containern sorgen kann. Denn unsichere Container oder Container-Images mit unsicheren Anwendungen können für ein Unternehmen eine noch größere Gefahr darstellen, als einzelne unsichere Server.

Diese fallen in den meisten Fällen schneller auf, als ein unsicherer Container unter zahlreichen anderen. Ist auch noch ein Container-Image unsicher, werden die Sicherheitslücken auf alle Container übertragen, die durch dieses Image bereitgestellt werden. Die regelmäßige Überprüfung von Container-Images stellt eine wichtige Herausforderung für Administratoren und Entwickler dar.

Zur Überwachung und Verbesserung der Sicherheit gehört allerdings nicht nur die Aktualisierung und Absicherung der Container-Images und Container im Zeitraum der Bereitstellung, sondern während des kompletten Lebenszyklus. Denn vor allem bei langlaufenden Containern können sich Sicherheitslücken auftun, die bei der Bereitstellung noch nicht vorhanden waren. Lösungen wie Tenable.io helfen, auch diese zu entdecken und zu schließen.

(ID:44655414)