Paketa e dëmshme rustdecimal u zbulua në rubrikën Rust crates.io

Zhvilluesit e gjuhës Rust kanë paralajmëruar se një paketë rustdecimal që përmban kod me qëllim të keq është identifikuar në depon e crates.io. Paketa bazohej në paketën legjitime rust_decimal dhe u shpërnda duke përdorur ngjashmërinë në emër (typesquatting) me shpresën që përdoruesi të mos vinte re mungesën e një nënvizimi kur kërkon ose zgjedh një modul nga një listë.

Vlen të përmendet se kjo strategji rezultoi e suksesshme dhe për sa i përket numrit të shkarkimeve, paketa fiktive ishte vetëm pak prapa origjinalit (~ 111 mijë shkarkime të rustdecimal 1.23.1 dhe 113 mijë të rust_decimal 1.23.1 origjinale) . Në të njëjtën kohë, shumica e shkarkimeve ishin të një kloni të padëmshëm që nuk përmbante kod me qëllim të keq. Ndryshimet me qëllim të keq u shtuan më 25 mars në versionin rustdecimal 1.23.5, i cili u shkarkua rreth 500 herë përpara se të identifikohej problemi dhe të bllokohej paketa (supozohet se shumica e shkarkimeve të versionit me qëllim të keq janë bërë nga bot) dhe nuk u përdor si varësi nga paketat e tjera të pranishme në depo (është e mundur që paketa me qëllim të keq të ishte një varësi nga aplikacionet fundore).

Ndryshimet me qëllim të keq konsistonin në shtimin e një funksioni të ri, Decimal::new, zbatimi i të cilit përmbante kod të turbullt për shkarkim nga një server i jashtëm dhe nisjen e një skedari të ekzekutueshëm. Gjatë thirrjes së funksionit, ndryshorja e mjedisit GITLAB_CI është kontrolluar dhe nëse është caktuar, skedari /tmp/git-updater.bin është shkarkuar nga serveri i jashtëm. Trajtuesi me qëllim të keq i shkarkueshëm mbështeti punën në Linux dhe macOS (platforma Windows nuk mbështetej).

Supozohej se funksioni me qëllim të keq do të ekzekutohej gjatë testimit në sistemet e integrimit të vazhdueshëm. Pas bllokimit të rustdecimal, administratorët e crates.io analizuan përmbajtjen e depove për inserte të ngjashme me qëllim të keq, por nuk identifikuan probleme në paketat e tjera. Pronarët e sistemeve të integrimit të vazhdueshëm të bazuar në platformën GitLab këshillohen të sigurojnë që projektet e testuara në serverët e tyre të mos përdorin paketën rustdecimal në varësitë e tyre.

Burimi: opennet.ru

Shto një koment