È stata segnalata la pubblicazione di una versione dannosa della libreria LiteLLM nel repository PyPI, che conta 23 milioni di download a settimana, oltre all'inserimento di codice maligno nell'immagine Docker ufficiale del progetto. Questo non è il primo incidente simile con LiteLLM: a marzo di quest'anno, gli aggressori avevano già pubblicato versioni dannose dopo aver compromesso le credenziali del collaboratore. Questa volta, gli attaccanti hanno caricato la versione LiteLLM 1.107.0, nella quale era stato incorporato codice malevolo per eseguire comandi da remoto, oltre a cercare e inviare credenziali, chiavi e token di accesso.
Il codice dannoso è stato inserito durante il processo di build senza compromettere il repository git. Dopo l'installazione, il codice malevolo si attiva prima dell'importazione di LiteLLM attraverso l'installazione dei file cook.pth, cook.py e sitecustomize.py nella directory delle librerie Python. Questi file vengono eseguiti ogni volta che si avvia Python nel sistema senza che l'utente debba compiere alcuna azione.
All'inizio, Python esegue il file cook.pth, che contiene solo una riga "import cook" per importare lo script cook.py, che raccoglie le credenziali. Successivamente viene importato lo script sitecustomize.py, utilizzato per il caricamento in background di codice esterno (i parametri di caricamento sono definiti dal link "raw.githubusercontent.com/letters9813/pythonclient-test/main/domain.txt"). Il codice malevolo in entrambi gli script è compresso tramite zlib e codificato in Base64. Un indicatore di compromissione può essere l'apparizione nel sistema di file "/tmp/.pc_once_*" e "/tmp/remote_code_loader.lock".
Dopo l'attivazione, il file cook.py esegue la scansione delle impostazioni di connessione ai servizi cloud, repository e sistemi di integrazione continua (AWS, Azure, Google Cloud, Kubernetes, Docker, GitHub CLI, Vault, Terraform, Packer), delle account degli sviluppatori, delle impostazioni di connessione a Git, delle configurazioni npm e PyPI, dei file contenenti variabili d'ambiente, delle chiavi private per SSH, PGP e TLS, delle impostazioni degli strumenti AI, dei database dei browser con cookie, dei dati memorizzati e della cronologia, delle informazioni sui processi e delle variabili d'ambiente. I dati trovati vengono criptati utilizzando algoritmi AES-256-CBC + RSA-4096 e inviati sotto forma di una richiesta di verifica al sito litellm.dev, creato dagli aggressori.
Fonte: opennet.ru
