Paketmanager npm erhält neue Sicherheitsfunktionen

GitHub hat dem JavaScript-Paketmanager npm neue Sicherheitsfunktionen spendiert: 2FA auf der CLI, einfache Signaturprüfung und verifizierte Accountverknüpfung.

In Pocket speichern vorlesen Druckansicht 4 Kommentare lesen

(Bild: Sundry Photography/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Jan Mahn

Gleich drei neue Funktionen für mehr Sicherheit hat GitHub für den JavaScript-Paketmanager npm angekündigt, den GitHub 2020 übernommen hat. Neu ist Zweifaktorauthentifizierung aus der Kommandozeile heraus, eine einfachere Signaturprüfung ohne PGP und eine verifizierte Prüfung von GitHub- und Twitter-Accounts mit einem npm-Account.

Die Zweifaktorauthentifizierung ruft man ab npm 8.14.0 mit dem Befehl npm login --auth-type=web auf. Es öffnet sich der Standardbrowser und wickelt das Anmelden per zweitem Faktor ab, etwa mit einem FIDO2-Stick. Für npm publish funktioniert --auth-type ebenfalls. GitHub bereitet mit dieser Funktion seine große Umstellung für Ende 2023 vor: Dann sollen alle Nutzer, die Code veröffentlichen, verpflichtend einen zweiten Faktor nutzen. Automatisierte npm-Aufrufe in Skripten und CI/CD-Umgebungen müssen nicht bei jedem Aufruf per zweitem Faktor freigeschaltet werden, für sie gibt es weiterhin Access Tokens, die man als zweifach authentifizierter Nutzer erzeugen und gezielt mit Rechten ausstatten kann.

Die zweite Neuerung klingt wie eine Selbstverständlichkeit: Wer einen Twitter- oder GitHub-Namen in seinem npm-Profil hinterlegen will, muss jetzt im Rahmen der Verknüpfung nachweisen, dass er mit diesem Account angemeldet ist. Bisher war es laut GitHub möglich, hier ohne Prüfung Daten einzutippen und sich so etwa als bekannte Organisation auszugeben. Ein weiterer Vorteil der Verknüpfung: Verliert man seine Zugangsdaten zum npm-Account können verknüpfte Konten bei der Wiederherstellung benutzt werden. Bisher unverifizierte Angaben zu GitHub- und Twitter-Accounts wirft npm jetzt aus den Profilen.

Neu ist auch der Befehl npm audit signatures, der die Integrität von npm-Paketen prüft. Den kann man in CI/CD und auch lokal einsetzen, um herauszufinden, ob ein geladenes Paket nachträglich manipuliert wurde. Neu ist nicht nur der Befehl, sondern auch das eingesetzte Verfahren. npm lässt die Prüfung mit PGP hinter sich und stellt auf das Verfahren ECDSA um, das auf elliptischen Kurven basiert, dadurch mit kürzeren Schlüsseln auskommt und effizienter arbeitet. Ein Vorteil der sich bei großen Projekten mit vielen Abhängigkeiten bemerkbar machen dürfte: Die Prüfung dürfte sehr schnell vonstattengehen.

Bekanntgegeben hat GitHub außerdem seinen Zweifaktor-Plan für die nähere Zukunft: Im nächsten Schritt sollen alle npm-Pakete mit mehr als einer Million wöchentlichen Downloads oder 500 abhängigen Paketen eine Zweifaktorpflicht verordnet bekommen. Vorher will man den Account-Wiederherstellungsprozess optimieren und automatisieren.

(jam)