I ricercatori di sicurezza informatica hanno scoperto due pacchetti malevoli caricati nel repository Python Package Index (PyPI) che imitavano modelli di intelligenza artificiale (IA) popolari, come OpenAI di ChatGPT e Anthropic Claude, per distribuire un programma di furto di informazioni chiamato JarkaStealer.
JarkaStealer, cos’è e come funziona
I pacchetti, chiamati gptplus e claudeai-eng, sono stati caricati da un utente con il nome “Xeroline” nel novembre 2023, attirando rispettivamente 1.748 e 1.826 download. Entrambe le librerie non sono più disponibili per il download da PyPI.
“I pacchetti malevoli sono stati caricati nel repository da un unico autore e, in realtà, differivano tra loro solo per nome e descrizione“, ha dichiarato Kaspersky in un post sul suo blog.
I pacchetti affermavano di offrire un metodo per accedere alle API di GPT-4 Turbo e Claude AI, ma contenevano codice malevolo che avviava la distribuzione del malware al momento dell’installazione.
In particolare, il file “init.py” presente in questi pacchetti conteneva dati codificati in Base64, che includevano codice per scaricare un file Java Archive (“JavaUpdater.jar“) da un repository GitHub (“github[.]com/imystorage/storage“). Inoltre, scaricava l’ambiente Java Runtime Environment (JRE) da un URL di Dropbox se Java non era già installato sul sistema host, prima di eseguire il file JAR.
Il file JAR conteneva un programma di furto di informazioni basato su Java chiamato JarkaStealer, progettato per sottrarre una vasta gamma di dati sensibili, inclusi dati del browser web, informazioni di sistema, screenshot e token di sessione di applicazioni come Telegram, Discord e Steam.
La fase finale di JarkaStealer
Nella fase finale, le informazioni raccolte venivano archiviate, trasmesse al server dell’attaccante e poi eliminate dal dispositivo della vittima; si è scoperto che JarkaStealer è offerto come parte di un modello di malware-as-a-service (MaaS) attraverso un canale Telegram, con un prezzo compreso tra i 20 e i 50 dollari, sebbene il suo codice sorgente sia stato pubblicato su GitHub.
Le statistiche di ClickPy mostrano che i pacchetti sono stati scaricati principalmente da utenti situati negli Stati Uniti, Cina, India, Francia, Germania e Russia, nell’ambito di una campagna di attacco alla supply chain che è durata un anno.
“Questa scoperta sottolinea i rischi persistenti degli attacchi alla supply chain del software e evidenzia la necessità critica di vigilanza quando si integrano componenti open-source nei processi di sviluppo“, ha dichiarato Leonid Bezvershenko, ricercatore di Kaspersky.
Perché i repository PyPI sono spesso usati come veicolo di malware come il caso JarkaStealer
I repository come PyPI (Python Package Index) sono spesso utilizzati come veicolo per il malware a causa della loro natura aperta e della vasta diffusione nell’ecosistema dello sviluppo software e dato che praticamente chiunque può caricare pacchetti su PyPI, i malintenzionati possono facilmente sfruttare la piattaforma per inserire codice malevolo in pacchetti che imitano librerie legittime o creano nomi simili a quelli di pacchetti popolari (una tecnica nota come typosquatting).
Molti sviluppatori tendono a fidarsi dei repository ufficiali senza esaminare a fondo il codice delle dipendenze che integrano nei propri progetti, aumentando così il rischio di attacchi alla supply chain. Questa combinazione di accessibilità, ampia base di utenti e fiducia implicita rende PyPI un bersaglio attraente per i criminali informatici.
La doppia faccia dell’open source
L’open source, come visto in questo caso del malware JarkaStealer pur offrendo enormi vantaggi come trasparenza, innovazione rapida e collaborazione globale, presenta anche alcune vulnerabilità intrinseche che possono essere sfruttate dai malintenzionati; la possibilità per chiunque di contribuire a progetti o pubblicare pacchetti su piattaforme come PyPI, se da un lato accelera lo sviluppo software, dall’altro apre la porta a comportamenti malevoli.
La mancanza di verifiche rigorose sui pacchetti caricati, unita all’abitudine degli sviluppatori di utilizzare librerie pronte senza ispezionare il codice, espone l’intero ecosistema a rischi come il malware e gli attacchi alla supply chain (o catena di approvigionamento) e questo dualismo evidenzia la necessità di un equilibrio tra apertura e controlli di sicurezza più stringenti per proteggere la fiducia e l’integrità dell’ecosistema open source.
Facendola breve, bellissimo il fatto che le cose Open Source siano libere e aperte, ma la doppia faccia dell’open source è che chiunque abbia competenze informatiche, soprattutto in programmazione, può mettere le mani sul codice sorgente e cambiarlo a proprio piacimento.