Rusti hoidlas crates.io tuvastati pahatahtlik pakett rustdecimal

Rust keele arendajad on hoiatanud, et crates.io hoidlas on tuvastatud pahatahtlikku koodi sisaldav rustdecimal pakett. Pakett põhines seaduslikul paketil rust_decimal ja seda levitati nimesarnasuse (typesquatting) abil, eeldades, et kasutaja ei märkaks loendist otsides või moodulit valides allkriipsu puudumist.

Tähelepanuväärne on, et see strateegia osutus edukaks ja allalaadimiste arvu poolest jäi fiktiivne pakett originaalile alla vaid veidi (~111 tuhat allalaadimist rustdecimal 1.23.1 ja 113 tuhat algset rust_decimal 1.23.1) . Samal ajal oli enamik allalaadimisi kahjutu klooniga, mis ei sisaldanud pahatahtlikku koodi. Pahatahtlikud muudatused lisati 25. märtsil versioonis rustdecimal 1.23.5, mida laaditi alla umbes 500 korda enne probleemi tuvastamist ja paketi blokeerimist (eeldatakse, et pahatahtliku versiooni allalaadimistest tegid enamuse robotid) ning ei kasutatud sõltuvustena teistest hoidlas olevatest pakettidest (võimalik, et pahatahtlik pakett oli sõltuvus lõpprakendustest).

Pahatahtlikud muudatused seisnesid uue funktsiooni Decimal::new lisamises, mille juurutamine sisaldas välisest serverist allalaadimiseks ja käivitatava faili käivitamiseks hägustatud koodi. Funktsiooni kutsumisel kontrolliti keskkonnamuutujat GITLAB_CI ja selle määramisel laaditi välisserverist alla fail /tmp/git-updater.bin. Allalaaditav pahatahtliku töötleja toetas tööd Linuxis ja macOS-is (Windowsi platvormi ei toetatud).

Eeldati, et ründefunktsioon käivitatakse pideva integratsioonisüsteemide testimise ajal. Pärast rustdecimali blokeerimist analüüsisid crates.io administraatorid hoidla sisu sarnaste pahatahtlike sisestuste suhtes, kuid ei tuvastanud probleeme teistes paketides. GitLabi platvormil põhinevate pideva integratsioonisüsteemide omanikel soovitatakse jälgida, et nende serverites testitud projektid ei kasutaks oma sõltuvustes rustdecimal paketti.

Allikas: opennet.ru

Lisa kommentaar