top of page

機密早已外洩!GitHub Actions 成內鬼溫床,寫入權限竟等同全權存取!

  • 作家相片: Hao Chen Lu
    Hao Chen Lu
  • 7月28日
  • 讀畢需時 4 分鐘

Source: TWCERT/CC台灣電腦網路危機處理暨協調中心在開發流程自動化日益普及的時代,GitHub Actions 成為許多開發者不可或缺的工具。 然而,資安研究人員提醒, GitHub Repository secrets 的設計存在潛在風險,只要擁有儲存庫寫入權限的使用者,就可能存取甚至竊取secrets。 為了降低風險,建議使用 GitHub Environment secrets的保護規則和正確配置的 OIDC(OpenID Connect)信任策略,以強化憑證與密鑰的安全性。 除了機制設計問題外,初學者在撰寫GitHub Action Workflow 時的錯誤用法,也常造成機密洩漏風險。 最常見的情況是直接將 secrets值寫入工作流程檔案中,使得敏感資訊如金鑰或密碼暴露於公開程式碼之中,嚴重威脅系統安全,如圖1所示。 圖1:將secrets直接寫入Workflow上。 圖片內容取自github: airman604 目前網路上廣為流傳的做法,是透過Github的介面在路徑「settings → secrets and variables → actions」中,設定Repository secrets,如圖2所示。 設定完成後,開發者便可在GitHub Actions的Workflow中直接寫入變數的名稱,如圖3所示。 這種方式表面上來看具備一定隱蔽性,因為 UI 中無法直接查看密文內容,但實際上卻潛藏重大風險。 圖2:設定Repository secrets。 TWCERT/CC整理 圖3:在Workflow中設定 Repository secrets 。 圖片內容取自 github: airman604 根據GitHub官方文件說明,如圖4所示,任何擁有儲存庫「寫入權限」的使用者,都能藉由修改 Workflow,間接「讀取」並外洩這些secrets (機密資料)。 因此,建議你確保在Workflow中使用的憑證權限要設為「最低必要權限」。 若未妥善設定,攻擊者可建立自訂的 Workflow,將secrets輸出到日誌或將其傳送至外部伺服器等手法,達到外洩目的,對組織資安造成實質威脅。 圖5為使用者擁有寫入權限,即可輸出儲存在Workflow的機密資料。 圖4: Github 官方說明。 圖片內容取自 airman604 圖5: 示範列印Secrets。 圖片內容取自 github: airman604 為了因應上述風險,推薦使用Github的Environment secrets搭配部署保護規則(deployment protection rules)。 這項機制允許開發者在每個環境設定獨立的secrets,並透過細緻的保護規則控管其使用條件。 當Workflow中的某個job嘗試存取指定環境的secrets時,必須先通過該環境設定的保護規則,才能取得執行權限。 設定的路徑為「settings→ secrets and variables→ actions」,如圖 6 所示。 圖6: 設定 Environment secrets 位置。 TWCERT/CC整理 另一項有效強化措施是利用OIDC(OpenID Connect)結合AWS IAM,以避免在 GitHub 儲存庫中長期儲存敏感憑證。 當使用者有請求時,透過Github Action 動態請求AWS所提供的短期憑證,即使工作流程被竄改,也只有在允許的條件下才取得憑證。 以下是Environment Secrets和OIDC + IAM Role二種方式比較表: 項目 Environment Secrets OIDC + IAM Role 憑證型態 長期憑證 短期憑證(每次執行產生) 存取控制細緻度 中等(只能限制環境) 高(可限制分支、環境、儲存庫、觸發者) 風險 一旦洩漏可長期使用 洩漏後短期失效 可審核性 有一定限制 高,可搭配AWS CloudTrail、IAM認證紀錄 複雜度 簡單 稍高,需要AWS IAM與信任策略設定在開發流程自動化日益普及的時代,GitHub Actions 成為許多開發者不可或缺的工具。 然而,資安研究人員提醒, GitHub Repository secrets 的設計存在潛在風險,只要擁有儲存庫寫入權限的使用者,就可能存取甚至竊取secrets。 為了降低風險,建議使用 GitHub Environment secrets的保護規則和正確配置的 OIDC(OpenID Connect)信任策略,以強化憑證與密鑰的安全性。 除了機制設計問題外,初學者在撰寫GitHub Action Workflow 時的錯誤用法,也常造成機密洩漏風險。 最常見的情況是直接將 secrets值寫入工作流程檔案中,使得敏感資訊如金鑰或密碼暴露於公開程式碼之中,嚴重威脅系統安全,如圖1所示。 圖1:將secrets直接寫入Workflow上。 圖片內容取自github: airman604 目前網路上廣為流傳的做法,是透過Github的介面在路徑「settings → secrets and variables → actions」中,設定Repository secrets,如圖2所示。 設定完成後,開發者便可在GitHub Actions的Workflow中直接寫入變數的名稱,如圖3所示。 這種方式表面上來看具備一定隱蔽性,因為 UI 中無法直接查看密文內容,但實際上卻潛藏重大風險。 圖2:設定Repository secrets。 TWCERT/CC整理 圖3:在Workflow中設定 Repository secrets 。 圖片內容取自 github: airman604 根據GitHub官方文件說明,如圖4所示,任何擁有儲存庫「寫入權限」的使用者,都能藉由修改 Workflow,間接「讀取」並外洩這些secrets (機密資料)。 因此,建議你確保在Workflow中使用的憑證權限要設為「最低必要權限」。 若未妥善設定,攻擊者可建立自訂的 Workflow,將secrets輸出到日誌或將其傳送至外部伺服器等手法,達到外洩目的,對組織資安造成實質威脅。 圖5為使用者擁有寫入權限,即可輸出儲存在Workflow的機密資料。 圖4: Github 官方說明。 圖片內容取自 airman604 圖5: 示範列印Secrets。 圖片內容取自 github: airman604 為了因應上述風險,推薦使用Github的Environment secrets搭配部署保護規則(deployment protection rules)。 這項機制允許開發者在每個環境設定獨立的secrets,並透過細緻的保護規則控管其使用條件。 當Workflow中的某個job嘗試存取指定環境的secrets時,必須先通過該環境設定的保護規則,才能取得執行權限。 設定的路徑為「settings→ secrets and variables→ actions」,如圖 6 所示。 圖6: 設定 Environment secrets 位置。 TWCERT/CC整理 另一項有效強化措施是利用OIDC(OpenID Connect)結合AWS IAM,以避免在 GitHub 儲存庫中長期儲存敏感憑證。 當使用者有請求時,透過Github Action 動態請求AWS所提供的短期憑證,即使工作流程被竄改,也只有在允許的條件下才取得憑證。 以下是Environment Secrets和OIDC + IAM Role二種方式比較表: 項目 Environment Secrets OIDC + IAM Role 憑證型態 長期憑證 短期憑證(每次執行產生) 存取控制細緻度 中等(只能限制環境) 高(可限制分支、環境、儲存庫、觸發者) 風險 一旦洩漏可長期使用 洩漏後短期失效 可審核性 有一定限制 高,可搭配AWS CloudTrail、IAM認證紀錄 複雜度 簡單 稍高,需要AWS IAM與信任策略設定 See more: https://www.twcert.org.tw/tw/cp-104-10284-dc03a-1.html

最新文章

查看全部
寫入效能突破10 GB/s與100萬IOPS,群聯新款PCIe SSD上陣

Source: IThome新聞 在11月下半登場的美國超級電腦大會SC25,群聯電子(Phison)發表新款企業級固態硬碟Pascari X201系列,以及資料中心固態硬碟Pascari D201系列,共通點是採用PCIe 5.0介面,快閃記憶體均為TLC、導入321層堆疊的設計,提供每日讀寫量1與3的機型選擇,日常運作的耗電量都低於25瓦,而且,最高效能皆相同——循序讀取與寫入分別為14,50

 
 
 
Google升級研究代理Gemini Deep Research,著重網站深度查詢

Source: IThome新聞 Google DeepMind更新Gemini Deep Research研究代理,並向開發者開放Interactions API,讓第三方應用可把長時間的資訊蒐集與彙整流程嵌入自家產品。 官方也提到,該代理程式可在報告中提供引用來源,並支援結構化輸出,方便後續系統接手處理研究結果。 同時,Google開源名為DeepSearchQA的新基準測試,用來衡量研究型代

 
 
 
新型態手法ConsentFix結合OAuth同意網路釣魚,透過Azure CLI騙取微軟帳號

Source: IThome新聞 要求使用者依照指示操作,將惡意指令複製、貼上,然後執行的網釣手法ClickFix,是目前最為氾濫的社交工程攻擊型態,這種手法後續又出現變形,其中包含操作流程都在瀏覽器進行的FileFix,以及結合假系統更新螢幕覆蓋手法的JackFix,如今有結合OAuth身分驗證流程的新型態手法。 要求使用者依照指示操作,將惡意指令複製、貼上,然後執行的網釣手法ClickFix,

 
 
 

留言


雷盾資安股份有限公司版權所有 © 2022 by TS Security Co., Ltd.

  • Instagram
  • Facebook
  • LinkedIn
bottom of page