Open-Source-Tool zum Signieren von npm-Paketen veröffentlicht
Das australische Spieleentwicklerkollektiv Redpoint hat mit pkgsign ein Kommandozeilenwerkzeug herausgegeben, mit dem sich npm-Pakete signieren und verifizieren lassen. Hintergrund sind erneute Probleme mit verschwundenen Paketen.
Redpoint Games, ein Spieleentwicklerkollektiv mit Sitz im australischen Melbourne, hat ein Open-Source-Tool veröffentlicht, mit dem sich npm-Pakete signieren und verifizieren lassen. Hintergrund ist laut der offiziellen Mitteilung ein Anfang des Jahres aufgetretenes Problem beim Paketmanager für Node.js, durch das zahlreiche Packages aus der Registry verschwanden. Daraufhin übernahmen andere Entwickler neun Namen davon für ihre Werkzeuge, von denen wiederum wohl mindestens eins etwas komplett anderes machte als das ursprüngliche Paket.
Da viele Entwickler externe Pakete von npm oft automatisiert in ihre Projekte einbinden, könnten sie auf die Weise unbemerkt Schadcode statt der benötigten Pakete in ihre Build-System übernehmen. Digitale Zertifikate oder ähnliches zum Verifizieren der Urheber sind bei npm nicht vorgesehen. Ebendies will das Kollektiv nun mit pkgsign erreichen.
Signaturen ĂĽber PGP oder Keybase
Das Tool setzt oberhalb des Paketdienstes auf, erfordert also keine Änderung auf Seiten von npm. pkgsign ist eine Kommandozeilenwerkzeug, das sowohl das Signieren als auch das Verifizieren von Paketen übernimmt. Für Ersteres können Entwickler wahlweise PGP-Schlüsselpaare oder die App Keybase verwenden. Zum Verifizieren ist weder Keybase noch eine andere Software erforderlich. Damit andere Entwickler mit PGP signierte Pakete verifizieren können, muss der öffentliche Schlüssel über eine HTTPS-URL öffentlich verfügbar sein. Das Tool kann nicht nur einzelne Pakete, sondern über den Befehl pksign verify . --full auch alle Dependencies mit überprüfen.
Der Ansatz ist durchaus lobenswert, aber auch den Entwicklern ist bewusst, dass das Tool derzeit in den Startlöchern steht und sie ein kleines Team sind. So weisen sie darauf hin, dass pkgsign Dependencies hat, die ihrerseits nicht signiert sind. Auch sollten Entwickler aus Sicherheitsgründen das Tool direkt von GitHub und nicht von npm oder yarn herunterladen, auch wenn das technisch möglich ist. pkgsign steht unter MIT-Lizenz.
Verschwundenen Pakete bei npm
Wünschenswert wäre, dass npm eigene Sicherheitsmaßnahmen ergreift, die bei künftigen Ausfällen keine Sicherheitslücken aufreißen. Schließlich ist der Vorgang mit den verlorenen Paketen nicht der erste dieser Art. Vor zwei Jahren zog ein verärgerter Entwickler ein Paket aus der Registry zurück, wodurch damals zahlreiche, teils prominente Projekte wie Node und Babel beim Build-Prozess scheiterten. Deutlich größer wäre der Schaden gewesen, wenn ein Angreifer den Namen des Pakets gekapert und durch Schadcode ersetzt hätte. Ganz neu ist der Ansatz der Zertifizierung für Pakete freilich nicht: Der kommerzielle Anbieter NodeSource bietet seit einem knappen Jahr ein kostenpflichtiges Gateway, das Node.js-Module zertifiziert. (rme)