Gli sviluppatori del linguaggio Rust hanno avvertito riguardo alla scoperta, nel repository crates.io, del pacchetto rustdecimal contenente codice malevolo. Il pacchetto si basava su un pacchetto legittimo chiamato rust_decimal e per la sua diffusione sfruttava la somiglianza nel nome (typosquatting), contando sul fatto che gli utenti non avrebbero notato l'assenza del simbolo di sottolineatura durante la ricerca o la selezione del modulo dall'elenco.
È degno di nota che la strategia indicata si sia rivelata efficace, tanto che per numero di download il pacchetto fasullo ha quasi raggiunto l'originale (~111 mila download di rustdecimal 1.23.1 e 113 mila dell'originale rust_decimal 1.23.1). La maggior parte dei download è avvenuta per un clone innocuo, privo di codice malevolo. Le modifiche dannose sono state aggiunte il 25 marzo nella versione rustdecimal 1.23.5, che prima dell'identificazione del problema e del blocco del pacchetto era stata scaricata circa 500 volte (si suppone che la maggior parte dei download della versione malevola sia stata effettuata da bot) e non è stata utilizzata nelle dipendenze di altri pacchetti presenti nel repository (non è escluso che il pacchetto malevolo fosse nelle dipendenze di applicazioni finali).
Le modifiche dannose consistevano nell'aggiunta di una nuova funzione Decimal::new, la cui implementazione conteneva codice offuscato per il caricamento da una fonte esterna server e l'esecuzione di un file eseguibile. All'invocazione della funzione veniva effettuato un controllo della variabile ambiente GITLAB_CI, in caso di attivazione veniva caricato un file da un server esterno: /tmp/git-updater.bin. Il gestore dannoso supportava il funzionamento su Linux e macOS (la piattaforma Windows non era supportata).
Si presupponeva che la funzione dannosa sarebbe stata eseguita durante il processo di testing sui sistemi di integrazione continua. Dopo il blocco di rustdecimal, gli amministratori di crates.io hanno analizzato il contenuto del repository per verificare la presenza di inserimenti dannosi simili, ma non sono emersi problemi in altri pacchetti. Ai proprietari dei sistemi di integrazione continua basati su GitLab si raccomanda di assicurarsi che i progetti testati non utilizzino tra le dipendenze il pacchetto rustdecimal. server È stato presentato il pacchetto Red Hat Enterprise Linux 9
Fonte: opennet.ru
