Sommario
Un’indagine pubblicata dal team di ricerca di Socket ha rivelato la presenza di un pacchetto Python malevolo caricato sul repository PyPI con il nome apparentemente innocuo discordpydebug. Il modulo, camuffato da strumento di logging per sviluppatori Discord, conteneva in realtà un Remote Access Trojan (RAT) attivo, che ha messo a rischio oltre 11.000 installazioni prima di essere rimosso.
Un RAT camuffato da libreria per debugging
Il pacchetto si presentava come un utility per chi utilizza la nota libreria Discord.py, attirando l’attenzione di sviluppatori indipendenti, team ristretti e maker, ovvero utenti abituati a installare strumenti non ufficiali reperiti tramite forum, chat o repository GitHub. L’apparente funzionalità di “logger per errori Discord” celava un codice in grado di collegarsi a un server di comando e controllo e ricevere istruzioni in tempo reale.

Nessuna documentazione, README assente, ma un nome rassicurante e un codice apparentemente copiato da progetti autentici: il pacchetto ha beneficiato del clima di fiducia informale che caratterizza molte community di sviluppo, specialmente su Discord stesso, dove bot, moduli, estensioni e snippet vengono condivisi liberamente.
Comando e controllo attivo via polling continuo
Una volta installato, discordpydebug attiva una funzione run()
che effettua una connessione HTTP POST silenziosa verso un server C2 all’indirizzo backstabprotection.jamesx123.repl.co
, registrando la macchina infetta con un identificativo.
Il codice malevolo rimane poi attivo in un ciclo infinito tramite la funzione debug()
, che effettua richieste ogni secondo al server remoto per ricevere comandi. A seconda dell’input, il RAT è in grado di:
- Leggere file locali, inclusi quelli contenenti configurazioni, token o chiavi
- Scrivere nuovi file o modificare quelli esistenti
- Eseguire comandi di shell arbitrari, agendo come se fosse un terminale remoto
Ogni risposta viene codificata e rispedita via POST al server di controllo. Tutto questo avviene senza alcuna notifica all’utente, rendendo l’attacco difficile da rilevare, in particolare su ambienti di sviluppo poco protetti.
Una minaccia reale alla supply chain del software
Il caso evidenzia l’urgenza di meccanismi di validazione e sorveglianza attiva dei pacchetti caricati sui registri pubblici come PyPI. L’assenza di controlli preventivi consente ad attori malevoli di pubblicare pacchetti infetti con nomi ingannevoli, aspettando che siano diffusi tramite social engineering all’interno di comunità fiduciose.
Socket sottolinea che pacchetti come questo rappresentano una forma pericolosa di attacco alla supply chain del software open source, dove il codice infetto può entrare in un progetto tramite una semplice dipendenza aggiunta al file requirements.txt.
Il dominio malevolo utilizzato (backstabprotection.jamesx123.repl.co
) è stato disattivato, ma la semplicità del codice lo rende facilmente replicabile. Lo script utilizza tecniche compatibili con diversi vettori MITRE ATT&CK, tra cui:
- T1071.001 (comunicazione C2 su protocollo web)
- T1059.004 (esecuzione comandi tramite Python)
- T1041 (esfiltrazione dati)
- T1027 (mascheramento come pacchetto legittimo)
Misure di mitigazione e strumenti di difesa
Socket ha rimosso il pacchetto da PyPI e invita i team di sviluppo a non fidarsi ciecamente di pacchetti poco documentati o di provenienza sconosciuta. Vengono inoltre raccomandati strumenti come:
- Socket GitHub App, che segnala dipendenze sospette in pull request
- Socket CLI, che scansiona pacchetti durante installazioni e build
- Socket browser extension, che allerta l’utente su comportamenti anomali nei pacchetti online
Questa vicenda conferma che la sicurezza della filiera open source richiede strumenti di sorveglianza in tempo reale e consapevolezza costante, anche per librerie apparentemente innocue.