GitHub Actions安全漏洞可使攻擊者繞過程式碼審查機制 影響受保護分支

zktq2021發表於2021-10-18

Cider Security的研究人員在GitHub Actions中發現了一個安全漏洞,該漏洞允許攻擊者繞過必要的審查機制,將未審查的程式碼推到受保護的分支,使其進入生產管道。

根據Medium上的一篇部落格文章,首席安全研究員Omer Gil和他在Cider security(一家專注於持續整合/持續交付安全的初創公司)的研究團隊發現了這個安全漏洞,這是他們研究DevOps中新型攻擊的一部分。

Gil稱,要求審查是GitHub中最廣泛使用的安全機制之一, 由於GitHub Actions是預設安裝的,幾乎任何組織都容易受到這種攻擊。

“危及GitHub使用者賬戶的攻擊者,或者只是想繞過這一限制的開發人員,可以簡單地將程式碼推送到受保護的分支。由於受保護分支中的程式碼通常由許多使用者或其他系統在生產系統中使用,因此影響很大,”Gil指出。

GitHub是一個為協作而設計的軟體開發和版本控制平臺,為數百萬使用者和公司提供服務,他們使用它來託管他們的程式碼庫——用於構建特定軟體系統、應用程式或軟體元件的原始碼集合。

GitHub的發言人目前沒有透露更多細節。


攻擊分析


GitHub Actions是GitHub的持續整合/持續交付產品,它可以在您的儲存庫中自動執行、自定義和執行從開發到生產系統的軟體開發工作流程。

研究人員表示,GitHub Actions 預設安裝在任何 GitHub 組織及其所有儲存庫上,任何具有將程式碼推送到儲存庫的寫入許可權的使用者都可以建立一個在推送程式碼時執行的工作流。

“在每個工作流執行時,GitHub 都會建立一個唯一的GitHub令牌 (GITHUB_TOKEN) 以在工作流中使用以針對儲存庫進行身份驗證。這些許可權具有預設設定,在組織或儲存庫級別設定。該設定允許授予該令牌有限的許可權——內容和後設資料範圍的讀許可權,或許可的許可權——內容、包和拉取請求等各種範圍的讀/寫許可權。”研究人員指出。

然而,研究人員指出,任何對儲存庫具有寫訪問許可權的使用者都可以修改授予令牌的許可權,並且可以根據需要透過操作工作流檔案中的許可權金鑰來新增或刪除訪問許可權。

如果攻擊者劫持了使用者帳戶,他們可以透過建立拉取請求將程式碼推送到受保護的分支,意圖將其惡意程式碼合併到受保護的分支。

拉取請求允許使用者告訴其他人他們已推送到 GitHub 上儲存庫中的分支的更改。

GitHub 網站解釋說,一旦 PR 開啟,使用者就可以與合作者討論和審查潛在的更改,並在將更改合併到基本分支之前新增後續提交工作。

“因為需要審批,PR建立後無法合併。但是,工作流立即執行,並且PR由github-actions機器人(GITHUB_TOKEN所屬的機器人)批准。它不是組織成員,但算作PR批准,並有效地允許攻擊者批准他們自己的 PR,基本上繞過分支保護規則,結果將程式碼推送到受保護的分支,而無需任何其他組織成員的批准,”研究人員指出。

組織所有者可以設定分支保護規則,在合併之前要求拉請求批准,而使用者不能批准自己的拉請求。


如何緩解


Gil表示,沒有跡象表明這個問題是否被利用,但建議GitHub所有者在沒有使用的情況下禁用GitHub Actions。這個問題可以透過需要程式碼所有者的批准來解決,或者需要兩個或更多的批准來合併一個拉取請求。

GitHub表示他們會努力修復此安全漏洞。攻擊者肯定可以利用這個問題,試圖進入生產系統,擴大對受害者資產的控制。吉爾指出。

安全漏洞將軟體置於危險之中。資料顯示,90%的網路安全事件和軟體漏洞被利用有關,在軟體開發期間透過 靜態程式碼檢測技術可以幫助開發人員減少30%-70%的安全漏洞,大大提高軟體安全性。當前,透過提高軟體自身安全性以確保網路安全,已成為繼傳統網路安全防護軟體之後的又一有效手段。


參讀連結:


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/70000012/viewspace-2837832/,如需轉載,請註明出處,否則將追究法律責任。

相關文章