Microsoft 研究人員披露了 Anthropic 的 Claude Code GitHub Action 中的一項漏洞,該漏洞允許攻擊者透過提示注入(prompt injection)攻擊,將憑證暴露出來;而 Anthropic 於 5 月 5 日修補了這個缺陷。Microsoft 於 4 月 29 日透過 HackerOne 公開該問題,並在週五發布了詳細內容於部落格文章。這項漏洞源於 AI 程式碼代理(AI coding agent)在處理被隱藏於 GitHub 問題(issues)、拉取請求(pull requests)或留言(comments)中的惡意指令。Microsoft 是在觀察到使用 AI 輔助的 GitHub 工作流程(workflows)於公開儲存庫中的提示注入嘗試後展開研究;在這些情境中,攻擊者可控內容能影響 AI 代理的工具使用。此次披露凸顯出由 AI 程式碼代理在 CI/CD 工作流程中運行所帶來的安全風險,因為這些流程通常可存取 API 金鑰、雲端憑證以及其他敏感資訊。
Microsoft 在部落格文章中表示,該研究是在觀察到使用 AI 輔助 GitHub 工作流程、橫跨多家供應商的公開儲存庫中存在提示注入嘗試後開始的。攻擊方式依賴於攻擊者可控的 issue 或 pull request 內容,該內容會被 AI 代理處理,進而影響其工具使用。在 GitHub 上,拉取請求允許開發者提出對程式碼儲存庫的變更,並在核准與合併之前先進行審查。根據 Microsoft 的說法,攻擊者可利用隱藏於 GitHub issues、pull requests 或 comments 中的提示注入攻擊,誘使 Claude Code 存取包含敏感憑證的檔案。Claude Code 是 Anthropic 用於軟體開發任務的 AI 程式碼代理,於 10 月推出。
Microsoft 建立了一個 GitHub 工作流程,並在其所控網域上託管的內容背後偽裝惡意指令,以測試該漏洞。此做法使研究人員得以繞過 Claude 的安全保護。提示注入攻擊誘使 Claude 讀取敏感憑證並加以變更,以同時躲避 Claude 的防護以及 GitHub 的秘密掃描(secret-scanning)工具。Microsoft 表示,攻擊者隨後即可重建該憑證,並透過 issue 留言、工作流程記錄(workflow logs)、網頁請求(web requests)或 shell 指令外流。Microsoft 寫道,為了繞過 Sonnet 的拒絕安全機制,該公司將 shell payload 隱藏在來自其受控網域的回應之後。Microsoft 也啟用了此工作流程,使其可由沒有「write」權限的使用者觸發,以確保在測試期間啟用 Anthropic 環境變數所做的淨除(scrub)緩解措施。
Anthropic 於 5 月 5 日以 Claude Code 版本 2.1.128 修補了該漏洞,時點是在 Microsoft 於 4 月 29 日透過 HackerOne 披露該漏洞之後。該工具在 3 月間因為 Anthropic 意外外洩超過 500,000 行的原始程式碼而受到關注;該事件揭露了其內部架構細節,並促使研究人員與開發者進行廣泛分析。儘管內建多層安全控制,Microsoft 仍發現,攻擊者只要足夠有決心,便可能操控 AI 代理以暴露敏感資訊。
Microsoft 在部落格文章中表示,產業正邁入一個「自然語言是可執行程式碼」的時代;而像 GitHub issues 這樣不受信任的輸入,預設必須視為敵意。該公司寫道,只要一則經精心設計的留言,搭配被誤解的信任邊界,就足以讓人失去生產環境憑證。這份報告發表之際,提示注入攻擊已成為威脅 AI 代理的最大安全風險之一。在提示注入攻擊中,攻擊者會在諸如電子郵件、文件、網站或程式碼註解等內容中隱藏指令,使 AI 系統遵循這些指令,而不是遵循使用者的要求。
Microsoft 在 Claude Code 中發現了什麼漏洞?
Microsoft 研究人員發現,Anthropic 的 Claude Code GitHub Action 可能透過隱藏於 GitHub issues、pull requests 或 comments 中的提示注入攻擊遭到操控,進而讓攻擊者暴露存放於軟體開發流程(software development pipelines)中的憑證。
Anthropic 何時修補 Claude Code 的漏洞?
Anthropic 於 5 月 5 日以 Claude Code 版本 2.1.128 修補了該漏洞,當時是在 Microsoft 於 4 月 29 日透過 HackerOne 披露該問題之後。
Microsoft 如何測試 Claude Code 的漏洞?
Microsoft 建立了一個 GitHub 工作流程,並在其所控網域上託管的內容背後偽裝惡意指令,讓研究人員能夠繞過 Claude 的安全保護,並誘騙 AI 代理去讀取與變更敏感憑證。
相關新聞