Red Hot Cyber

La cybersecurity è condivisione.
Riconosci il rischio, combattilo, condividi le tue esperienze ed 
incentiva gli altri a fare meglio di te.

Cerca

Attacco alla supply-chain: come gli sviluppatori Python sono stati ingannati da un clone dannoso di Colorama

Sandro Sana : 26 Marzo 2024 18:12

Gli sviluppatori Python sono tra i più richiesti e apprezzati nel mondo del software, grazie alla versatilità e alla semplicità del linguaggio. Tuttavia, proprio questa popolarità li rende un bersaglio appetibile per i criminali informatici, che cercano di sfruttare le vulnerabilità della catena di approvvigionamento software per diffondere malware e rubare informazioni sensibili.

La catena di approvvigionamento software è l’insieme dei processi e degli strumenti che consentono di creare, distribuire e mantenere il software. Essa comprende, tra le altre cose, i pacchetti, ovvero le librerie e i moduli che gli sviluppatori usano per aggiungere funzionalità ai loro progetti. I pacchetti sono spesso ospitati su piattaforme online, come PyPI per Python, che ne facilitano il download e l’installazione.

Tuttavia, queste piattaforme possono essere vulnerabili a diversi tipi di attacchi, come il typosquatting, il compromesso di account, la sostituzione di pacchetti e la modifica di dipendenze.

Schema di attacco (Fonte Checkmarx)

L’attacco

Uno degli attacchi più sofisticati e pericolosi alla catena di approvvigionamento software è stato rivelato dai ricercatori di Checkmarx, una società specializzata nella sicurezza del software. L’attacco, iniziato nel novembre del 2022, ha colpito i principali sviluppatori Python, sfruttando un clone dannoso di uno strumento molto popolare, Colorama. Colorama è un’utilità che consente l’uso di caratteri di escape ANSI in Windows, per colorare e formattare il testo nella console.

Questo strumento viene scaricato più di 150 milioni di volte ogni mese e ha più di 500 dipendenze dirette e indirette. I malintenzionati hanno clonato lo strumento, inserendo al suo interno codice dannoso, e hanno distribuito la versione dannosa su un dominio speculativo, colorama-0.4.5.com, usando il typosquatting. Il typosquatting è una tecnica che consiste nel registrare domini simili a quelli legittimi, sfruttando errori di battitura o differenze ortografiche, per ingannare gli utenti e indurli a visitare siti malevoli.

Per promuovere il pacchetto con il malware, i criminali informatici hanno creato repository dannosi con i loro account e hanno violato l’account GitHub “editor-syntax”, associato alla piattaforma Top.gg per Discord, che conta più di 170.000 membri. Utilizzando questo account compromesso, i malintenzionati hanno effettuato un commit dannoso nel repository top-gg/python-sdk, aggiungendo istruzioni per scaricare il clone dannoso di Colorama e hanno contrassegnato i repository dannosi su GitHub per aumentarne la visibilità. I ricercatori ipotizzano che l’account sia stato compromesso tramite cookie rubati, consentendo di aggirare l’autenticazione e compiere azioni dannose. Per mascherare la loro attività nei repository dannosi, i malintenzionati hanno aggiunto diversi file, inclusi file legittimi e file che contenevano un collegamento al pacchetto Colorama clonato, per farli sembrare legittimi.

Manipolando il processo di installazione del pacchetto e sfruttando la fiducia degli utenti nell’ecosistema dei pacchetti Python, i criminali hanno garantito che il pacchetto dannoso Colorama fosse installato ogni volta che una dipendenza dannosa veniva specificata nei requisiti del progetto. Un aspetto significativo è che il codice dannoso è stato nascosto in Colorama utilizzando una serie di spazi, facendo sì che il frammento si estendesse oltre lo schermo e diventasse invisibile durante una rapida revisione dei file sorgente.

Dopo l’esecuzione del codice dannoso, il processo di infezione attua diversi passaggi aggiuntivi, tra cui il download e l’esecuzione di ulteriore codice Python, il recupero delle librerie necessarie e la configurazione della persistenza.

Le conseguenze

L’obiettivo del malware inserito nel clone dannoso di Colorama era quello di rubare informazioni dagli sviluppatori Python, come le credenziali di accesso a vari servizi online, i cookie del browser, i token di autenticazione, le chiavi SSH e i dati sensibili presenti nei file di configurazione. Il malware era in grado di comunicare con un server di comando e controllo, inviando le informazioni rubate e ricevendo istruzioni.

Inoltre, il malware era in grado di eseguire codice arbitrario sulle macchine infette, aprendo la possibilità a ulteriori attacchi, come il ransomware, il cryptojacking o il furto di identità. I ricercatori di Checkmarx hanno stimato che almeno 10.000 sviluppatori Python siano stati infettati dal malware, con un potenziale impatto su milioni di utenti finali dei software creati dagli sviluppatori.

L’attacco è stato segnalato alle autorità competenti e ai responsabili delle piattaforme coinvolte, che hanno provveduto a rimuovere i repository e i pacchetti dannosi e a bloccare gli account compromessi. Tuttavia, il rischio di nuovi attacchi alla catena di approvvigionamento software rimane elevato, vista la complessità e la varietà degli strumenti e dei processi coinvolti.

Le raccomandazioni

Per prevenire e mitigare gli attacchi alla catena di approvvigionamento software, gli sviluppatori Python devono adottare alcune buone pratiche, come:

  • Verificare sempre la fonte e l’affidabilità dei pacchetti che si intendono scaricare e installare, controllando il nome, il dominio, la reputazione e le recensioni.
  • Usare strumenti di sicurezza, come antivirus, firewall e scanner di vulnerabilità, per proteggere le proprie macchine e i propri progetti.
  • Aggiornare regolarmente i pacchetti e i software usati, per correggere eventuali bug o falle di sicurezza.
  • Usare l’autenticazione a due fattori e password robuste per i propri account online, e cambiare spesso le credenziali di accesso.
  • Monitorare e analizzare il traffico di rete e le attività sospette sulle proprie macchine, per individuare e bloccare eventuali tentativi di intrusione o di furto di informazioni.

Sandro Sana
Mi occupo d'Information Technology dal 1990, negli anni ho lavorato con aziende di diverso tipo dalle PMI alle Enterprise e la PA. Dal 2003 m’interesso di comunicazione, PNL e Public Speaking. Dal 2014 mi sono specializzato in scouting e R&D di soluzioni in ambito Cybersecurity. CEH - EC-Council Certified Ethical Hacker, CIH EC-Council Certified Incident Handler, CISSP - Certified Information Systems Security Professional, relatore a SMAU 2017 e SMAU 2018, docente SMAU Academy & ITS, membro dell'Associazione Informatici Professionisti dal 2017 e Coordinatore per la regione Friuli-Venezia Giulia per AIP-ITCS. Membro CLUSIT e giornalista presso RedHot Cyber, Cybersecurity360 & Digital360. Consulente framework CIS, NIST e ENISA.