Verhaltensbasierte Container-Sicherheit: Reduktion auf das Wesentliche

bei

Im Vergleich zu monolithischen Anwendungen beschleunigen containerisierte Applikationen die Entwicklung, bieten mehr Flexibilität bei der Bereitstellung und reduzieren die Ressourcenbelastung. Container-Technologien sind daher auf dem Vormarsch: Forrester [1] prognostiziert, dass 60 Prozent der globalen Unternehmen bis Ende dieses Jahres Container einsetzen werden. Laut einer IDC Studie [2] plant mehr als die Hälfte der deutschen Unternehmen, bis 2022 die überwiegende Zahl ihrer Workloads mittels Container und nicht mehr über herkömmliche Umgebungen bereitzustellen.

Neben unbestreitbaren Vorteilen bringt der Einsatz von Containern aber insbesondere für die IT-Sicherheit auch eine Reihe von spezifischen Herausforderungen mit sich. Container bedeuten einen weiteren Komplexitätssprung und durch agile Entwicklungsmethoden wie DevOps vervielfacht sich die Zahl der Code-Iterationen, für deren Sicherheitsbewertung immer weniger Zeit zur Verfügung steht. Die IT-Sicherheit wird so zum Bremsklotz, den frustrierte Entwickler mit Workarounds zu umgehen versuchen. Eine unkontrollierte Schatten-IT mit ganz eigenen Problemen entsteht.

Vorhandene Werkzeuge meist nicht Cloud-nativ

Als weitere Herausforderung kommt hinzu, dass traditionelle Sicherheitskontrollpunkte wie Betriebssysteme oder virtuelle Maschinen bei Containern und Serverless-Funktionen verschwinden. Vorhandene Sicherheitswerkzeuge und -ansätze sind zudem meist nicht Cloud-nativ. Die Konzepte lassen sich nicht unbegrenzt auf hochkomplexe Cloud- und Container-Umgebungen ausdehnen. Ein zu enger Aufgabenfokus führt zu Informationssilos und einer Alarmschwemme. Cloud- und Container-Umgebungen benötigen eine übergreifende Perspektive und Kontextsensitivität, ansonsten ist die Komplexität nicht mehr zu bewältigen.

Darüber hinaus erschwert die Dynamik von Container-Umgebungen die Definition von Sicherheitsregeln für Firewall / Networking. Container werden beispielsweise oft mit Regeln gebaut, die nur bestimmten Anwendertypen den Zugriff erlauben. Über die Zeit werden sich aber wahrscheinlich die Anwenderdefinitionen und Gruppenzugehörigkeiten ändern, was zu unerwünscht weitreichenden Berechtigungen führen kann. Es liegt nicht in der Verantwortung von DevOps-Teams, dies zu berücksichtigen, sodass Risiken entstehen.

Weitere Investitionen in zusätzliche Punktlösungen und mehr Fachpersonal (das kaum verfügbar ist) können diese Situation nicht dauerhaft entschärfen. Es ist absehbar, dass sich die Komplexitätsspirale weiterdreht und Container aufgrund ihrer Popularität noch stärker ins Fadenkreuz von Angreifern rücken. Vor diesem Hintergrund wächst das Interesse an KI-gestützten Ansätzen, die Sicherheit im Takt der Cloud bei reduziertem Aufwand versprechen.

Sicherheit erlernt Normalzustand

Verhaltensbasierte Cloud- und Container-Sicherheit nutzt Machine Learning, um den Normalzustand (die Baseline) der Aktivitäten in der Umgebung zu erlernen und vor diesem Hintergrund dann Anomalien zu identifizieren. Voraussetzung dafür ist, dass tatsächlich alle Aktivitäten von Containern, Applikationen, Anwendern und anderen Cloud-Entitäten lückenlos aufgezeichnet und analysiert werden können. Um das zu erreichen, werden die Prozesse in der Infrastruktur beobachtet. Aus folgenden Gründen eignen sich Prozesse als Analyseeinheit:

  • Prozesse sind verantwortlich für die gesamte Kommunikation untereinander und mit externen Hosts
  • Startumstände können nachverfolgt werden.
  • Jeder Prozess ist mit einer bestimmten Binärdatei und einem SHA-256 Hash verbunden.
  • Prozesse haben bestimmte Command Lines, Zwecke und Lebenszyklen.

Durch den Vergleich des aus der Baseline bekannten Container-Verhaltens mit dem aktuellen Verhalten können Anomalien zuverlässig identifiziert werden, auch ohne vorher definierte Regel. Zudem wird das aktuelle Verhalten des Containers mit seiner Peer-Gruppe abgeglichen, in der sich ähnliche Container befinden. So lassen sich nicht nur bekannte, sondern auch unbekannte Bedrohungen erkennen, wenn zum Beispiel eine containerisierte Applikation unerwartet viele Aufrufe neuer APIs startet. Dieser neue Ansatz adressiert wichtige Herausforderungen der Container-Sicherheit:

Images und Registry kontrollieren

Container-Images beinhalten Betriebssysteme, Applikationen und Konfigurationsdateien. Die Bereitstellung der Images erfolgt zentral über die Registry. Bei der Entwicklung wird häufig auf öffentlich verfügbaren Images aufgebaut, die Malware enthalten können. Probleme entstehen auch durch die Übernahme von Standardkonfigurationen oder nicht aktuellen Patch-Ständen. Die Bereitstellung ungeprüfter Images muss daher ebenso verhindert werden wie der unbefugte Zugriff auf die Registry.

Prozess-Monitoring erfasst alle neu eingeführten Dateien, Hash-Werte und alle Änderungen an Images. Zur Malware-Identifikation werden Hash-Werte mit einer kuratierten Datenbank abgeglichen. Da alle Änderungsinformationen im Zeitverlauf bereitstehen, können bei einer Bedrohung nicht nur ein bestimmter, sondern alle betroffenen Container identifiziert werden.

Orchestratoren schützen

Für das zentrale Management von Containern werden Orchestratoren wie Kubernetes oder Docker Swarm eingesetzt, die komplexe Konfigurationen erfordern. Häufig werden die Web-Interfaces dieser Werkzeuge nicht ausreichend geschützt oder Anwender-Accounts erhalten zu weitreichende Berechtigungen.

Durch Prozess-Monitoring erhalten Sicherheitsverantwortliche Einblick in Kubernetes-Cluster sowie in die Kommunikation zwischen Clustern. Visualisierungen gehen bis auf Namespace- und Pod-Level. Der Verhaltensabgleich mit der Baseline bringt ungeschützte API-Server oder Management-Konsolen ans Licht, zu denen ungewöhnliche Verbindungen gestartet werden sollen.

Umfassende Sichtbarkeit gewährleisten

Container und Microservices werden on-demand gestartet und genauso schnell wieder gelöscht. Alle sicherheitsrelevanten Informationen, die nicht innerhalb weniger Minuten erfasst wurden, gehen verloren. Bestimmte Bereiche der Container-Kommunikation sind für herkömmliche Architekturen unsichtbar, wie zum Beispiel der Datenverkehr zwischen Containern auf derselben EC2-Instanz.

Prozess-Monitoring erfasst die gesamte Kommunikation im Zeitverlauf, auch innerhalb einer Datei oder zwischen Containern auf demselben Host. Log-Aufzeichnungen bleiben verfügbar, auch wenn der Container bereits wieder gelöscht wurde. Das ist ein wesentlicher Unterschied zum bekannten Traffic-Monitoring auf Networking-Ebene.

Sicherheit automatisieren

Strategien für zukunftssichere Cloud- und Container-Sicherheit müssen von einer weiter wachsenden Komplexität ausgehen, die nicht mehr manuell beherrschbar ist. Jede weitere Punktlösung senkt die Sichtbarkeit. Stattdessen muss ausnahmslos jede Komponente und Aktivität in der Container-Umgebung zentral überwacht werden, damit Angreifer kein Schlupfloch finden und eine konsolidierte Reaktion auf akute Bedrohungen möglich ist. Bei dieser umfassenden Überwachung fallen gigantische Datenmengen an, die nur automatisiert ausgewertet werden können. Menschliche Eingriffe in Form von Regeln und Log-Auswertungen müssen daher eliminiert werden. Nur auf diesem Weg kann die IT-Sicherheit den Schutz von Cloud und Containern gewährleisten, ohne die Flexibilitäts- und Geschwindigkeitsvorteile zu gefährden.

Quellen und Referenzen:

[1] ForresterNow Predictions 2021: Cloud Computing

[2] IDC, DevOps in Deutschland, 2020

Über den Autor / die Autorin:


Bernd Mährlein hat langjährige Erfahrung im Technologiesektor und ist seit Anfang 2021 als Area Director bei Lacework für den Aufbau der Region Central Europe zuständig. Zuvor war er bereits in verschiedenen Rollen bei Unternehmen wie Cybereason, MongoDB, Intralinks und SAP tätig.