Sechs Schritte zu stabiler Sicherheit für Container (Teil 1)

von Trend Micro

Container bieten Entwicklern große Vorteile, denn sie lösen das permanente Problem des effizienten Packaging einer Anwendung. Wenn ein Team eine Container-Strategie wählt, so kann es sicher sein, dass die Anwendung in jeder Umgebung reibungslos läuft, ob auf dem Laptop, On-Premise, im Datencenter oder in der Cloud. Doch wie bei jeder Technologie, haben auch Container-Umgebungen ihre Tücken. Diese entstehen infolge der Komplexität der Infrastruktur, die schwerwiegende Sicherheitsfolgen haben kann, wenn sie nicht angemessen berücksichtigt wird. Der Prozess der Sicherung von Containern sollte – ebenso wie andere Tests und Qualitätskontrollen auch – in den Entwicklungsprozess integriert und automatisiert werden, um die Anzahl der manuellen Berührungspunkte zu minimieren und ihn in die Wartung und den Betrieb der zugrunde liegenden Infrastruktur mit einzubeziehen. Trend Micro zeigt in dem zweiteiligen Blogeintrag, wie die einzelnen Bereiche mit entsprechender Sicherheit zu versehen sind.

Die wichtigsten Sicherheitsanliegen beziehen sich auf die Sicherheit des Container-Hosts, den Containernetzwerkverkehr, die Sicherheit der Anwendung im Container, bösartiges Verhalten innerhalb der Anwendung, die Sicherung des Containermanagement-Stacks sowie die Integrität der Build-Pipeline.

Bild 1. Container-Sicherheit muss den gesamten Stack umfassen

Nur wenn alle diese Sicherheitsbereiche adressiert sind, ist das volle Vertrauen in die Umgebung gerechtfertigt. Das Ziel sollte sein, dies mit so wenig zusätzlicher betrieblicher Belastung wie möglich zu erreichen. Jedes Tool, das dem Stack hinzugefügt wird, erzeugt zusätzliche Komplexität, die oft der Feind der Sicherheit ist.

Sicherheit für den Host

Betreibt ein Unternehmen den Container-Host selbst, muss es sicherstellen, dass er abgeriegelt, gut gepflegt und aktiv überwacht wird. Ist ein Service wie AWS Fargate, Google App Engine™ Plattform oder Microsoft® Azure™ App Service im Einsatz, so übernimmt der Cloud Service Provider diese Aufgabe.

Die Sicherung des Hosts beginnt mit der Auswahl des Betriebssystems. Wo immer es möglich ist, sollte ein verteiltes Betriebssystem verwendet werden, das für den Betrieb von Containern optimiert ist. Im Fall von Standard-Linux-Distributionen oder Microsoft® Windows® sollte sichergestellt sein, dass unnötige Dienste deaktiviert oder entfernt wurden und das Betriebssystem gehärtet ist.

Anschließend empfiehlt sich eine Reihe von Sicherheits- und Überwachungswerkzeugen, um sicherzustellen, dass der Host wie erwartet funktioniert. Tools wie die Applikationskontrolle sind dafür sehr nützlich. Ein Host-Betriebssystem sollte nur eine äußerst begrenzte Anzahl von Prozessen ausführen. Dafür bietet sich eine von der Anwendungssteuerung erzwungene Ausführungs-Whitelist an.

Weil alle Container, die auf dem Host laufen, Ressourcen gemeinsam nutzen, ermöglicht der Einsatz eines Netzwerksteuerungs-Tools wie einem Intrusion Prevention System (IPS) das Monitoring sowohl des nach innen als auch nach draußen gerichteten Verkehrs und zwischen Containern auf demselben Host.

Ein IPS ist eine hochwirksame Kontrolle, denn durch die Überprüfung der einzelnen Netzwerkpakete auf bösartige oder fehlerhafte Inhalte kann die IPS-Engine verhindern, dass ein Angriff bis zu einer Anwendung vordringt.

Monitoring des Verkehrs zwischen Containern

Sobald der Container in der Produktion läuft, muss er mit anderen Containern und Ressourcen interagieren. Der Verkehr, der ins Internet geht, wird in der Regel durch andere Sicherheitsmaßnahmen geschützt. Web-Gateways und IPSs, die am Netzwerk Edge eingesetzt werden, bieten eine ausgezeichnete Filterschicht, um direkte Angriffe und Versuche von Watering-Hole-Angriffen zu verhindern (Kompromittierung eines Dienstes, um seine Besucher anzugreifen).

Dennoch bleibt die Herausforderung bestehen, den Verkehr zwischen den Containern zu überwachen und zu sichern. Dabei handelt es sich um Netzwerkverkehr, der das Unternehmen nie verlässt und die Edge-Sicherheitskontrollen nicht überschreitet. Sobald ein Cyberkrimineller in einem System Fuß gefasst hat, versucht er bald sich lateral zu bewegen, um seinen Fußabdruck zu erweitern. Dabei profitieren die Kriminellen von der Tatsache, dass die meisten Unternehmen nicht über ausreichende interne Kontrollmechanismen verfügen. Auch hier sollte der gesamte Netzwerkverkehr der Container über ein IPS laufen. Anstatt viele kleine IPS-Engines zu implementieren, sollte das System auf Host-Ebene aufgesetzt werden, sodass der gesamte Datenverkehr effektiv überwacht werden kann, ohne die Leistung wesentlich zu beeinträchtigen.

Bild 2. IPS-Monitoring des innen als auch nach draußen gerichteten Verkehrs und zwischen Containern

Container in der Produktion ändern sich permanent. Sie verarbeiten Daten für die Anwendung, generieren Logdateien, Cachen Dateien usw. Hier sind Echtzeit-Anti-Malwaremechanismen gefragt, die sich mit den Inhalten auseinandersetzen. Auch hier bietet sich ein IPS an – als virtual Patching, um auf Netzwerkebene vor bekannten Sicherheitslücken zu schützen.

Wenn eine Sicherheitslücke remote offen gelegt wird, kann die IPS-Engine Versuche erkennen, sie auszunutzen und schützt die Anwendung. Damit gewinnen die Sicherheitsadmins Zeit, um die Ursache in der nächsten Version dieses Containers zu beheben, anstatt einen Notfall-Fix anzubringen.

Weitere Einzelheiten bietet das Whitepaper „Six Steps to Comprehensive Container Security“. Der zweite Teil der Eintrag zeigt weitere Schritte zur Sicherheit von Containern: das Monitoring der Anwendung, Sichern des Container-Management-Stacks und Entwickeln von Anwendungen auf einer sicheren Grundlage.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

*

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.