Python paket repozitorij PyPI (Python Package Index) privremeno je zabranio registraciju novih korisnika i stvaranje novih projekata zbog kontinuiranog masovnog učitavanja zloćudnih paketa tijekom automatiziranog napada. Blokada je uvedena nakon što je 26. i 27. ožujka u repozitorij učitano 566 paketa sa zloćudnim kodom, stiliziranih prema 16 popularnih Python knjižnica.
Imena paketa formirana su korištenjem type-squattinga, tj. odabirom sličnih imena koja se razlikuju samo po pojedinim simbolima, npr. temsorflow umjesto tensorflow, requyests umjesto requests, asyincio umjesto asyncio itd. Tijekom ovakvih napada, napadači se oslanjaju na nepažljive korisnike koji su napravili gramatičke pogreške ili nisu primijetili razlike u imenu prilikom pretraživanja ili slijedili poveznice iz foruma i chatova u kojima napadači ostavljaju obmanjujuće upute.
Zloćudni paketi temelje se na kodu legitimnih knjižnica, koji sadrži određene promjene koje instaliraju zloćudni softver u sustav, tražeći i šaljući povjerljive podatke i datoteke koje sadrže lozinke, pristupne ključeve, kriptovalute, tokene i sesijske kolačiće. Zloćudni kod integrira se u datoteku setup.py, koja se pokreće tijekom instalacije paketa. Prilikom aktivacije, uvedena promjena preuzima glavne zloćudne komponente s vanjskog izvora. poslužitelja.
Tijekom dva dana, napadači su učitali 29 zloćudnih varijanti paketa tensorflow, 26 — BeautifulSoup, 26 — PyGame, 15 — SimpleJson, 38 — Matplotlib, 26 — PyTorch, 67 — CustomTKInter, 28 — selenium, 17 — playwright, 15 — asyncio i 67 — requirements. Dodatno su otkriveni pojedinačni slučajevi krivotvorenja knjižnica requests, py-cord, colorama, capmonstercloudclient, pillow i bip-utils.
Također se ističe napad na zajednicu Top.gg, koja broji 170 tisuća korisnika. Tijekom napada, napadač je uspio kompromitirati račun na GitHubu jednog od programera top.gg, putem krađe kolačića preglednika. Napadač je također dodao tri paketa u repozitorij PyPI i registrirao domene pypihosted.org i pythanhosted.org, gdje je organizirano ogledalo za distribuciju zloćudne ovisnosti o paketima.
Zbog kompromitiranog računa na GitHub repozitoriju projekta top.gg, u kojem se nalazila Python obloga za API Top.gg, izvršena je promjena koja je dodala datoteku requirements.txt. U toj datoteci nalazio se popis preuzetih ovisnosti, pri čemu je kao ovisnost s ponuđenog zrcala postavljena poveznica na zlonamjenski klon paketa „colorama“, smješten na lažnoj domeni pypihosted.org, očekujući da developeri neće primijetiti razliku s legitimnom domenom pythonhosted.org, s koje se obično preuzimaju paketi s PyPI.
Izvor: opennet.ru
