AgentJacking: 偽造錯誤資訊劫持AI編碼助手

AgentJacking: 偽造錯誤資訊劫持AI編碼助手

Adrian Cole
217
original

Tenet Security 披露一種新型 AI 編碼代理劫持攻擊 AgentJacking。攻擊者利用開發者對錯誤報告的信任,以偽造的 Sentry 錯誤觸發代理自動執行惡意程式碼。當前主流編碼助手均易受影響,且現有檢測機制難以攔截。

AI 編碼助手正變得越來越智慧,但它們的信任半徑也成了一把雙刃劍。Tenet Security 本週公佈了一種名為 AgentJacking 的攻擊手法,專門針對那些能主動讀取錯誤報告並自動修復程式碼的 AI 程式設計代理。攻擊者不需要黑進你的 IDE,只需要往程式碼倉庫裡塞一個偽造的 Sentry 錯誤頁面——AI 代理就會乖乖替你把惡意程式碼寫進專案裡。

攻擊路徑:錯誤報告的逆向濫用

一切始於開發者再熟悉不過的 Sentry 錯誤報告。當程式碼丟擲異常時,Sentry 會生成包含堆疊跟蹤和環境資訊的詳細頁面。AI 編碼代理(如 GitHub Copilot 的自動修復模式、Cursor 的 Agent 功能)被賦予讀取這些報告並自動生成修復程式碼的能力。AgentJacking 的巧妙之處在於:攻擊者將惡意指令嵌入到一個完全虛假的 Sentry 頁面中,而代理無法區分真假——它看到的只是一個「高層次錯誤描述」,然後按照提示(其實是攻擊者的命令)修改程式碼。

舉個例子:攻擊者偽造一個「資料庫連線池耗盡」的錯誤,並在錯誤詳情裡附上「修復建議」,比如修改連線字串中的密碼或新增一個後門函式。代理信任這個權威的錯誤來源,會直接應用「修復」。整個過程不需要開發者手動批准(取決於代理的自動化程度),因此惡意程式碼可以悄然潛入。

為什麼難以被察覺

傳統安全工具如 SAST、DAST 主要掃描程式碼中的已知漏洞模式,但 AgentJacking 注入的程式碼看似完全合法——它只是修改了某個配置值或增加了一個看似無害的函式呼叫。更糟的是,偽造的錯誤頁面可以託管在合法域名下(通過子域名接管或雲端儲存),甚至可以偽裝成內部服務錯誤。AI 代理的決策過程是黑盒的,開發者事後很難回溯為什麼代理會做出某個修改。

Tenet Security 在測試中成功讓多種主流編碼助手(包括基於 GPT-4o 和 Claude 的代理)執行了危險操作,例如:

  • 在登入模組中追加密碼明文記錄
  • 修改資料庫查詢以洩露使用者資料
  • 將 API 金鑰傳送到攻擊者控制的伺服器

這不是提示注入,是「環境劫持」

很多人第一時間會想到提示注入(prompt injection),但 AgentJacking 的運作方式不同。提示注入直接篡改輸入給模型的文字,而 AgentJacking 攻擊的是代理的 工具使用鏈路——代理呼叫讀取錯誤頁面的函式,然後根據頁面內容生成程式碼。即使模型本身沒有注入漏洞,它的輸出也被不良的上下文汙染了。這類似於瀏覽器中的跨站請求偽造(CSRF),但針對的是 AI 代理。

對於開發團隊來說,這暴露了一個被忽視的攻擊面:任何 AI 代理被動讀取的外部資源(錯誤報告、日誌、文件、Issue 回覆)都可能成為攻擊載體。只要代理「信任」這些來源,攻擊者就能間接操控它的行為。

短期緩解與長期展望

目前沒有一鍵修復的銀彈。Tenet Security 建議開發者:第一,限制 AI 代理的自動化許可權——至少要求在應用程式碼修改前進行人工稽覈(「代理建議」模式優於「自動執行」);第二,對代理讀取的外部內容進行來源驗證(例如只讀取簽名後的錯誤報告);第三,監控代理的修改行為,並與已知正常模式做對比。

長遠來看,AI 編碼工具需要內建上下文完整性檢查:代理應該具備基本的「懷疑能力」,比如發現錯誤詳情中出現明顯的程式碼修改指令時,應暫停並詢問使用者。同時,安全社羣需要為 AI 代理的輸入輸出建立類似 Content Security Policy 的約束機制。

這個攻擊不挑 IDE,不挑模型,只看代理有多「聽話」。在安全與效率的天平上,AgentJacking 提醒我們:留給 AI 的自主權越大,它犯錯或被利用的可能性也越大。開發者在享受自動修復帶來的便捷時,最好還是保持一份手動審查的謹慎。

AI安全編碼助手提示注入AgentJacking虛假錯誤程式碼安全Sentry劫持攻擊AI代理Cursor

分享

評論

0
0/500 字元

暫無評論

成為第一個評論的人

探索更多

相似工具

Cursor

Cursor

一款基於 VS Code 二次開發的智慧程式碼編輯器,以「原生內建 AI」為核心賣點。它不依賴外掛,而是將 AI 深度植入編輯器底層,能夠理解整個專案的上下文程式碼庫,支援無縫遷移 VS Code 的所有配置和外掛。

Google Antigravity

Google Antigravity

Antigravity 支援多模型,包括 Gemini 3 Pro、Claude Sonnet 4.5、GPT-OSS,開發者可以在同一環境中選擇最適合任務的模型。

Codex

Codex

OpenAI Codex 是由 OpenAI 開發的 AI 程式設計模型和助手,可將自然語言指令翻譯成對應的原始碼,為開發者提供智慧補全、程式碼生成等功能。它最初於 2021 年作為 OpenAI API 的程式碼模型推出,曾為 GitHub Copilot 提供核心支援。隨著 OpenAI 技術的迭代,Codex 在 2025 年以「AI 程式設計智慧體」的全新姿態迴歸,能夠理解複雜需求並自動編寫、除錯程式碼,顯著提升開發效率和軟體交付速度。

Kiro

Kiro

Kiro 是由 AWS 推出的 AI 程式設計 IDE,採用規範驅動的開發模式,將自然語言需求轉化為明確的規格文件和任務,再由內建 AI 代理生成程式碼並除錯優化,全流程輔助大型專案開發。

Trae

Trae

Trae(官網 trae.ai)是由 位元組跳動(ByteDance)推出的一款 AI 原生整合開發環境(IDE)。它不是簡單地作為一個程式設計助手,而是一個「協作夥伴」,通過深度整合大型語言模型(LLM),幫助開發者從需求、構建程式碼,到除錯和部署,實現更智慧化、自動化的軟體開發。

Claude

Claude

Claude 是由美國人工智慧公司 Anthropic 打造的智慧語言互動平臺,它融合了深度文字理解、資訊整理、程式碼輔助和任務分析等能力,能在聊天對話之外應對更復雜的問題,例如長文摘要、影象解析、邏輯推理及程式設計協助等。相比一些單一問答機器人,Claude 更像一個具備推理邏輯、可擴充套件功能的智慧工具。

開源專案

guidellm: 評估和優化 LLM 部署效能

guidellm 是一個開源工具,專為評估和優化大語言模型(LLM)在生產環境中的推理效能而設計。它支援壓力測試、延遲分析、吞吐量評估等,幫助開發者識別瓶頸並調整部署配置。基於 vLLM 團隊開發,適合需要精細化調優 LLM 服務的團隊。

Kun: 將 AI Agent 工作區嵌入你的應用

Kun 是一個開源的 AI Agent 工作空間,內建程式碼與寫作模式,可無縫整合到你的應用程序中。基於 TypeScript 開發,為開發者提供可定製的智慧互動環境,支援多輪對話、工具呼叫和上下文管理。

ai-gateway: 統一管理生成式 AI 服務的訪問閘道器

ai-gateway 是基於 Envoy Gateway 構建的開源專案,提供統一的 API 閘道器來管理對多種生成式 AI 服務的訪問,支援負載均衡、快取、限流等功能,簡化 AI 應用的整合和運維。

terax-ai: 7MB終端優先AI開發工作臺

terax-ai 是一個輕量級(僅7MB)的終端優先AI原生開發工作臺,專為命令列愛好者設計。它整合了AI輔助能力,提供極快的啟動速度和極小的資源佔用,讓開發者在熟悉的終端環境中高效編碼、除錯和實驗。開源且易於安裝,適合追求簡潔與效率的開發者。

go-micro: 為 AI 智慧體打造的 Go 微服務框架

go-micro 是一個用 Go 語言編寫的微服務框架,專門為構建 AI 智慧體而設計。它提供服務發現、負載均衡、訊息編碼、事件驅動等核心能力,讓開發者能快速搭建可擴充套件的分散式 AI 系統。GitHub 星標超 2.2 萬,社羣活躍,適合 Go 語言開發者入門微服務和 AI agent 架構。

jar-analyzer: JAR包GUI分析工具內建AI助手

Jar Analyzer 是一個開源的 JAR 包 GUI 分析工具,內建 AI 助手輔助分析,支援 JAR DIFF、方法呼叫關係搜尋、DFS 呼叫鏈分析、汙點分析、CFG 程序分析、JVM 棧幀分析等功能,適合 Java 開發者、安全研究人員進行程式碼審計和逆向分析。