Das Python-Paket-Repository PyPI (Python Package Index) hat vorübergehend die Registrierung neuer Benutzer und die Erstellung neuer Projekte aufgrund fortwährender massenhaftiger Uploads von schadhafter Software im Rahmen eines automatisierten Angriffs verboten. Die Sperrung wurde eingeführt, nachdem am 26. und 27. März 566 Pakete mit schädlichem Code, die an 16 beliebte Python-Bibliotheken angelehnt waren, in das Repository hochgeladen wurden.
Die Paketnamen wurden unter Verwendung von Typo-Scouting gebildet, d.h. durch die Vergabe ähnlicher Namen, die sich nur durch einzelne Zeichen unterscheiden, wie z.B. temsorflow statt tensorflow, requyests statt requests, asyincio statt asyncio usw. Bei solchen Angriffen setzen die Angreifer auf unaufmerksame Benutzer, die Tippfehler machen oder die Unterschiede in den Namen beim Suchen oder beim Klicken auf Links aus Foren und Chats, in denen die Angreifer täuschende Anweisungen hinterlassen, nicht bemerken.
Schadhafte Pakete basieren auf dem Code legitimer Bibliotheken, in die spezifische Änderungen eingebaut sind, die schadhafte Software installieren, die vertrauliche Daten und Dateien mit Passwörtern, Zugangsschlüsseln, Krypto-Wallets, Tokens und Sitzungscookies suchen und senden. Der schadhafte Code wird in die Datei setup.py eingebettet, die während der Installation des Pakets ausgeführt wird. Bei der Aktivierung lädt die eingefügte Änderung die Hauptbestandteile der Schadsoftware von externen Quellen herunter. Server.
Innerhalb von zwei Tagen wurden 29 schädliche Varianten des Pakets tensorflow, 26 von BeautifulSoup, 26 von PyGame, 15 von SimpleJson, 38 von Matplotlib, 26 von PyTorch, 67 von CustomTKInter, 28 von selenium, 17 von playwright, 15 von asyncio und 67 von requirements hochgeladen. Darüber hinaus wurden einige Fälle von gefälschten Bibliotheken wie requests, py-cord, colorama, capmonstercloudclient, pillow und bip-utils identifiziert.
Besonders bemerkenswert ist der Angriff auf die Community Top.gg, die 170.000 Benutzer zählt. Im Verlauf des Angriffs konnte der Angreifer ein Konto eines der Entwickler von top.gg auf GitHub kompromittieren, indem er Browser-Cookies stahl. Der Angreifer fügte außerdem drei Pakete in das PyPI-Repository ein und registrierte. Domains pypihosted.org und pythanhosted.org, auf denen ein Spiegel zum Verbreiten einer schädlichen Abhängigkeit von Paketen eingerichtet wurde.
Über ein gehacktes Konto im GitHub-Repository des Projekts top.gg, in dem eine Python-Bindung für die Top.gg API untergebracht war, wurde eine Änderung vorgenommen, die eine Datei requirements.txt hinzufügte. In der Datei war eine Liste der herunterzuladenden Abhängigkeiten enthalten, wobei unter dem Vorwand, eine Abhängigkeit von einem Mirror herunterzuladen, ein Link zu einem schädlichen Klon des Pakets „colorama“ platziert wurde, der auf einer gefälschten Domain pypihosted.org gehostet wurde, in der Annahme, dass die Entwickler den Unterschied zur legitimen Domain pythonhosted.org, von der normalerweise Pakete von PyPI heruntergeladen werden, nicht bemerken würden.
Quelle: opennet.ru
