Meer dan 10.000 downloads verzameld met cyberspionage

ESET Research heeft een verzameling van schadelijke Python-projecten ontdekt die worden verspreid via PyPI, de officiële Python (programmeertaal) pakketopslagplaats. De dreiging richt zich op zowel Windows- als Linux-systemen en levert meestal een aangepaste achterdeur met cyberspionagemogelijkheden. Hiermee kun je op afstand commando's uitvoeren en bestanden exfiltreren, en soms ook schermafbeeldingen maken. In sommige gevallen is de uiteindelijke payload een variant van de beruchte W4SP Stealer Deze steelt persoonlijke gegevens en referenties. Of een eenvoudige klembordmonitor om cryptocurrency te stelen, of beide. ESET ontdekte 116 bestanden (source distributions and wheels) verspreid over 53 projecten die malware bevatten. In het afgelopen jaar hebben slachtoffers deze bestanden meer dan 10.000 keer gedownload. Vanaf mei 2023 waren er ongeveer 80 downloads per dag.

PyPI is populair onder Python programmeurs voor het delen en downloaden van code. Omdat iedereen kan bijdragen aan de opslag, kan malware - die zich soms voordoet als legitieme, populaire codebibliotheken - verschijnen. "Sommige kwaadaardige pakketnamen lijken op andere, legitieme pakketten, maar we geloven dat de belangrijkste manier waarop ze door potentiële slachtoffers worden geïnstalleerd niet via typosquatting is, maar via social engineering, waarbij ze door het uitvoeren van 'point in percentage' worden geleid om een interessant pakket te installeren, om wat voor reden dan ook," zegt ESET-onderzoeker Marc-Étienne Léveillé, die de kwaadaardige pakketten ontdekte en analyseerde.

De meeste pakketten waren ten tijde van de publicatie van dit onderzoek al door PyPI verwijderd. ESET heeft met PyPI gecommuniceerd om actie te ondernemen met betrekking tot de resterende pakketten; op dit moment zijn alle bekende schadelijke pakketten offline.

ESET heeft gezien dat de beheerders van deze campagne drie technieken gebruiken om schadelijke code te bundelen in de Python-pakketten.

  • De eerste techniek is het plaatsen van een "test" module met licht versleutelde code in het pakket.
  • De tweede techniek is het insluiten van PowerShell code in het setup.py bestand, dat meestal automatisch wordt uitgevoerd door pakketbeheerders zoals pip om Python projecten te helpen installeren.
  • Bij de derde techniek doen de beheerders geen moeite om legitieme code in het pakket op te nemen, zodat alleen de kwaadaardige code aanwezig is, in een licht versleutelde vorm.

De uiteindelijke payload is meestal een aangepaste achterdeur die in staat is om op afstand commando's uit te voeren, bestanden te exfiltreren en soms schermafbeeldingen te maken. Op Windows is de achterdeur geïmplementeerd in Python. Op Linux is de achterdeur geïmplementeerd in de programmeertaal Go. In sommige gevallen wordt een variant van de beruchte W4SP Stealer gebruikt in plaats van de backdoor, of wordt een eenvoudige klembordmonitor gebruikt om cryptocurrency te stelen, of beide. De klembordmonitor richt zich op Bitcoin, Ethereum, Monero en Litecoin cryptocurrencies.

"Python-ontwikkelaars moeten de code die ze downloaden doorlichten voordat ze deze op hun systemen installeren. We verwachten dat dergelijk misbruik van PyPI door zal gaan en adviseren voorzichtigheid bij het installeren van code uit een openbare softwarerepository," concludeert Léveillé.