banner
Casa / Notizia / VMConnect: i pacchetti PyPI dannosi imitano i moduli open source più diffusi
Notizia

VMConnect: i pacchetti PyPI dannosi imitano i moduli open source più diffusi

Jul 28, 2023Jul 28, 2023

Home » Calendario Editoriale » Sicurezza della catena di fornitura del software » VMConnect: i pacchetti PyPI dannosi imitano i popolari moduli open source

ReversingLabs ha identificato diversi pacchetti Python dannosi nel repository open source Python Package Index (PyPI). In totale, i ricercatori di ReversingLabs hanno scoperto 24 pacchetti dannosi che imitavano tre popolari strumenti Python open source: vConnector, un modulo wrapper per i collegamenti pyVmomi VMware vSphere; così come eth-tester, una raccolta di strumenti per testare applicazioni basate su Ethereum; e banche dati,uno strumento che fornisce supporto asincrono per una gamma di database.

Sulla base delle osservazioni del gruppo di ricerca, la campagna è iniziata intorno al 28 luglio 2023, quando è stato pubblicato il primo pacchetto dannoso. Continua fino ai giorni nostri, con nuovi pacchetti PyPI dannosi pubblicati quotidianamente, man mano che i pacchetti precedenti vengono rilevati e rimossi.

A differenza di altre recenti campagne sulla catena di fornitura, come Operation Brainleeches, i pacchetti dannosi che compongono questa campagna mostrano la prova di uno sforzo concertato per ingannare gli sviluppatori. Raggiungono questo obiettivo implementando l'intera funzionalità dei moduli che stanno imitando e sostenendo progetti GitHub corrispondenti e collegati che omettono la funzionalità dannosa trovata nel pacchetto di rilascio PyPI.

Non è la prima volta che osserviamo un comportamento del genere. Nel giugno del 2022, ad esempio, abbiamo scoperto un pacchetto dannoso npm, Maintenancewebsite, che utilizzava un approccio simile per nascondere le funzionalità di cryptomining. La campagna VMConnect è l’ultimo esempio di moduli open source utilizzati per propagare codice dannoso e un’ulteriore prova del fatto che le valutazioni della sicurezza dei repository di codice open source potrebbero non cogliere questi attacchi sfumati.

Il team di ricerca di ReversingLabs monitora continuamente i repository di pacchetti open source per rilevare casi di manomissione di codice dannoso, inserimento di pacchetti o dipendenze dannosi e altre forme di attacchi alla catena di fornitura del software. Questo lavoro prevede la scansione e l'analisi automatizzata e guidata dall'uomo dei pacchetti pubblicati nei repository di pacchetti pubblici più popolari come npm, PyPI, Ruby e NuGet.

Storicamente, la stragrande maggioranza delle campagne dannose sulla catena di fornitura che abbiamo identificato sono state trovate sul repository open source npm, che ospita la maggior parte dei progetti e degli sviluppatori open source. Tuttavia, negli ultimi mesi altre piattaforme, in particolare Python Package Index (PyPI), hanno registrato un aumento delle attività dannose. A febbraio, ad esempio, i ricercatori di ReversingLabs hanno scoperto 41 pacchetti PyPI dannosi che si spacciavano per librerie HTTP, alcune delle quali imitavano librerie popolari e ampiamente utilizzate. A marzo abbiamo riscontrato un pacchetto PyPI dannoso denominato termcolor, un downloader in tre fasi pubblicato in più versioni che ha cooptato il nome di un pacchetto PyPI defunto. Poi, a maggio, PyPI ha smesso brevemente di accettare nuovi invii dopo essere stato sopraffatto da invii dannosi.

I ricercatori di ReversingLabs hanno identificato una nuova campagna PyPI dannosa che include un pacchetto VMConnect sospetto pubblicato nel repository PyPI.

Questo pacchetto è stato dichiarato sospetto durante la scansione di routine da ReversingLabs Titanium Platform, un potente motore di analisi statica in grado di estrarre vari tipi di metadati da un'ampia gamma di formati di file.

Oltre ai vari tipi di metadati, la piattaforma ReversingLabs Titanium è anche in grado di estrarre indicatori di comportamento, facilitando la comprensione delle capacità funzionali di un file. E questa funzionalità è ciò che ha attirato la nostra attenzione sul file _init_.py all'interno di VMConnect. Il codice all'interno del file __init__.py di VMConnect è in grado di creare un processo, decodificare i dati utilizzando l'algoritmo Base64 e convertire i dati binari nella relativa rappresentazione di stringa, un comportamento comunemente utilizzato nell'offuscamento. Questa combinazione di comportamenti è ciò che ha innescato il rilevamento iniziale e ha spinto a ulteriori indagini.

Figura 1: indicatori di comportamento estratti dal pacchetto VMConnect.