飛象網(wǎng)訊 新思科技發(fā)現(xiàn)近幾個(gè)月,依賴倉庫劫持漏洞(簡稱為Repo Jacking)持續(xù)增加,對開源倉庫的威脅也越來越普遍。依賴倉庫劫持攻擊一旦得逞,可能會(huì)對包或產(chǎn)品的用戶產(chǎn)生嚴(yán)重的安全隱患,尤其是在受影響的包被用作依賴項(xiàng)的情況下。這通常是由于攻擊的性質(zhì)導(dǎo)致的——允許不受限制的惡意代碼上傳,重新發(fā)布現(xiàn)有版本或發(fā)布新版本。
Repo Jacking:依賴倉庫劫持漏洞
Repo Jacking是惡意攻擊者對托管倉庫的所有者或維護(hù)者賬戶的故意、強(qiáng)制接管。訪問該賬戶后,攻擊者可以將惡意代碼注入項(xiàng)目或?qū)⑵溆米饕蕾図?xiàng)的項(xiàng)目。
這種類型的供應(yīng)鏈攻擊往往通過利用GitHub 等托管平臺(tái)缺乏重新注冊驗(yàn)證的漏洞。攻擊方式主要有兩種:
修改用戶名:當(dāng)托管平臺(tái)的用戶修改其用戶名時(shí),攻擊者可能會(huì)使用原始用戶名重新注冊倉庫。這允許重新創(chuàng)建倉庫,使用該項(xiàng)目作為依賴項(xiàng)的包可能仍會(huì)訪問原始倉庫URL, 以進(jìn)行更新。
賬戶刪除:與修改名稱類似,攻擊者可以重新注冊已刪除的賬戶,并重新創(chuàng)建倉庫。這種方法更有可能導(dǎo)致項(xiàng)目在試圖通過 URL 獲取倉庫時(shí)出錯(cuò),因?yàn)殒溄訒?huì)被破壞。這可以被繞過,因?yàn)楣粽邥?huì)在用戶刪除賬戶和項(xiàng)目嘗試提取倉庫的間隔內(nèi)重新注冊已被刪除的用戶名。
在這兩種情況下,攻擊者都有效地獲得了對倉庫的完全控制權(quán),從而允許他們執(zhí)行各種特權(quán)操作。這些可能涉及指定其他惡意用戶或自行創(chuàng)建的賬戶作為管理員/維護(hù)者,進(jìn)而用于批準(zhǔn)對倉庫的推送和拉取請求。通過這種方式,可以將惡意或不需要的代碼強(qiáng)制注入到項(xiàng)目的新版本中。相反地,可以從倉庫中刪除版本和功能代碼,或故意推送中斷提交,從而允許阻礙或破壞預(yù)先存在的功能。
保護(hù)企業(yè)免受Repo Jacking的方法
隨著供應(yīng)鏈攻擊的增加,Repo Jacking的案例也在增加,因?yàn)樗ǔJ枪⿷?yīng)鏈攻擊的第一步。接管倉庫可能是一個(gè)簡單的過程,但仍會(huì)導(dǎo)致嚴(yán)重的負(fù)面影響。目前有一些可用的補(bǔ)救措施正在研究中,以應(yīng)對此類攻擊。
多因素身份驗(yàn)證(MFA),通常為雙因素身份驗(yàn)證(2FA),為賬戶訪問提供第二層安全性。從理論上講,它應(yīng)該可以防止不法分子獲得對過期或已刪除賬戶的訪問權(quán)限。 GitHub是最大的Git倉庫的托管主機(jī)之一。GitHub宣布從 2023 年起,所有維護(hù)者賬戶都將強(qiáng)制執(zhí)行2FA。這代表著2FA的采用率將大幅上升,因?yàn)槟壳爸挥?6.5%的活躍 GitHub 用戶使用 2FA。另一方面,流行的 JavaScript 包管理器 npm 并沒有強(qiáng)制執(zhí)行,也沒有宣布打算強(qiáng)制執(zhí)行 2FA。
域名接管是供應(yīng)鏈劫持倉庫的常見手法,例如當(dāng)不法分子重新注冊電子郵件的過期域并使用該域請求重置密碼。倉庫托管平臺(tái)可以先發(fā)制人,嘗試通過刪除或暫停有即將到期和已過期域的賬戶,以防止這種情況發(fā)生。切斷供應(yīng)鏈中的鏈接是阻止訪問可能受到損害的賬戶的重要一步。但是,這將對托管平臺(tái)產(chǎn)生更大的維護(hù)和監(jiān)控責(zé)任。
在接下來的幾個(gè)月甚至幾年里,開源項(xiàng)目將繼續(xù)擴(kuò)大和賬戶數(shù)量也在增加,依賴項(xiàng)更多并且容易受到劫持。同時(shí),更多所有者和作者賬戶將變得不活躍并被刪除,不法分子更加有機(jī)可乘,劫持倉庫。
盡管可以通過補(bǔ)救措施來防止其中許多漏洞,但當(dāng)前的行業(yè)格局表明,選擇使用 MFA 等預(yù)防性技術(shù)的用戶數(shù)量有限。強(qiáng)制執(zhí)行2FA等方法可能是未來的發(fā)展方向。
憑借增強(qiáng)型漏洞數(shù)據(jù)防患未然
Black Duck Security Advisories (BDSA)為用戶提供有關(guān)漏洞披露的詳細(xì)信息,自動(dòng)生成的警報(bào)概述了易受攻擊的代碼和已使用軟件包中的補(bǔ)救措施。客戶可以使用 BDSA 快速修復(fù)新漏洞并了解包中的惡意開發(fā),例如 Repo Jacking。BDSA會(huì)詳述被劫持的軟件包易受攻擊的版本、關(guān)鍵信息和新的開發(fā),例如分叉的倉庫。
很多解決方案單單依賴美國國家漏洞數(shù)據(jù)庫(NVD)的數(shù)據(jù)。但是,許多漏洞和受影響的開源項(xiàng)目從未在NVD中記錄過,并且漏洞通常都是在發(fā)布幾周之后才被列入NVD。BDSA借助由 新思科技網(wǎng)絡(luò)安全研究中心 (CyRC)分析的增強(qiáng)型數(shù)據(jù),保證完整性和準(zhǔn)確性,并且可當(dāng)日告知新報(bào)告的安全漏洞,平均比 NVD 提早了三周。這可以為用戶盡早發(fā)出漏洞提醒并提供全面的見解,大幅降低供應(yīng)鏈安全風(fēng)險(xiǎn)。