Die zehn beliebtesten Docker-Images enthalten jeweils mindestens 30 Schwachstellen
26. Februar 2019
0 Min. LesezeitWillkommen zum jährlichen Bericht „State of Open Source Security 2019“ von Snyk. Dieser Bericht besteht aus mehreren Beiträgen:
88 % mehr Schwachstellen in Anwendungskomponenten in zwei Jahren
Open-Source-Maintainer wollen für Sicherheit sorgen, doch 70 % fehlt es an den nötigen Kenntnissen
Die zehn beliebtesten Docker-Images enthalten jeweils mindestens 30 Schwachstellen
ReDoS-Schwachstellen in npm steigen um 143 %, XSS nimmt weiter zu
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.

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.

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.

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.

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

Lesen Sie weiter:
Im DevSecOps Hub von Snyk finden Sie Ressourcen und Tipps, die Sie direkt umsetzen können.
Maven-Central-Pakete verdoppelt; eine Viertelmillion neuer Pakete in npm indexiert
88 % mehr Schwachstellen in Anwendungskomponenten in zwei Jahren
Open-Source-Maintainer wollen für Sicherheit sorgen, doch 70 % fehlt es an den nötigen Kenntnissen
ReDoS-Schwachstellen in npm steigen um 143 %, XSS nimmt weiter zu
10 Best Practices für Docker-Sicherheit – beschreibt Sicherheitspraktiken, die Sie beim Erstellen und Abrufen von Docker-Basis-Images befolgen sollten, und führt Sie außerdem in Docker Content Trust ein.
Entwickeln Sie mit Java? Diese Ressource ist für Sie interessant: Docker für Java-Entwickler: 5 Dinge, die Sie wissen müssen, damit Ihre Sicherheit nicht auf der Strecke bleibt
10 Best Practices für die Containerisierung von Node.js-Webanwendungen mit Docker. Wenn Sie mit Node.js entwickeln, wird Ihnen diese Schritt-für-Schritt-Anleitung gefallen. Sie zeigt Ihnen, wie Sie sichere und leistungsstarke Docker-Basis-Images für Ihre Node.js-Anwendungen erstellen.
