
微軟研究人員揭露了 Anthropic 的 Claude Code GitHub Action 中一個已修補的漏洞,該漏洞可能允許攻擊者透過惡意的 GitHub 內容操縱 AI 代理,從而洩露儲存在軟體開發流程中的憑證。
微軟在週五的一篇部落格文章中警告,在 CI/CD 工作流程中運行的 AI 編碼代理可能會帶來新的安全風險,因為這些環境通常可以存取 API 金鑰、雲端憑證和其他敏感資訊。
微軟寫道:「我們觀察到多個供應商使用 AI 輔助的 GitHub 工作流程在公開儲存庫中進行提示注入嘗試,其中攻擊者控制的問題或拉取請求的內容由 AI 代理處理,並可能影響其工具使用,於是我們開始了這項研究。」
在 GitHub 上,拉取請求允許開發人員向程式碼儲存庫提出更改,並在這些更改被批准和合併之前進行審查。
這份報告發布之際,提示注入攻擊已成為 AI 代理面臨的最大安全威脅之一。在提示注入攻擊中,攻擊者將指令隱藏在電子郵件、文件、網站或程式碼註釋等內容中,導致 AI 系統遵循這些指令而非使用者的指令。
Claude Code 於十月推出,是 Anthropic 用於軟體開發任務的 AI 編碼代理。該工具在三月受到審查,當時 Anthropic 意外洩漏了超過 50 萬行原始碼,暴露了其內部架構的細節,並引發了研究人員和開發人員的廣泛分析。
根據微軟的說法,攻擊者可以利用隱藏在 GitHub 問題、拉取請求或評論中的提示注入攻擊,操縱 Claude Code 存取包含敏感憑證的文件。
為了測試該漏洞,微軟建立了一個 GitHub 工作流程,並將惡意指令偽裝成託管在受其控制的網域上的內容,從而讓研究人員能夠繞過 Claude 的安全保護措施。提示注入攻擊誘騙 Claude 讀取敏感憑證並對其進行修改,以規避 Claude 的防護措施和 GitHub 的秘密掃描工具。微軟表示,攻擊者隨後可以重建憑證,並透過問題評論、工作流程日誌、網路請求或 Shell 命令將其洩露出去。
該公司表示:「為了繞過 Sonnet 的拒絕安全機制,我們將 Shell 負載隱藏在我們控制的網域的回應之後。我們還啟用了工作流程,以便沒有『寫入』權限的用戶也能觸發,以確保 Anthropic 的環境變數清除緩解措施在我們的測試期間是有效的。」
在微軟於 4 月 29 日透過 HackerOne 披露該漏洞後,Anthropic 於 5 月 5 日透過 Claude Code 2.1.128 版修補了該缺陷。
儘管有多層內建安全控制措施,微軟發現,一個有決心的攻擊者仍然可能操縱 AI 代理,使其洩露敏感資訊。
它表示:「我們正在進入一個自然語言即是可執行程式碼的時代,像 GitHub 問題這樣不受信任的輸入必須預設被視為具有敵意。一個精心製作的評論加上對信任邊界的誤解,就足以竊取生產憑證。」