Gli sviluppatori della piattaforma VoIP Telnyx hanno avvisato gli utenti riguardo alla compromissione del pacchetto telnyx nel repository PyPI, che conta 756.000 download al mese e offre un SDK per interagire con l'API Telnyx attraverso programmi in Python. Il 27 marzo, gli attaccanti sono riusciti a pubblicare due versioni dannose telnyx 4.87.1 e 4.87.2, ottenendo accesso a PyPI dopo aver catturato le credenziali del mantenitore. Le versioni dannose sono state diffuse dalle 6:51 alle 13:13 (MSK), dopo di che sono state bloccate dall'amministrazione di PyPI. L'infrastruttura, l'API, i servizi vocali e la piattaforma Telnyx non hanno subito danni.
La compromissione è avvenuta nell'ambito di un attacco alla supply chain su larga scala condotto dal TeamPCP, durante il quale recentemente sono stati compromessi i pacchetti Python LiteLLM e Trivy, è stato integrato codice dannoso nell'estensione OpenVSX Checkmarx e un worm dannoso è stato inserito in 68 pacchetti nel repository NPM. La chiave RSA utilizzata per crittografare i dati inviati coincideva con le chiavi impiegate in altri attacchi del gruppo TeamPCP.
Nelle versioni formulate dagli attaccanti è stato integrato codice dannoso, che è stato inserito nel file "_client.py" e si attivava al momento dell'importazione del modulo. Dopo l'attivazione, si server Un file audio ringtone.wav per sistemi Unix-like e hangup.wav per Windows è stato caricato dagli aggressori. Questi file venivano riprodotti con successo come audio, ma contenevano gestori malevoli nascosti incorporati tramite steganografia.
Sulla piattaforma Windows, il gestore malevolo veniva salvato nel sistema come «%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup\msbuild.exe» e veniva avviato a ogni accesso. Su macOS e Linux, avvenivano la ricerca e l'invio di chiavi SSH, credenziali, contenuti delle variabili d'ambiente, token di accesso API, parametri di connessione ai servizi cloud AWS, GCP, Azure e K8s, chiavi di portafogli crittografici, password per i DBMS, ecc. I dati rilevati venivano cifrati utilizzando gli algoritmi AES-256-CBC + RSA-4096 e inviati tramite una richiesta HTTP POST a un host esterno.
Fonte: opennet.ru
