6 月 24 日,Novee Security 發布研究報告,指出一項 CI/CD 弱點,允許任何人使用未經驗證的免費 GitHub 帳戶劫持受信任的工作流程,進而危害開源供應鏈。
該弱點被命名為「Cordyceps」(取自寄生真菌),據稱出現在數十個組織,涵蓋中小型與大型企業,包括 Microsoft、Google、Apache、Python 與 Cloudflare。該滲透測試公司在掃描約 30,000 個高影響力儲存庫後,指出 654 個儲存庫可能可被利用,並確認 300 個已可被完全利用。
雖然鎖定工作流程是降低暴露風險的第一步,但並未解決根本問題:許多開發者並未將 CI/CD 管線視為關鍵的供應鏈風險。
這必須改變。正如 Endor Labs 資深安全研究員 Peyton Kennedy 向 The New Stack 所說:「單一錯誤造成的損害往往很大,因為管線握有原始碼、密鑰,以及發行軟體的能力,因此一旦取得立足點,就能影響到下游很遠的地方。」
為何一般程式碼審查會遺漏 CI/CD 風險
當被問及 Cordyceps 為何能避開一般程式碼審查時,Novee Security 創辦工程師兼安全研究員 Elad Meged 告訴 The New Stack,大多數開發團隊仍未將 CI/CD 工作流程 YAML 視為安全關鍵程式碼:
「在許多開發者的心目中,這些工作流程『只是設定』,但實際上它們會執行指令、處理憑證、發佈套件,並做出發行決定,」他說。「工作流程邏輯中的錯誤,可能與應用程式碼中的錯誤一樣危險。」
Sonu Kapoor(SOLID Software Solutions LTD 資深 Angular 顧問)也同意,Cordyceps 類漏洞能躲過一般程式碼審查的主要原因是它們潛藏在多數開發者不會查看的地方。
「工作流程邏輯中的錯誤,可能與應用程式碼中的錯誤一樣危險。」
雖然團隊可能會檢查工作流程是否能正常建置、測試與部署,但往往忽略關鍵的安全問題:「誰可以觸發此工作流程、它獲得什麼權限、是否可取得密鑰,以及不受信任的 pull request 資料是否能影響特權步驟?這才是真正的風險所在,」他說。
不只是開發者,安全掃描器也可能遺漏這些攻擊路徑,因為它們通常只尋找已知的惡意模式,例如特定危險字串或設定。但正如 Kennedy 向 The New Stack 解釋,Cordyceps 類弱點呈現不同的形態:「它們是一條不受信任輸入通往強大動作的路徑,而這條路徑是否危險,取決於掃描器必須理解而非單純比對的脈絡。」
換句話說,掃描器不能只辨識並標記關鍵字,而需要更進一步追蹤並理解外部輸入如何進入工作流程、該工作流程擁有什麼權限,以及輸入可能對下游造成什麼影響。
這對開發者意味著什麼:開始將 CI/CD 視為供應鏈的一部分
Cordyceps 並非近期唯一的警告。3 月,威脅行為者 TeamPCP 將 Aqua Security 的 Trivy 掃描器轉化為針對數百萬開發者的武器。
這兩起事件都提醒我們,CI/CD 管線不再只是設定,而是軟體供應鏈前線的重要一環——也是開發者需要開始給予更多關注的攻擊面。
關鍵問題不只是「這個工作流程是否安全?」,而是:「不受信任的輸入是否能從低權限位置移動到高權限動作?」
正如 Kennedy 向 The New Stack 所說,這始於改變開發者審查 CI/CD 工作流程的方式:
「將管線視為握有真實憑證與真實影響範圍的生產系統,並以對待任何生產表面的同等嚴肅態度對待它們。」
具體來說,他建議每次審查都圍繞三個問題:是什麼觸發了工作流程?它執行時擁有什麼權限?外部輸入能利用這些權限觸及什麼?
Meged 則建議開發者以攻擊者的角度思考 CI/CD 工作流程,也就是從最終目標開始反向推導。正如他向 The New Stack 描述:「關鍵問題不只是『這個工作流程是否安全?』,而是:『不受信任的輸入是否能從低權限位置移動到高權限動作?』」
科技發展迅速,別錯過任何一集。訂閱我們的 YouTube 頻道,即可觀看所有 podcast、訪談、示範,以及更多內容。
Group Created with Sketch.
0 Comments
Log in to join the conversation.No comments yet. Be the first to share your thoughts.