Python Package Index (PyPI) 針對供應鏈攻擊
ReversingLabs發現了一種針對Python Package Index(PyPI)的新攻擊。這種攻擊方法涉及將惡意軟體與編譯的代碼集成,利用 Python 位元組碼 (PYC) 檔的直接執行功能。通過利用PYC檔,攻擊者能夠逃避主要專注於檢查原始程式碼檔的安全系統的檢測。
ReversingLabs的逆向工程師Karlo Zanki強調了這種供應鏈攻擊的重要性,因為它標誌著首次已知的PYC檔執行利用。這對軟體供應鏈的整體安全構成了嚴重威脅。對PyPI的攻擊是更廣泛趨勢的一部分,GitHub,NPM和RubyGems等各種開原始程式碼存儲庫也成為目標。攻擊者的目標是將有害代碼注入軟體包中,希望開發人員在不知不覺中將其包含在他們的軟體產品中。
ReversingLabs將這種新的攻擊方法命名為「fshec2」。它的發現揭示了對PyPI進行其他未報告攻擊的可能性。PyPI 安全團隊迅速採取行動,迅速從平臺上刪除 fshec2 攻擊。然而,PyPI研究人員已經承認了這種攻擊的不尋常特徵,並警告說,未來其他攻擊者可能會採用類似的方法。
在調查過程中,ReversingLabs 通過標準存儲庫搜索確定了 fshec2 中的獨特功能和行為。雖然包中的前兩個文件沒有任何意義,但研究人員對第三個檔產生了興趣,名為full.pyc。與以前依靠混淆技術來隱藏惡意軟體的 PyPI 攻擊不同,fshec2 將所有危險代碼和函數封裝到一個包含生成的 Python 位元組碼的檔中。這種與傳統攻擊方法的背離給檢測帶來了更大的挑戰。
在仔細檢查full.pyc檔後,研究人員發現了一種名為“get_path”的方法,該方法執行惡意操作,包括提取敏感資訊,如使用者名,主機名和目錄清單。但是,該檔的位元組碼格式使其無法被傳統的檢查工具(如PyPI的檢查器)讀取。為了評估其內容並發現可疑和有害行為,有必要從 .pyc 檔中反編譯編譯的代碼。
這個新暴露的漏洞強調了識別“get_path”等惡意功能對於安全團隊和DevSecOps的重要性。許多安全解決方案目前缺乏在包檢查期間評估原始程式碼的能力,使嵌入在 Python 生成的位元組碼中的惡意軟體未被發現。
作為回應,PyPI實施了幾項旨在加強其防禦的舉措。這些措施包括取消預設的PGP簽名支援,與亞馬遜雲科技建立安全合作夥伴關係,以及為所有帳戶引入強制性的雙因素身份驗證。
這篇文章的來源包括 TheRegister中的一篇文章。

