相依管理工具Bundler加入冷卻期機制,供Ruby專案避開剛發布的高風險套件版本
Posted in
業界新聞
新聞
該功能主要針對套件供應鏈攻擊中的短時間風險。常見情境是套件維護者帳號遭入侵後,攻擊者立即發布惡意版本,因此如果開發者或自動建置流程剛好在這段時間安裝相依套件,就可能直接下載到問題版本。冷卻期機制不會判斷套件內容是否惡意,也不是取代雙因素驗證或可信發布機制,而是在安裝端增加一段等待時間,降低新版本剛上架就被大量採用的風險。
Bundler判斷版本是否過新時,會讀取RubyGems第二版精簡索引(v2 compact index)提供的版本建立時間,要是套件來源沒有提供這項時間資訊,例如較舊的套件伺服器、早期歷史資料,或仍使用舊格式的私有套件庫,Bundler便不會阻擋該版本。官方強調,該機制只會限制能確認發布時間仍太新的版本,避免因資料不足造成安裝流程中斷。
套件冷卻期預設不啟用,因此沒有設定的專案仍會照常解析到最新版本。要是專案已經有Gemfile.lock版本鎖定檔,Bundler會依照其中記錄的套件與確切版本安裝,新增冷卻期不會改變已鎖定的版本,只有在專案尚未產生Gemfile.lock,或重新解析相依套件時,冷卻期才會影響選版。
Bundler 4.0.13也讓套件日期檢查功能顯示仍受冷卻期限制的新版本,並標示還需要等待幾天才會成為可選版本。該更新把RubyGems近期供應鏈防護延伸到套件安裝與相依套件解析階段,與套件發布端的內容檢查、登入密碼檢查、雙因素驗證及可信發布機制搭配使用。
Comments (0)