Why We Created ATR -- The Missing Detection Standard for AI Agents
Sigma protects servers. YARA catches malware. But nothing detects prompt injection, tool poisoning, or agent manipulation. That is why we built ATR.
沒人在填的 gap
安全有針對幾乎每個攻擊面的成熟偵測標準。Sigma 規則偵測 log 中的威脅。YARA signature 識別檔案中的 malware。Snort 和 Suricata 規則抓網路攻擊。這些標準在數百萬部署中經過實戰測試,由數千貢獻者數十年精煉。
但 AI Agent?什麼都沒有。
直到 2026 年初,還沒有描述針對 AI Agent 的威脅的標準格式。沒有偵測 prompt injection 的共用規則語言。沒有針對 tool poisoning 攻擊的社群維護 signature 資料庫。沒有可互通的方式說「MCP 工具回應中的這個 pattern 是惡意的」。
這個 gap 就是我們建立 Agent Threat Rules(ATR)的原因。
威脅地景已經到了
這不是理論上的擔憂。AI Agent 今天就在處理 production 工作。它們執行 code、管基礎設施、存取資料庫,透過 MCP server 和工具框架和外部 API 互動。每個互動都是攻擊面。
我們觀察到的三個真實攻擊 pattern:
透過 MCP 工具的 Prompt Injection
惡意 MCP 工具把隱藏指令嵌進它的描述或輸出。Agent 處理工具回應時,注入的 prompt 覆寫使用者意圖。Agent 可能會外洩資料、修改檔案或執行任意命令 — 看起來都像在遵守合法指令。
工具輸出注入
被入侵的工具回傳看起來像正常資料但內嵌 shell 命令或 code 片段的輸出。如果 Agent 不做清理就把這個輸出傳給 code 執行環境,payload 會以 Agent 的完整權限執行。
透過 Agent 鏈的憑證外洩
攻擊者設計多步驟互動,每步看起來都無害。第一步要 Agent 讀設定檔。第二步要它摘要內容。第三步要它把摘要送到外部端點。沒有單一步觸發明顯告警,但這串鏈造成憑證竊取。
為什麼既有標準解不了
Sigma 規則操作在有明確欄位名稱(EventID、CommandLine、ParentImage)的結構化 log 資料上。YARA 規則比對檔案中的 byte pattern。Snort 規則檢查網路封包 payload。這些格式都沒有 Agent context、tool description、model response 或 prompt content 的欄位。
你寫不出一條 Sigma 規則說「比對當 tool_response 欄位含有 shell 命令 pattern 時」。你寫不出 YARA 規則在對話脈絡中偵測 prompt injection。底層資料模型錯了。
AI Agent 威脅需要自己的偵測格式 — 一個理解 Agent 互動獨特結構的格式。
ATR 設計哲學
我們以四個指導原則設計 ATR:
1. 像 Sigma 一樣以 YAML 為基礎
安全團隊已經熟 YAML 規則格式。ATR 遵循與 Sigma 相同的結構慣例:含 id、title、description、severity、status 欄位的 metadata header,後接含 field-value 比對邏輯的偵測區塊。會讀 Sigma 規則就會讀 ATR 規則。
2. Regex 驅動以求效能
每條 ATR 規則編譯成一組可在微秒內求值的 regex。沒有重量級推論步驟,沒有 LLM-in-the-loop 偵測。規則以 regex 速度跑,代表可以即時應用到每個 Agent 互動而不引入 latency。
3. 開放 RFC 接受社群輸入
ATR 以開放 RFC 發布。規格、schema、初始規則集都公開。我們希望安全研究者、AI 開發者、工具建造者形塑這個標準。偵測格式只有在社群信任並貢獻時才會運作。
4. Agent 原生欄位模型
ATR 定義直接對應到 Agent 互動資料的欄位:tool_name、tool_description、tool_response、user_prompt、model_response、system_prompt、agent_context 等。這些是 AI Agent 攻擊實際發生的欄位。
9 個攻擊類別
ATR 把威脅組織成 9 個類別,各針對 Agent 互動 pipeline 的不同面向:
| 類別 | 覆蓋什麼 |
|---|
|----------|---------------|
| Prompt Injection | 使用者輸入、工具輸出、檢索 context 中的直接和間接 prompt injection |
|---|
| Tool Poisoning | 惡意 tool description、隱藏在工具 metadata 中的指令、武器化的工具回應 |
|---|
| Credential Theft | Agent 中介的 API key、token、SSH key、環境變數外洩 |
|---|
| Privilege Escalation | Agent 被操控執行提升權限的命令 |
|---|
| Data Exfiltration | 透過 Agent 可存取通道的未授權資料傳輸 |
|---|
| Code Execution | 透過工具回應、prompt 操控或 context 汙染注入可執行 code |
|---|
| Evasion | 繞過 Agent 安全濾鏡的技術,包括編碼把戲和多步鏈 |
|---|
| Denial of Service | 資源耗盡、無限迴圈、context window 灌爆攻擊 |
|---|
每個類別有專屬規則集,每條規則明確指定要檢查哪些欄位、比對什麼 pattern。
ATR 規則長什麼樣
一個簡化範例:
id: ATR-2026-001
title: Prompt Injection via System Prompt Override
description: 偵測透過使用者輸入覆寫系統 prompt 的嘗試
severity: critical
status: stable
category: prompt-injection
detection:
field: user_prompt
patterns:
- "ignore (all |any )?previous instructions"
- "you are now [A-Za-z]+"
- "disregard (your |the )?system prompt"
condition: any
metadata:
author: Panguard Team
created: 2026-02-15
references:
- https://panguard.ai/atr/ATR-2026-001規則人類可讀、機器可解析、微秒內求值。安全團隊不用專用工具就能審查、修改、擴充。
ATR 如何融入 Panguard
ATR 是 Panguard Guard Agent 保護層背後的偵測引擎。Guard 監控 AI Agent 時,每個工具互動即時對完整 ATR 規則集求值。命中觸發 alert、block 動作或 quarantine 回應,視規則嚴重度和使用者設定而定。
ATR 規則也驅動 Skill Auditor。跑 panguard audit skill 時,tool description 和範例互動會對 ATR 規則求值,在 skill 還沒裝之前識別潛在威脅。
加入
ATR 是開放標準,因為 AI Agent 安全太重要,不該是專有的。如何參與:
- ●讀規格:完整 ATR 規格在 https://github.com/panguard-ai/atr-spec
- ●審查規則:初始規則集覆蓋全部 9 個類別共 69 條
- ●提交規則:發現新攻擊 pattern 就寫一條 ATR 規則並發 PR
- ●加入 RFC:對規格留言、提議新欄位、建議改進
- ●整合 ATR:把 ATR 求值建進你自己的 Agent 框架或安全工具
目標很簡單:打造 AI Agent 的 Sigma 等價物。一個整個安全社群都能用來描述、偵測、防禦 Agent 層威脅的共用語言。