Open-Source-Tool spürt Schadcode in Paketen auf npm, PyPI und Co auf

Die OpenSSF hat mit Package Analysis ein Projekt gestartet, das Open-Source-Pakete auf verdächtiges Verhalten untersucht.

In Pocket speichern vorlesen Druckansicht 2 Kommentare lesen

(Bild: Gorodenkoff/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Rainald Menge-Sonnentag
Inhaltsverzeichnis

Unter dem Name Package Analysis hat die Open Source Security Foundation (OpenSSF) ein Projekt vorgestellt, das verdächtige Pakete aufspüren soll. Das Open-Source-Werkzeug untersucht dazu die Neuzugänge und Updates auf Paketmanagern wie npm oder PyPI.

Das Werkzeug besteht aus drei Komponenten und ist als GitHub-Projekt verfügbar. Als Grundlage nutzt es das Projekt Package Feeds, das Paketmanager auf Änderungen überwacht, die Details zu den Neuzugängen formatiert und versioniert und schließlich die aufbereiteten Informationen über Dienste wie GCP Pub/Sub an andere Anwendungen weitergibt.

Schadcode in Open-Source-Paketen gehört zu den verbreiteten Angriffen auf die Software Supply Chain. Angreiferinnen und Angreifer veröffentlichen auf Paketmanagern vermeintlich nützliche Pakete, die Developer in ihren Anwendungen verwenden. Häufige Methoden sind das Typosquatting und das Brandjacking. Letzteres 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.

Ein weiterer Angriffsvektor sind zunächst nützliche und harmlose Pakete, die den Schadcode erst dann mitbringen, wenn sie eine gewisse Verbreitung erreicht haben. Das npm-Team hatte 2019 mit electron-native-notify ein solches Package entdeckt. Schließlich versucht Dependency Confusion intern gehostete Dependencies durch gleichnamige externe Pakete mit Schadcode zu ersetzen. Letztere bekommen dazu eine hohe Versionsnummer, da die Paketinstallationswerkzeuge wie pip je nach Einstellung das Paket mit der höchsten Nummer verwenden, das vermeintlich das aktuellste ist.

Package Analysis besteht aus drei Komponenten: Der Scheduler wertet die Informationen von Package Feeds aus und erstellt Jobs für den Worker. Dieser untersucht das Verhalten der Pakete durch statische und dynamische Codeanalyse. Schließlich übergibt der Loader die Analyseergebnisse an das Data Warehouse BigQuery von Google.

Im GitHub-Repository von Package Analysis findet sich eine Beschreibung der zugehörigen APIs und eine kurze Anleitung zum Einstieg. Das Werkzeug benötigt Go 1.17 und Docker.

Das Projekt der OpenSSF befindet sich bereits im Einsatz und hat laut dem Blogbeitrag zur Vorstellung von Package Analysis in einem Monat gut 200 Pakete mit Schadcode auf PyPI und npm aufgespürt. Der Großteil der Pakete setzt auf Dependency Confusion oder Typosquatting. Viele enthalten lediglich ein einfaches Skript und keine bösartigen Angriffe wie Crypto-Miner. Das OpenSSF-Team vermutet, dass hinter den Paketen Sicherheitsforscher auf der Jagd nach Bug Bounties stehen.

Zu den aggressiveren Angriffen gehört das PyPI-Paket dscordcmd, das lokale Datenbanken nach Discord-Token durchsucht.

(Bild: OpenSSF)

Eine Übersicht der gefundenen Pakete, die unter anderem auf Discord-Accounts zielen, finden sich in der Dokumentation zu dem Open-Source-Projekt auf GitHub. Weitere Details zu Package Analysis und Informationen, wie Interessierte sich aktiv beteiligen können, lassen sich dem OpenSSF-Blog entnehmen. Vor Kurzem hatte die 2020 unter dem Dach der Linux Foundation gegründete OpenSSF angekündigt, Node.js im Rahmen der Alpha-Omega-Initiative mit 300.000 US-Dollar zu fördern.

(rme)