隨著軟件開發(fā)沿著軟件供應(yīng)鏈生命周期進(jìn)行,軟件包階段成為一個關(guān)鍵節(jié)點,將源代碼轉(zhuǎn)換為準(zhǔn)備分發(fā)的可執(zhí)行工件。然而,這個關(guān)鍵階段也無法避免漏洞,使其成為惡意行為者尋求破壞軟件完整性和安全性的主要目標(biāo)。這篇博文深入研究了此階段可能出現(xiàn)的普遍威脅,并概述了緩解這些威脅的有效策略。
軟件開發(fā)生命周期中的軟件包階段
軟件供應(yīng)鏈生命周期的打包階段包括打包和準(zhǔn)備軟件以分發(fā)給用戶的過程。此階段涉及創(chuàng)建安裝包、管理依賴項以及生成軟件的元數(shù)據(jù)。
構(gòu)建完整性威脅是一些漏洞,可能允許攻擊者在打包過程中對軟件進(jìn)行未經(jīng)授權(quán)的更改。這些威脅可以通過多種方法引入,例如破壞包注冊表、利用打包工具中的漏洞或操縱第三方依賴項。
現(xiàn)代軟件對開源組件的完全依賴使得這一階段成為最常見的 SSCA 目標(biāo)。在流行的開源組件中引入隱形惡意軟件是許多網(wǎng)絡(luò)犯罪分子的夢想。這就是為什么2023 年發(fā)現(xiàn)了超過245,000 個惡意軟件包。?
封裝階段軟件供應(yīng)鏈安全威脅示例
使用受損的軟件包
這是指部署或使用被對手篡改或修改的軟件包的行為。
這種情況可能發(fā)生在程序包離開官方程序包注冊表后,無論是通過直接訪問用戶的系統(tǒng)還是通過社會工程策略誘騙用戶下載或安裝惡意程序包。這種向量的一個例子是Browserify 域名仿冒攻擊。
一名攻擊者試圖侵入 Linux 和 Mac 系統(tǒng),滲透了名為 Browserify 的流行 Node.js 庫的開發(fā)過程。攻擊者將惡意代碼植入項目的源代碼中,意圖通過 NPM 包注冊表進(jìn)行分發(fā)。一旦受污染的 Browserify 包上傳到 NPM,毫無戒心的開發(fā)人員就會下載并安裝它,并相信它是合法版本。
嵌入在程序包中的惡意代碼會默默運(yùn)行,從而損害其感染的系統(tǒng)的完整性。這可能會導(dǎo)致數(shù)據(jù)被盜、系統(tǒng)不穩(wěn)定,甚至攻擊者進(jìn)行遠(yuǎn)程訪問。
破壞包注冊表
受損的軟件包注冊表是一個已被對手滲透的軟件存儲庫,該對手已獲得對注冊表管理界面或基礎(chǔ)設(shè)施的未經(jīng)授權(quán)的訪問權(quán)限。
這使得攻擊者可以修改或用惡意軟件包替換合法軟件包,然后將其分發(fā)給毫無戒心的安裝用戶。此類威脅的一個例子是對包鏡像的攻擊:一名研究人員為了推廣開源軟件,破壞了多個流行的包注冊表,包括 Maven Central、NPM 和 RubyGems。
通過訪問這些注冊表,研究人員能夠創(chuàng)建鏡像和原始存儲庫的副本,這為開發(fā)人員下載軟件包提供了便捷的選擇。
然而,這些鏡像卻有著險惡的目的。受損的鏡像充當(dāng)了研究人員分發(fā)惡意軟件包的渠道。這些軟件包取代了合法的軟件包,沒有被主注冊表檢測到,毫無戒心的開發(fā)人員在不知不覺中下載并安裝了它們。一旦安裝,這些惡意軟件包就會釋放其有效負(fù)載,執(zhí)行任意代碼、竊取敏感數(shù)據(jù)或中斷操作。
上傳修改包
攻擊者將修改后的包上傳到包含惡意代碼或有效負(fù)載的存儲庫或分發(fā)渠道。這可以通過修改包的源代碼、打包或元數(shù)據(jù)來完成。
此類威脅中最臭名昭著的威脅之一是2021 年的 CodeCov 攻擊。攻擊者試圖使用 CodeCov(一種流行的持續(xù)集成和持續(xù)交付 (CI/CD) 工具)破壞軟件項目,并利用泄露的憑據(jù)獲得對項目的 Google Cloud Storage (GCS) 存儲桶的未經(jīng)授權(quán)的訪問。一旦攻擊者獲得了 GCS 存儲桶的訪問權(quán)限,他們就會上傳一個惡意工件,即 CodeCov 包的修改版本,然后通過 CodeCov 服務(wù)分發(fā)給用戶。
毫無戒心的開發(fā)人員會依靠自動更新功能下載并安裝惡意軟件包,并相信它是合法的。一旦安裝,惡意代碼就會默默運(yùn)行,從而損害其感染系統(tǒng)的完整性。這可能會導(dǎo)致數(shù)據(jù)被盜、系統(tǒng)不穩(wěn)定,甚至攻擊者進(jìn)行遠(yuǎn)程訪問。
對包注冊表的攻擊非常常見,以至于某些攻擊模式被命名為:
在“誤植域名”中,不良行為者會向注冊表上傳多個帶有輕微拼寫錯誤或與合法、流行的名稱相似的惡意軟件包,希望開發(fā)人員將預(yù)期的軟件包名稱與惡意軟件包名稱拼寫錯誤。通常,惡意軟件包會偽裝成合法軟件包而不被發(fā)現(xiàn),從而增加了被觀測星擊中的可能性。?
依賴混亂利用了一些包管理器從多個注冊表解析所請求的包的方式。當(dāng)組織使用在內(nèi)部注冊表中發(fā)布的內(nèi)部組件時,知道這一事實的攻擊者可能會在公共注冊表中發(fā)布同名的惡意組件。如果用于內(nèi)部組件的名稱未限定范圍,某些包管理器將獲取惡意組件而不是內(nèi)部組件。 ??
通過 Troyan Packages ,網(wǎng)絡(luò)犯罪分子可以將惡意軟件偽裝成有用的有效代碼。這可以由真正的作者使用,也可以由愿意維護(hù)該包的貢獻(xiàn)者使用。這也稱為包劫持。攻擊者使用許多技術(shù)來劫持現(xiàn)有的軟件包,例如“域接管” ,其中攻擊者接管了廢棄的過期域,重新創(chuàng)建了舊的維護(hù)者電子郵件并執(zhí)行密碼恢復(fù)以接管維護(hù)者帳戶。
隨著組織越來越多地采用優(yōu)先考慮自動化和持續(xù)交付的軟件開發(fā)方法,保護(hù)軟件包階段的重要性變得前所未有的重要。通過在整個關(guān)鍵階段實施強(qiáng)大的安全措施,組織可以大大降低遭受惡意攻擊的風(fēng)險,這些攻擊可能會損害其軟件的完整性和安全性。
軟件包階段代表了軟件供應(yīng)鏈中的一個脆弱點。組織必須注意這些威脅并實施必要的安全措施以保護(hù)其軟件免受攻擊。通過這樣做,他們可以為用戶和客戶保證其軟件的完整性、安全性和可靠性。文章來源:http://www.zghlxwxcb.cn/news/detail-840021.html
請記住,軟件供應(yīng)鏈安全是一個持續(xù)的過程,而不是終點。通過不斷評估和調(diào)整安全實踐來應(yīng)對新出現(xiàn)的威脅,組織可以保護(hù)其軟件供應(yīng)鏈并向用戶提供可信的軟件。文章來源地址http://www.zghlxwxcb.cn/news/detail-840021.html
到了這里,關(guān)于封裝階段的軟件供應(yīng)鏈安全威脅的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!