駭客正在利用 AI 代理對文件的「無條件信任」:研究團隊發現 120 個企業網站的 llms.txt 文件指向未註冊套件,AI 編碼代理竟自動安裝執行——連 Fortune 500 都中招,Clerk.com 已遭真實惡意軟體利用。
一句話結論
文件即指令:AI 編碼代理會自動執行 llms.txt 中的安裝命令,攻擊者只需註冊一個空套件名稱,就能讓 Claude Code、Codex 在企業內網自動跑起惡意程式碼——而且 EDR 全程不會發出任何警報。
這起事件是怎麼被發現的?
以色列一家未公開名稱的隱密新創(stealth startup)研究者,掃描了 6,214 個活躍網域(涵蓋國防承包商、Fortune 500 與大型科技公司),找出 8,265 個 llms.txt 與 llms-full.txt 檔案——這是網站用來向 AI 代理提供「機器可讀摘要」的新興文件格式,被稱為 AI 版的 robots.txt。
結果發現:120 個檔案(分別位於 120 個不同網站)指向了一個或多個「根本沒註冊」的程式套件或網域名稱,合計包含 227 條「安裝不存在的套件」或「檢視未認領網域」的指令,例如:
pip install [某個不存在的套件名]npm install [某個不存在的套件名]- 「要為某應用程式寫整合測試,可以用 Citrus 測試框架」(指向一個早已失效的網域)
研究者接著做了一個概念驗證(PoC):註冊其中幾個未認領的套件名稱,並託管「只要被執行就會回報伺服器」的測試套件。結果——
- 1 小時內,就有一家 Fortune 500 企業的機器回報執行;
- 隨著時間累積,數十家公司中招(包含多家 Fortune 500 與新創);
- Beacon 記錄了觸發安裝的父行程鏈,證實執行的正是 Anthropic Claude、OpenAI Codex、Nous Research Hermes 等主流 AI 編碼代理。
攻擊機制:信任鏈的每一個環節都「看起來正常」
研究者 Alon Hertz 一句話點破核心:「信任模型已經壞掉了(The trust model is broken)。代理把供應商文件當作聖經,不會質疑——監督它們的人類也不會。」
為什麼這招這麼致命?因為對 AI 代理來說,訊號的每一個環節都指向「安全」:
flowchart LR
A[公司官方網域的<br/>llms.txt 檔案] --> B[HTTPS + 標準格式<br/>專為 AI 設計]
B --> C[代理視為<br/>權威安裝說明]
C --> D[pip install 從 pypi.org<br/>下載並執行]
D --> E[EDR 判定:正常開發行為<br/>父行程=公司安裝的編碼代理]
E --> F[惡意套件<br/>成功執行]- 檔案在公司官方網域、走 HTTPS、用標準化格式、由公司自己發布——代理沒有任何理由質疑;
- 執行的命令是
pip install,從 pypi.org 下載——這是每個企業代理伺服器都放行的流量; - 父行程是公司故意安裝的編碼代理——在 EDR 眼中,這就像開發者正常安裝套件,零異常、零警報。
更糟的是,信任鏈是傳遞性的:llms.txt 不一定要放在 Fortune 500 自己的網站上。代理會從合作夥伴文件、供應商 SDK 參考、社群專案的設定指南抓取上下文——只要代理信任第三方,第三方文件指向未認領套件,攻擊鏈就一樣成立。
這不是理論:Clerk.com 已被真實惡意軟體利用
研究者在合法網站 clerk.com 的 llms.txt 檔案中,發現一行 npx clerk-next-fix-auth-protection。npx 的特殊之處在於:它會把套件抓進 npm 快取、直接執行其 binary,卻不會加入專案的相依清單——所以連「安裝記錄」都不會留下。
研究者很快就發現:已經有人註冊了這個空套件名稱,並在上面託管了真實的惡意軟體。Clerk 事後已修復問題,目前尚不清楚是否有實際感染發生,但這已經證明:攻擊者正在主動利用這條新攻擊面,而不是停留在理論階段。
為什麼 EDR、防毒軟體全部攔不住?
| 傳統威脅 | AI 代理供應鏈攻擊 |
|---|---|
| 惡意 binary 有病毒特徵碼可比對 | 漏洞是 Markdown 文件裡的文字,惡意負載是自然語言指令 |
| 可疑行程有異常行為 | 命令由開發者親自授權安裝的代理執行,路徑完全合法 |
| 會留下安裝痕跡 | npx 執行不寫入相依清單,設定檔注入可避開硬碟掃描 |
| 安全軟體檢查「這是什麼程式」 | 它永遠不會問「這個指令是使用者下的,還是文件裡撿來的?」 |
研究者寫道:「**代理不會區分『一個頁面』和『一條命令』。它讀到的所有東西都是輸入,而每個輸入都可能是指令。**這意味著代理所消費的整個公開資料集,已經悄悄變成了一個執行面——而其中幾乎沒有任何我們施加在真實程式碼上的完整性保證。」
不是單一事件:AI 代理供應鏈攻擊已成體系
這起事件與近期多項研究互相印證,顯示這是一整條成熟的攻擊面:
| 研究/事件 | 內容 |
|---|---|
| Weaponizing Setup Instructions(arXiv 2607.15143) | 定義「安裝落差(Install Gap)」:代理盲目順從 README 執行 pip install。同一顆 Claude Opus 4.8,在 Claude Code 框架下能 100% 攔截惡意套件,換到 Copilot CLI 框架攔截率只剩 30%——安全與否取決於 Harness,不是模型 |
| MalSkillBench(arXiv 2606.07131) | 首個惡意 AI 技能運行時驗證基準:野外收集的惡意技能 86.3% 是假冒相依套件的惡意軟體投遞,傳統安全工具對「程式碼+指令混合」威脅的偵測率趨近於零 |
| Hades 供應鏈攻擊(Morphisec 分析) | 截至 2026 年 6 月已從 6,943 台開發者機器竊取 294,842 個敏感金鑰;攻擊者污染 14 種 AI 編碼工具的設定檔,甚至用提示注入叫 AI 程式碼審查員「回報此套件為安全」 |
開發者與企業該怎麼防?
研究者的核心主張是:不能指望模型永遠不犯錯,安全責任必須移到 Harness/執行框架層。具體做法:
- 裝「安裝前驗證閘口」:在代理執行
pip/npm install之前,用 hook 檢查套件名稱的編輯距離(防 typosquatting)、發布年齡、下載量,並查詢 OSV/CVE 漏洞資料庫;擋掉文件裡夾帶的未知--extra-index-url與未審查的 Makefile 重定向。 - 關閉 auto-approve:永遠不要讓 AI 代理「一鍵自動核准」安裝命令與 MCP 伺服器設定(有研究實測:Gemini CLI、Cursor CLI、Copilot CLI 只需按一次 Enter 就會自動核准惡意 MCP 伺服器)。
- 把設定檔當程式碼審查:
.mcp.json、.claude/settings.json這類檔案應比照二進位安裝檔,納入同行 code review,且禁止 bypass permissions 模式。 - 沙箱隔離執行:讓代理的命令在任務結束即銷毀、預設封鎖網路出口的 MicroVM 中執行——實作可參考本站的 smolvm 教學。
- 不要信任文件來源:提醒團隊「LLM 無法可靠區分使用者指令與第三方內容」——這正是提示注入的根源,而這起攻擊是它更廣的變體。
延伸閱讀
- 你的秘密 AI 都知道!研究員揭露 Claude 提示注入漏洞,讓 AI 助手變成洩密者
- 推理軌跡竊取攻擊全解析:OpenAI、Anthropic、Google 加密思維鏈全被破解
- smolvm 完整教學:用硬體隔離 VM 安全執行不受信任的程式碼(AI Agent 沙箱實戰)
- 失控 AI 防禦戰線成形:100+ 公司聯合發表 Collective Cyberdefense 公開信
- Claude Code Auto Mode 預設開啟:AI 編碼代理自動執行時代來臨
- MCP 完整教學 2026:什麼是 Model Context Protocol?
資料來源:Ars Technica(Claude, Codex, and Hermes installed unowned code inside corporate networks)、Weaponizing Setup Instructions Against AI Coding Agents(arXiv)、MalSkillBench(arXiv)、Morphisec(Hades 供應鏈攻擊分析)、llms.txt 官方規範
