Il malware di tipo “clipper” non è propriamente una novità nel mondo della sicurezza informatica, ma andiamo con ordine.
Sono stati pubblicati da ignoti autori malintenzionati ben oltre 451 pacchetti Python univoci sul repository Python Package Index (PyPI) ufficiale nel tentativo di infettare i sistemi degli sviluppatori con malware che corrisponde al nome di una particolare tipologia che corrisponde al nome di clipper.
Cosa sono i malware clipper in breve
Un malware di tipologia clipper è sostanzialmente un “dirottatore” di appunti, nel senso che “trasporta” le informazioni da una parte all’altra; in questo caso uno sviluppatore che programma in Python mentre è online, per capirci, potrebbe ritrovarsi le sue cose in mano ad altri.
Purtroppo, questa tipologia di malware non è una novità, visto che già in precedenza (si parla di Novembre 2022) aveva fatto parlare di sé.
Ma cosa “devia” questo malware? La risposta è: le criptovalute.
Malware clipper: veniamo al dunque
La società di sicurezza della catena di fornitura di software Phylum, che ha individuato le librerie infette, ha affermato che l’attività in corso è il seguito di una campagna inizialmente divulgata nel novembre 2022, la Laplas.
Il vettore d’attacco iniziale prevede l’utilizzo di typosquatting (un malware creato per attaccare programmi e di conseguenza programmatori Python e Java) per imitare pacchetti popolari come beautifulsoup, bitcoinlib, cryptofeed, matplotlib, pandas, pytorch, scikit-learn, scrapy, selenium, solana e tensorflow, tra gli altri.
“Dopo l’installazione [di una di queste 450 librerie], un file JavaScript dannoso viene scaricato nel sistema ed eseguito in background in qualsiasi sessione di navigazione web“, ha affermato Phylum in un rapporto pubblicato lo scorso anno. “Quando uno sviluppatore copia un indirizzo di criptovaluta, l’indirizzo viene sostituito negli appunti con l’indirizzo dell’aggressore.”
Ciò si ottiene creando un’estensione del browser Web Chromium nella cartella AppData di Windows e scrivendovi il Javascript non autorizzato e un file manifest.json che richiede le autorizzazioni degli utenti per accedere e modificare gli appunti.
Inutile dire (com’è intuibile se ne mastichi abbastanza) che i browser Web presi di mira includono saranno quelli basati su Chromium: Google Chrome, Microsoft Edge, Brave e Opera, con il malware che modifica le shortcut del browser per caricare automaticamente il componente aggiuntivo all’avvio utilizzando l’opzione della riga di comando “–load-extension”.
L’ultima serie di pacchetti Python mostra un modus operandi simile, se non lo stesso, ed è progettato per funzionare come un portafoglio crittografico basato su appunti che sostituisce il malware; ciò che è cambiato è la tecnica di “offuscamento” utilizzata per nascondere il codice JavaScript (sì, perché oramai molti browser riescono ad individuare codice JS dannoso).
Come accennato all’inizio nel descrivere cos’è un clipper: l’obiettivo finale degli attacchi è dirottare le transazioni di criptovaluta avviate dallo sviluppatore compromesso e reindirizzarle ai portafogli controllati dall’attaccante anziché al destinatario come dovrebbe essere previsto.
“Questo utente malintenzionato ha notevolmente aumentato la propria impronta in pypi attraverso l’automazione“, ha osservato Phylum. “Riempire l’ecosistema con pacchetti come questo continuerà“.
I risultati coincidono con un rapporto di Sonatype, che ha trovato 691 pacchetti dannosi nel registro npm e 49 pacchetti dannosi in PyPI durante il solo mese di gennaio 2023.
Lo sviluppo della faccenda mostra ancora una volta la crescente minaccia che gli sviluppatori devono affrontare dagli attacchi alla catena di attacchi, con avversari che si affidano a metodi come il typosquatting per indurre gli utenti a scaricare pacchetti fraudolenti.
Se programmi in Python, ecco come potresti difenderti
Anzitutto armati di un buon antivirus o antimalware (ma se devi usarlo, forse è già tardi…).
Ma prima di arrivare ad usare un programma antivirus o antimalware, cerca di controllare le fonti di quello che scarichi e cerca di stare a contatto con la community di sviluppatori per non incappare in pacchetti “estranei”.