Il repository dei pacchetti Python PyPI (Python Package Index) ha temporaneamente vietato la registrazione di nuovi utenti e la creazione di nuovi progetti a causa di un continuo caricamento massiccio di pacchetti dannosi durante un attacco automatizzato. Il blocco è stato introdotto dopo che il 26 e 27 marzo sono stati caricati 566 pacchetti con codice malevolo nel repository, stilizzati come 16 popolari librerie Python.
I nomi dei pacchetti sono stati formati utilizzando il type squatting, ovvero l'assegnazione di nomi simili, differenziati da singoli caratteri, ad esempio, temsorflow invece di tensorflow, requyests invece di requests, asyincio invece di asyncio, e così via. Durante tali attacchi, i criminali informatici contano su utenti distratti, che commettono errori di battitura o non notano le differenze nei nomi durante la ricerca o il passaggio tramite collegamenti da forum e chat, dove i malintenzionati lasciano istruzioni ingannevoli.
I pacchetti malevoli si basano su codice di librerie legittime, in cui sono incorporate modifiche specifiche che installano nel sistema malware, in grado di cercare e inviare dati e file riservati contenenti password, chiavi di accesso, portafogli crittografici, token e cookie di sessione. Il codice malevolo è incorporato nel file setup.py, eseguito durante l'installazione del pacchetto. Durante l'attivazione, la modifica apportata scarica componenti malevoli principali da fonti esterne. server.
Nei due giorni, i malintenzionati hanno caricato 29 varianti malevole del pacchetto tensorflow, 26 di BeautifulSoup, 26 di PyGame, 15 di SimpleJson, 38 di Matplotlib, 26 di PyTorch, 67 di CustomTKInter, 28 di selenium, 17 di playwright, 15 di asyncio e 67 di requirements. Sono stati inoltre identificati singoli casi di contraffazione delle librerie requests, py-cord, colorama, capmonstercloudclient, pillow e bip-utils.
Si segnala inoltre un attacco alla comunità Top.gg, che conta 170 mila utenti. Durante l'attacco, il malintenzionato è riuscito a compromettere l'account GitHub di uno degli sviluppatori di top.gg, rubando i cookie del browser. L'attaccante ha anche aggiunto tre pacchetti nel repository PyPI e registrato domini pypihosted.org e pythanhosted.org, dove è stata istituita una copia per la distribuzione della dipendenza malevola ai pacchetti.
Attraverso un account compromesso su GitHub, è stata effettuata una modifica al repository del progetto top.gg, in cui era presente un wrapper Python per l'API di Top.gg, aggiungendo un file requirements.txt. Nel file era stato inserito un elenco di dipendenze da scaricare, nel quale, sotto le sembianze di una dipendenza da un mirror, era presente un collegamento a una versione malevola del pacchetto "colorama", ospitata su un dominio fasullo pypihosted.org, con l'aspettativa che gli sviluppatori non notassero la differenza con il legittimo dominio pythonhosted.org, da cui di solito vengono scaricati i pacchetti da PyPI.
Fonte: opennet.ru
