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