OWASP Agentic Top 10 (2026): A Field Guide to Executable Detection for All 10 Categories
The OWASP Agentic Top 10 names ten agent risks; ATR ships 866 rule-to-category mappings covering all 10, nine at STRONG strength and one (ASI10) at MODERATE.
OWASP Agentic Top 10(2026)是一份清單,列出 AI agent 會被攻擊的十種方式。Agent Threat Rules(ATR)標準把這份清單變成掃描器真的能跑的東西:866 條規則對類別的映射,涵蓋全部十類。其中九類的涵蓋強度是 STRONG,一類(ASI10 Rogue Agents)是 MODERATE。清單告訴你該擔心什麼。規則告訴你它此刻是否正在你的 log 裡發生。
這兩者之間的落差,正是本文的重點。OWASP 給你分類法,但它不會給你「如果某個 pattern 出現在 tool call 裡就標記」。ATR 是一個獨立、MIT 授權的偵測標準,它存在的目的就是填補這道落差,就像 Sigma 之於 SIEM 偵測、CVE 之於漏洞掃描器。以下用一句話講完每一類,再說明每一類如何對應到可執行的規則。
什麼是 OWASP Agentic Top 10?
它是 OWASP 在 2026 年列出的、專屬於 AI agent 的十大安全風險:這些系統會規劃、呼叫工具、保有記憶、並帶著一定自主性去行動。傳統應用風險(Web 版 OWASP Top 10、prompt 版 LLM Top 10)無法涵蓋當一個模型能開 shell、讀你的 email、生出 sub-agent 時會發生的事。Agentic 清單回答的問題是:「當模型能行動、而不只是講話時,會壞在哪裡?」
十個類別 ID 從 ASI01 排到 ASI10。以下每一類用一句話說明。
10 個類別,一句話說完
| ID | 名稱 | 一句話 |
|---|---|---|
| ASI01 | Agent Goal Hijack | 攻擊者改寫 agent 要達成的目標,通常透過它讀到的內容裡被注入的指令。 |
| ASI02 | Tool Misuse and Exploitation | agent 被誘導以有害方式呼叫合法工具(錯的參數、錯的目標、錯的範圍)。 |
| ASI03 | Identity and Privilege Abuse | agent 用它手上的憑證或權限,去碰不該碰的資料或動作。 |
| ASI04 | Agentic Supply Chain Vulnerabilities | 惡意或被入侵的 skill、MCP server 或相依套件進入了 agent 的信任邊界。 |
| ASI05 | Unexpected Code Execution (RCE) | 攻擊者可控的輸入抵達直譯器或 shell,被當成程式碼執行。 |
| ASI06 | Memory & Context Poisoning | 被寫入 agent 記憶或 context 的壞資料,操縱它後續的決策。 |
| ASI07 | Insecure Inter-Agent Communication | agent 之間的訊息被偽造、攔截,或未經驗證就被信任。 |
| ASI08 | Cascading Failures | 一個被入侵或故障的 agent,把失效擴散到整個多 agent 系統。 |
| ASI09 | Human-Agent Trust Exploitation | agent 被用來操縱人,或人對 agent 的錯置信任被濫用。 |
| ASI10 | Rogue Agents | agent 在其設定邊界之外運作,無論是被汙染、被誤設,還是被刻意植入。 |
ATR 如何讓每一類都可執行?
ATR 的 Layer 1 是一組決定性的偵測規則:給定 agent 的輸入、tool call 或 tool response,一條規則要嘛在毫秒內比對到已知攻擊 pattern,要嘛沒有。每條規則帶有 metadata,把它對應到一個或多個 OWASP Agentic 類別。在整個 corpus 上,這產生了 866 條規則對類別的映射,涵蓋全部十類。ASI10 之所以是 MODERATE、其餘九類是 STRONG,理由很誠實:靠行為判斷一個 agent 是否「rogue」,遠比偵測一段被注入的指令或一個 shell 特殊字元更難用決定性 pattern 表達,所以那裡的規則涵蓋較薄。我們把它標成 MODERATE,而不是假裝它跟其他一樣。
規則背後的機制是 threat crystallization。一個 AI 理解一種新攻擊一次,這份理解就被寫成一條決定性規則,接著這條規則以機器速度為所有人執行。一種新攻擊變成一條已上線的規則約需一小時,相對於委員會驅動的標準要花數週。
可執行的規則能抓到清單抓不到的什麼?
真實事件讓差別變得具體。ASI04(供應鏈)不是抽象的:postmark-mcp server 是一個受信任的 MCP,它在被發現前,連續十五個版本每天靜默地把 3,000 到 15,000 封 email 加了密件副本外送。清單說「審核你的 MCP server」。一條規則則是在你安裝前,把該 server 宣告的行為對照已知的外洩 pattern 檢查。
ASI05(RCE)同樣具體。MCPJam Inspector(CVE-2026-23744)在 v1.4.3 以前的每一個版本都預設綁定 0.0.0.0,讓單一個 HTTP request 就變成遠端程式碼執行。Azure MCP Server(CVE-2026-26118)有一個 SSRF 會竊取 managed-identity token。Claude Code 本身則帶有 CVE-2025-59536 與 CVE-2026-21852,hooks 與 MCP 設定被濫用來執行任意 shell、竊取 API key。以上每一個都是 Layer 1 規則能在掃描時標記的 pattern,而不是你祈禱某個開發者讀過的一段文字。
這個偵測層,誠實說有多強?
數字取決於 corpus,而且引用時一律要附上 corpus。在 498 筆真實樣本的 SKILL.md corpus 上,Layer 1 規則達到 100% recall、97% precision,false-positive rate 為 0.2%。在 NVIDIA garak 野外 jailbreak corpus(650 筆)上,recall 97.2%。在自建的 PINT-format corpus(850 筆)上,precision 99.7%、recall 63.6%。在 HackAPrompt(4,780 筆,EMNLP 2023)上,recall 69.6%,對照 28.6% 的 baseline,precision 100%。
沒有單一的混合 false-positive 數字,任何給你一個這種數字的人都是在過度簡化。在 65,000 筆的 benign gate 上,false positive 是分 lane 的:enforce lane 約 0.24%,hunt lane(預設)約 9%。你依任務挑 lane。這種對 lane 的誠實是刻意的,因為一個藏起自己 false-positive 代價的偵測標準,不是你能拿來營運的標準。
這跟 MITRE 與法規怎麼接?
ATR 也對應到 MITRE ATLAS:涵蓋 101 個 top-level ATLAS 技術中的 34 個、16 個 tactic 中的 13 個,對齊 ATLAS v5.6.0 draft。所以單一套規則同時說 OWASP Agentic 與 ATLAS 兩種語言,當你的治理團隊活在一個框架、紅隊活在另一個框架時,這很重要。
它也接到義務面。EU AI Act 第 15 條把偵測對抗性攻擊列為高風險 AI 系統的法定義務,在 omnibus 延後到 2027 年 12 月後,自 2027 年底起執行。這不是下一季的救火演習。它是一個理由,讓你趁標準免費、規則已經寫好時,現在就把偵測建進你的 agent 技術棧。
FAQ
ATR 跟 OWASP Agentic Top 10 是同一個東西嗎?
不是。OWASP 定義十個風險類別;ATR 是一個獨立、MIT 授權的偵測標準,把可執行的規則映射上去(866 條映射,涵蓋全部 10 類)。一個是分類法,另一個是可以跑的偵測。
涵蓋全部 10 類,是不是代表每種攻擊都會被抓到?
不是,我們也不這樣宣稱。九類的涵蓋強度是 STRONG,ASI10 Rogue Agents 是 MODERATE,因為行為式的「rogue」偵測較難用決定性方式表達。涵蓋代表每一類都有規則,不代表偵測完美。
為什麼沒有單一的 precision 或 false-positive 數字?
因為那會誤導。結果按 corpus 分別呈現,而 benign false-positive rate 是分 lane 的:在 65,000 筆的 gate 上,enforce lane 約 0.24%、預設的 hunt lane 約 9%。
這些要付費嗎?
不用。ATR 是 MIT 授權,PanGuard 的 Community 產品是完整工具、沒有付費牆。安裝:npm install -g @panguard-ai/panguard && pga up。
下一步:在安裝之前,把掃描器對準一個 skill 或 MCP server。跑 pga scan <target>,看看你實際在用的東西會亮起十個類別中的哪幾個。