zhu difeng - Fotolia
Wie werden Containerumgebungen richtig abgesichert?
Viele Unternehmen setzen mittlerweile Container ein. Ihre Absicherung erfordert aber spezielle Überlegungen und Maßnahmen, die nicht immer traditionellen Methoden entsprechen.
Die Nutzung von Containern wird in Unternehmen zunehmend populärer. Immer mehr Firmen und Hersteller setzen sie bereits ein, um von der dadurch schnelleren, effizienteren und zugleich skalierbareren Verarbeitung ihrer Daten zu profitieren.
Aufgrund der hohen Zahl der in vielen IT-Umgebungen eingesetzten Container sollten sich IT-Abteilungen jedoch mit den potenziellen Risiken der Technik auseinandersetzen und prüfen, welche Vorteile ihnen spezielle Security Tools bieten. Die eigentliche Nutzung von Containern ist nicht wirklich neu. Sie werden aber zunehmend auch in komplett virtualisierten Infrastrukturen, in der Cloud und seit kurzem auch auf der weit niedrigeren Stufe der eigentlichen Anwendungen in den Unternehmen verwendet.
Insbesondere die Fähigkeit, Applikationen in hochvirtualisierten Umgebungen schneller auszuführen und zu testen, führt zu einer effizienteren Nutzung der vorhandenen Ressourcen und zu einer verbesserten Optimierung. Nicht alle Unternehmen können jedoch bei dem hohen Tempo der aktuellen Entwicklung mithalten. Teilweise müssen sie auf spezialisierte Security Tools von Drittanbietern zurückgreifen oder Kompromisse bei der Architektur eingehen, um ihre Sicherheitsanforderungen zu erfüllen.
Unbestritten ist, dass Container eine äußerst nützliche Technologie sind. Aber wie bei vielen anderen Dingen auch können sie zu zusätzlichen Risiken für ein Unternehmen führen, wenn sie nicht ausreichend abgesichert wurden.
Der Einsatz der richtigen Security Tools für Container
Eines der größten Probleme mit Containern ist, dass traditionelle Überwachungsmaßnahmen bei ihnen nicht genug Transparenz bringen. Ein Beispiel sind mehrere Container innerhalb eines Hosts. Sie können in der Regel direkt miteinander kommunizieren, so dass herkömmliche Monitoring-Lösungen keine Chance haben, diese Verbindungen zu überwachen und verdächtige Aktivitäten zu entdecken.
Wenn ein Unternehmen seine IT-Systeme in Container migriert, dann ist es äußerst wichtig, auch zugleich für ein umfassendes Monitoring zu sorgen, dass sowohl die Anwendungen als auch die Performance der Container überwacht. Prometheus ist ein gutes Beispiel für eine Monitoring-Lösung aus dem Open-Source-Bereich, mit der Unternehmen auch häufig kurzlebige Container überwachen können. Diese werden meist deutlich schneller wieder verworfen, als es bei bisherigen Lösungen der Fall ist. Aktuelle Auditing-Prozesse und Security Tools erzielen weit schneller Ergebnisse, wenn es um neue IT-Security-Vorfälle und die Reaktion auf sie geht.
Einzelne Container werden meist nicht so lange eingesetzt wie komplette virtuelle Maschinen oder gar wie On-Premises genutzte Systeme. Das führt dazu, dass das Risiko für einen Angreifer sinkt, bei seinen Aktivitäten erwischt zu werden. Das ist einer der wesentlichen Gründe für die hohe Bedeutung von Monitoring in containerlastigen Umgebungen.
Die zunehmende Nutzung von Containern in Unternehmen ist ebenfalls ein wichtiger Punkt. Das ist ähnlich zu sehen wie schon bei virtuellen Maschinen. Es muss immer klar sein, wie und von wem Container angelegt werden können. Dieses Verkleinern der Angriffsoberfläche ist eines der wichtigsten Security-Prinzipien und zwar unabhängig davon, für welche Technologien Sie sich letztlich entscheiden. Ein ungezügeltes Wachstum bei den in Ihrem Unternehmen genutzten Containern kann zu zusätzlichen Gefahren führen und sich negativ auf die Compliance auswirken.
Darüber hinaus benötigen Sie Fähigkeiten zur Überwachung von Containern, die verschoben oder anderweitig eingesetzt werden sollen. Wenn solche Container nicht kontrolliert werden können, entstehen nach und nach blinde Flecken im Unternehmen. Ist es erst einmal soweit, führt das schnell zu weiteren Problemen.
Sicherheits-Tools für den Container-Host
Container sind nur so sicher wie ihr Host. Genau dasselbe wurde auch schon über virtuelle Systeme gesagt: Wenn Sie Ihren Hypervisor sichern wollen, dann müssen Sie zuerst an den Schutz des Hosts denken.
Dieser Von-unten-nach-oben-Ansatz ist wichtig, weil auch Ihre Container in Gefahr sind, wenn ein erfolgreicher Angriff auf den Host erfolgt ist. Aber das sind nicht alle Gefahren, die drohen. Bestimmte Prozesse in manchen Containern müssen eventuell mit Root-Rechten laufen oder sie benötigen die Möglichkeit, erweiterte Rechte innerhalb des Betriebssystems oder des Kernels anzufordern. Wenn diese Prozesse von einem Angreifer gehackt werden konnten, dann kann er möglicherweise von diesem Container aus weitere auf demselben Host untergebrachte Container erreichen. Das Kernproblem ist dabei, dass der Kernel des Hosts von den darauf untergebrachten Containern geteilt wird.
Die gründliche Absicherung des Hosts ist deshalb die wichtigste Voraussetzung für den Schutz der auf ihm untergebrachten Container. Durch den Einsatz von Kontrollgruppen, mit denen Sie die Hardwareressourcen und -prozesse beschränken können, durch ein Whitelisting von erlaubten Programmen, durch ein regelmäßiges Aktualisieren und durch ein Segmentieren der Container und ihrer Hosts sowie durch die Umsetzung des Prinzips der geringsten benötigten Rechte garantieren Sie die Grundlagen eines sicheren Betriebs Ihrer Container. Das gilt sowohl für die Anwendungen, für die Authentifizierung und für das Netzwerk.
Selbst wenn der Container-Host komplett abgesperrt und gesichert wird, werden aber weitere spezialisierte Security Tools benötigt. Unternehmen müssen jederzeit darüber informiert sein, was in ihren Containern alles läuft und wissen, wie sie sie effizient testen können.
Wenn Sie Container aus öffentlichen Repositories verwenden, dann sollte dieser Code zunächst validiert werden, bevor sie die heruntergeladenen Images in einer produktiv genutzten Umgebung einsetzen. Setzen Sie bei der Sicherheit Ihrer Anwendungen und Systeme niemals auf Code, den Sie ungeprüft aus dem öffentlich zugänglichen Internet bezogen haben.
Überprüfen Sie zusätzlich auch die digitalen Signaturen aller Software-Images, die Sie heruntergeladen haben. Validieren Sie die Images und verwenden Sie lediglich geprüfte Container, die nur Bestandteile enthalten, die Ihnen bekannt sind. In öffentlichen Repositories finden sich immer wieder Fälschungen und verseuchte Images. Sie sollten die notwendigen Schritte ergreifen, um nicht darauf hereinzufallen.
Dazu gehört auch, dass die Images einerseits unverändert sein müssen, aber andererseits auch kontinuierlich gepatcht und auf Schwachstellen geprüft werden sollten. Wenn eines Ihrer Images unsicher ist, dann wird auch jeder andere Container, der darauf angewiesen ist, einem erheblichen Sicherheitsrisiko ausgesetzt. Diese Situation kann schnell eskalieren und in kurzer Zeit Ihre gesamte IT-Umgebung unsicher machen, wenn Sie nicht rechtzeitig reagieren und die Gefahr beheben.
Das Problem setzt sich aber noch fort, auch wenn alle nötigen Sicherheitsmaßnahmen an einem Image durchgeführt wurden. Nur wenn alle Ihre Container geprüft und gesichert wurden, können Sie mit dem Ergebnis zufrieden sein. Durch Whitelisting und Entfernen von nicht benötigten Funktionen sowie überflüssigen Bestandteilen verringern Sie die Angriffsfläche. Ein Beispiel dafür ist etwa, dass in einem Container untergebrachte Webserver nur über den nach innen gerichteten Port 443 kommunizieren dürfen, aber nicht direkt untereinander.
Konfiguration und Netzwerksicherheit
Die meisten Probleme bei Containern basieren auf fehlerhaften Konfigurationen und nicht auf Exploits. Ihre Einstellungen müssen deswegen immer wieder überprüft werden. Es sollte außerdem darauf geachtet werden, dass keine API-Schlüssel (Application Programming Interface) und keine Passwörter in Containern mehr enthalten sind, bevor sie im Internet eingesetzt werden.
Auch die Kontrolle der Netzwerksicherheit zwischen den einzelnen Containern ist von erheblicher Bedeutung. Jeder Container sollte sein eigenes Segment im Netz haben, das andere Container nicht stören oder beeinflussen können. Die Container sollten aus Sicherheitssicht und um den Betrieb zu vereinfachen, so konfiguriert werden, dass kein direkter Datenverkehr zwischen ihnen erfolgen kann. Werkzeuge wie Kubernetes bieten viele Funktionen zur Orchestration und Automatisierung für Container. Damit erleichtern Sie sowohl das Deployment als auch das Management Ihrer Container, sowohl aus operativer als auch aus Security-Sicht.
Der Einsatz von Containern in Unternehmen nimmt rapide zu. Deshalb ist es so wichtig, über ihre Eigenschaften und wie sie abgesichert werden können, genau Bescheid zu wissen. Open-Source-Frameworks wie der CIS Docker Benchmark ermöglichen eine permanente Kontrolle Ihrer Containerumgebung und somit einen dauerhaft sicheren Einsatz.