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