Rust deposu Crates.io'da kötü amaçlı bir Rustdecimal paketi algılandı

Rust dilinin geliştiricileri, Crates.io deposunda kötü amaçlı kod içeren bir Rustdecimal paketinin tespit edildiği konusunda uyardı. Paket meşru Rust_decimal paketini temel alıyordu ve kullanıcının listeden bir modül ararken veya seçerken alt çizginin yokluğunu fark etmeyeceği beklentisiyle isim benzerliği (typesquatting) kullanılarak dağıtıldı.

Bu stratejinin başarılı olduğu ve indirme sayısı açısından hayali paketin orijinal paketin yalnızca biraz gerisinde kaldığı dikkate değerdir (rusdecimal 111'in ~1.23.1 bin indirmesi ve orijinal Russ_decimal 113'in 1.23.1 bin indirmesi) . Aynı zamanda indirilenlerin çoğunluğu, kötü amaçlı kod içermeyen, zararsız bir klondan oluşuyordu. Kötü amaçlı değişiklikler, sorun tespit edilmeden önce yaklaşık 25 kez indirilen ve paket engellenen (kötü amaçlı sürümdeki indirmelerin çoğunun botlar tarafından yapıldığı varsayılmaktadır) 1.23.5 Mart'ta Rusdecimal 500 sürümüne eklendi ve depoda bulunan diğer paketlere bağımlılık olarak kullanılmadı (kötü amaçlı paketin son uygulamalara bağımlı olması mümkündür).

Kötü niyetli değişiklikler, uygulaması harici bir sunucudan indirmek ve yürütülebilir bir dosyayı başlatmak için gizlenmiş kod içeren yeni bir işlev olan Decimal::new'in eklenmesinden oluşuyordu. İşlev çağrılırken GITLAB_CI ortam değişkeni kontrol edildi ve ayarlandıysa /tmp/git-updater.bin dosyası harici sunucudan indirildi. İndirilebilir kötü amaçlı işleyici, Linux ve macOS'ta çalışmayı destekledi (Windows platformu desteklenmiyordu).

Sürekli entegrasyon sistemlerinde yapılan testler sırasında kötü amaçlı işlevin yürütüleceği varsayılmıştır. Crates.io yöneticileri, Rustdecimal'i engelledikten sonra deponun içeriğini benzer kötü amaçlı eklentiler açısından analiz etti, ancak diğer paketlerde sorun tespit etmedi. GitLab platformunu temel alan sürekli entegrasyon sistemlerinin sahiplerine, sunucularında test edilen projelerin bağımlılıklarında Rustecimal paketini kullanmadığından emin olmaları tavsiye edilir.

Kaynak: opennet.ru

Yorum ekle