Es braucht eine Community: Reaktion auf Kritik an Open Source nach Log4Shell
24. Dezember 2021
0 Min. LesezeitDie vergangene Woche war für so ziemlich alle in der Technologiewelt eine wilde Fahrt – ausgelöst durch die öffentliche Bekanntgabe der Log4Shell-Sicherheitslücke. Als Unternehmen für Developer Security hat Snyk sein Geschäft darauf aufgebaut, Sicherheitsprobleme in Anwendungen proaktiv und automatisiert zu erkennen und zu beheben. Zu sagen, dass wir diese Woche viel zu tun hatten, wäre eine Untertreibung.
Dennoch haben wir in der vergangenen Woche im Zusammenhang mit Log4Shell immer wieder die Aussage gehört, Open Source sei grundsätzlich kaputt: Es gibt nicht genug Mitwirkende, um „zuverlässige“ Software zu entwickeln, es gibt nicht genug Sicherheitsprüfungen und es gibt nicht genug Finanzierung, um die Nachhaltigkeit von Open-Source-Software sicherzustellen.
Auch wenn an diesen Behauptungen etwas dran ist, sind wir ganz und gar nicht der Meinung, dass Open Source kaputt ist. Open Source ist großartig. Es treibt die Entwickler-Community voran, ermöglicht uns, „auf den Schultern von Giganten zu stehen“, und ganz ehrlich: Open Source bedeutet, dass wir uns als Community gemeinsam um die Sicherheit kümmern können – etwas, das bei Closed-Source-Software nicht möglich ist.
Um auf diesen letzten Punkt noch kurz einzugehen: Open Source basiert auf einer Community. Wenn bei einem Open-Source-Projekt ein dringendes Sicherheitsproblem auftritt, kann die Community zusammenarbeiten, um es zu beheben, die Lösung breit zu teilen und zu bewerten, wie weitreichend das Problem ist. Sicherheitslücken sind zwar nie etwas Gutes, bieten der Open-Source-Community aber die Möglichkeit, ihre Protokolle und Vorgehensweisen zu verbessern. Wenn Millionen Menschen zusammenkommen, können sie Erstaunliches erreichen – zum Beispiel eine Zero-Day-Sicherheitslücke mit einem CVSS-Score von 10,0 beheben!
Ist Open Source perfekt? Absolut nicht: Es gibt echte Probleme bei der Finanzierung, ein Ungleichgewicht bei den Beiträgen, Sicherheitsprobleme und vieles mehr. All das lässt sich aber von Menschen wie Ihnen und mir verbessern. Bei Open Source kann jeder etwas bewirken!
Probleme bei Open Source heute
Sehen wir uns einige der Probleme bei Open Source an, auf die andere in den letzten Wochen hingewiesen haben:
Open-Source-Software braucht Finanzierung.
Open-Source-Software braucht mehr Mitwirkende für Reviews, Verbesserungen und mehr.
Open-Source-Software nimmt Sicherheit nicht ernst.
Open-Source-Software braucht Finanzierung
Das stimmt absolut! Wie Christine Dodrill in ihrem kürzlich erschienenen Artikel hervorhebt, hatte die `log4j`-Bibliothek (die von unzähligen Java-Anwendungen genutzt wird) drei zahlende Sponsoren, bevor die Log4Shell-Sicherheitslücke die Aufmerksamkeit auf die Situation lenkte.
Das ist ein echtes Problem. Open-Source-Bibliotheken, auf die viele angewiesen sind, brauchen oft finanzielle Unterstützung. Nur so haben Maintainer genug Zeit, Probleme zu beheben und die Stabilität und Sicherheit ihrer Anwendungen zu gewährleisten.
Ähnlich wie bei Log4j wurde das OpenSSL-Projekt vor der Bekanntgabe der Heartbleed-Sicherheitslücke von zwei Personen betreut, die zusammen ein Budget von etwa 2.000 US-Dollar pro Jahr hatten. Für einen so wichtigen Teil der Internetinfrastruktur waren das bei Weitem nicht genügend Ressourcen.
Open-Source-Software braucht mehr Mitwirkende
Viele bekannte Projekte haben zwar zahlreiche Mitwirkende, doch viele wichtige Open-Source-Bibliotheken werden oft von nur wenigen Personen entwickelt. Das birgt stets das Risiko, dass Fehler nicht rechtzeitig behoben werden, ungelöste Sicherheitsprobleme auftreten oder Maintainer sich einfach anderen Projekten zuwenden und dadurch eine Lücke bei der Wartung entsteht.
Zum Beispiel wurde das curl-Tool und die curl-Bibliothek, die seit 1998 vielfach zum Abrufen von Daten genutzt werden, viele Jahre lang von einer einzigen Person betreut!
Open Source nimmt Sicherheit nicht ernst
Diese Behauptung hören wir in letzter Zeit häufig. Open Source hat zwar durchaus mit Sicherheitslücken zu kämpfen, doch viele Fachleute sind der Meinung, dass Open-Source-Software in puncto Sicherheit gegenüber proprietärer Software verschiedene Vorteile bietet. Außerdem hat sich, wie die jüngsten Ereignisse gezeigt haben, die Open-Source-Community bei Sicherheitslücken in der Regel um Lösungen bemüht – selbst bei knapper Finanzierung und wenigen Mitwirkenden.
Das größere Problem ist, dass den meisten Entwicklern – unabhängig davon, ob sie an Open Source arbeiten – das nötige Sicherheitswissen, die entsprechende Schulung und die passenden Tools fehlen, um „Sicherheit ernst zu nehmen“. Unser Bericht zum Stand der Open-Source-Sicherheit 2019 ergab, dass sich nur drei von zehn Open-Source-Maintainern selbst als Personen mit „hohem Sicherheitswissen“ einschätzten.
Das ist nicht die Schuld von Open-Source-Entwicklern, sondern ein Versäumnis des gesamten Entwickler-Ökosystems: Soweit ich mich erinnern kann, war Sicherheit in der Branche immer nur ein Randthema. Wenn wir zuverlässigere und sicherere Software entwickeln wollen, muss Sicherheit jedoch zu einem zentralen Bestandteil des Softwareentwicklungsprozesses werden:
Sicherheitstools müssen zum Werkzeugkasten aller Entwickler gehören (genau wie eine IDE oder ein Editor).
Sicherheitswarnungen müssen relevant, aussagekräftig und von hohem Nutzen sein (falsche oder wenig hilfreiche Warnungen lenken schmerzhaft ab).
Sicherheit muss gut in Entwickler-Workflows und -Tools integriert sein (CI/CD-Pipelines, Code-Review-Prozesse und mehr).
Sicherheit muss in Informatikstudiengängen gelehrt und als wesentlicher Bestandteil in den Lehrplan aufgenommen werden.
Was Open Source heute auszeichnet
Nachdem wir einige der zentralen Kritikpunkte an Open Source besprochen haben, wollen wir uns nun den positiven Seiten widmen.
Open Source floriert
Heute gibt es mehr Open-Source-Entwickler als je zuvor. 2018 veröffentlichte GitHub einen großartigen Artikel, in dem die Zahl der Open-Source-Entwickler auf der Plattform beleuchtet wurde, nachdem dort 100 Millionen Repositories erreicht worden waren.
Damals berichtete GitHub, dass insgesamt 31 Millionen Entwickler aus fast allen Ländern der Welt zusammenarbeiteten und 1,1 Milliarden Beiträge geleistet hatten.
Auch die Zahl der Open-Source-Mitwirkenden, die zum ersten Mal Beiträge leisten, ist deutlich gestiegen: 2019 verzeichnete GitHub fast zwei Millionen Erstbeitragende. Nur zwei Jahre später, 2021, war diese Zahl bereits auf über drei Millionen gestiegen.
Kurz gesagt: Überall auf der Welt arbeiten zahlreiche Entwickler an Open-Source-Projekten und leisten Beiträge dazu!
Open Source ist die Grundlage für … so gut wie alles
Unabhängig davon, wie Sie zu Open Source stehen: Sein Einfluss auf die moderne Welt ist unbestreitbar. Open Source bildet die Grundlage für so gut wie jedes bedeutende Unternehmen, jede Anwendung und jedes Projekt, das in den letzten mehr als 20 Jahren entstanden ist.
Stellen Sie sich vor, heute eine Webanwendung ohne ein Open-Source-Webframework wie Django zu entwickeln oder eine Desktop-Anwendung ohne mindestens eine Handvoll Open-Source-Bibliotheken. Für Entwickler ist das kaum vorstellbar.
Ob es Ihnen gefällt oder nicht: Open Source wird überall eingesetzt – von den kleinsten Hobbyprojekten bis hin zu den größten Webanwendungen der Welt (und darüber hinaus!). Einem Bericht zufolge basieren 98 % aller Codebasen auf Open-Source-Software. Die Welt läuft mit Open Source.
Die Finanzierung von Open Source wird angegangen
Auch wenn viele Open-Source-Projekte dringend finanzielle Unterstützung brauchen – eine Tatsache, die sich nicht leugnen lässt –, gibt es zahlreiche Initiativen und gesellschaftliche Veränderungen, die diese Probleme angehen.
So gibt es heute zum Beispiel 105 Sponsoren von Ralph Goers, dem leitenden Maintainer des Log4j-Projekts. Es wäre natürlich besser gewesen, diese Finanzierung schon vor Log4Shell zu haben. Doch die Community hat das Problem erkannt, und viele Einzelpersonen und Organisationen haben sich dafür eingesetzt, dort finanzielle Unterstützung bereitzustellen, wo sie gebraucht wird. Das ist ein großartiges Beispiel dafür, wie eine Community zusammenkommt, um ein Problem zu lösen.
Stiftungen wie die Linux Foundation (die Apache Foundation, die Python Foundation und andere) bieten Open-Source-Projekten, die Unterstützung benötigen, zahlreiche Ressourcen – finanzieller und anderer Art. Es gibt zwar noch viel zu tun, doch diese Organisationen leisten einen direkten Beitrag zu wichtigen Open-Source-Projekten und helfen dabei, angemessene Finanzierung, Ressourcen und Sichtbarkeit sicherzustellen.
Das gilt auch für viele Unternehmen: Zahlreiche Organisationen unterstützen Open-Source-Projekte direkt oder indirekt, indem sie Mitarbeitenden Zeit dafür einräumen. Die Liste ist zu lang für einen Blogbeitrag, aber die meisten großen Technologieunternehmen finanzieren Open Source auf die eine oder andere Weise.
Die Sicherheit von Open Source verbessert sich rasant
Wie bereits erwähnt, lässt sich die Sicherheit von Open Source nicht isoliert betrachten, denn Sicherheitslücken gibt es in der gesamten Branche. Sie betreffen Open-Source- und Closed-Source-Anwendungen gleichermaßen.
Die gute Nachricht: Die Sicherheit von Open Source verbessert sich rasant. Dazu tragen viele Faktoren bei:
In den letzten zehn Jahren ist das Interesse an Cybersicherheit gestiegen.
Die weltweiten Ausgaben für Cybersicherheit haben sich allein in den letzten vier Jahren fast verdoppelt.
Open-Source-Entwicklern stehen heute leistungsstarke, kostenlose Dienste zur Verfügung, mit denen sie Sicherheitsprobleme erkennen und beheben können (wie Snyk, das für die Nutzung in Open-Source-Projekten zu 100 % kostenlos ist).
Organisationen wie die OpenSSF (Open Source Security Foundation) setzen sich gezielt dafür ein, alle Open-Source-Projekte sicherer zu machen.
Es gibt immer mehr kostenlose Ressourcen für die Sicherheitsschulung, die Entwicklern und anderen vermitteln, wie sie Anwendungen sicher entwickeln – unabhängig davon, ob diese Open Source sind.
So lässt sich Open Source verbessern
Die Wahrheit ist: Open Source wird niemals perfekt sein (nichts ist perfekt!). Es liegt an uns als Community-Mitgliedern, die Dinge besser zu hinterlassen, als wir sie vorgefunden haben, und den Zustand von Open Source zu verbessern.
Ein altes griechisches Sprichwort lautet: „Eine Gesellschaft gedeiht, wenn alte Menschen Bäume pflanzen, in deren Schatten sie selbst niemals sitzen werden.“ Dieses Sprichwort gilt zwar für Gesellschaften im Allgemeinen, doch als Technologie-Community können wir dank der rasanten Entwicklung der Technologie sowohl Bäume pflanzen als auch in ihrem Schatten sitzen.
Im Folgenden finden Sie meine Vorschläge, wie Sie Open Source ganz persönlich ein wenig verbessern können:
Spenden Sie Geld für die Open-Source-Projekte, die Sie am häufigsten nutzen, und unterstützen Sie so deren Maintainer. Das können Sie über GitHub Sponsors, OpenCollective oder auf vielen anderen Wegen tun.
Investieren Sie Zeit in Open-Source-Projekte, auf denen Ihre eigene Arbeit aufbaut. Wenn Sie beispielsweise eine Webanwendung mit Django entwickeln und eine nützliche neue Funktion hinzufügen, versuchen Sie, diese zum Projekt beizusteuern! Sich an der Open-Source-Entwicklung zu beteiligen, ist vielleicht einfacher, als Sie denken.
Nutzen Sie kostenlose Sicherheitstools wieSnyk, um Sicherheitsprobleme in Ihren Projekten zu erkennen und zu beheben. Mit Tools wie Snyk können Sie:
Ihre Code-Repositories auf Sicherheitslücken überprüfen und sich automatisch benachrichtigen lassen, wenn neue Probleme entdeckt werden
Viele gängige Sicherheitslücken sofort beheben und Ihre Abhängigkeiten auf dem neuesten Stand halten
Direkt in Ihre IDE integrieren, um Sicherheitsprobleme zu erkennen, bevor Code überhaupt in Ihr Repository übertragen wird
Container und Infrastrukturkonfigurationen überprüfen, um die Sicherheit Ihrer Infrastruktur sicherzustellen
In CI/CD-Pipelines integrieren, damit kritische Sicherheitsprobleme erkannt werden, bevor etwas live geht
Und wenn doch einmal etwas Schlimmes passiert, etwa eine kritische Sicherheitslücke auftritt, gilt vor allem: Bewahren Sie Ruhe. Perfekt sichere Software lässt sich nicht entwickeln: Es werden immer neue Angriffsvektoren und -techniken entstehen, und selbst Code, der heute als absolut sicher gilt, ist es vielleicht nächstes Jahr nicht mehr.
Am besten atmen Sie tief durch und gehen dringende Probleme an, sobald sie auftreten – und bewahren dabei einen kühlen Kopf. Und … vergessen Sie nicht, mit der Community in Kontakt zu bleiben! Teilen Sie Ihr Wissen und bewährte Vorgehensweisen mit Ihren Kolleginnen und Kollegen – davon profitieren alle.
Ich jedenfalls bin der gesamten Open-Source-Community und all den großartigen Menschen, die dazugehören (einschließlich Ihnen!), dankbar. Ich weiß, dass die Lage manchmal schlecht aussehen kann. Aber denken Sie daran: Es geht voran, die Dinge verbessern sich, und Sie können direkt etwas Positives bewirken!
Frohe Feiertage!


