Das große Problem mit Spam-Paketen bei npm
- Das Forschungsteam von Phylum hat festgestellt, dass Spam-Pakete im Zusammenhang mit dem Tea-Protokoll auf npm stark zunehmen
- Das Tea-Protokoll ist ein System, das Beiträge zu Open Source mit Kryptowährungen belohnt, und schafft damit Anreize für Entwickler, ihre Beiträge zu übertreiben
- Es wird geschätzt, dass im 2. Quartal 2024 etwa 25 % der auf npm veröffentlichten Pakete Spam-Pakete im Zusammenhang mit dem Tea-Protokoll waren
Kurze Zusammenfassung
- Das Tea-Protokoll verwendet einen Algorithmus, der Entwickler dazu anreizt, ihre Beiträge zu übertreiben
- npm leidet durch diese Spam-Pakete unter erheblicher Verunreinigung
- Kennzeichen dieser Spam-Pakete sind zufällig generierte Paketnamen, verdächtige Abhängigkeitslisten und eine Datei
tea.yaml
Eine neue Perspektive
- Seit Anfang 2024 ist die Zahl der auf npm veröffentlichten Pakete sprunghaft angestiegen
- Am 8. April 2024 wurden an einem einzigen Tag mehr als 48.000 Pakete veröffentlicht
- Im Verlauf von Q2 wurden schätzungsweise 21,25 % bis 25,5 % der veröffentlichten npm-Pakete als Spam-Pakete eingestuft
- Betrachtet man nur neue Pakete, steigt der Anteil der Spam-Pakete auf 68,66 % bis 74,67 %
Besteht eine Bedrohung?
- Bisher gibt es keine Hinweise darauf, dass diese Spam-Pakete bösartige Angriffe enthalten
- Dieser Spam verschmutzt jedoch das Open-Source-Ökosystem und kann die Trainingsdaten von AI-Modellen verzerren
- Außerdem schafft er ein Umfeld, in dem sich tatsächlich schädliche Pakete verbergen können
Aus der Perspektive des Gegners denken
- Am Beispiel des Pakets
sournoise zeigt die npm-Website an, dass dieses Paket von axios abhängt, tatsächlich hängt es jedoch von einem Spam-Paket ab
- Das ist ein Nebeneffekt der Art und Weise, wie npm Abhängigkeiten verarbeitet und Nutzern anzeigt
- Durch transitive Abhängigkeiten können Pakete einbezogen werden, die Entwickler weder wollen noch erwarten
Fazit
- Die Verunreinigung des Open-Source-Software-Ökosystems ist ein Problem für alle
- Das Tea-Protokoll-Projekt ergreift Maßnahmen, um dieses Problem zu lösen
- npm entfernt ebenfalls einige Spam-Pakete, kann mit der Geschwindigkeit neuer Veröffentlichungen jedoch nicht Schritt halten
- Das Problem ist nicht auf npm beschränkt; auch bei Rubygems wurden ähnliche Spam-Pakete entdeckt
- Phylum untersucht diesen Bereich intensiv und wird nach neuen Methoden suchen, um diesen Spam zu erkennen, während die Akteure ihre Taktiken anpassen
Zusammenfassung von GN⁺
- Das Belohnungssystem des Tea-Protokolls schafft Anreize für Entwickler, ihre Beiträge zu übertreiben
- Die Absicht des Projekts zur Nachhaltigkeit von Open Source mag gut gewesen sein, doch die daraus entstehenden Nebenwirkungen und Missbrauchsfälle scheinen übersehen worden zu sein. Eine sorgfältige Gestaltung der Beitragsmessung und des Belohnungssystems sowie kontinuierliches Monitoring erscheinen notwendig
- Diese massenhafte Flut von Spam-Paketen bedroht nicht nur die Sicherheit einzelner Pakete, sondern auch die Zuverlässigkeit und Gesundheit des gesamten Open-Source-Ökosystems. Für eine grundlegende Lösung dürfte ein Ökosystem-weiter Ansatz mit Zusammenarbeit erforderlich sein
- Besonders besorgniserregend ist, dass bei der Nutzung als Trainingsdaten für AI-Modelle Verzerrungen entstehen können. Richtlinien für Datenqualitätsmanagement und Validierung scheinen dringend notwendig
- Die Möglichkeit unerwarteter Paketinstallationen über transitive Abhängigkeiten ist mehr als ausreichend, um Entwickler zu alarmieren. Das deutet darauf hin, dass neben automatisierten Tools für das Abhängigkeitsmanagement auch die Aufmerksamkeit und Prüfung durch Entwickler bei der Paketauswahl weiterhin wichtig bleiben
- Langfristig könnte es nötig sein, transparentere und besser überprüfbare Alternativen wie blockchainbasierte Paket-Registries oder Reputationssysteme in Betracht zu ziehen
1 Kommentare
Hacker-News-Kommentare
Die Art und Weise, wie npm Paketabhängigkeiten verarbeitet, ist problematisch
package.jsonnur ein Schlüssel vorhanden ist, wird er unabhängig vom tatsächlichen Paket als Abhängigkeit betrachtetEs ist notwendig, alle Pakete zu entfernen, die
tea.yamlverwendenSpam-Accounts sollten dauerhaft gesperrt und entfernt werden
KI-Modelle könnten durch Spam-Pakete verzerrt werden
Das Anreizmodell des Tea-Protokolls ist problematisch
Zusammenfassung:
package.jsonlässt sich leicht über Abhängigkeiten täuschenDas Ziel des Tea-Protokolls ist es, die Wirtschaft rund um Open-Source-Software zu stärken
Es gibt Fälle, in denen populäre Projekte kopiert und mit zufälligen lateinischen Namen auf npm veröffentlicht werden
Es gab ein Tea ähnliches Projekt
Paketmanager verfügen über ein Bewertungssystem