Open Source: Tea-Protokoll führt zu "Kobra-Effekt" auf Paketmanager npm

Das Tea-Protokoll, das Open-Source-Entwicklung fördern soll, löst auf npm eine regelrechte Spam-Flut von Paketen mit transitiven Dependencies aus.

In Pocket speichern vorlesen Druckansicht 9 Kommentare lesen
Eine Teekanne schüttet Geld statt Tee aus

(Bild: Bild erzeugt mit KI)

Lesezeit: 4 Min.
Inhaltsverzeichnis

Das auf Software-Suppply-Chain-Security spezialisierte Unternehmen Phylum hat in den vergangenen sechs Monaten eine Spam-Flut beim Paketmanager npm entdeckt. Mehr als zwei Drittel der untersuchten neuen Pakete seinen demnach Spam gewesen.

Bei den Funden handelt es sich wohl nicht um Pakete mit Schadcode, sondern sie dienen dazu, Geld durch das Tea-Protokoll einzustreichen, einer Initiative, die Entwicklerinnen und Entwickler belohnen will, die zu Open-Source-Projekten beitragen.

Der Vater des Tea-Protokolls ist Max Howell, der Kopf hinter dem Paketmanager Homebrew. Seine grundlegende Idee ist, Open-Source-Projekte nach ihrer Verbreitung und Nützlichkeit zu bewerten und die Projektverantwortlichen und -beteiligten in Form von Kryptowährung zu entlohnen.

Ein teaRank, der an den PageRank von Google angelehnt ist, bewertet anhand der Dependencies die Verbreitung und damit die Nützlichkeit der Pakete. Offenbar nutzen die npm-Spammer diese Berechnungen ebenso aus wie die frühen Suchmaschinen- beziehungsweise SEO-Spammer (Search Engine Optimization) den PageRank-Algorithmus.

In ersten Untersuchungen ist Phylum seit Februar 2024 aufgefallen, dass es eine stetig steigende Zahl neuer Pakete auf npm gab. Die Zahl der Neuzugänge stieg von etwa 1.500 pro Arbeitstag Anfang des Jahres auf einen Spitzenwert von 48.000 am 8. April.

Viele Pakete haben Namen mit wilden, willkürlich erscheinenden Buchstabenkombinationen. Auffällig sind zahlreiche Dependencies zwischen den Paketen. Unter anderem weisen fast 100.000 Pakete eine Dependency zu dem Package random-job-selector auf. In der teaRank-Bewertung steigt das Projekt damit.

Über 99.000 Projekte mit weitgehend zufällig anmutenden Namen nutzen das Paket.

(Bild: Screenshot (Rainald Menge-Sonnentag))

Dass der random-job-selector selbst Dependencies unter anderem zu random-drink-selector und einem random-religion-selector aufweist, ist zumindest originell.

Damit die Pakete für das Tea-Protokoll bewertet werden können, benötigen sie die Datei tea.yaml, die sich nicht in allen Paketen findet, sondern in bestimmten, lohnenswerten Packages "im Morast der transitiven Abhängigkeiten", wie es der Pyhlum-Blogbeitrag ausdrückt.

Seit Februar 2024 sind auf npm laut Phylum 890.000 komplett neue Pakete – keine Versionsupdates – aufgetaucht, von denen das Unternehmen 900 untersucht hat, also eine Stichprobe von etwa einem Promille. Etwa 70 Prozent der untersuchten Pakete waren Spam.

Zumindest dienten die auffälligen Pakete ausschließlich dazu, Kryptowährung über das Tea-Protokoll einzustreichen. Schadcode hat Phylum nicht gefunden. Dagegen sprechen auch die oft wirren Paketnamen, die nicht wie Typosquatting- oder Brandjacking-Pakete darauf abzielen, dass andere sie verwenden und so den Schadcode in ihr Projekt integrieren. Brandjacking verwendet Firmennamen wie Twilio, um eine legitime Quelle vorzutäuschen. Beim Typosquatting tragen die Pakete mit Schadcode Namen, die den Bezeichnungen beliebter Pakete ähneln. Die Methode setzt zum einen auf Tippfehler und verwendet zum anderen Trennzeichen wie Unter- und Bindestriche. Aus my-packet wird my-paket, mypacket oder my_packet. Irgendwer wird sich schon vertippen, so die berechtigte Hoffnung der Angreifenden.

Der größte Schaden liegt somit einerseits bei den Betreibern von npm und andererseits bei Open-Source-Entwicklerinnen und -Entwicklern, die das Tea-Protokoll legitim einsetzen und durch den Spam ein deutlich kleineres Stück vom Kuchen erhalten.

Die Spam-Welle ist somit eine Art Kobra-Effekt für Open Source. Das gleichnamige Buch von Horst Siebert beschreibt falsche Anreize für die Wirtschaft, die umgekehrte, negative Folgen haben. Der Begriff geht auf die Geschichte zurück, nach der auf Kobras ausgesetzte Kopfgelder nicht zu einer verringerten, sondern einer vergrößerten Population der Schlangen führte, da findige Kopfgeldjäger, neue Kobras züchteten, um mehr Geld zu erlangen. Nachdem das Kopfgeld ausgesetzt wurde, entließen die Züchter die restlichen Kobras in die Wildnis.

Die Spam-Welle auf npm ist nicht der erste negative Effekt dieser Art. Bereits in den Anfangszeiten berichteten Open-Source-Maintainer auf GitHub von seltsamen Pull Requests in ihren Projekten. Bei einer Flut weitgehend nutzloser Open-Source-Beiträge stellt sich zumindest am Rande die Frage, was daran trainierte KI-Modelle von diesen Projekten lernen.

Weitere Details zu den Untersuchungen der npm-Pakete finden sich im Blogbeitrag bei Phylum.

(rme)