Malware su npm: SSH backdoor nei pacchetti Telegram compromette la supply chain degli sviluppatori

da Livio Varriale
0 commenti 5 minuti leggi
Malware su npm: SSH backdoor nei pacchetti Telegram compromette la supply chain degli sviluppatori

L’ecosistema open source legato a Telegram subisce una nuova e sofisticata offensiva informatica. Secondo quanto rilevato dal team di ricerca di Socket, nel primo trimestre del 2025 è stata individuata una campagna malevola che ha coinvolto l’ambiente npm, prendendo di mira in modo mirato gli sviluppatori di Telegram Bot. Gli attaccanti hanno utilizzato la tecnica del typosquatting, creando versioni falsificate di una delle librerie più popolari per l’integrazione bot su Node.js, al fine di distribuire backdoor SSH persistenti e routine di esfiltrazione dati.

Questa offensiva evidenzia la vulnerabilità strutturale degli ecosistemi open, dove la mancanza di una revisione centralizzata dei pacchetti rende possibile l’infiltrazione di codice malevolo mascherato da moduli apparentemente legittimi. Nel caso specifico, l’obiettivo sono stati gli sviluppatori che si affidano a node-telegram-bot-api, una libreria con oltre quattro milioni di download, spesso installata per estendere le funzionalità bot nei progetti Telegram.

Telegram e il contesto aperto per lo sviluppo: un’opportunità che diventa rischio

Telegram si posiziona oggi come una delle principali piattaforme di messaggistica globali, con oltre un miliardo di utenti attivi mensili e più di dodici milioni di abbonati paganti. Il successo della piattaforma non si basa solo sulla messaggistica istantanea, ma su un ecosistema estensibile fondato su bot, API pubbliche e una filosofia di sviluppo decentralizzata, dove chiunque può creare e distribuire bot senza passare da un processo di approvazione.

image 292
Malware su npm: SSH backdoor nei pacchetti Telegram compromette la supply chain degli sviluppatori 7

Questo modello, estremamente favorevole all’innovazione, comporta però un’esposizione elevata agli abusi. A differenza degli store ufficiali come App Store o Google Play, Telegram non offre un repository ufficiale di bot verificati, né un sistema centralizzato di moderazione preventiva. La moderazione avviene solo ex post, spesso in seguito a segnalazioni o analisi post-distribuzione.

Tale configurazione espone gli sviluppatori a una superficie d’attacco ampia, dove la confusione generata da nomi simili tra pacchetti malevoli e legittimi può portare facilmente all’installazione di codice dannoso.

Il meccanismo dell’attacco: pacchetti npm contraffatti con backdoor SSH e tecniche di starjacking

Il cuore dell’operazione è stato l’utilizzo di tre pacchetti npm falsi, i cui nomi imitavano in modo ingannevole la libreria legittima node-telegram-bot-api. I pacchetti identificati come malevoli sono:

  • node-telegram-utils
  • node-telegram-bots-api
  • node-telegram-util

Ognuno di essi conteneva codice nascosto all’interno della funzione addBotId(), attivata automaticamente non appena il pacchetto veniva instanziato. La routine malevola entrava in funzione esclusivamente su sistemi Linux, rilevati tramite os.platform(), e in modo completamente trasparente per l’utente.

Una volta attivata, la funzione eseguiva le seguenti azioni:

  • Iniezione nel file ~/.ssh/authorized_keys di due chiavi pubbliche SSH controllate dall’attaccante, garantendo così accesso remoto senza password e ridondanza in caso di rimozione di una delle chiavi.
  • Raccolta di dati identificativi del sistema, tra cui indirizzo IP esterno (tramite ipinfo.io) e username dell’utente.
  • Invio immediato delle informazioni raccolte a un endpoint remoto: solana.validator.blog, utilizzato per il tracciamento delle installazioni compromesse.

Una caratteristica rilevante di questi pacchetti è l’impiego della tecnica chiamata “starjacking”, che consiste nel collegare il campo “Homepage” del pacchetto falso al repository GitHub autentico. Così facendo, sulla sidebar di npm venivano visualizzati i 19.000 e oltre “star” del progetto originale, generando fiducia visiva e convincendo lo sviluppatore ignaro della legittimità del modulo.

Codice malevolo integrato nel cuore della libreria: la pericolosità dell’occultamento nel flusso standard

L’analisi del codice dimostra che le circa quaranta righe malevole erano sapientemente integrate all’interno del modulo Telegram, senza generare sospetti evidenti. Il codice non presentava comportamenti aggressivi all’installazione e non alterava in modo visibile il funzionamento del bot, permettendo agli sviluppatori di continuare lo sviluppo ignari della compromissione.

La pericolosità maggiore risiede nel fatto che la rimozione del pacchetto non elimina le chiavi SSH precedentemente inserite, rendendo persistente l’accesso remoto anche dopo una potenziale bonifica. Questo implica che i sistemi infetti rimangono esposti anche dopo l’eliminazione del modulo npm, a meno che non venga eseguito un controllo manuale approfondito della cartella .ssh.

Annunci

La conseguenza immediata è una violazione dell’integrità del sistema di sviluppo o di produzione, con la possibilità per l’attaccante di:

  • accedere a progetti privati
  • modificare codice in repository Git remoti
  • esfiltrare credenziali e dati sensibili
  • installare payload secondari o iniziare movimenti laterali su infrastrutture aziendali

Implicazioni sulla sicurezza della supply chain: pochi download possono generare danni su larga scala

Sebbene il numero complessivo di download dei pacchetti malevoli sia stato contenuto (circa 300 in totale), la natura del vettore d’attacco lo rende estremamente pericoloso. Le supply chain moderne si basano su un sistema di dipendenze ad alta automazione, dove ogni pacchetto installato può influenzare l’intera pipeline CI/CD.

Un solo sviluppatore infetto può contaminare:

  • ambienti di staging
  • processi di build automatizzati
  • moduli condivisi via Git o Docker
  • ambienti di produzione su larga scala

La fiducia implicita nei pacchetti open source e la difficoltà nel rilevare attività malevole ben camuffate trasformano un attacco con bassa diffusione iniziale in un potenziale vettore di infezione sistemica.

Risposte e mitigazione: sicurezza multilivello nella filiera del codice

La lezione principale di questo attacco riguarda la necessità di monitorare attivamente le dipendenze, integrando strumenti di analisi comportamentale nei workflow di sviluppo. Socket propone un ecosistema di sicurezza composto da:

  • Socket GitHub App, che analizza automaticamente le pull request e blocca dipendenze sospette prima della merge
  • Socket CLI, per effettuare scanning in fase di installazione e build npm
  • Estensione browser, utile per evitare download da pagine con pacchetti compromessi o falsificati

Tuttavia, la protezione non può dipendere unicamente da strumenti esterni. È cruciale che gli sviluppatori adottino procedure di auditing regolare, creazione di lockfile verificati e monitoraggio continuo delle proprie dipendenze, soprattutto nei contesti npm e PyPI, noti per essere altamente esposti al typosquatting.

Si può anche come

MatriceDigitale.it – Copyright © 2024, Livio Varriale – Registrazione Tribunale di Napoli n° 60 del 18/11/2021. – P.IVA IT10498911212 Privacy Policy e Cookies

Developed with love by Giuseppe Ferrara