Het Python-pakketrepository PyPI (Python Package Index) heeft tijdelijk de registratie van nieuwe gebruikers en het creëren van nieuwe projecten verboden vanwege een aanhoudende massale upload van kwaadaardige pakketten tijdens een geautomatiseerde aanval. De blokkade werd ingesteld nadat op 26 en 27 maart 566 pakketten met kwaadaardige code in het repository werden geüpload, gestileerd na 16 populaire Python-bibliotheken.
Pakketten zijn gevormd met behulp van typequoting, dat wil zeggen het toekennen van vergelijkbare namen die van elkaar verschillen door enkele symbolen, bijvoorbeeld temsorflow in plaats van tensorflow, requyests in plaats van requests, asyincio in plaats van asyncio, enz. Bij dergelijke aanvallen rekenen kwaadwillenden op onoplettende gebruikers die een typfout maken of de verschillen in naam niet opmerken tijdens het zoeken of klikken op een link uit forums en chats waar kwaadwillenden misleidende instructies achterlaten.
Kwaadaardige pakketten zijn gebaseerd op de code van legitieme bibliotheken, waaraan afzonderlijke wijzigingen zijn ingebouwd die malware op het systeem installeren die vertrouwelijke gegevens en bestanden met wachtwoorden, toegangssleutels, cryptovaluta, tokens en sessie-Cookie's zoekt en verstuurt. De kwaadaardige code wordt ingebouwd in het bestand setup.py, dat wordt uitgevoerd tijdens de installatie van het pakket. Tijdens de activering laadt de aangebrachte wijziging de essentiële kwaadaardige componenten van extern. de server.
In twee dagen hebben kwaadwillenden 29 kwaadaardige varianten van het pakket tensorflow geüpload, 26 van BeautifulSoup, 26 van PyGame, 15 van SimpleJson, 38 van Matplotlib, 26 van PyTorch, 67 van CustomTKInter, 28 van selenium, 17 van playwright, 15 van asyncio en 67 van requirements. Daarnaast zijn er afzonderlijke gevallen van vervalsing van de bibliotheken requests, py-cord, colorama, capmonstercloudclient, pillow en bip-utils vastgesteld.
Een aparte aanval op de gemeenschap Top.gg, die 170.000 gebruikers telt, wordt opgemerkt. Tijdens de aanval wist de aanvaller een GitHub-account van een van de ontwikkelaars van top.gg te compromitteren door browser-Cookie's te stelen. De aanvaller heeft ook drie pakketten aan het PyPI-repository toegevoegd en geregistreerd. domeinen pypihosted.org en pythanhosted.org, waar een mirror werd georganiseerd voor de verspreiding van de kwaadaardige afhankelijkheid naar de pakketten.
Via een gecompromitteerd account in de GitHub-repository van het project top.gg, waarin de Python-wrapper voor de Top.gg API werd geplaatst, is er een wijziging aangebracht die een requirements.txt-bestand toevoegt. In dit bestand stond een lijst van te laden afhankelijkheden, waarin onder het mom van het laden van een afhankelijkheid van een mirror een link naar een kwaadaardige kloon van het pakket 'colorama' was geplaatst, gehost op de valse domeinnaam pypihosted.org, in de hoop dat ontwikkelaars het verschil met het legitieme domein pythonhosted.org, van waaruit normaal gesproken pakketten van PyPI worden gedownload, niet zouden opmerken.
Bron: opennet.ru
