Protestware: Die IT-Sicherheit im (Ukraine-)Krieg – Open Source als politische Waffe?

Als Video ansehen
Bereitgestellt über YouTube

Protestware: Die IT-Sicherheit im (Ukraine-)Krieg – Open Source als politische Waffe?

Seit Monaten befindet sich die Ukraine im Krieg. Und das längst nicht nur analog an den klassischen Waffen, wie ich in einem früheren Beitrag bereits aufzeigte. Doch der Krieg kommt seit einiger Zeit auch zunehmend bei Softwareentwicklern und Projekten an. Solche Software wird oft als Protestware bezeichnet, angelehnt an gängige Lizenzbezeichnungen wie Freeware.

Von dort zieht er weite Kreise, oft auch unfreiwillig. Der bislang spektakulärste Fall war wohl node-ipc: Zunächst legte es eine Textdatei auf dem Desktop an, deren Inhalt sich klar gegen den Krieg aussprach. Später enthielt das Paket eine Schadsoftware, die mit 25% Wahrscheinlichkeit versucht alle Daten zu löschen, falls die IP-Adresse des Opfers zu Russland oder Belarus zugeordnet werden kann. Dies ist in verschiedener Hinsicht gefährlich, wie ich im damaligen Beitrag ausführlicher erklärt habe.

Mittlerweile haben einige Open Source Projekte öffentlich ihren Protest zum Ausdruck gebracht. Eine Liste enthält auch dieser Artikel (russische Quellen). Es wird über die Bewaffnung von Open Source gesprochen. Man kann grob zwischen vier Arten unterscheiden:

1. Positionierung innerhalb des Repositorys

Am häufigsten sind Flaggen der Ukraine oder anderen Zeichen in den Repositorys selbst zu sehen, meist in der README. Das Projekt StandWithUkraine bietet entsprechende Vorlagen und führt ebenfalls eine Liste bekannter Unterstützer.

Beispiel einer Projekt-README mit Unterstützungsaufruf für die Ukraine (Quelle: pnpm Repository)

Manche haben auch entsprechende Statements in den Code eingebaut, etwa bei der Installation eines Paketes wie bei es5-ext. Dies ist eine Kompatibilitätsschicht, um das neuere ECMAScript 6 auch in älteren Browsern benutzen zu können. Wer eine bestimmte Zeitzone eingestellt hat und das Paket installiert, sieht eine politische Botschaft auf Russisch auf der Konsole.

Dies sehen nur die Entwickler/Administratoren, aber in der Regel keine Endnutzer. Die Auswirkungen bzw. Kollateralschäden sind hier am geringsten und diese Form des Protestes findet in der Community noch am ehesten Anklang – wenngleich bei einigen grundsätzlich umstritten ist, ob Software für politische Botschaften genutzt werden sollte.

2. Politische Botschaften in der Anwendung

Im Unterschied zur ersten Variante werden die politischen Parolen so in die Anwendung eingebaut, dass sie für den Endbenutzer sichtbar sind.

In bestimmten Regionen wurde ein Infokasten eingebaut, der 15 Sekunden nach dem Aufruf der Seite in bestimmten Regionen erscheint. Darin wird beschrieben, dass eine große Mehrheit der Ukrainer hinter Zelensky und seiner Abwehrstrategie steckt, die ganze Welt Sanktionen gegen Russland beschlossen hat und man den Tor-Browser für unzensierte Informationen nutzen soll:

Hier ist die Reichweite deutlich größer: Nutzt man das Paket beispielsweise auf der eigenen Homepage, sehen alle Besucher aus der entsprechenden Region die Meldung. Ein weiteres Beispiel ist die Leaflet. Die interaktive JavaScript-Karte hat eine kleine Ukraine-Flagge eingebaut. Wer darauf klickt, sieht ein Popup-Fenster über die persönliche Betroffenheit des Entwicklers.

Nicht nur quelloffene Software ist betroffen. Teils haben auch proprietäre Produkte oder Clouddienste bereits ihre politische Position in ihren Diensten kundgetan, dotnetfiddle.net beispielsweise:

Der Terraform-Provider für die Amazon AWS Cloud geht noch einen Stück weiter. Er führt eine Variable namens putin_khuylo ein, die Fragt: Stimmen Sie zu, dass Putin die ukrainische Souveränität und territoriale Integrität nicht respektiert? Wer diese nicht auf „true“ zur Zustimmung setzt, konnte das Modul nicht benutzen.

Solche Beispiele gibt es viele. Das Projekt help-the-ukraine-now bietet ein Skript an, welches man auf die eigene Seite einbinden kann. Es zeigt russischen Besuchern eine Nachricht zum Krieg. Davon würde ich Abstand nehmen – schon alleine aus dem Grunde, weil das Skript auf einem fremden Server liegt und damit die eigene Seite nach belieben verändert werden könnte. Sei es vom Entwickler oder aber durch Dritte, die diese Domain z.B. kapern.

3. Destruktive

Wie der Name schon vermuten lässt, geht es hier nicht nur um das Verbreiten politischer Standpunkte und Aufforderungen. Sondern es wird – wie bei node-ipc – aktiv Schaden verursacht. Dazu zählt augenscheinlich eine Hintertür im WordPress Erweiterung namens Mistape: Sie meldet die Adresse der eigenen Seite beim Angreifer, der über einen speziellen Parameter als Administrator eingeloggt wird. Russischen Aufzeichnungen zufolge wurde die Schwachstelle dafür genutzt, um Nachrichten der Ukraine auf gekaperten Seiten einzubinden.

Belegen lässt sich das jedoch nicht. Eben so wenig ist klar, ob diese Lücke gezielt für den Krieg eingebaut wurde. Fakt ist jedoch: Die Hintertür wurde vom Entwickler eingebaut. Bisher sind solche destruktiven Angriffe auf Projekte noch relativ selten – sieht man von Hacks vieler Internetseiten ab, die dann u.a. dafür genutzt werden, um dort politische Inhalte zu verbreiten. Diese Art ist am gefährlichsten.

4. Unsichtbare

Mittlerweile gibt es Webseiten, die im Hintergrund versuchen, DDoS-Angriffe gegen russische Internetseiten zu führen. Später tauchten einige auf, die sich gegen Ukrainische Seiten wenden. Dies ist natürlich grundsätzlich illegal, egal gegen welche Seite. Der beste Schutz gegen solche JavaScript-Schweinereien ist allerdings nicht besonders komfortabel: Per NoScript alle Skripte deaktivieren und nur jene von vertrauenswürdigen Seiten erlauben. Dies schützt nebenbei eure Privatsphäre.

Politik in der Software und Entwicklung – legitim oder NoGo?

Grundsätzlich stellt sich die Frage, ob sich Softwareentwickler mit ihren Projekten überhaupt positionieren sollten. Wenn sie es tun, kommt es schnell zu Diskussionen: Die einen sind klar dagegen, andere dafür. Und dann wird oft über verschiedene inhaltliche Punkte gestritten. Ob man die russische Bevölkerung für den Krieg verantwortlich machen kann, die Ukraine eine Mitschuld trägt und vieles mehr.

Die Open Source Definition verbietet zwar keine politische Positionierung. Allerdings ist in Punkt 5 klar definiert: Quelloffene Software darf keine Personen oder Gruppierungen diskriminieren. Dies scheint durchaus in einigen Fällen gegeben – im Extrembeispiel, wenn die Daten von Russen gelöscht werden.

Schlussendlich rütteln solche Aktivisten das Bewusstsein dafür wach, dass man seine Abhängigkeiten prüfen sollte – letztendlich ist es fremder Code, den man in die eigene Anwendung einbaut. Aber er schadet auch dem Vertrauen in Software generell. Unabhängig davon, welche politischen Ansichten man teilt, muss man sich doch die Frage stellen: Wo fängt das an und wo hört das auf? Wird man bestimmte Programme zukünftig nur nutzen dürfen, wenn man politischen Aussagen des Entwicklers zustimmt? Falls nicht, verwandelt sie sich in eine Waffe?

Ich halte das für eine gefährliche Entwicklung. Es ist zwar wichtig, dass sich Entwickler Gedanken darüber machen, welche Folgen ihre Arbeit für die Gesellschaft hat. Man denke da beispielsweise an eine Killerdrohne, bei der man durchaus kontrovers hinterfragen kann, ob man sich damit an fragwürdigen Tötungen beteiligt. Selbstjustiz ist allerdings keine Lösung, auch nicht für Softwareentwickler. Dies schadet eher der Gemeinschaft, die ohnehin bereits immer wieder von Fällen wie z.B. gelöschten Projekten wegen mangelnder Anerkennung/Entlohnung getrübt wird.

Wer den Drang verspürt etwas zu tun, kann seine Ressourcen besser in unterstützende Maßnahmen investieren: Etwa zivile Hilfeleistungen oder Spenden dafür.

Leave a Reply