Skip to main content

Open-Source-Maintainer möchten sicher arbeiten, doch 70 % fehlt das nötige Know-how

Artikel von
the state op open source small

26. Februar 2019

0 Min. Lesezeit

Willkommen zum jährlichen State of Open Source Security Report 2019 von Snyk. Dieser Bericht ist in mehrere Beiträge unterteilt:

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

State of Open Source Security Report 2019 herunterladen

Sicherheitsniveau von Open-Source-Maintainern

Die meisten Entwickler und Maintainer stimmen wahrscheinlich zu, dass Sicherheit beim Erstellen von Produkten und Schreiben von Code eine wichtige Rolle spielen sollte. Für Maintainer gibt es jedoch keine festen Regeln, an die sie sich beim Aufbau von Open-Source-Projekten halten können. Daher können ihre Sicherheitsstandards erheblich variieren.

Maintainer wenden ihre Zeit und Energie unterschiedlichen Aspekten des Projekts zu, häufig funktionalen. Dadurch kann Sicherheit in ihrem Prozess eine geringere Priorität erhalten.

Seit unserem vorherigen Bericht aus dem Jahr 2017 zeichnet sich ein positiver Trend hinsichtlich des Engagements für Sicherheit und des Sicherheitsbewusstseins ab.

Open-Source-Maintainer sagen, ihr Sicherheitswissen verbessere sich, reiche aber noch nicht aus: durchschnittlich 6,6 von 10

In diesem Jahr bewertete die Mehrheit der Befragten ihr Sicherheitswissen als mittelmäßig; der Durchschnitt lag bei 6,6 von 10. Ein kleiner Teil (7 %) schätzte das eigene Wissen als gering ein. Der Anteil der Befragten mit mittelmäßigem Wissen, die Mehrheit, sank tatsächlich auf 63 % gegenüber 56 % im Vorjahr.

Die größten Veränderungen zeigen sich bei den niedrigen und hohen Einstufungen. Im vergangenen Jahr bewerteten nur 17 % ihr Sicherheitswissen als hoch, in diesem Jahr stieg der Anteil auf fast 30 %. Gleichzeitig sehen wir eine ähnliche Entwicklung beim niedrig eingestuften Sicherheitswissen: Im vergangenen Jahr lag der Anteil bei 26 %, in diesem Jahr jedoch nur bei 7 %.

70 % der Open-Source-Maintainer geben an, nicht über fundiertes Sicherheitswissen zu verfügen

Ringdiagramm mit dem Titel „OS-Maintainer sind von ihren eigenen Sicherheitskenntnissen überzeugt“: 30 % hohe, 63 % mittlere und 7 % geringe Zuversicht.

Sicherheitsaudits

Ein Sicherheitsaudit kann Teil eines Code-Reviews sein, bei dem Kollegen sicherstellen, dass Best Practices für sicheren Code eingehalten werden. Es kann auch in Form verschiedener Sicherheitsaudits wie statischer oder dynamischer Anwendungssicherheitstests durchgeführt werden. Manuelle und automatisierte Audits sind entscheidend, um Schwachstellen in Ihrer Anwendung zu erkennen und zu reduzieren. Sie sollten so regelmäßig und früh in der Entwicklungsphase wie möglich durchgeführt werden, um Risiken wie Datenlecks und Datenschutzverletzungen zu einem späteren Zeitpunkt zu minimieren.

Jeder vierte Open-Source-Maintainer prüft seine Codebasis nicht

Im vergangenen Jahr gaben 44 % der Befragten an, noch nie ein Sicherheitsaudit durchgeführt zu haben. In diesem Jahr ist der Anteil deutlich niedriger: 26 % der Befragten prüfen ihren Quellcode nicht. Im Vergleich zum Bericht des Vorjahres beobachten wir in diesem Jahr bei allen Audit-Zyklen einen positiven Trend zu wiederholten Prüfungen. Im Durchschnitt prüfen 10 % mehr Befragte ihren Quellcode häufiger – sowohl vierteljährlich als auch jährlich.

Sicherheitsexperten verweisen oft auf das Shift-Left-Prinzip, um dafür zu plädieren, Sicherheitsfragen und potenzielle Probleme früher im Lebenszyklus einer Anwendung anzugehen. Dieser Ansatz kann Entwicklern durch Automatisierung viele wertvolle Erkenntnisse liefern und dem Sicherheitsteam dabei helfen, mit dem hohen Tempo moderner, kontinuierlicher Entwicklung Schritt zu halten.

Shift Left ist besonders im Bereich Sicherheit entscheidend und manchmal sogar kritisch, um die Kosten für Sicherheitsvorfälle zu senken, die erst in der Produktionsumgebung entdeckt werden. Sicherheitsprobleme früher im Prozess anzugehen und die Wahrscheinlichkeit zu erhöhen, dass Entwickler diese Praktiken übernehmen, gelingt unter anderem durch die Auswahl entwicklerfreundlicher Tools, die sich in bestehende Workflows integrieren lassen.

Ringdiagramm zur Häufigkeit von Code-Audits durch Open-Source-Maintainer: 10 % alle paar Jahre oder seltener, 21 % monatlich, 21 % vierteljährlich, 21 % jährlich und 26 % gar nicht.

Wie erfahren Maintainer von Schwachstellen?

Es ist wahrscheinlicher, dass Maintainer auf ein Sicherheitsproblem aufmerksam gemacht werden, als dass sie es selbst entdecken. Eine branchenweit anerkannte Best Practice ist eine Richtlinie zur verantwortungsvollen Offenlegung, in der festgelegt wird, wie Sicherheitsforscher und andere Personen Sicherheitslücken sicher an die Projekt-Maintainer melden sollen.

Aus den Umfragedaten lässt sich schließen, dass fast die Hälfte (48 %) der Befragten über einen öffentlichen Kanal von einer Schwachstelle in ihrem Code erfahren – etwa wenn jemand ein öffentliches Issue eröffnet oder sie per E-Mail kontaktiert.

Balkendiagramm mit dem Titel „Wie erfahren Maintainer von Sicherheitslücken?“: Code-Reviews 72 %, öffentliche Issues 48 %, E-Mail 37 %, Audits 30 % und Sonstiges

72 % der Befragten gaben an, Schwachstellen in ihrem Code bei einer persönlichen Prüfung des eigenen Codes zu entdecken. 62 % der Befragten schätzen ihr Sicherheitswissen jedoch nur als mittelmäßig ein, während nur 30 % angeben, über hohe Sicherheitsexpertise zu verfügen.

Obwohl die Mehrheit der Befragten (72 %) angibt, den eigenen Code auf Schwachstellen zu prüfen, erfahren 48 % dennoch erst davon, wenn jemand anderes ein öffentliches Issue eröffnet. Das zeigt, wie schwierig es ist, sich auf die Prüfung durch nur einen Maintainer zu verlassen – selbst wenn dieser über gute Sicherheitskenntnisse zu verfügen scheint.

Vom Einbau bis zur Offenlegung

Eine unserer Forschungsfragen lautete: Wie lange dauert es, bis eine Schwachstelle nach ihrem Einbau in die Codebasis entdeckt und offengelegt wird? Um diese Frage zu beantworten, analysierten wir einige der beliebtesten Bibliotheken im npm-Ökosystem sowie die Schwachstellen, die 2018 darin entdeckt wurden.

Da sich dieser Vorgang nur mit hohem Aufwand und schwer zuverlässig automatisieren lässt, untersuchten wir die sechs beliebtesten npm-Bibliotheken und analysierten ihre Codebasen. Dabei betrachteten wir die Zeitspanne zwischen den Commits, durch die eine Schwachstelle eingeführt und behoben wurde. Natürlich sind diese Berechnungen etwas verzerrt, da die Stichprobe so klein ist. Trotzdem sind die Größenordnung und Reihenfolge der Zahlen interessant!

Bei diesen sieben Bibliotheken betrug die kürzeste Zeitspanne von der Einführung bis zur Behebung fast ein Jahr – genau genommen 289 Tage. Die mediane Zeitspanne lag bei fast 2,5 Jahren, der längste beobachtete Fall bei 5,9 Jahren.

Zeitleiste der Reaktionszeiten bei der Offenlegung von Sicherheitslücken: von Tag 1 bis Tag 2.250; die mediane Reaktionszeit beträgt 886 Tage.

Im Fokus: Equifax – ein Jahr später

Ein kürzlich veröffentlichter Bericht der US-Regierung kam zu dem Schluss, dass der berüchtigte Equifax-Datendiebstahl vollständig vermeidbar gewesen wäre. Er verdeutlichte, wie wichtig es ist, Sicherheit durch die Integration in den Entwicklungs-Workflow nach links zu verlagern.

Mit einer DevSecOps-Mentalität und guten Praktiken hätte ein Entwicklungsteam die Auswirkungen der Struts-Schwachstelle verhindern können, wenn:

  • Entwickler das Problem mithilfe von Tools zum Scannen von Open-Source-Abhängigkeiten entdeckt hätten, die sich über IDE-Plugins oder Code-Linter in ihren Workflow integrieren lassen.

  • Jeder neue Build, der auf einem CI-Server ausgeführt wird, die Anwendungsabhängigkeiten automatisch über ein CI-Server-Plugin oder einen CLI-Aufruf als Task geprüft hätte. So wäre die neue Schwachstelle sofort erkannt, der CI-Job abgebrochen und vor der Fortsetzung eine Behebung erzwungen worden.

  • Eine Monitoring-Lösung eingerichtet gewesen wäre, die Entwickler über die neue Schwachstelle in ihren Abhängigkeiten benachrichtigt hätte.

Weitergehendes Monitoring und Erkenntnisse zur Laufzeit über das Verhalten der Anwendung und die von ihr aufgerufenen anfälligen Funktionen hätten auf Schwachstellen in der Struts-Bibliothek aufmerksam machen können.

Korrekturen veröffentlichen

Ein entscheidender Bestandteil einer verantwortungsvollen Offenlegung von Sicherheitslücken ist die Geschwindigkeit, mit der eine Korrektur entwickelt und bereitgestellt wird. Es ist wichtig, die Schwachstelle so schnell wie möglich zu beheben, damit sie kürzer im Code vorhanden ist. Gleichzeitig sollte Nutzern ausreichend Zeit bleiben, auf eine korrigierte Version zu aktualisieren – möglichst bevor die Schwachstelle allgemein bekannt wird.

Da Open-Source-Communities größtenteils von der ehrenamtlichen Arbeit von Entwicklern leben (ein großes Dankeschön an all die wunderbaren Menschen, die zu Open-Source-Software beitragen – Ihre wertvolle Arbeit wird sehr geschätzt und öffentlich viel zu selten gewürdigt!), ist es interessant zu untersuchen, wie schnell Maintainer von Open-Source-Software auf eine Sicherheitslücke reagieren und eine Korrektur bereitstellen können.

Eine überwältigende Mehrheit der Befragten, insgesamt 84 %, gibt an, wahrscheinlich innerhalb von weniger als einer Woche eine Korrektur bereitzustellen. 56 % würden das Problem voraussichtlich innerhalb eines Tages beheben, während 22 % eine Sicherheitslücke binnen weniger Stunden nach ihrer Meldung beheben könnten – nicht alle Helden tragen Umhänge!

Ringdiagramm mit dem Titel „Reaktionszeiten bei Sicherheitslückenmeldungen“: 22 % innerhalb weniger Stunden, 35 % innerhalb eines Tages, 27 % innerhalb einer Woche, 10 % innerhalb eines Monats und 6 % nach mehr als einem Monat

Behebungsgeschwindigkeit

Anhand der Snyk Vulnerability Database können wir feststellen, welche Pakete Versionen mit Korrekturen für Schwachstellen veröffentlicht haben. Für einige Ökosysteme ergibt sich dabei ein weniger erfreuliches Bild – wir meinen dich, JavaScript! Java und Python zeigen ein starkes Engagement für die Behebung von Sicherheitsschwachstellen. Bei JavaScript und Node.js insgesamt verfügen jedoch nur 59 % der Pakete über bekannte Korrekturen für offengelegte Schwachstellen.

Balkendiagramm zu Paket-Schwachstellen mit bekannten Fixes: RubyGems 84 %, npm 59 %, Maven Central 97 % und PyPI 98 %.

Im Fokus: Verantwortungsvolle Offenlegung von Sicherheitslücken

Ein wesentlicher Vorteil einer Richtlinie zur verantwortungsvollen Offenlegung ist, dass sie Nutzer vor Schaden bewahrt. Wird eine Schwachstelle vertraulich an den Projekt-Maintainer gemeldet und von ihm bewertet, kann dieser eine Korrektur vorbereiten, bevor die Informationen öffentlich werden. Wenn Maintainer schnell handeln und eine Korrektur veröffentlichen, erhalten Nutzer ein Zeitfenster, in dem sie auf die korrigierte Version aktualisieren können. Dadurch sinkt die Zahl der Nutzer, die anfällige Versionen verwenden, erheblich.

Wir sind überzeugt, dass eine Richtlinie zur verantwortungsvollen Offenlegung auch das hohe Engagement eines Maintainers für Sicherheit vermittelt. Als Best Practice empfehlen wir ein entsprechendes Badge auf der Homepage des Projekts und eine SECURITY.MD-Richtlinie im Repository des Projekts.

Im letzten Bericht stellten wir fest, dass Maintainer mit einer öffentlich zugänglichen Richtlinie zur Offenlegung deutlich häufiger vertrauliche Meldungen von Nutzern erhalten als Maintainer ohne eine solche Richtlinie.

Etwa 21 % der Maintainer ohne öffentlich zugängliche Richtlinie zur Offenlegung wurden privat über eine Schwachstelle informiert. Bei Maintainer mit einer solchen Richtlinie waren es 73 %.

Websites sind anfällig für Web-Sicherheitsschwachstellen und profitieren von klaren Richtlinien zur Websicherheit. Ein neuer Vorschlag, der hier Abhilfe schaffen soll, ist SECURITY.TXT (RFC 5785), der bereits früh angenommen wurde. Eine solche Richtliniendatei soll Sicherheitsforschern die relevanten Kontakte, bevorzugten Sprachen, die genauen Richtlinien und Kommunikationswege vermitteln – einschließlich öffentlicher Schlüssel, um Sicherheitslücken sicher und effizient offenzulegen.

Lesen Sie weiter:

Starten Sie mit Capture-the-Flag

Erfahren Sie in unserem virtuellen On-Demand-Workshop für Einsteiger, wie Sie Capture-the-Flag-Challenges lösen.