GitHub Actions 中的一個安全漏洞已經危及了由 Google、Microsoft、AWS 和 Red Hat 等公司維護的多個著名開源專案。
GitHub Actions 中的一個嚴重安全漏洞導致 Google、Microsoft、AWS 和 Red Hat 等公司維護的多個備受矚目的開源專案的驗證代幣被曝光。此缺陷允許未經授權存取私有儲存庫並插入惡意程式碼。
GitHub Actions 是一個與 GitHub 深度整合的持續整合和持續交付(CI/CD)平台。它於 2018 年推出,允許用戶直接在 GitHub 儲存庫中自動化建置、測試和部署管道。
此漏洞由 Palo Alto Networks 的 Unit 42 發現,該部門發現這些代幣無意中被公開。令人驚訝的是,儘管情況很嚴重,GitHub 仍決定不修正根本問題。相反,他們建議使用者採取措施來保護其工作流程工件。這項決定讓許多用戶變得脆弱和沮喪。
Unit 42 的調查強調了可能導致此漏洞的幾個問題,包括不安全的預設設定和使用者錯誤。一個主要問題涉及「actions/checkout」功能,該功能預設將 GitHub 令牌儲存在本地 .git 目錄中。如果此目錄包含在工件上傳中,則令牌會暴露。
此漏洞還影響其他敏感訊息,例如 API 金鑰和雲端存取令牌,這些資訊可能會透過這些工件洩露。建置輸出和測試結果最多儲存 90 天,任何擁有儲存庫讀取權限的人都可以存取。
當 CI/CD 管道將 GitHub 令牌儲存在環境變數中時,會遇到另一個漏洞。如果工作流程中的任何操作或腳本記錄這些環境變量,它們可能會無意中暴露。例如,在「super-linter」操作中啟用「CREATE_LOG_FILE」屬性可以記錄這些變數。
此漏洞的利用可能因暴露的令牌類型而異。例如,如果 GitHub 令牌洩露,它可用於從日誌檔案中提取憑證並在它們過期之前使用它們。 GitHub 令牌通常在其工作流程作業的持續時間內有效,而用於快取和工件管理的「Actions_Runtime_Token」則在六個小時內保持有效。這為攻擊者提供了有限的機會。
然而,Unit 42 進行的研究還表明,這些代幣包括對第三方雲端基礎設施的訪問,而不僅僅是 GitHub。這引發了進一步的安全問題,因為包含這些代幣的人工數據被發現可以公開訪問長達三個月。惡意行為者可以自動檢索工件、提取令牌,並使用它們將惡意程式碼推送到儲存庫。
為了演示此漏洞,研究人員在開源專案中創建了一個分支,展示了處理惡意工件的運行程序上遠端程式碼執行 (RCE) 的潛力。他們還開發了概念驗證 (PoC) 操作來審核來源目錄中的秘密,如果偵測到任何秘密暴露風險,則阻止工件上傳。
這項研究的結果已提交給 GitHub 的錯誤賞金計劃,但該問題被歸類為資訊性問題,表明使用者有責任保護上傳的工件。儘管 GitHub 的回應有限,但我們還是與網路威脅聯盟 (CTA) 分享了這些見解,以允許成員部署保護措施並阻止潛在的網路威脅。
以上是GitHub Actions 安全漏洞危及著名開源專案的詳細內容。更多資訊請關注PHP中文網其他相關文章!