Paketmanager PyPI startet 2FA-Pflicht mit kostenloser Hardware und einer Panne

Kritische Projekte müssen auf 2FA umsteigen, die Betreiber verteilen 4000 Titan-Sicherheitsschlüssel. Ein wichtiges Paket ging unterdessen zeitweilig verloren.

In Pocket speichern vorlesen Druckansicht 38 Kommentare lesen

(Bild: deepadesigns/Shutterstock.com)

Lesezeit: 3 Min.
Inhaltsverzeichnis

Die Betreiber des Python-Paketmanagers PyPI (Python Package Index) verlangen für kritische Projekte künftig die Zwei-Faktor-Authentifizierung (2FA). Dazu verteilen sie 4000 kostenlose Sicherheitsschlüssel von Google an die Maintainer. Der Betreiber eines kritischen Projekts war mit der neuen Anforderung unzufrieden und hat sein Paket gelöscht, womit zunächst zahlreiche Builds fehlschlugen.

Die Anmeldung über 2FA soll die Integrität von Paketen sicherstellen. In letzter Zeit haben sich die Angriffe auf die Software Supply Chain durch Schadcode auf Paketmanangern wie PyPI oder dem JavaScript-Pendant npm gehäuft. Eine Zwei-Faktor-Authentifizierung hilft gegen das Kapern von Accounts durch geleakte Anmeldedaten oder schwache Passwörter. Die PyPI-Betreiber bieten die Option seit Mai 2019 an.

Für die Betreiber kritischer Projekte ist 2FA nun Pflicht. Als kritisch gilt das obere Prozent der Downloads über das vergangene halbe Jahr. Laut PyPI-Team beherbergt der Paketmanager derzeit etwas mehr als 350.000 Projekte, womit gut 3500 als kritisch eingestuft sind.

Um den Maintainern den Umstieg schmackhaft zu machen, hat das Open-Source-Security-Team von Google als Sponsor von PyPI 4000 Titan-Sicherheitsschlüssel bereitgestellt. Maintainer können sich für zwei kostenlose Keys bewerben. Voraussetzung ist, dass ihr Projekt als kritisch gilt und der Hardwareschlüssel für ihre Region verfügbar ist. Google verkauft ihn in Deutschland, Österreich, der Schweiz, Belgien, Frankreich, Italien, Spanien, Großbritanien, Kanada, den USA und Japan.

PyPI setzt auf zwei Hardwareschlüssel, damit Maintainer ihr Projekt nahtlos weiter betreiben können, falls sie einen Key verlieren. Promo-Codes gibt es bis zum 1. Oktober 2022. Neben dem Titan-Sicherheitsschlüssel lässt sich andere FIDO-U2F-Hardware (Universal 2nd Factor) wie der Yubikey oder Thetis verwenden. Auch die Authentifizierung über einen Time-based One-time Password-Algorithmus (TOTP) ist erlaubt.

Angriffsziel Software Supply Chain

Schadcode in Open-Source-Paketen auf PyPI, npm und Co. gehört zu den verbreitetsten Angriffen auf die Software Supply Chain. Die Zwei-Faktor-Authentifizierung gibt Schutz gegen das Kapern von Accounts. Daneben finden sich zahlreiche weitere Angriffsvektoren, die Schadcode in vermeintlich nützliche Pakete verpacken, die Developer in ihren Anwendungen verwenden sollen.

Häufige Methoden sind das Typosquatting und das Brandjacking. Ersteres nutzt Bezeichnungen, die beliebten Paketen ähneln, und Letzteres setzt auf große Firmennamen. Eine weitere Methode sind zunächst nützliche und harmlose Pakete, die den Schadcode erst dann mitbringen, wenn sie eine gewisse Verbreitung erreicht haben. Schließlich versucht Dependency Confusion intern gehostete Dependencies durch gleichnamige externe Pakete mit Schadcode zu ersetzen.

Auf PyPI tauchten im Juni 2022 zahlreiche Pakete mit Code auf, der versucht, Credentials wie AWS-Schlüssel abzugreifen. Kurz davor waren Pakete wohl versehentlich mit Malware erschienen.

Die Python Software Foundation, die sich sowohl um die Weiterentwicklung der Programmiersprache Python kümmert und den Python Package Index verwaltet, hat ebenfalls im Juni 400.000 US-Dollar von der Open Source Security Foundation (OpenSSF) erhalten, die in Sicherheitsmaßnahmen fließen sollen.

Kurz nach der Ankündigung war es zu einer ersten Panne durch einen unzufriedenen Projektbetreiber gekommen. Der Maintainer von atomicwrites hatte auf Twitter mitgeteilt, dass er sein Hobbyprojekt nicht auf Zwei-Faktor-Authentifizierung umstellen möchte. Dann löschte er das Originalpaket und legte denselben Code als neue Version an, die nicht in den Top-Downloads steht und damit nicht als kritisch gilt, somit auch nicht zur 2FA verpflichtet ist.

Auf den Hinweis, dass er kostenlose Hardware erhalten könne, antwortete er auf Twitter: "Das ist mir egal. Das steht mir beim Hochladen meiner Hobbyprojekte im Weg. Wenn ihr denkt, dass die fehlende 2FA-Security in meinen Projekten ein Sicherheitsproblem für eure Firma ist, solltet ihr vielleicht die Software von jemand anderem verwenden."

Nach dem Löschen des Originalpakets schlugen zahlreiche Build-Prozesse fehl. Ein Betroffener sah darin eine Analogie zu dem left-pad-Vorfall, der 2016 hohe Wellen schlug: Ein verärgerter Maintainer hatte ein häufig benutztes Paket von npm entfernt, worauf die Builds von Node.js, Babel und unzähligen weiteren Projekten fehlschlugen.

Inzwischen haben die PyPI-Betreiber das atomicwrites-Paket nach Zustimmung des Autors auf der Basis alter Artefakte wiederhergestellt.

(rme)