Die Verwendung von Containern nimmt weiterhin zu. Ob serverlose, Cloud-native Apps oder der Wunsch, Monolithen zu modernisieren: Container entwickeln sich schnell zur bevorzugten Plattform für die Bereitstellung von Apps.
Sysdig hat vor Kurzem seinen Containernutzungsbericht 2019 veröffentlicht, der auf Daten basiert, die von Kunden seiner öffentlichen Cloud- und On-Premises-Dienste erhoben wurden. Die Daten umfassten über zwei Millionen Container.
Abgesehen von der (für mich) wirklich aufregenden Entdeckung, dass 60 % dieser Container NGINX ausführen, hat Sysdig einige ziemlich beunruhigende Sicherheitsstatistiken aufgedeckt.
Betrachten Sie Folgendes: 54 % der Container hatten eine Lebensdauer von weniger als fünf Minuten. Im Jahr 2018 traf dies nur auf 20 % zu.
Warum ist das beunruhigend? Sicherheit, natürlich. Wenn Sie versuchen, den Zugriff zu sichern (und das sollten Sie) und die in diesem Container ausgeführte App oder API zu schützen, müssen Sie sicherstellen, dass Ihre Sicherheitsdienste die Richtlinien ständig an den aktuellen Status des Clusters anpassen. Dies bedeutet, dass die Richtlinien für Container beim Starten angewendet und bei der Außerbetriebnahme entfernt werden müssen. Es finden also zahlreiche Änderungen statt, die einen hohen Betriebsaufwand bedeuten. Es ist schwierig genug, die Sicherheit bei einer relativ statischen Anwendung richtig zu gestalten. Bei einem hochvolatilen Rohstoff ist es wirklich schwierig, dies schnell zu erreichen.
Wenn Sie das nicht stört, versuchen Sie es mit dieser Statistik: Obwohl 60 % der Container-Images aus privaten Registern gezogen werden (gute Arbeit!), schlagen 52 % davon beim Image-Scan fehl. Das bedeutet, dass sie bekannte Schwachstellen mit einem Schweregrad von „hoch“ oder höher hatten.
Pfui. Ich kann nicht mal.
Es stellt sich heraus, dass eine ganze Reihe von Leuten den Container als Root ausführen (Median pro Host: 21) oder im privilegierten Modus (Median pro Host: 4). Andere haben keine eingeschränkten Berechtigungen (Median 28 pro Host). Das ist besonders frustrierend, da Docker (die am weitesten verbreitete Container-Laufzeitumgebung) standardmäßig mit einem eingeschränkten Satz an Funktionen startet. Das bedeutet, dass jemand die Standardsicherheitseinstellungen absichtlich geändert hat. Das Ausführen ohne Einschränkungen kann zu einer Rechteausweitung oder einem Ausbruch aus dem Container (Zugriff auf das System) führen.
Wir machen jetzt eine Pause, um an die Grundlagen der Containersicherheit zu erinnern:
Für die Sicherheit von Apps – und damit des gesamten Unternehmens – ist es absolut entscheidend, dass gute Container-Sicherheitspraktiken tatsächlich in die Praxis umgesetzt werden. Unser bevorstehender Bericht „State of Application Services“ für 2020 ergab, dass Cloud-native/Microservices durchschnittlich 15 % eines Unternehmens-App-Portfolios ausmachen. Dieser Prozentsatz wurde trotz Erkenntnissen erreicht, die auf lange Rückstände bei der Bearbeitung neuer Anträge hinweisen. Das bedeutet, dass containerisierte Apps nur noch weiter wachsen werden. Und wenn wir einen kleinen Prozentsatz der Apps nicht sichern können, wie können wir dann erwarten, einen signifikanten Prozentsatz davon zu sichern?
Üben Sie eine sichere Containerisierung.
Wenn Sie Ihr Wissen über die Grundlagen der Containersicherheit auffrischen möchten, sehen Sie sich diese Reihe an, die auf dem Fachwissen meines F5-Kollegen Jordan Zebor basiert: