Risiken einer virtuellen Infrastruktur Achtung: Container haben Security-Lücken!

Autor / Redakteur: Dipl. Betriebswirt Otto Geißler / Peter Schmitz

Container-Frameworks vereinfachen und beschleunigen die Anwendungsbereitstellung, indem sie Betriebssystem-Komponenten, Anwendungen und alle Abhängigkeiten in Schichten innerhalb eines Container-Images bündeln. Container erlauben eine agilere Gestaltung von Prozessen und Services, doch sie sind auch dem Risiko gezielter Angriffe ausgesetzt.

Anbieter zum Thema

Je erfolgreicher Container im Unternehmenseinsatz werden, desto größer wird das Risiko durch gezielte Angriffe.
Je erfolgreicher Container im Unternehmenseinsatz werden, desto größer wird das Risiko durch gezielte Angriffe.
(Bild: gemeinfrei / Pixabay )

Container-Technologien ebnen den Weg von physischen, einzeln genutzten IT-Ressourcen hin zu effizienteren, virtuellen Multitenant-Infrastrukturen, die in traditionellen IT-Umgebungen sowie in der Cloud ausgeführt werden können. Denn mit Containern und den korrespondierenden Tools lassen sich Prozesse und Services im Unternehmen deutlich agiler anlegen. Das heißt, Anwendungen und Microservices können leichter programmiert, getestet, ausgerollt und administriert werden. Gleichzeitig sind Container flexibler, skalierbarer und ressourceneffizienter als zum Beispiel virtuelle Maschinen (VM).

Welche Gefahren bergen Container?

Doch je erfolgreicher Container im Unternehmenseinsatz werden, desto größer wird das Risiko durch gezielte Angriffe. Gefahren lauern sowohl während der Entwicklung, als auch bei der Integration und Bereitstellung sowie im laufenden Betrieb.

Diese Risikoquellen beziehen sich auf die Container selbst, die verwendeten Orchestrierungs-Tools wie Kubernetes und die Infrastruktur. Dabei sind folgende konkrete Sicherheitsprobleme zu beachten:

  • Manipulierte Container, die Malware herunterladen oder interne Systeme nach Schwachstellen und sensiblen Daten auskundschaften.
  • DDoS-Attacken auf Anwendungsebene und Cross-Site-Scripting(XSS)-Angriffe.
  • Container-Breakouts, um auf andere Container, Host-Systeme oder Rechenzentren zuzugreifen.
  • Container werden dazu gezwungen, extrem viele Systemressourcen zu verbrauchen und die Leistung anderer Container zu reduzieren oder einen Crash zu erzielen.
  • Live-Patches für Anwendungen, um schädliche Prozesse zu etablieren.
  • Lücken in Kommunikationsprotokollen, die auch mit Containern verwendet werden.
  • Schwachstellen in der Verwaltungssoftware Kubernetes.

Was tun?

Zur Absicherung gegen diese genannten Gefahren, sollte sich die IT-Abteilung von drei verschiedenen Ansätzen, die sich nach den einzelnen Phasen der Implementierung orientieren, leiten lassen: Einrichtung, Bereitstellung und Einsatz.

In der Einrichtungsphase

Fokussierung auf die Beseitigung von Schwachstellen, Malware und unsicherem Code bei der Software-Entwicklung. Dafür ist es für IT-Abteilungen angezeigt, ein offizielles Container-Register einzurichten. Mit dieser Container-Registry sollen dann vertrauenswürdige Images erstellt werden.

Auf diese Weise wird ein Prozess etabliert und automatisiert, der verhindert, dass Container aus einer nicht vertrauenswürdigen Registry entstehen. Autoren können zum Beispiel mit „Docker Content Trust“ ihre hochgeladenen Images signieren. Beim Download verifiziert die lokale Docker-Installation des Users die Signatur und prüft, ob das Image aktuell ist und nicht korrumpiert wurde.

Darüber hinaus sollte sich die IT-Abteilung in dieser Phase folgende Fragen stellen: Werden alle Runtime- und Betriebssystem-Schichten des Containers aktualisiert? Wie oft werden die Container aktualisiert? Werden bekannte Risikoquellen überwacht?

In der Bereitstellungsphase

In dieser Phase erfolgt die Zusammenstellung der Container. Dabei soll beachtet werden, dass Images, die zwar kein Gefahrenpotenzial aufweisen, aber in einem unsicher konfigurierten Kubernetes-Pod deployt werden, eine Schwachstelle bleiben.

Wobei ein Pod meist aus einer Gruppe mehrerer Container mit gemeinsamem Speicher, Netzwerk sowie einem Regelwerk, wie die Container ausgeführt werden, besteht. Bei der Konfiguration müssen für die Orchestrierung und Container-Engine Sicherheits-Standards erstellt und realisiert werden. Dazu können zum Beispiel die Benchmarks für Docker und Kubernetes des Center for Internet Security (CIS) herangezogen werden.

Auf diese Weise lässt sich der Zugriff von außen steuern oder verhindern. Experten raten zu einer privaten Registry, um den Zugriff auf die Images, die im Einsatz sind, zu administrieren. In diese Registry dürfen nur geprüfte Images Einzug erhalten. Der Zugang wird über rollenbasierte Zuweisungen reguliert.

Darüber hinaus sollte sich die IT-Abteilung in dieser Phase folgende Fragen stellen: Welche rollenbasierten Kontrollen können für die Administration von Container-Images zum Einsatz kommen? Können Images über Tagging- oder Kennzeichnungsfunktionen gruppiert werden? Lassen sich Images jeweils einzeln für Entwicklung, Prüfung und Produktion als validiert markieren? Leistet die Registry ausreichend Meta-Daten, um bekannte Schwachstellen zu identifizieren? Erlaubt es die Zugriffsverwaltung, Richtlinien zuzuordnen und zu automatisieren, um zum Beispiel Signaturen zu evaluieren oder Scans zu codieren?

In der Einsatzphase

Nicht nur in den vorbereitenden Phasen, sondern auch während der Laufzeit müssen neue Gefahrenquellen und Lücken in den Containern entdeckt werden. Dazu zählen beispielsweise ungewöhnliche Aktivitäten, die auf eine Zero-Day-Schwachstelle hinweisen. Zu diesem Zweck muss ein Normalzustand definiert und Abweichungen dazu festgestellt werden.

Insgesamt gestaltet sich die Sicherheit in der Einsatzphase als weniger problematisch. Werden Security-Probleme erst während des Betriebs entdeckt und behoben, ist die Wahrscheinlichkeit groß, dass sie immer wieder auftreten, weil die Probleme bereits im erstellten Image liegen.

Es sollten stets Richtlinien beachtet werden, die im Ernstfall automatisch Rebuilds der Container veranlassen. Denn es ist meist effizienter, einen Container neu zu bauen als ihn patchen zu müssen.

Darüber hinaus sollte sich die IT-Abteilung in dieser Phase folgende Fragen stellen: Existieren Tools zur Komponentenanalyse, die Probleme erkennen können? Ist es möglich, Werkzeuge zu entwickeln, die eine automatische richtlinienbasierte Implementierung gewährleisten? Wie lässt sich ein Patching erstellter Container umgehen, um Container per automatische Updates neu zu erstellen?

Infrastruktur

Eine weitere Angriffsfläche bietet die zugrundeliegende Infrastruktur. Zu diesem Zweck muss die vom Host-Betriebssystem bereitgestellte Isolierung gecheckt werden. Um Zugriffe über andere Container oder Breakouts abzuwehren, muss das System eine maximale Container-Trennung aufweisen.

Für eine optimierte Stabilität der Container-Plattform empfiehlt sich der Einsatz von Namespaces. Dadurch werden Anwendungen und Umgebungen getrennt bez. verschiedene virtuelle Instanzen eines Hosts und eines Kernels definiert und getrennt nutzbar.

(ID:46323868)