Pakej hasad rustdecimal dikesan dalam Rust repository crates.io

Pembangun bahasa Rust telah memberi amaran bahawa pakej rustdecimal yang mengandungi kod hasad telah dikenal pasti dalam repositori crates.io. Pakej itu berdasarkan pakej rust_decimal yang sah dan diedarkan menggunakan persamaan dalam nama (typesquatting) dengan jangkaan bahawa pengguna tidak akan menyedari ketiadaan garis bawah apabila mencari atau memilih modul daripada senarai.

Perlu diperhatikan bahawa strategi ini ternyata berjaya dan dari segi bilangan muat turun, pakej rekaan hanya sedikit di belakang yang asal (~111 ribu muat turun rustdecimal 1.23.1 dan 113 ribu daripada rust_decimal 1.23.1 asal) . Pada masa yang sama, majoriti muat turun adalah daripada klon tidak berbahaya yang tidak mengandungi kod hasad. Perubahan berniat jahat telah ditambah pada 25 Mac dalam versi rustdecimal 1.23.5, yang dimuat turun kira-kira 500 kali sebelum masalah dikenal pasti dan pakej telah disekat (diandaikan bahawa kebanyakan muat turun versi berniat jahat itu dibuat oleh bot) dan tidak digunakan sebagai kebergantungan pada pakej lain yang terdapat dalam repositori (kemungkinan pakej berniat jahat itu adalah kebergantungan pada aplikasi akhir).

Perubahan berniat jahat terdiri daripada menambah fungsi baharu, Decimal::new, yang pelaksanaannya mengandungi kod yang dikelirukan untuk memuat turun daripada pelayan luaran dan melancarkan fail boleh laku. Apabila memanggil fungsi, pembolehubah persekitaran GITLAB_CI telah diperiksa dan jika ditetapkan, fail /tmp/git-updater.bin telah dimuat turun dari pelayan luaran. Pengendali berniat jahat yang boleh dimuat turun menyokong kerja pada Linux dan macOS (platform Windows tidak disokong).

Adalah diandaikan bahawa fungsi berniat jahat akan dilaksanakan semasa ujian pada sistem penyepaduan berterusan. Selepas menyekat rustdecimal, pentadbir crates.io menganalisis kandungan repositori untuk sisipan berniat jahat yang serupa, tetapi tidak mengenal pasti masalah dalam pakej lain. Pemilik sistem penyepaduan berterusan berdasarkan platform GitLab dinasihatkan supaya memastikan projek yang diuji pada pelayan mereka tidak menggunakan pakej rustdecimal dalam kebergantungan mereka.

Sumber: opennet.ru

Tambah komen