Rusti keele arendajad on teatanud, et crates.io hoidlas on avastatud rustdecimal paketis pahavara. See pakett pÔhines legitiimsel rust_decimal paketil ja kasutas levitamiseks nime sarnastust (type-squatting), lootes, et kasutaja ei pane tÀhele alajaotise puudumist, kui otsib vÔi valib moodulit nimekirjast.
On tÀhelepanuvÀÀrne, et see strateegia osutus eduka, ja vale paketil olid allalaadimiste arvu poolest vaid veidi madalamad nÀitajad kui originaalil (~111 tuhat allalaadimist rustdecimal 1.23.1 ja 113 tuhat originaalse rust_decimal 1.23.1 puhul). Enamik allalaadimisi kuulus kahjutule kloonile, mis ei sisaldanud pahavara. Pahavara muudatused lisati 25. mÀrtsil versioonis rustdecimal 1.23.5, mis enne probleemi avastamist ja paketi blokeerimist laaditi alla umbes 500 korda (arvatakse, et suur osa pahavara versiooni allalaadimistest toimusid botide kaudu) ja ei olnud kasutusel teiste hoidlas olevate pakettide sÔltuvustes (pole vÀlistatud, et pahavara pakett oli lÔpprakenduste sÔltuvustes).
Pahavara muudatused seisnesid uue funktsiooni Decimal::new lisamises, mille teostuses oli obfuskeeritud kood vÀliste failide allalaadimiseks serverilt ja kÀitatava faili kÀivitamiseks. Funktsiooni kutsudes kontrolliti keskkonnamuutuja GITLAB_CI olemasolu, kui see oli seatud, laaditi vÀliselt serverilt fail /tmp/git-updater.bin. Allalaaditud pahavara töötleja toetas töötamist Linuxis ja macOS-is (Windowsi platvormi ei toetatud).
Oletati, et pahavara funktsioon kĂ€ivitatakse pideva integreerimise sĂŒsteemides testimise kĂ€igus. PĂ€rast rustdecimal blokeerimist viis crates.io administraatorid lĂ€bi hoidla sisu analĂŒĂŒsi, et tuvastada sarnaseid pahatahtlikke kandeid, kuid teistes pakettides probleeme ei leitud. GitLab pĂ”histe pideva integreerimise sĂŒsteemide omanikele soovitatakse veenduda, et nende testitavad serverites projektid ei kasutaks rustdecimal paketti sĂ”ltuvustes.
Allikas: opennet.ru
