數據、Benchmark 和誠實的限制。
ATR 公開發布 evasion test。我們告訴你我們抓不到什麼。
ATR 標準為何存在的完整論述:當 agent 能自主行動,信任不再能假設,偵測必須變成一個任何人都能查核、版本化、社群維護的標準層。涵蓋 RFC-001 品質規範、野外生態系掃描,以及把標準從一次性快照變成活飛輪的機制。注意:本文發表時引用的掃描數字已被取代,目前可引用的只有 101,280 個掃描項目 / 1,434 個標記項目(engine v2.0.0,2026-04-13)。
野外掃描標記了 1,434 個項目,標記量集中在三個大量發布的帳號(hightower6eu、sakaen736jih、52yuanchangxing,發布數分別為 354 / 212 / 137 個 skill)。payload 包含加密 zip、base64 shell 指令與 C2 callback。已通報 NousResearch 並加入公開黑名單。報告中的裁定是以帳號為單位做的發布者層級歸因,不是逐檔判讀;報告內的彙總數字已被取代,請以本頁的可引用數字為準。
跨五個公開 registry 的大規模 agent skill 與 MCP 定義掃描。三個協同攻擊帳號。工具描述下毒佔偵測的 53%。注意:本文發表時的彙總數字已被取代,目前可引用的只有 101,280 個掃描項目 / 1,434 個標記項目(engine v2.0.0,2026-04-13)。
MCP 攻擊面實證分析。60 天 30 個 CVE、38% 零認證、7 類攻擊分類學、53K 生態系掃描。比 Docker 前兩年快 15 倍。
Benchmarks
用我們自己的語料庫,以及公開對抗資料集(deepset、Lakera Gandalf、HackAPrompt、garak)測試。
這不是 Lakera 官方 PINT benchmark(該語料為私有、規模約 5 倍)。這是一份 PINT 格式的自建 850 樣本語料,由 deepset/prompt-injections(660)與 Lakera/gandalf_ignore_instructions(190)組成。只有一小部分規則會在這份語料上開火,且單一條規則就佔了大部分偵測——請把它讀成「prompt injection 這個家族」的分數,不是 ATR 的整體覆蓋率。
100% precision 和 65.4% recall 之間的差距是預期的。Regex 能抓到已知模式,但會漏掉重述和多語言攻擊。
SKILL.md 偵測基準
使用 498 個真實世界的 OpenClaw SKILL.md 檔案測試(32 個惡意 + 466 個正常)。Layer A = 明確惡意指令,Layer C = 混淆/隱藏攻擊。
生態系掃描數據
真實掃描真實的 MCP skill 註冊表。
這個掃描不是一份報告,是一條每天運轉的迴圈。新攻擊出現 → 結晶成偵測規則 → 回流標準:紅隊巨量掃描與 CVE 攝取兩條飛輪各自跑完整輪後轉為每日更新,把規則集從 462 條推進到目前的 819 條(新增 357 條,npm [email protected])。這就是「標準活著」的意思——不是一次性的快照,而是與威脅同速演化的層。
研究方法論
一個標準的數字只有在別人能複驗時才算數。所有研究都可重現——資料集、掃描腳本、評估腳本全部以 MIT license 開源,任何人都能拿同一版 ATR 重跑,自己得出這些數字,或證明它們是錯的。
五個來源共 101,280 個項目(engine v2.0.0,2026-04-13)。最大子集:OpenClaw 56,480、ClawHub 36,394、Skills.sh 3,115,另有 Hermes Agent 與一個 MCP registry 索引。各來源的爬取數來自各自的爬蟲報告,與上面的總數是不同時間點的快照,兩者不會剛好相加。每個來源透過公開 HTTP API 或 git 倉儲爬取。
偵測核心是確定性的:規則以 regex / AST 比對執行、無 LLM 推論,同一個輸入在任何環境都得到一致的結果——可重現性是前提,也是預設啟用的部分。v3.1.0 起另有一個選用、實驗性的語意 judge 階段,用來補抓 pattern 漏掉的改寫式攻擊;它需手動開啟、預設關閉,不更動確定性核心。每條規則在發布前都會對 36,394 個 ClawHub skill 的 wild 樣本驗證。
Precision / recall 跑在一份 PINT 格式的 850 樣本語料上。樣本本身來自外部公開資料集(deepset/prompt-injections、Lakera/gandalf_ignore_instructions),所以不會 overfit 到自家 test cases;但語料是我們自己組的,不是 Lakera 官方 PINT benchmark。另一組 SKILL.md benchmark 從真實 OpenClaw 抓 498 個檔案,其中惡意樣本透過人工標記後作為 ground truth。
誤報率以真實 benign 樣本(通過人工或社群審查的正常 skill)除以總偵測數量測,並逐車道揭露、不用單一數字概括:enforce 車道只跑最成熟的規則,預設的 hunt 車道把全部規則當建議性訊號跑。目前各車道的誤報率數字已被撤回、等待重新量測——原先公布的數字所依據的良性語料被發現混入了真實越獄樣本,量測基準站不住腳,因此在重測完成前這裡不列數字。撤掉一個自己不再站得住的數字,跟公開最差的數字一樣,都是這個標準對誠實的定義。每條已記錄的誤報情境仍會寫入 YAML 的 false_positives 欄位,並在規則頁面公開。
掃描 checkpoint、測試集、評估腳本全部在 data/ 和 tests/ 下公開。任何研究者可以用相同的 ATR 版本重跑掃描並取得一致的結果。
外部引用
ATR 的設計目標就是被引用、被內嵌、被別人的工作所依賴。這裡誠實記錄外部引用——包括目前還沒有的部分。
目前尚未有公開引用紀錄。如果你的論文、技術報告或產品文件引用了 ATR,請透過 GitHub issue 通知我們。
Cite as: Agent Threat Rules (ATR) Project (2026). Agent Threat Rules: An open detection standard for AI agent threats. DOI: 10.5281/zenodo.19178002
Cite as: Lin, Kuan-Hsin (2026). The Collapse of Trust. DOI: 10.5281/zenodo.19178002
進行中的研究
飛輪的下一段:把偵測從靜態 pattern 推向 runtime 行為與語意,再讓難判定的案例結晶回確定性規則。每一步都公開在 GitHub release 與 paper 更新,進度可被外部追蹤。
從靜態 regex 擴展到 runtime 行為偵測。初始規則:env 變數存取 + 網路呼叫的組合、工具呼叫頻率異常、非預期 shell 存取。
Tier 3 難以判定的樣本升級給 LLM-as-judge 語意分析;LLM 的發現會結晶成 Tier 2 regex 規則回流到 ATR,完成「適應性免疫 → 先天免疫」的轉換。
將 ATR 規則編譯為 Sigma(SIEM 端)與 YARA(檔案端)格式,讓 agent 威脅偵測融入現有資安偵測管線,不需要重建 pipeline。
ATR 只偵測 runtime 攻擊。訓練階段植入的模型後門在推論時架構上不可見。要橋接這個斷層,需要結合 supply-chain provenance(model card、訓練資料稽核)與 runtime 行為指紋的新技術。
素材來源:ATR-FRAMEWORK-SPEC.md Phase 2-4 路線圖與 主論文未來工作章節。
ATR 無法偵測什麼
我們發布這個章節,因為誠實的限制比虛假的自信更能建立信任。
任何 regex 規則都可以被語義等價的重述繞過。「Ignore previous instructions」會被偵測;「please set aside the guidance you were given earlier」不會。
所有模式都是英文的。用西班牙語、中文、阿拉伯語或任何其他語言寫的注入攻擊會完全繞過。
「Delete all records」可能是合法或惡意的。Regex 匹配模式但不理解授權上下文。
ATR 檢查內容,不檢查傳輸。Message replay、schema manipulation、MCP 傳輸層 MITM 是不可見的。
20 輪對話中的漸進式信任升級,單一訊息無法偵測,ATR 不會關聯。ATR 獨立評估每個事件。
根據定義,regex 無法偵測還不存在的攻擊模式。新技術需要新規則。