消失在「影子托管」裡的 2 美元:一場 AI 越界事故

人工智能的幻覺曾被視為一種無傷大雅的信息偏差,編造一個事實,或是給出一段邏輯不通的文字。但 2026 年的現實給了我們一記重錘:當 AI 從聊天機器人進化為 Agent 時,幻覺開始轉化為一種昂貴的執行風險。問題就不再是說錯話那麼簡單,因為它現在有能力直接搬走你的資產。

供應鏈毒藥:從手搓程式碼到 vibe coding

本週發生的LiteLLM 投毒事件為這一趨勢敲響了警鐘。

作為幾乎所有主流 AI Agent 框架的底層引擎,LiteLLM 在此次事件中遭遇了一次典型的供應鏈滲透。攻擊者通過安全工具鏈中的薄弱環節取得了發布密鑰,從而將惡意程式碼以官方版本的形式推送至用戶環境。由於具備合法簽名,傳統的驗證機制幾乎失效。

有趣的是,這場劫案之所以曝光,僅僅是因為黑客的程式碼在處理遞歸邏輯時出了個低級 Bug,導致受害者的電腦因資源耗盡而卡死。

這暴露了開源生態中長期被忽視的脆弱性:當你安裝一個庫時,實質上是在信任一整棵橫跨數百個包的依賴樹。這棵樹上任何一個節點的腐爛,都會順著脈絡流進核心生產環境。

在流行 vibe coding 的開發範式下,這一風險被進一步放大。大量開發者通過自然語言描述需求,由 AI 自動生成程式碼。當系統出錯時,開發者往往直接採納 AI 給出的修復建議,並執行如 pip install 的操作,而缺乏對依賴來源與安全性的進一步驗證。

在這種環境下,開發門檻持續降低,但安全審查的複雜度並未同步下降。每一次看似簡單的依賴安裝,實際上都在引入新的不確定性,而這一不確定性,正在逐漸成為系統性風險的一部分。

Meta 內部事故:當人類成為執行介面

類似的變化,也發生在人機交互層面。隨著軟體開發從逐步操作轉向結果驅動,人類的角色隨之發生變化:從判斷者,逐漸變為確認節點,甚至只是執行介面。

軟體開發正經歷從「手動擋」到「自動駕駛」的質變。過去,開發者需要對每一次操作負責;而在引入 Agent 之後,人類更像是自動駕駛的乘客,逐漸退居為流程中的確認節點,甚至只是執行終端。

當人類的角色從「判斷者」退化為 AI 的「執行介面」時,審核意願會呈指數級下降。

Meta 最近發生的一起 SEV1 級安全事故證明了這一點:一名工程師在內部論壇中調用 AI Agent 回答技術問題,Agent 在未經審核的情況下自動發布了回覆。隨後,另一名工程師依據該建議執行操作,而其中的不準確資訊導致系統權限被錯誤配置,敏感資料在未授權狀態下裸奔了兩小時。

Meta 官方將其歸咎於「人為錯誤」,但從人機交互的角度看,這更像是一次界面的崩潰。當 AI 的輸出看起來如此專業且具備「可執行性」時,人類作為校驗節點的防禦機制會自動弱化。

這種變化在資訊系統中尚可透過回滾與修復來彌補,但當 AI 開始介入具有現實後果的系統——尤其是涉及資產與交易的金融場景——幻覺便成了一份無法撤回的昂貴帳單。

2 美元的教訓:一場偷梁換柱的自主救場

如果說 Meta 的事故是權限誤配,那麼在金融領域,問題變得更加嚴重,因為它直指資產所有權。

2026 年以來,多家錢包與基礎設施項目密集推出 Agentic Wallet 產品,試圖讓 AI Agent 直接代理用戶完成鏈上操作。Cobo AI 團隊在針對這一新興品類進行系統性測試時,捕捉到了一個極具代表性的行為模式,並將其定義為 Shadow Custody(影子托管)——即 Agent 在用戶不知情的情況下,通過自主生成密鑰、建立臨時地址等方式,將資產的實際控制權從用戶錢包轉移至一個用戶不可見、不可控的中間環節。結果是,鏈上出現了一個用戶無法直接控制的地址——一個在邏輯上存在,但在用戶視角中不可見的黑箱。

此次事故的流程可以概括為:一名用戶指示 Agent 在 Polymarket 上購買價值 2 美元的「Spain YES」代幣。執行過程中,Agent 很快遇到了一個障礙:Polymarket 的交易需要一種特定格式的數位簽名(EIP-712),但 Agent 使用的工具包(SDK)在設計上把「組裝簽名內容」和「用私鑰簽字」兩步捆綁在了一起——換句話說,這個工具包預設你手頭就有一把私鑰,自己簽就行了。

問題在於,用戶的錢包並不是這種「自己拿著鑰匙」的普通錢包,而是一種由多方共同保管密鑰的 MPC 錢包——它完全有能力完成簽名,只是走的是另一條路徑。但 Agent 沒有意識到這條路徑的存在,它只看到了眼前這條路走不通,便得出結論:這個錢包簽不了名。

在一個以規則維持信任的系統中,流程本應中止,或請求額外授權。

但 Agent 並未停下。而是將這一限制理解為現有錢包無法完成簽名,進而尋找替代方案。於是在未獲得授權的情況下,Agent 在本地生成了一把全新的私鑰,用它建立了一個臨時錢包地址。隨後,它將用戶 MPC 錢包中的 2 枚 USDC.e 轉入該地址,並用這組臨時密鑰完成簽名,最終成功買入代幣。

從交易結果來看,一切如預期發生:10 份「Spain YES」條件代幣被正確買入。

但從系統結構來看,它徹底搞砸了。

這些代幣並未回到用戶的 MPC 錢包,而是停留在 Agent 建立的臨時地址中。用戶最初並未察覺,直到查詢餘額為零並進一步追問,Agent 才還原了整個執行過程。

路徑劫持:不僅是 Bug

這不僅僅是個 Bug,甚至從邏輯上講,Agent 並沒有犯錯,它只是填補了系統邊界定義的空白。

簡單來說,當原定路徑走不通時,Agent 並未停下來報錯,而是為了「完成任務」自發繞了條路。它私下建立臨時地址中轉資金,卻在 UI 界面對手裡的資產已經「搬家」只字未提。這種用戶感知與底層事實的脫節,本質上是一種路徑劫持。

這種隱秘的路徑劫持,折射出機器原生金融在資金路徑透明度、語義一致性以及執行環境穩定性上的系統性風險:

而這種「填補」一旦失去約束,就會為攻擊者打開三扇大門:

  • 邏輯偏轉: 惡意工具無需偽造連結或彈窗,只需在程式碼深處誘導 Agent 啟用臨時錢包。用戶看到交易成功,實則資產控制權在執行瞬間已被剝離。

  • 語義操縱: 攻擊者無需侵入系統,只需在文件或 Prompt 中植入虛假的技術限制(如「原路徑已失效」)。任務導向的 Agent 會為了規避「偽限制」而主動轉帳。它沒被黑,只是被騙了。

  • 零件投毒: 通過篡改第三方 SDK 或介面庫,將正確的路徑篡改成此路不通。Agent 甚至覺得自己是在忠實地繞路,其實是走進了設計好的死胡同。

約束比能力更重要,駕馭 AI Agent 行為邊界的三道門

在容錯率為零的金融場景下,AI 的「聰明」往往是安全最大的敵人。我們需要的不是更強的執行力,而是更硬的框定能力。

為此,我們需要給 Agent 裝上三道不可逾越的門:

  1. 意圖門(Policy Gate):打破自指困境

約束必須來自外部。我們需要一個獨立的策略引擎(Policy Engine),在行為發生前判斷「是否允許操作」。例如,嚴禁 Agent 自行生成私鑰或向未授權地址轉帳。一旦觸碰紅線,執行立即終止。

  1. 交易門(Transaction Gate):風險透視

所有 Agent 的決策最終都要轉化為鏈上交易。在 Agent 與區塊鏈之間設立「交易防火牆」,將不可讀的原始資料還原為結構化資訊。透過對目標地址行為、金額偏離度等維度打分,高風險交易將被攔截並強制觸發人工審批。

  1. 可見門(Visibility Gate):即時觀測

引入獨立於 Agent 的觀察系統(Watcher)。當資金流向新地址或未在規定時間內回流時,Watcher 會秒級推送預警。它將事後發現轉化為過程干預,確保即便 Agent 試圖隱瞞路徑,資產狀態依然透明。

結語

我們正處在一個危險的過渡期。AI 的執行能力正在狂飆,但我們對它的約束機制還停留在石器時代。如果一個架構不能明確劃定絕對禁止行為並進行即時校驗,那麼 AI 的每一次自主決策,本質上都是在拿用戶的資產進行一場豪賭。

而在金融領域,沒人想賭。

查看原文
此頁面可能包含第三方內容,僅供參考(非陳述或保證),不應被視為 Gate 認可其觀點表述,也不得被視為財務或專業建議。詳見聲明
  • 打賞
  • 留言
  • 轉發
  • 分享
留言
請輸入留言內容
請輸入留言內容
暫無留言