新思科技發(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 等托管平臺缺乏重新注冊驗(yàn)證的漏洞,。攻擊方式主要有兩種:
修改用戶名:當(dāng)托管平臺的用戶修改其用戶名時(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)不法分子重新注冊電子郵件的過期域并使用該域請求重置密碼。倉庫
托管平臺可以先發(fā)制人,,嘗試通過刪除或暫停有即將到期和已過期域的賬戶,,以防止這種情況發(fā)生。切斷供應(yīng)鏈中的鏈接是阻止訪問可能受到損害的賬戶的重要一步,。但是,,這將對托管平臺產(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),。
更多信息可以來這里獲取==>>電子技術(shù)應(yīng)用-AET<<