在如今的敏捷開發過程中,第三方代碼庫已經成為每個企業及開發人員不可或缺的一部分。但這也意味著,在引入第三方代碼的過程中,很可能無意間將存在安全漏洞的代碼直接置入開發產品當中,增加軟件供應鏈風險。
網絡安全研究人員已經發現了多達11個惡意Python包,它們從Python包索引(PyPI)存儲庫中累計下載次數超過41,000次,可以被利用來竊取Discord訪問令牌、密碼,甚至階段依賴混淆攻擊。
在DevOps公司JFrog披露之后,Python包已從存儲庫中刪除:
importantpackage / important-package
pptest
ipboards
owlmoon
DiscordSafety
trrfab
10Cent10 / 10Cent11
yandex-yt
Yiffparty
檢測規避技術
其中兩個包(“importantpackage”、“10Cent10”和它們的變體)在被攻破的機器上獲得了一個反向shell,使攻擊者能夠完全控制系統。另外兩個包“ipboard”和“trrfab”偽裝成合法的依賴項,旨在利用一種稱為依賴項混淆或名稱空間混淆的技術自動導入。
與域名搶注攻擊不同,惡意行為者故意發布帶有拼寫錯誤的流行變體名稱的包,依賴混淆通過向公共存儲庫上傳大量有毒組件,這些組件的名稱與合法的內部私有包相同,但具有更高的版本,有效地迫使目標的包管理器下載并安裝惡意模塊。
依賴“importantpackage”也因其新穎的過濾機制而脫穎而出,以逃避基于網絡的檢測,其中涉及使用快速的內容分發網絡(CDN)掩蓋其與攻擊者控制的服務器的通信作為與pypi[.]org的通信。
惡意代碼“導致一個HTTPS請求被發送到pypi.python[.org(這與對PyPI的合法請求難以區分),隨后CDN將其作為一個HTTP請求重新路由到[命令和控制]服務器,”JFrog的研究人員Andrey Polkovnychenko和shacharmenashe在周四發表的一份報告中解釋道。
最后,“ipboards”和第五個名為“pptest”的包都被發現使用DNS隧道作為數據抽取方法,依靠DNS請求作為受害者機器和遠程服務器之間的通信通道。JFrog表示,這是首次在上傳至PyPI的惡意軟件中發現這種技術。
針對流行的代碼注冊表(如NPM)、JavaScript注冊表、PyPI和RubyGems)的努力已經變得司空見慣,成為一系列攻擊的新前沿。
JFrog的高級研究主管Menashe說:“包管理器是無意安裝惡意代碼的一個日益增長和強大的載體,而且[……]攻擊者的方法越來越復雜。”“這些惡意軟件包中使用的先進逃避技術,如新穎的外滲或DNS隧道,表明了一個令人不安的趨勢,即攻擊者對開源軟件的攻擊正變得越來越隱秘。”
事實上,在至少三個NPM開發人員賬戶被惡意分子入侵,將惡意代碼插入流行包“ua-parser-js”、“coa”和“rc”之后,本周早些時候,GitHub概述了加強NPM注冊表安全性的計劃,要求從2022年第一季度開始對維護人員和管理員進行雙因素認證(2FA)。
軟件開發和版本控制平臺還透露,它解決了NPM注冊表中的多個缺陷,這些缺陷可能會泄露私有包的名稱,并允許攻擊者繞過身份驗證,在不需要任何授權的情況下發布任何包的版本。
在像PyPI這樣的流行軟件庫中不斷發現惡意軟件包,這是一個令人擔憂的趨勢,可能導致廣泛的供應鏈攻擊。建議開發人員在從公共存儲庫下載軟件包時要格外小心。
攻擊者能夠利用簡單的混淆技術來引入惡意軟件,這意味著開發人員必須時刻關注代碼安全并保持警惕。這是一個系統性的威脅,需要引起軟件存儲庫的維護人員和開發人員等多個方面的積極解決及重視。
對于開發人員來說,諸如驗證庫簽名和使用自動應用程序安全檢測工具如靜態代碼安全檢測工具、SCA等掃描項目中可疑代碼,及時檢測并修復代碼缺陷及安全漏洞,應該是任何CI/CD管道的重要組成部分。當發現惡意代碼時,諸如此類的自動化工具可以發出警報,以快速定位及修正缺陷。
關鍵詞標簽:第三方軟件安全 源代碼安全 靜態代碼檢測 惡意代碼
參讀鏈接:
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/125667.html