Protestware liegt bei Open Source im Trend: 4 Arten und ihre Auswirkungen
22. März 2022
0 Min. LesezeitVor einigen Tagen berichtete Snyk über eine neue Art von Bedrohungsvektor in der Open-Source-Community: Protestware. In der Warnung ging es um eine transitive Schwachstelle – peacenotwar – in node-ipc, die die Supply-Chain zahlreicher Entwicklerinnen und Entwickler beeinträchtigte. Snyk nutzt verschiedene Threat-Intelligence-Feeds und Algorithmen, um Diskussionen über potenzielle Bedrohungen für Open Source zu überwachen. Wir glauben, dass dies nur die Spitze des Protestware-Eisbergs sein könnte.
Seit der Veröffentlichung der node-ipc-Warnung verzeichnen wir einen massiven Anstieg unserer speziellen Alerts zu Bedrohungen im Zusammenhang mit dem Konflikt. Gleichzeitig ist die Zahl der verschiedenen potenziellen Protestware-Arten im Zusammenhang mit der Invasion der Ukraine gestiegen.
Protestware tritt derzeit in vielen Formen auf. Einige davon scheinen akzeptable Formen der freien Meinungsäußerung zu sein, während andere, wie node-ipc, destruktiver und schädlicher sind. Wir bei Snyk möchten der Community helfen, einen Konsens darüber zu finden, wie sie mit den verschiedenen neuen Formen von Protestware umgehen kann, und die unterschiedlichen Arten voneinander abzugrenzen.
Was ist Protestware?
Protestware ist ein Sammelbegriff für Pakete, die verändert werden, um gegen ein bestimmtes Ereignis zu protestieren. Anders als bei schädlichen Paketen stammen diese Änderungen nicht von „Hackern“ oder anderen böswilligen Akteuren, sondern häufig von bekannten und angesehenen Mitgliedern der Open-Source-Community, die große Open-Source-Projekte aktiv betreuen oder dazu beitragen.
Bevor wir fortfahren: Snyk steht an der Seite der Ukraine. Das haben wir durch unsere Entscheidung deutlich gemacht, Hilfsgüter für die Ukraine zu spenden, die großartigen Open-Source-Projekte aus der Ukraine ins Rampenlicht zu rücken und Geschäftsbeziehungen zu russischen und belarussischen Organisationen abzubrechen. Dennoch ist es unsere Pflicht, über alle Bedrohungen zu berichten, die wir in der Open-Source-Community entdecken, und unseren Beitrag dazu zu leisten, Open Source sicher zu halten.
In diesem Blog stellen wir die vier großen Arten von Protestware-Aktivitäten vor, denen wir bisher begegnet sind, und erläutern unsere Richtlinien für jede einzelne. Wir hoffen, damit weitere Gespräche zu diesem Thema in der Community anzustoßen.
Arten von Protestware
1. Repo-Banner
Bei dieser Art von Paketen fügen Maintainer politische Botschaften als „Banner“ im Repository selbst hinzu. Dazu gehören README-Dateien, die zur Unterstützung der Ukraine angepasst wurden, Änderungen an der Paketbeschreibung zugunsten der Sache oder auch einfach offene Issues mit einer eindeutigen Botschaft. Aus Sicht von Snyk fällt diese Form des Protests eindeutig unter nicht destruktive freie Meinungsäußerung. Alle Maintainer und Mitwirkenden haben das Recht, ihre Meinung zu Themen ihrer Wahl zu äußern.
In solchen Fällen sind wir überzeugt, dass keine Maßnahmen erforderlich sind.
2. Protestmeldungen in CLI-Logs
Die zweite Form des Protests geht einen Schritt weiter: Sie übermittelt die Botschaft direkt über CLI-Logs auf den Rechnern der Nutzenden – während und nach der Installation des Pakets. es5-ext ist ein gutes Beispiel dafür in einem sehr beliebten Open-Source-Paket. Der dort verwendete Vektor ist für diese Art von Protestware recht typisch:
Ein lokaler Rechner führt eine Zeitzonenprüfung durch, um seinen Standort zu ermitteln.
Abhängig vom Standort wird mithilfe eines Post-Install-Skripts eine Meldung in einem CLI-Log hinterlassen. Sie bekundet Unterstützung für die Ukraine, informiert über den Krieg und erklärt, wie Tor heruntergeladen werden kann, um die Zensur von Websites mit Nachrichten zum Krieg durch die russische Regierung zu umgehen.
Bei der Untersuchung dieser beiden Bestandteile des Vektors kommen wir zu dem Schluss, dass dieses Verhalten zwar ungewöhnlich ist, im Software-Ökosystem aber durchaus Präzedenzfälle hat. Lokale Systemprüfungen, etwa zur Zeitzone, gehören mitunter zum normalen Installationsverhalten – beispielsweise, um die beste Installationsmethode für ein Paket zu ermitteln. Auch während der Installation werden häufig umfangreiche Meldungen in der CLI protokolliert, die nicht alle direkt mit der Paketinstallation zusammenhängen (manchmal werden etwa Danksagungen, Emojis und andere „unverbindliche“ Informationen ausgegeben).
Solange die Meldungen auf die Installationsumgebung (die CLI) beschränkt bleiben, sind wir derzeit der Ansicht, dass diese Pakete nicht gesondert gekennzeichnet werden müssen.
3. Protestmeldungen außerhalb der Umgebung
Diese Unterscheidung führt uns zur dritten Gruppe von Protestware: Pakete, die protestieren, indem sie Code außerhalb der Installationsumgebung ausführen. Beispiele dafür sind die Pakete event-source-pollyfill und peacenotwar. Beide nutzen den oben beschriebenen „Standortbestimmung per Zeitzonenvektor“, gehen aber über Protestmeldungen in Logs hinaus und führen aktiv Code auf dem Rechner aus, um zu protestieren.
Wir sind der Ansicht, dass diese Art von Protestware zwar nicht destruktiv ist, aber ein Verhalten hervorruft, das wir von einem Open-Source-Paket nicht erwarten und auch nicht wünschen. Die Pakete können beispielsweise Informationen über Pop-up-Warnfenster verbreiten, Browser öffnen und zu Websites mit Informationen weiterleiten oder sogar neue Dateien mit Informationssammlungen auf dem Desktop des Systems erstellen.
Für solche Pakete veröffentlichen wir eine Warnung mit dem Titel „Unerwünschtes Verhalten“. Unsere CVSS-Vektoren zeigen genau, worin das unerwünschte Verhalten besteht und wie es die Integrität des betroffenen Rechners beeinträchtigt.
4. Destruktive Proteste
Schließlich gibt es Pakete, die eindeutig destruktives Verhalten zeigen und die Rechner, auf denen sie ausgeführt werden, unmittelbar gefährden. Node-ipc ist derzeit das bekannteste und größte dieser Pakete. Wie wir bereits offengelegt haben, versucht es, die Festplatten des Systems zu löschen.
Pakete, die tatsächlich Schaden anrichten, etwa durch das Löschen von Dateien, das Offenlegen vertraulicher Informationen oder andere Aktionen, erhalten den Titel „Schädliches Paket“ und eine hohe oder kritische Bewertung (je nach konkreten Auswirkungen des Pakets).
Protestware-Art | Beispiel | Aktuell empfohlene Snyk-Warnung |
|---|---|---|
Repo-Banner | README mit Protestinformationen | Keine Warnung |
Protestmeldungen in CLI-Logs | Installations-Log mit Protestinformationen | Keine Warnung |
Protestmeldungen außerhalb der Umgebung | Datei mit Protestinformationen auf dem Desktop erstellt | Warnung „Unerwünschtes Verhalten“ mit niedrigem bis mittlerem Schweregrad |
Destruktive Proteste | Dateien auf der Festplatte mit Protestinformationen überschrieben | Warnung „Schädliches Paket“ mit hohem bis kritischem Schweregrad |
Bleiben Sie bei Protestware wachsam
Zusammenfassend lässt sich sagen: Die aktuelle Lage ist volatil, und wir rechnen auch künftig mit neuen Bedrohungsvektoren im Zusammenhang mit Protestware. Wir sehen unsere Aufgabe dabei in zwei Punkten:
Die Community so schnell und gewissenhaft wie möglich über neue Bedrohungsmuster zu informieren.
Die Diskussion darüber zu begleiten, wie unsere Community auf Protestware in all ihren Formen reagieren sollte, und so hoffentlich zu einem breiteren Konsens beizutragen.
Sollten Sie in Open-Source-Paketen auf weitere Protestware stoßen, können Sie sich gerne über unser Programm zur Offenlegung von Open-Source-Schwachstellen an uns wenden. Vielen Dank, dass Sie Open Source für alle sicher halten.
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.
