Zu viel Schadcode: Paket-Registry PyPI sperrte vorübergehend alle neuen Projekte

Um dem Ansturm neuer User und Projekte mit Schadcode Herr zu werden, haben die Betreiber der Python-Paket-Registry die Aufnahme neuer Projekte gestoppt.

In Pocket speichern vorlesen Druckansicht 3 Kommentare lesen

(Bild: Ulf Wittrock/Shutterstock.com)

Lesezeit: 3 Min.

Die Betreiber des Python Package Index (PyPI) haben am Wochenende kurzzeitig die Annahme neuer Projekte und User verweigert. Offenbar war der Ansturm von Paketen mit Schadcode zu groß, um die gefährlichen Pakete herauszufiltern. Am Sonntag hat die Registry wieder den Normalbetrieb aufgenommen.

Auf der Statusseite der Python-Infrastruktur findet sich am 20. Mai der Eintrag "Wir haben die Registrierung neuer User und neuer Projektnamen vorübergehend ausgesetzt. Die Menge böswilliger User und bösartiger Projekte, die im Verlauf der letzten Woche im Index erstellt wurden, übersteigt unsere Fähigkeit, darauf zeitnah zu reagieren – insbesondere, da mehrere PyPI-Administratoren im Urlaub sind. Während wir uns über das Wochenende neu aufstellen, ist die Registrierung neuer Benutzer und Projekte temporär ausgesetzt."

Paket-Registries und -Manager sind immer wieder Ziel von Supply-Chain-Angriffen. Angreiferinnen und Angreifer veröffentlichen auf Plattformen wie PyPI, npm oder RubyGems.org 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.

Die Python Software Foundation betreibt die Paket-Registry PyPI und kümmert sich um die Weiterentwicklung der Programmiersprache Python. Im Juni 2022 hatte die Stiftung 400.000 US von der Open Source Security Foundation (OpenSSF) erhalten, um die Sicherheit von Python und dessen Infrastruktur zu stärken.

Im Juli 2022 starteten die PyPI-Betreiber die 2FA-Pflicht: Die Betreiber kritischer Projekten müssen sich seitdem mittels Zwei-Faktor-Authentifizierung anmelden. Als kritisch gilt das obere Prozent der Downloads über das vergangene halbe Jahr, was seinerzeit gut 3500 Projekte betraf. Grundsätzlich möglich ist die Anmeldung über 2FA bereits seit 2019.

(rme)