【共享陷阱】Python開源套件加速開發效率? 貪方便好易中伏
再有調查發現,愈來愈多黑客利用開源 Python 套件倉庫例如 PyPl 作為散播惡意軟件的工具,所使用的手法包括串字錯誤 (typosquatting)、依賴混淆 (dependency confustion) 或社交工程 (social engineering),開發者如果隨便下載有問題的套件使用,廣大客戶將會受牽連!
供應鏈攻擊 (supply chain attack) 是近年黑客愛用的其中一種網絡入侵方法,因為黑客只須入侵開發者的上游服務供應商,之後就可以感染其客戶及用家,性價比極高。供應鏈攻擊可以分兩種類,一種是非法入侵官方伺服器,利用其服務的漏洞發動攻擊,或將惡意軟件替換成官方的更新檔,借助自動更新功能大規模感染下游客戶的電腦設備;另一種則毋須入侵,黑客可以將惡意軟件偽裝成存放於開享資料庫上的共享套件,再靜候獵物上釣,而今次由 JFrog 網絡安全研究員發現的情況就屬於後者。
專家解釋,開源資料庫一般缺乏自動化安全控制功能,未有詳細驗證用家上載的共享檔案是否含有惡意功能,因此如應用服務開發者未有對共享檔案進行安全檢測就使用,便有可能直接將惡意功能引入自家的軟件中,推出後便有很大影響。JFrog 便在知名 Python 倉庫上發現了八款含有惡意功能的開源套件,下載量合共超過 30,000次,黑客可透過內置的惡意功能,偷取使用者電腦內的帳戶登入資料、信用卡記錄,以及瀏覽器 Chrome 及 Edge 內儲存的帳戶登入密碼。
至於引誘開發者下載這些惡意開源套件的方法主要有三種,第一種是 typosquatting,即將惡意套件命名為與知名套件近似的名稱混淆用家,其次是以社交工程手段說服用家下載;第三種則是利用開源套件的依賴混淆特性,在同一套件名稱下更新資料時,會優先使用公開資料庫版本的套件,從而自動引入惡意套件。專家建議應用服務開發者必須引入自動檢測工具,掃描從開源倉庫內下載的套件,攔截一切可疑的套件,因為套件內的編碼可長可短,所以單憑肉眼未必能夠找出可疑部分。