5 Herausforderungen der Container-Sicherheit: Komplexität beherrschen durch Machine Learning
Verhaltensbasierte Container-Sicherheit bieten deutlich mehr Sichtbarkeit. Neue Generation Cloud-nativer Sicherheitslösungen ist angetreten, um die Komplexitätsspirale mittels Machine Learning und KI-gestützten Verfahren zu entschärfen
Lesezeit: 6 Min.
06.07.2021
Unternehmen setzen auf Cloud, Container und DevOps, um ihre Applikationslandschaften zukunftsfähig zu machen. In einer aktuellen IDC-Studie gaben 55 Prozent der befragten deutschen Unternehmen an, dass sie bis 2022 mehr Workloads über Container als über klassische Umgebungen bereitstellen werden.* Aber trotz aller Vorteile ist die Integration von Container-Lösungen in die IT-Landschaft alles andere als trivial und führt zu einem neuen Komplexitätssprung, der insbesondere etablierte Sicherheitsansätze und Werkzeuge vor Herausforderungen stellt.
Container bündeln Betriebssysteme, Applikationen und Konfigurationsdateien in einem einzigen Image. Diese Images sind statische, unveränderliche Dateien mit ausführbarem Code, der als isolierter Prozess auf Host-Systemen in der IT-Infrastruktur laufen kann. Mit Containern lassen sich fast alle Aufgaben umsetzen, von einfachen Microservices bis zu komplexen Frameworks aus Applikationen, Datenbanken und anderen Ressourcen.
Tauchen Probleme bei einem Container auf, können Entwickler schnell die notwendigen Korrekturen durchführen und ein neues Image bereitstellen. Das alte Image wird ersetzt, ohne andere Container bzw. Microservices bei der Arbeit zu stören. Im Vergleich zu den bisherigen monolithischen Anwendungen lassen sich so Testing, Verteilung und Bereitstellung von Applikationen deutlich beschleunigen und vereinfachen. Geschwindigkeit und Flexibilität sind verantwortlich für den Erfolg der Container-Technologie – und gleichzeitig auch für eine Reihe neuer Risiken.
Unsichere Images
Container-Images können unerkannte Malware oder hartcodierte Routinen zum Malware-Download enthalten, die sich zu irgendeinem Zeitpunkt eingeschlichen haben. Probleme entstehen außerdem, wenn Schwachstellen-Updates ausgelassen, Standardeinstellungen übernommen oder Container-Images ungeprüft aus externen Quellen verwendet werden.
Container-Images werden zudem über eine Registry zentral gespeichert und verteilt. Gelingt Angreifern der Zugriff auf diese Registry, ist oft eine Manipulation der Inhalte möglich, sodass kompromittierte Images unternehmensweit verteilt werden. Deshalb muss kontinuierlich verhindert werden, dass Container mit Schwachstellen bzw. manipulierte Container in die Produktionsumgebung gelangen.
Unnötige Privilegien
Bei einem privilegierten Container sind die Grenzen zwischen Container und Host-System aufgehoben: Der Container hat Zugriff auf die volle Funktionalität des Hosts, sodass ein erfolgreicher Angriff auf einen privilegierten Container größten Schaden anrichten kann. Legitime, privilegierte Container findet man hauptsächlich in den Bereichen Systemüberwachung und Monitoring, aber auch hier setzt sich aufgrund der Gefahr immer mehr das Least-Privilege-Prinzip durch.
Ungeschützte Orchestratoren
Container-Orchestratoren wie zum Beispiel Kubernetes sind Werkzeuge für Management, Skalierung und Wartung containerisierter Applikationen, die komplexe Konfigurationsoptionen bieten. Zudem müssen Anwender- und Service-Accounts, soweit es geht, beschränkt werden: Im Jahr 2018 entdeckte der Cloud-Sicherheitsspezialist Lacework bereits rund 21.000 öffentlich ansprechbare Orchestrierungsplattformen im Internet, von denen mehrere Hundert keine Credentials für den Dashboard-Zugriff erforderten.
Unbeschränkte Kommunikation zwischen Containern
Container müssen miteinander kommunizieren, um ihre Aufgaben zu erfüllen. Typischerweise umfassen Container-Umgebungen eine sehr große Anzahl von Containern und Microservices, die oftmals nur kurz aktiv sind und dann gelöscht werden. Alle Aktivitäten, die nicht in diesem kleinen Zeitfenster erfasst wurden, sind für Sicherheitsanalysen verloren. Diese Dynamik macht es sehr schwer, die Kommunikation zwischen Containern durch Firewall/Networking-Regeln zu erfassen.
Undurchschaubare Umgebungen
Das Monitoring laufender Container-Prozesse in immens komplexen Umgebungen, in denen ein Container eine durchschnittliche Lebensdauer von ein paar Stunden oder sogar nur Minuten hat, stellt eine besondere Herausforderung dar. Für chronisch überlastete Sicherheitsteams ist es mit den vorhandenen Werkzeugen meist schwer möglich, alle aktuellen Container-Prozesse zu überwachen, um unnötige oder bösartige Vorgänge zu identifizieren.
Aufgrund ihrer Architektur sind herkömmliche Sicherheitsansätze zudem für bestimmte Aspekte der Container-Kommunikation gar nicht geeignet: So lassen sich zum Beispiel die weit verbreiteten Network Intrusion Detection Systeme sehr gut nutzen, um den ein- und ausgehenden Datenverkehr zu AWS EC2 Instanzen zu überwachen. Der Datenverkehr zwischen Containern auf derselben EC2 Instanz bleibt hingegen völlig unsichtbar.
Neuer Ansatz: Verhaltensbasierte Sicherheit
Traditionelle regelbasierte Sicherheitsansätze wurden nicht für Container-Umgebungen entwickelt. Oftmals führt dies zu Reibungen zwischen den auf Tempo drängenden DevOps-Teams und der bremsenden Sicherheitsabteilung, die mit den vorhandenen Werkzeugen kaum die Komplexität beherrschen kann. Entwickler suchen sich dann eigene, unbeaufsichtigte Wege, wodurch die berüchtigte Schatten-IT entsteht.
Vor diesem Hintergrund ist eine neue Generation Cloud-nativer Sicherheitslösungen angetreten, um die Komplexitätsspirale mittels Machine Learning und KI-gestützten Verfahren zu entschärfen. Zwei Ziele stehen im Mittelpunkt:
- Vollständigkeit: Ausnahmslos alle Container, Anwender und Komponenten müssen erfasst und zentral analysiert werden. Punktlösungen, die sich nur auf eine enge Perspektive konzentrieren, sind für komplexe Umgebungen nicht mehr geeignet.
- Automation: Bei einem vollständigen Monitoring von Cloud- und Container-Umgebungen fallen gigantische Datenmengen an, die nur noch von intelligenten Systemen bearbeitet werden können. Händische Regeldefinitionen, Log-Auswertungen usw. müssen komplett eliminiert werden.
Um diese beiden Ziele zu erreichen, ist ein verhaltensbasierter Ansatz erforderlich, der zunächst selbstständig per Machine Learning und KI den Normalzustand der Cloud- und Container-Aktivitäten erkennt. Unter dem Namen „Polygraph“ hat der US-amerikanische Anbieter Lacework erstmals eine entsprechende Technologie patentiert. Polygraphen konzentrieren sich auf Prozesse, also auf die kleinste vom Betriebssystem unterstützte Einheit. Mehre Faktoren machen Prozesse laut Lacework zur optimalen Analyseeinheit:
- Validierbar: Jeder Prozess ist mit einer bestimmten Binärdatei verbunden, die einen spezifischen SHA-256 Hash hat.
- Nachverfolgbar: Prozesse werden von Anwendern, Applikationen oder anderen Prozessen gestartet. Diese Startumstände können nachverfolgt werden.
- Vorhersagbar: Prozesse haben ganz bestimmte Command Lines, Zwecke und Lebenszyklen.
- Unumgänglich: Prozesse sind verantwortlich für die gesamte Kommunikation. Nur Prozesse sprechen miteinander und mit externen Hosts im Internet.
Auf dieser Grundlage analysieren Polygraphen in Echtzeit den Normalzustand (die Baseline) der Umgebung. Das Monitoring umfasst Prozesshierarchien, Prozesse/Machine-Kommunikation, Änderungen an Anwender-Privilegien, interne und externe Datentransfers sowie alle anderen Aktivitäten. Das aktuelle Verhalten eines Containers (oder einer anderen Entität) wird dabei mit seinem bisherigen Verhalten sowie mit dem Verhalten seiner Peer-Gruppe verglichen. In dieser Gruppe befinden sich andere, ähnliche Container. So können zielsicher alle Anomalien identifiziert werden, auch wenn gegen keine konkrete Regel verstoßen wurde.
Was sind die Vorteile?
Unternehmen gewinnen durch verhaltensbasierte Container-Sicherheit zunächst einmal deutlich mehr Sichtbarkeit. Polygraphen generieren eine globale Ansicht aller Container mit ihren Prozessen und Verbindungen. Alle Events werden auf Prozessebene erfasst und diese Logs bleiben auch bestehen, wenn Container gelöscht werden. Sicherheitsverantwortliche können somit Angriffe oder andere Anomalien (z.B. offene API-Server) immer zu ihrem Ursprung zurückverfolgen. Auf der Orchestrierungsebene ist der Blick in Kubernetes-Cluster und die Kommunikation zwischen Clustern möglich, Visualisierungen gehen bis auf Namespace- und Pod-Level.
Darüber hinaus bringt der permanente Abgleich mit der Baseline zuverlässig alle Abweichungen ans Licht: Eine Applikation in einem Container startet unerwartet viele Verbindungen zu neuen APIs? Ein Anwender erhält plötzlich Root-Privilegien und führt ungewöhnliche Aktivitäten durch? Ein API-Server oder die Management-Konsole des Orchestrators ist zum Internet offen und ungeschützt? Solche Verbindungen und Aktivitäten liegen außerhalb der Baseline und lösen daher einen Alarm aus, bevor Schaden entstehen kann.
Auch der Schutz der Container-Images kann von dem neuen Sicherheitsansatz profitieren: Neu eingeführte Dateien, ihre Hash-Werte und alle Änderungen im Zeitverlauf werden aufgezeichnet. Die Hash-Checksummen werden kontinuierlich mit einer kuratierten Datenbank abgeglichen. Falls dabei eine potenzielle Bedrohung erkannt wird, erhalten Sicherheitsverantwortliche alle nötigen Informationen, um nicht nur den aktuell gefährdeten Container, sondern gleich alle betroffenen Container zu identifizieren. Bedrohungen können somit schneller eingedämmt und besser verstanden werden.
*IDC, DevOps in Deutschland, 2020
https://www.lacework.com/container-security/