Flut von Angriffen auf Paketmanager PyPI schleust Backdoor in Python-Pakete ein
(Bild: BeeBright / Shutterstock.com)
Nachdem zunĂ€chst Sonatype einen Angriff auf fĂŒnf Pakete im Python-Paketmanager entdeckt hat, fĂŒllt sich die CVE-Schwachstellendatenbank mit weiteren VorfĂ€llen.
Derzeit lĂ€uft offensichtlich ein groĂangelegter Angriff auf Inhalte im Python-Paketmanager PyPI. Sonatype hatte zunĂ€chst fĂŒnf Pakete mit Schadcode identifiziert, der sensible Daten wie AWS-SchlĂŒssel und weitere Secrets an eine anfangs ungeschĂŒtzte öffentliche Site hochgeladen hat. Seitdem sind zahlreiche weitere VorfĂ€lle in der CVE-Datenbank (Common Vulnerabilities and Exposures) aufgetaucht.
Mehr oder weniger gezielter Angriff
Die fĂŒnf angegriffenen Pakete, die Sonatype ausgemacht hat, stellen namentlich eine eigentĂŒmliche Mischung dar. WĂ€hrend loglib-modules und pyg-modules offensichtlich auf Entwicklerinnen und Entwickler zielen, die die PyPI-Pakete loglib und pyg verwenden, findet sich fĂŒr die anderen drei kein direkter Bezug zu bekannten Python-Paketen. Sie heiĂen pygrata, pygrata-utils und hkg-sol-utils.
Auch die beiden bekannten Pakete sind nicht wirklich stark verbreitet. Das als Alternative zum Paketmanagertool pip gestartete pyg ist laut der Projektbeschreibung [1] offiziell tot und setzt noch auf die veralteten Python-Version 2.6 und 2.7.
Einige der Pakete enthalten direkten Schadcode, und andere laden ihn erst ĂŒber eine Dependency nach. Sonatype hat im Blogbeitrag einen Screenshot eines Codeausschnitts veröffentlicht, der unter anderem den Zugriff auf Amazon-Credentials, Informationen zum Netzwerkinterface und Umgebungsvariablen zeigt.
(Bild:Â Sonatype)
Ăffentlich zugĂ€ngliche Informationsbeute
Der Bezug zu den beiden Paketen mit Pygrata im Namen ergibt sich im weiteren Schadcode, der die abgegriffenen Informationen auf Endpunkte der gleichnamigen .com-Domain hochlĂ€dt. Interessanterweise war diese zunĂ€chst ungeschĂŒtzt erreichbar, sodass die Sicherheitsforscher Zugriff auf die hochgeladenen Textdateien erhielten.
Sonatype hat die Betreiber der Domain daraufhin kontaktiert und sie ĂŒber den Vorfall und den mangelnden Zugriffsschutz informiert. Damit wollten die Sicherheitsforscher ausschlieĂen, dass es sich bei den Angreifern um ein legitim handelndes Red Team handelt, das gezielt die Security untersucht. Dass die Betreiber der Domain eine Antwort schuldig blieben, aber den öffentlichen Zugriff auf Pygrata in Folge sperrten, legt die Vermutung nahe, dass es sich um einen gezielten, bösartigen Angriff handelte.
Wahre Paketflut im Nachgang
Die PyPI-Betreiber haben die fĂŒnf Pakete inzwischen entfernt. Seitdem sind auf der Plattform zahlreiche weitere Packages mit Schadcode aufgetaucht. Eine Suche nach "pypi" im Frontend der National Vulnerability Database [2] zeigt alleine zwanzig Treffer vom 24. Juni. Alle Ergebnisse haben dieselbe Beschreibung der Schwachstelle, die auf eine Backdoor hinweist.
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 [3], um eine legitime Quelle vorzutĂ€uschen.
Beim Typosquatting tragen die Pakete mit Schadcode Namen [4], 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 [5] mit electron-native-notify ein solches Package entdeckt. SchlieĂlich versucht Dependency Confusion [6] 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.
Weitere Details zu der ursprĂŒnglichen Attacke lassen sich dem Sonatype-Blog entnehmen [7]. Mitte Juni hatte die Open Source Security Foundation (OpenSSF) angekĂŒndigt, die Python Software Foundation mit 400.000 US-Dollar zu unterstĂŒtzen [8]. Die Stiftung ist unter anderem fĂŒr den Paketmanager PyPI verantwortlich, und das Geld soll zusĂ€tzlichen Security-MaĂnahmen dienen.
(rme [9])
URL dieses Artikels:
https://www.heise.de/-7154405
Links in diesem Artikel:
[1] https://pypi.org/project/pyg/
[2] https://nvd.nist.gov/vuln/search/results?isCpeNameSearch=false&query=pypi&results_type=overview&form_type=Basic&search_type=all&startIndex=0
[3] https://www.heise.de/news/JavaScript-Paketmanager-Twilio-Brandjacking-Paket-oeffnet-Hintertuer-4945861.html
[4] https://www.heise.de/news/Paketmanager-Kryptomining-Schadcode-auf-PyPI-zielt-auf-Data-Science-Projekte-6113470.html
[5] https://blog.npmjs.org/post/185397814280/plot-to-steal-cryptocurrency-foiled-by-the-npm
[6] https://www.heise.de/news/Sicherheitsforscher-bricht-ueber-Open-Source-Repositories-bei-PayPal-Co-ein-5051635.html
[7] https://blog.sonatype.com/python-packages-upload-your-aws-keys-env-vars-secrets-to-web
[8] https://www.heise.de/news/Open-Source-Security-Finanzspritze-fuer-Eclipse-und-Python-Software-Foundation-7146434.html
[9] mailto:rme@ix.de
Copyright © 2022 Heise Medien