Cider Security的研究人員在GitHub Actions中發(fā)現(xiàn)了一個(gè)安全漏洞,該漏洞允許攻擊者繞過必要的審查機(jī)制,將未審查的代碼推到受保護(hù)的分支,使其進(jìn)入生產(chǎn)管道。
根據(jù)Medium上的一篇博客文章,首席安全研究員Omer Gil和他在Cider security(一家專注于持續(xù)集成/持續(xù)交付安全的初創(chuàng)公司)的研究團(tuán)隊(duì)發(fā)現(xiàn)了這個(gè)安全漏洞,這是他們研究DevOps中新型攻擊的一部分。
Gil稱,要求審查是GitHub中最廣泛使用的安全機(jī)制之一,由于GitHub Actions是默認(rèn)安裝的,幾乎任何組織都容易受到這種攻擊。
“危及GitHub用戶賬戶的攻擊者,或者只是想繞過這一限制的開發(fā)人員,可以簡(jiǎn)單地將代碼推送到受保護(hù)的分支。由于受保護(hù)分支中的代碼通常由許多用戶或其他系統(tǒng)在生產(chǎn)系統(tǒng)中使用,因此影響很大,”Gil指出。
GitHub是一個(gè)為協(xié)作而設(shè)計(jì)的軟件開發(fā)和版本控制平臺(tái),為數(shù)百萬用戶和公司提供服務(wù),他們使用它來托管他們的代碼庫(kù)——用于構(gòu)建特定軟件系統(tǒng)、應(yīng)用程序或軟件組件的源代碼集合。
GitHub的發(fā)言人目前沒有透露更多細(xì)節(jié)。
攻擊分析
GitHub Actions是GitHub的持續(xù)集成/持續(xù)交付產(chǎn)品,它可以在您的存儲(chǔ)庫(kù)中自動(dòng)執(zhí)行、自定義和執(zhí)行從開發(fā)到生產(chǎn)系統(tǒng)的軟件開發(fā)工作流程。
研究人員表示,GitHub Actions 默認(rèn)安裝在任何 GitHub 組織及其所有存儲(chǔ)庫(kù)上,任何具有將代碼推送到存儲(chǔ)庫(kù)的寫入權(quán)限的用戶都可以創(chuàng)建一個(gè)在推送代碼時(shí)運(yùn)行的工作流。
“在每個(gè)工作流運(yùn)行時(shí),GitHub 都會(huì)創(chuàng)建一個(gè)唯一的GitHub令牌 (GITHUB_TOKEN) 以在工作流中使用以針對(duì)存儲(chǔ)庫(kù)進(jìn)行身份驗(yàn)證。這些權(quán)限具有默認(rèn)設(shè)置,在組織或存儲(chǔ)庫(kù)級(jí)別設(shè)置。該設(shè)置允許授予該令牌有限的權(quán)限——內(nèi)容和元數(shù)據(jù)范圍的讀權(quán)限,或許可的權(quán)限——內(nèi)容、包和拉取請(qǐng)求等各種范圍的讀/寫權(quán)限?!毖芯咳藛T指出。
然而,研究人員指出,任何對(duì)存儲(chǔ)庫(kù)具有寫訪問權(quán)限的用戶都可以修改授予令牌的權(quán)限,并且可以根據(jù)需要通過操作工作流文件中的權(quán)限密鑰來添加或刪除訪問權(quán)限。
如果攻擊者劫持了用戶帳戶,他們可以通過創(chuàng)建拉取請(qǐng)求將代碼推送到受保護(hù)的分支,意圖將其惡意代碼合并到受保護(hù)的分支。
拉取請(qǐng)求允許用戶告訴其他人他們已推送到 GitHub 上存儲(chǔ)庫(kù)中的分支的更改。
GitHub 網(wǎng)站解釋說,一旦 PR 打開,用戶就可以與合作者討論和審查潛在的更改,并在將更改合并到基本分支之前添加后續(xù)提交工作。
“因?yàn)樾枰獙徟琍R創(chuàng)建后無法合并。但是,工作流立即運(yùn)行,并且PR由github-actions機(jī)器人(GITHUB_TOKEN所屬的機(jī)器人)批準(zhǔn)。它不是組織成員,但算作PR批準(zhǔn),并有效地允許攻擊者批準(zhǔn)他們自己的 PR,基本上繞過分支保護(hù)規(guī)則,結(jié)果將代碼推送到受保護(hù)的分支,而無需任何其他組織成員的批準(zhǔn),”研究人員指出。
組織所有者可以設(shè)置分支保護(hù)規(guī)則,在合并之前要求拉請(qǐng)求批準(zhǔn),而用戶不能批準(zhǔn)自己的拉請(qǐng)求。
如何緩解
Gil表示,沒有跡象表明這個(gè)問題是否被利用,但建議GitHub所有者在沒有使用的情況下禁用GitHub Actions。這個(gè)問題可以通過需要代碼所有者的批準(zhǔn)來解決,或者需要兩個(gè)或更多的批準(zhǔn)來合并一個(gè)拉取請(qǐng)求。
GitHub表示他們會(huì)努力修復(fù)此安全漏洞。攻擊者肯定可以利用這個(gè)問題,試圖進(jìn)入生產(chǎn)系統(tǒng),擴(kuò)大對(duì)受害者資產(chǎn)的控制。吉爾指出。
安全漏洞將軟件置于危險(xiǎn)之中。數(shù)據(jù)顯示,90%的網(wǎng)絡(luò)安全事件和軟件漏洞被利用有關(guān),在軟件開發(fā)期間通過靜態(tài)代碼檢測(cè)技術(shù)可以幫助開發(fā)人員減少30%-70%的安全漏洞,大大提高軟件安全性。當(dāng)前,通過提高軟件自身安全性以確保網(wǎng)絡(luò)安全,已成為繼傳統(tǒng)網(wǎng)絡(luò)安全防護(hù)軟件之后的又一有效手段。
參讀鏈接:
www.inforisktoday.com/flaws-in-gi…