BLOG

Umfrage sagt: Container-Sicherheit (immer noch) Anlass zur Sorge

Lori MacVittie Miniaturbild
Lori MacVittie
Veröffentlicht am 17. Dezember 2019

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:

  • Schließ die Tür ab. Die Authentifizierung ist nicht optional. Fordern Sie unbedingt sichere Anmeldeinformationen an und wechseln Sie diese häufig. Verwenden Sie, wann immer möglich, eine Zwei-Faktor-Authentifizierung – insbesondere für den privilegierten Zugriff auf Orchestrierungskonsolen und kritische Infrastrukturen.
  • Verstecken Sie Ihre Wertsachen. Geben Sie Geheimnisse (wie Schlüssel und Anmeldeinformationen) nicht versehentlich öffentlich in einem Repository oder einer leicht zugänglichen, gemeinsam genutzten Quelle weiter.
  • Überprüfen Sie Ihre Anrufe. Nicht alle Anfragen sind gültig und einige enthalten Schadcode. Unabhängig davon, ob es sich um eine App oder einen Infrastrukturdienst handelt, prüfen und bewerten Sie Inhalte auf böswillige Absichten. Optimieren Sie, indem Sie den Scan mit SSL/TLS-Terminierung konsolidieren, um die leichten Leistungseinbußen auszugleichen.
  • Flicken Sie die Löcher. Wenn Sie wissen, dass ein Image, ein Dienst, eine Arbeitslast oder eine andere Komponente anfällig ist, patchen Sie es. Dies gilt insbesondere für Schwachstellen in Komponenten externer Herkunft, da diese besonders gefährdet sind. Der Grund hierfür liegt darin, dass das Auftreten einer Schwachstelle in häufig eingesetzten Anwendungen oder Infrastrukturen wie Apache Struts ein reichhaltiges Feld an Möglichkeiten bietet und ein Angreifer nur geringen Aufwand erfordert, um diese zu finden und auszunutzen.

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:

  1. Grundlagen der Containersicherheit: Einführung
  2. Grundlagen der Containersicherheit: Pipeline
  3. Grundlagen der Containersicherheit: Orchestrierung
  4. Grundlagen der Containersicherheit: Arbeitsbelastung
  5. Grundlagen der Containersicherheit: Abschluss