Skip to main content

Die zehn beliebtesten Docker-Images enthalten jeweils mindestens 30 Schwachstellen

Artikel von
the state op open source small

26. Februar 2019

0 Min. Lesezeit

Willkommen zum jährlichen Bericht „State of Open Source Security 2019“ von Snyk. Dieser Bericht besteht aus mehreren Beiträgen:

Oder laden Sie unseren liebevoll gestalteten PDF-Bericht herunter, der all diese Informationen und mehr an einem Ort enthält.

Den Open-Source-Sicherheitsbericht 2019 herunterladen

Bekannte Schwachstellen in Docker-Images

Der Einsatz von Anwendung-Container-Technologie nimmt rasant zu und soll laut 451 Research 2020 um weitere 40 % wachsen. Systembibliotheken sind häufig in vielen Docker-Images enthalten, da diese auf einem übergeordneten Image basieren, das üblicherweise eine Linux-Distribution als Grundlage verwendet.

Docker-Images bringen fast immer bekannte Schwachstellen mit sich – neben ihren großen Vorteilen

Wir haben zehn der beliebtesten Images mit den kürzlich veröffentlichten Docker-Scan-Funktionen von Snyk untersucht.

Die Ergebnisse zeigen: Jedes von uns untersuchte Docker-Image enthielt anfällige Versionen von Systembibliotheken. Das offizielle Node.js-Image enthält 580 anfällige Systembibliotheken. Die übrigen Images enthalten jeweils mindestens 30 öffentlich bekannte Schwachstellen.

Balkendiagramm mit Schwachstellen in Betriebssystemen nach Docker-Image: node 580, postgres 89, nginx 85, httpd 69, mongo und mysql je 61.

Snyk hat kürzlich eine Lösung für das Management von Container-Schwachstellen veröffentlicht, mit der Entwickler die Sicherheit ihrer Docker-Anwendungen vollständig selbst verantworten können. Mit dieser neuen Funktion können Entwickler bekannte Schwachstellen in ihren Docker-Basis-Images finden und mithilfe der Behebungsempfehlungen von Snyk korrigieren. Snyk schlägt entweder ein minimales Upgrade oder alternative Basis-Images mit weniger oder gar keinen Schwachstellen vor.

Wenn Sie die Schwachstellen kennen, lassen sie sich leicht beheben. Bei 20 % der Images lassen sich Schwachstellen einfach durch einen Neuaufbau des Docker-Images beheben, bei 44 % durch den Austausch des Basis-Images.

Auf Grundlage der von Snyk-Nutzern durchgeführten Scans haben wir festgestellt, dass 44 % der Docker-Image-Scans bekannte Schwachstellen aufwiesen, obwohl neuere und sicherere Basis-Images verfügbar waren. Diese Behebungsempfehlung ist einzigartig bei Snyk. Entwickler können ihre Docker-Images aktualisieren.

Snyk berichtete außerdem, dass 20 % der Docker-Image-Scans bekannte Schwachstellen aufwiesen, deren Anzahl sich einfach durch einen Neuaufbau des Images reduzieren ließ.

Schwachstellen im Vergleich nach Image-Tag

Die aktuelle Long-Term-Support-Version (LTS) der Node.js-Laufzeitumgebung ist Version 10. Das mit 10 getaggte Image (d. h. node:10) ist im Wesentlichen ein Alias für node:10.14.2-jessie (zum Zeitpunkt unserer Tests). Jessie bezeichnet eine veraltete Debian-Version, die nicht mehr aktiv gewartet wird.

Wenn Sie dieses Image als Basis-Image in Ihrer Dockerfile ausgewählt hätten, wären Sie 582 anfälligen Systembibliotheken ausgesetzt, die im Image enthalten sind. Eine weitere Möglichkeit ist das Image-Tag node:10-slim, das schlankere Images ohne unnötige Abhängigkeiten bereitstellt (zum Beispiel werden Manpages und andere Ressourcen weggelassen). Doch auch node:10-slim enthält noch 71 anfällige Systembibliotheken.

Die meisten Schwachstellen stammen aus dem ausgewählten Basis-Image. Deshalb sollte sich die Behebung auf Korrekturen am Basis-Image konzentrieren.

Wenn Sie ein sehr kleines Basis-Image mit einer minimalen Anzahl an Systembibliotheken benötigen, ist node:10-alpine eine bessere Wahl. In der von uns getesteten Alpine-Image-Version wurden zwar keine Schwachstellen erkannt, das bedeutet jedoch nicht zwangsläufig, dass sie frei von Sicherheitsproblemen ist.

Alpine Linux geht anders mit Schwachstellen um als andere große Distributionen, die Patches bevorzugt zurückportieren. Alpine setzt bei seinen Images auf kurze Release-Zyklen: Mit jedem Image-Release werden die Systembibliotheken aktualisiert.

Balkendiagramm zu Schwachstellen nach Node-Image-Tag: node:10 hat 582, node:10-slim hat 71 und node:10-alpine hat 0.

Außerdem pflegt Alpine Linux kein Sicherheitswarnungsprogramm. Das bedeutet: Wenn eine Systembibliothek Schwachstellen aufweist, veröffentlicht Alpine Linux dazu keine offizielle Warnung. Stattdessen behebt Alpine Linux die Schwachstelle mit einer neuen Version des Basis-Images, die – sofern verfügbar – eine korrigierte Version der Bibliothek enthält (anstatt wie oben erwähnt Patches zurückzuportieren).

Es gibt keine Garantie dafür, dass eine neuere, korrigierte Version einer anfälligen Bibliothek sofort für Alpine Linux verfügbar ist, auch wenn dies häufig der Fall ist. Wenn Sie jedoch sicher auf die Alpine-Linux-Version umsteigen können, ohne Ihre Anwendung zu beeinträchtigen, verringern Sie die Angriffsfläche Ihrer Umgebung, da Sie weniger Bibliotheken verwenden.

Ein Image-Tag wie node:10 ist in Wirklichkeit ein Alias für ein anderes Image, der fortlaufend auf neue Minor- und Patch-Versionen von 10 verweist, sobald diese veröffentlicht werden.

Terminalbericht mit 826 Schwachstellen in einem Node.js-Docker-Image, aufgeschlüsselt nach Schweregrad, sowie Empfehlungen für Basis-Images mit geringerem Risiko.

Manche Teams verwenden anstelle eines Alias ein Tag für eine bestimmte Version, sodass ihr Basis-Image zum Beispiel node:10.8.0-jessie lautet. Mit der Veröffentlichung neuerer Node-10-Versionen ist es jedoch gut möglich, dass diese Images weniger Schwachstellen in Systembibliotheken enthalten.

Mit den Docker-Scan-Funktionen von Snyk haben wir festgestellt, dass wir bei Projekten mit einem Tag für eine bestimmte Version wie node:10.8.0-jessie neuere Images mit weniger Schwachstellen empfehlen konnten.

Bekannte Schwachstellen in Systembibliotheken

Die Zahl der gemeldeten Schwachstellen in Systembibliotheken steigt. Betroffen sind einige beliebte Linux-Distributionen wie Debian, Red Hat Enterprise Linux und Ubuntu. Allein 2018 erfassten wir in Systembibliotheken dieser Distributionen 1.597 Schwachstellen mit zugeordneten CVEs – mehr als viermal so viele wie 2017.

Liniendiagramm mit stetig zunehmenden Schwachstellen in Linux-Betriebssystemen von 2008 bis 2018 für Debian, RHEL und Ubuntu.

Die Aufschlüsselung nach Schweregrad (hoch und kritisch) zeigt deutlich, dass die Zahl der Schwachstellen dieser Kategorien 2017 und 2018 weiter zunahm.

Gestapeltes Balkendiagramm zu schwerwiegenden und kritischen Schwachstellen in Systembibliotheken von 2014 bis 2018; die Gesamtzahl erreichte 2017 und 2018 ihren Höchststand.

Lesen Sie weiter: