Repozitář Python balíčků PyPI (Python Package Index) dočasně zakázal registraci nových uživatelů a vytváření nových projektů kvůli stále se opakujícím masovým nahráváním škodlivých balíčků během automatizovaného útoku. Blokace byla zavedena poté, co bylo 26. a 27. března do repozitáře nahráno 566 balíčků s škodlivým kódem, stylizovaných jako 16 populárních Python knihoven.
Názvy balíčků jsou tvořeny použitím type squatting, tj. přiřazením podobných jmen, která se liší jednotlivými znaky, například temsorflow místo tensorflow, requyests místo requests, asyincio místo asyncio atd. Při podobných útocích se útočníci spoléhají na nepozorné uživatele, kteří udělali překlep nebo si nevšimli rozdílů v názvu při hledání nebo přechodu odkazu z fór a chatů, kde útočníci zanechávají klamavé pokyny.
Škodlivé balíčky jsou založeny na kódu legitimních knihoven, do kterého jsou zabudovány jednotlivé změny, které instalují do systému škodlivý software, který vyhledává a odesílá důvěrné údaje a soubory obsahující hesla, přístupové klíče, kryptopeněženky, tokeny a relace Cookie. Škodlivý kód je zabudován do souboru setup.py, který se spouští během instalace balíčku. Během aktivace provedená změna stahuje hlavní škodlivé komponenty z externího. serveru.
Během dvou dnů útočníci nahráli 29 škodlivých variant balíčku tensorflow, 26 - BeautifulSoup, 26 - PyGame, 15 - SimpleJson, 38 - Matplotlib, 26 - PyTorch, 67 - CustomTKInter, 28 - selenium, 17 - playwright, 15 - asyncio a 67 - requirements. Dále byly odhaleny jednotlivé případy padělání knihoven requests, py-cord, colorama, capmonstercloudclient, pillow a bip-utils.
Zvlášť je zmíněn útok na komunitu Top.gg, která čítá 170 tisíc uživatelů. Během útoku se útočníkovi podařilo kompromitovat účet na GitHubu jednoho z vývojářů top.gg krádeží prohlížečových Cookie. Útočník také přidal tři balíčky do repozitáře PyPI a zaregistroval domény pypihosted.org a pythanhosted.org, na kterých byla zřízena zrcadla pro šíření škodlivé závislosti na balíčcích.
Přes hacknutý účet v GitHubovém repozitáři projektu top.gg, kde byla umístěna Python wrapper na API Top.gg, bylo provedeno změny, které přidalo soubor requirements.txt. V souboru byl uveden seznam závislostí, přičemž pod záminkou stáhnutí závislosti z zrcadla byla uvedena škodlivá klon verze balíčku „colorama“, která byla umístěna na falešném doméně pypihosted.org, s očekáváním, že vývojáři si nevšimnou rozdílu s legitimní doménou pythonhosted.org, ze které se obvykle stahují balíčky z PyPI.
Zdroj: opennet.ru
