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%的安全漏洞,大大提高軟件安全性。當前,通過提高軟件自身安全性以確保網絡安全,已成為繼傳統網絡安全防護軟件之后的又一有效手段。
參讀鏈接:
www.inforisktoday.com/flaws-in-gi…