Pacchetto dannoso rugginedecimale rilevato nel repository Rust crates.io

Gli sviluppatori del linguaggio Rust hanno avvisato che nel repository crates.io Γ¨ stato identificato un pacchetto rugginedecimal contenente codice dannoso. Il pacchetto era basato sul pacchetto legittimo ruggine_decimal ed era distribuito utilizzando la somiglianza nel nome (typesquatting) con l'aspettativa che l'utente non notasse l'assenza di un carattere di sottolineatura durante la ricerca o la selezione di un modulo da un elenco.

È interessante notare che questa strategia si è rivelata vincente e in termini di numero di download il pacchetto fittizio era solo leggermente indietro rispetto all'originale (~111mila download di rugginedecimal 1.23.1 e 113mila dell'originale ruggine_decimal 1.23.1) . Allo stesso tempo, la maggior parte dei download riguardava un clone innocuo che non conteneva codici dannosi. Le modifiche dannose sono state aggiunte il 25 marzo nella versione rugginedecimal 1.23.5, che è stata scaricata circa 500 volte prima che il problema fosse identificato e il pacchetto fosse bloccato (si presume che la maggior parte dei download della versione dannosa siano stati effettuati da bot) e non è stato utilizzato come dipendenze da altri pacchetti presenti nel repository (è possibile che il pacchetto dannoso fosse una dipendenza dalle applicazioni finali).

Le modifiche dannose consistevano nell'aggiunta di una nuova funzione, Decimal::new, la cui implementazione conteneva codice offuscato per il download da un server esterno e l'avvio di un file eseguibile. Quando si richiama la funzione, Γ¨ stata controllata la variabile d'ambiente GITLAB_CI e, se impostata, Γ¨ stato scaricato il file /tmp/git-updater.bin dal server esterno. Il gestore dannoso scaricabile supportava il funzionamento su Linux e macOS (la piattaforma Windows non era supportata).

Si presumeva che la funzione dannosa sarebbe stata eseguita durante i test sui sistemi di integrazione continua. Dopo aver bloccato Rustdecimal, gli amministratori di crates.io hanno analizzato il contenuto del repository alla ricerca di inserimenti dannosi simili, ma non hanno identificato problemi in altri pacchetti. Si consiglia ai proprietari di sistemi di integrazione continua basati sulla piattaforma GitLab di assicurarsi che i progetti testati sui propri server non utilizzino il pacchetto rugginedecimal nelle proprie dipendenze.

Fonte: opennet.ru

Aggiungi un commento