operation navy ghost pypi pyrogram backdoor telegram

Operation Navy Ghost: la finta libreria Python che trasforma i bot Telegram in cavalli di Troia

🛡️ Executive Summary

  • Operation Navy Ghost ha distribuito almeno otto pacchetti PyPI contraffatti contenenti una backdoor destinata agli sviluppatori di bot Telegram.
  • Il malware utilizza Telegram come canale di comando e controllo, consentendo esecuzione remota di codice Python e comandi di sistema.
  • La campagna dimostra come gli attacchi alla supply chain software continuino a sfruttare repository pubblici e pacchetti con nomi molto simili a quelli legittimi.

Gli attacchi alla software supply chain continuano a rappresentare una delle minacce più insidiose per sviluppatori e aziende. L’ultima campagna individuata dai ricercatori di Checkmarx prende il nome di Operation Navy Ghost e ha preso di mira la comunità che sviluppa bot per Telegram. Tra novembre 2025 e giugno 2026 gli aggressori hanno pubblicato almeno otto pacchetti Python contraffatti su PyPI, spacciandoli per varianti della popolare libreria pyrogram, utilizzata per interagire con le API MTProto della piattaforma di messaggistica. Una volta installati, questi pacchetti introducevano una backdoor capace di offrire controllo remoto completo sui sistemi compromessi, sfruttando la stessa infrastruttura Telegram come canale di comando e controllo. La scelta rende l’attività estremamente difficile da individuare, poiché il traffico malevolo si confonde con quello normalmente generato dai bot legittimi.

Un attacco supply chain costruito attorno a pyrogram

L’operazione segue uno schema ormai consolidato negli attacchi alla supply chain software. Gli autori hanno realizzato copie del progetto pyrogram, inserendo codice malevolo all’interno della libreria e pubblicandole su PyPI con nomi molto simili all’originale. Tra i pacchetti individuati figurano pyrogram-navy, pyrogram-styled, VLifeGram, VLife-Gram, kelragram, sepgram e pyrogram-zeeb. Alcuni di essi hanno raggiunto migliaia di download prima della rimozione, con pyrogram-navy che ha superato quota 15.000 installazioni. L’obiettivo era intercettare sviluppatori distratti o indurli a utilizzare presunti fork migliorati della libreria ufficiale, ottenendo così l’esecuzione automatica del malware sui server che ospitano i bot Telegram.

PacchettoAutore (PyPI)Prima pubblicazioneVersioniDownloadStato
VLifeGramwndrzzka24 novembre 202594.150Abbattuta
VLife-Gramwndrzzka22 novembre 202551.030Abbattuta
kelragramnarutorawr186 maggio 202662.530Abbattuta
pirogramma-blu navydeilin10 gennaio 202616+15.370Abbattuta
stile pirogrammadeilin15 maggio 20261432Abbattuta
sepgrammadeilin7 giugno 202631.041*Segnalato
pirogramma-zeebdeilin7 febbraio 20261264Abbattuta
pirogramma-kelradeilin21 marzo 20271672*Segnalato

La backdoor nascosta nel file secret.py

Annuncio

Il componente malevolo è concentrato principalmente nel file pyrogram/helpers/secret.py, assente nella versione autentica della libreria. Al suo interno è presente tutta la logica necessaria per instaurare un canale di controllo remoto attraverso Telegram. Il codice contiene una lista di identificativi Telegram autorizzati a impartire ordini alla backdoor, permettendo esclusivamente agli operatori della campagna di interagire con i sistemi compromessi. Una volta attivata, la backdoor registra gestori di messaggi nascosti che riconoscono specifici comandi inviati tramite chat. Gli aggressori possono così impartire istruzioni senza utilizzare server dedicati, sfruttando direttamente la normale infrastruttura della piattaforma di messaggistica.

Esecuzione remota di codice e controllo completo del sistema

Le funzionalità offerte dal malware sono particolarmente estese. Attraverso i comandi dedicati gli operatori possono eseguire codice Python arbitrario, ottenendo accesso alle variabili d’ambiente, alle sessioni del bot, ai file presenti sul server e alle credenziali memorizzate nell’applicazione. La backdoor permette inoltre l’esecuzione di comandi shell mediante il modulo subprocess, consentendo operazioni come la lettura di file di sistema, l’installazione di ulteriori payload o la modifica della configurazione della macchina. I risultati vengono restituiti direttamente tramite Telegram: gli output più piccoli vengono inviati come messaggi, mentre file superiori ai quattro kilobyte vengono trasmessi come allegati. L’intera attività resta quindi confinata all’interno dell’ecosistema Telegram, senza generare connessioni HTTP verso domini esterni che potrebbero essere facilmente intercettate dagli strumenti di sicurezza.

Due tecniche diverse per attivare il malware

Le varianti analizzate da Checkmarx mostrano approcci differenti per inizializzare il codice malevolo. Nei pacchetti VLifeGram il caricamento della backdoor avviene già durante l’importazione del modulo, grazie a modifiche apportate al file init.py della libreria. Altri pacchetti, come kelragram e pyrogram-navy, preferiscono invece intervenire sul metodo Client.start(), attivando il malware soltanto quando il bot viene realmente avviato. In questo modo eventuali errori vengono soppressi silenziosamente, riducendo le possibilità che sviluppatori o sistemi di logging rilevino comportamenti anomali durante i test dell’applicazione.

Telegram diventa il canale di comando e controllo

Uno degli aspetti più interessanti di Operation Navy Ghost è la scelta di utilizzare Telegram come infrastruttura di Command and Control (C2). Tradizionalmente i malware comunicano con server remoti tramite protocolli HTTP, HTTPS o connessioni personalizzate, generando traffico facilmente individuabile dai sistemi di monitoraggio. In questo caso, invece, sia i comandi sia l’esfiltrazione dei dati avvengono attraverso normali messaggi Telegram. Per un server che ospita un bot, questo traffico appare del tutto legittimo e difficilmente distinguibile dalle normali comunicazioni dell’applicazione. La tecnica rappresenta un’evoluzione significativa delle strategie di evasione e conferma come piattaforme cloud e servizi di messaggistica vengano sempre più spesso sfruttati per nascondere attività malevole.

Come individuare sistemi compromessi

Gli sviluppatori che utilizzano pyrogram dovrebbero verificare immediatamente la presenza del file pyrogram/helpers/secret.py, considerato il principale indicatore di compromissione. È inoltre opportuno controllare eventuali modifiche ai file pyrogram/methods/utilities/start.py e pyrogram/helpers/init.py, dove alcune varianti inseriscono il codice di attivazione. Anche un semplice controllo dei pacchetti installati mediante pip list o pip show permette di individuare nomi sospetti come vlifegram, kelragram, pyrogram-navy o pyrogram-styled. Qualunque installazione riconducibile a questi pacchetti dovrebbe essere rimossa immediatamente, reinstallando esclusivamente la versione ufficiale della libreria e verificando l’integrità dei file requirements.txt e dei relativi lockfile.

Una lezione per la sicurezza della supply chain software

L’operazione conferma come gli sviluppatori rappresentino uno degli obiettivi preferiti delle campagne di compromissione della supply chain. I server che ospitano bot Telegram spesso conservano token API, credenziali cloud, chiavi SSH, database e variabili d’ambiente che consentono agli aggressori di espandere rapidamente l’accesso all’infrastruttura aziendale. L’utilizzo di repository pubblici come PyPI richiede quindi controlli sempre più rigorosi sull’origine delle dipendenze, sulla firma dei pacchetti e sui processi di aggiornamento automatico. L’adozione di lockfile verificati, mirror interni, strumenti di Software Composition Analysis (SCA) e revisioni periodiche delle dipendenze rappresenta oggi una misura indispensabile per ridurre il rischio che un semplice comando pip install si trasformi nella porta d’ingresso per una compromissione completa dell’ambiente di sviluppo.

Iscriviti alla Newsletter

Non perdere le analisi settimanali: Entra nella Matrice Digitale.

Matrice Digitale partecipa al Programma Affiliazione Amazon EU. In qualità di Affiliato Amazon, ricevo un guadagno dagli acquisti idonei. Questo non influenza i prezzi per te.

Torna in alto