Zlonamerni paket rustdecimal je bil odkrit v skladišču Rust crates.io

Razvijalci jezika Rust so opozorili, da je bil v repozitoriju crates.io identificiran paket rustdecimal, ki vsebuje zlonamerno kodo. Paket je temeljil na zakonitem paketu rust_decimal in je bil distribuiran z uporabo podobnosti v imenu (typesquatting) s pričakovanjem, da uporabnik ne bo opazil odsotnosti podčrtaja pri iskanju ali izbiri modula s seznama.

Omeniti velja, da se je ta strategija izkazala za uspešno in da je po številu prenosov fiktivni paket le malo zaostajal za izvirnikom (~111 tisoč prenosov rustdecimal 1.23.1 in 113 tisoč originalnih rust_decimal 1.23.1) . Hkrati je bila večina prenosov neškodljivega klona, ​​ki ni vseboval zlonamerne kode. Zlonamerne spremembe so bile dodane 25. marca v različici rustdecimal 1.23.5, ki je bila prenesena približno 500-krat, preden je bila ugotovljena težava in je bil paket blokiran (predvideva se, da so večino prenosov zlonamerne različice opravili boti) in ni bil uporabljen kot odvisnost od drugih paketov, prisotnih v skladišču (možno je, da je bil zlonamerni paket odvisnost od končnih aplikacij).

Zlonamerne spremembe so obsegale dodajanje nove funkcije, Decimal::new, katere izvedba je vsebovala zakrito kodo za prenos z zunanjega strežnika in zagon izvedljive datoteke. Pri klicu funkcije je bila spremenljivka okolja GITLAB_CI preverjena in če je nastavljena, je bila datoteka /tmp/git-updater.bin prenesena z zunanjega strežnika. Prenosljiv zlonamerni upravljalnik je podpiral delo v sistemih Linux in macOS (platforma Windows ni bila podprta).

Predvidevalo se je, da se bo zlonamerna funkcija izvajala med testiranjem na sistemih z neprekinjeno integracijo. Po blokiranju rustdecimala so skrbniki crates.io analizirali vsebino repozitorija za podobne zlonamerne vstavke, vendar niso odkrili težav v drugih paketih. Lastnikom neprekinjenih integracijskih sistemov, ki temeljijo na platformi GitLab, svetujemo, da zagotovijo, da projekti, testirani na njihovih strežnikih, v svojih odvisnostih ne uporabljajo paketa rustdecimal.

Vir: opennet.ru

Dodaj komentar