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