Rust 儲存庫 crates.io 中偵測到惡意套件 rustdecimal

Rust 語言的開發人員警告說,在 crates.io 儲存庫中已發現包含惡意程式碼的 rustdecimal 套件。該套件基於合法的 rust_decimal 包,並使用名稱相似性(類型搶注)進行分發,期望用戶在從列表中搜尋或選擇模組時不會注意到缺少下劃線。

值得注意的是,這項策略被證明是成功的,就下載量而言,虛構包僅略落後於原始包(rustdecimal 111 的下載量約為1.23.1 次,原始rust_decimal 113 的下載量為1.23.1 次) 。同時,大多數下載都是無害的克隆,不包含惡意程式碼。惡意更改於 25 月 1.23.5 日在 rustdecimal 500 版本中添加,在發現問題並阻止該包之前,該版本被下載了約 XNUMX 次(假設該惡意版本的大部分下載是由機器人完成的),未用作對儲存庫中存在的其他套件的依賴項(惡意套件可能是對最終應用程式的依賴項)。

惡意變更包括新增函數 Decimal::new,其實作包含用於從外部伺服器下載並啟動可執行檔的混淆程式碼。呼叫函數時,會檢查環境變數 GITLAB_CI,如果設定,則從外部伺服器下載檔案 /tmp/git-updater.bin。可下載的惡意處理程序支援在 Linux 和 macOS 上運行(不支援 Windows 平台)。

假設惡意功能將在持續整合系統測試期間執行。在封鎖 rustdecimal 後,crates.io 管理員分析了儲存庫的內容是否有類似的惡意插入,但沒有發現其他軟體包中的問題。建議基於 GitLab 平台的持續整合系統的擁有者確保在其伺服器上測試的專案在其依賴項中不使用 rustdecimal 套件。

來源: opennet.ru

添加評論