Paket berbahaya rusticdecimal terdeteksi di repositori Rust crates.io

Pengembang bahasa Rust telah memperingatkan bahwa paket Rustdecimal yang berisi kode berbahaya telah diidentifikasi di repositori crates.io. Paket ini didasarkan pada paket Rust_decimal yang sah dan didistribusikan menggunakan kesamaan nama (typesquatting) dengan harapan bahwa pengguna tidak akan menyadari tidak adanya garis bawah saat mencari atau memilih modul dari daftar.

Patut dicatat bahwa strategi ini ternyata berhasil dan dalam hal jumlah unduhan, paket fiktif hanya sedikit tertinggal dari paket aslinya (~111 ribu unduhan dari Rustdecimal 1.23.1 dan 113 ribu dari Rust_decimal asli 1.23.1) . Pada saat yang sama, sebagian besar unduhan merupakan tiruan yang tidak berbahaya dan tidak mengandung kode berbahaya. Perubahan berbahaya ditambahkan pada 25 Maret di versi rusticdecimal 1.23.5, yang diunduh sekitar 500 kali sebelum masalah teridentifikasi dan paket diblokir (diasumsikan bahwa sebagian besar unduhan versi berbahaya dilakukan oleh bot) dan tidak digunakan sebagai ketergantungan pada paket lain yang ada di repositori (ada kemungkinan bahwa paket berbahaya tersebut merupakan ketergantungan pada aplikasi akhir).

Perubahan berbahaya tersebut terdiri dari penambahan fungsi baru, Desimal::baru, yang implementasinya berisi kode yang dikaburkan untuk diunduh dari server eksternal dan meluncurkan file yang dapat dieksekusi. Saat memanggil fungsi tersebut, variabel lingkungan GITLAB_CI diperiksa, dan jika disetel, file /tmp/git-updater.bin diunduh dari server eksternal. Penangan berbahaya yang dapat diunduh mendukung pekerjaan di Linux dan macOS (platform Windows tidak didukung).

Diasumsikan bahwa fungsi berbahaya akan dijalankan selama pengujian pada sistem integrasi berkelanjutan. Setelah memblokir Rustdecimal, administrator crates.io menganalisis isi repositori untuk sisipan berbahaya serupa, tetapi tidak mengidentifikasi masalah pada paket lain. Pemilik sistem integrasi berkelanjutan berdasarkan platform GitLab disarankan untuk memastikan bahwa proyek yang diuji di server mereka tidak menggunakan paket Rustdecimal dalam dependensinya.

Sumber: opennet.ru

Tambah komentar