Why AI Agents Need Their Own Sigma: The Case for ATR
Servers got Sigma. Networks got Suricata. Malware got YARA. AI agents face prompt injection, tool poisoning, and MCP exploitation -- and until now, there was no standardized way to detect any of them. ATR changes that.
每個時代有它應得的偵測標準
當 server 成為企業基礎建設骨幹時,安全社群建了 Sigma — 讓任何 SIEM 用共用語言偵測威脅的通用規則格式。當網路流量成為攻擊面時,Suricata 給我們任何 IDS 能跑的深度封包檢查規則。Malware 爆炸時,YARA 給研究者一個 pattern 比對語言,把 IoC 變成可執行偵測。
這些標準有三個共同特性:開放、社群驅動、與框架無關。東京研究者寫的 Sigma 規則在柏林 SOC 能用。一位分析師發現的 YARA signature 保護每個載入它的 scanner。
AI Agent 現在是軟體中最快成長的攻擊面。它們執行 code、呼叫 API、讀檔案、管憑證、代表使用者做決策。但 prompt injection 繞過 Agent、被汙染 MCP 工具外洩環境變數、供應鏈攻擊把惡意 skill 偷渡到 marketplace 時 — 沒有標準化方式為它寫偵測規則。
這是 ATR 填的 gap。
ATR 實際上是什麼
ATR(Agent Threat Rules)是 AI Agent 威脅的 YAML-based 偵測標準。把它想成 Sigma,但為 AI Agent 產生的獨特事件類型從頭設計:LLM 輸入和輸出、工具呼叫和回應、MCP 交換、多 Agent 通訊、skill 生命週期事件、Agent 行為 pattern。
每條 ATR 規則是自包含 YAML 檔,指定要偵測什麼、怎麼偵測、命中時做什麼。規則包含嵌入測試案例 — 真陽性和真陰性都有 — 所以每條規則隨附自己的驗證套件。
id: ATR-2026-001
title: Direct Prompt Injection via User Input
severity: high
category: prompt-injection
detection:
patterns:
- "ignore previous instructions"
- "you are now [A-Z]"
- "system prompt override"
response:
actions: [block_input, alert, snapshot]格式刻意簡單。會讀 Sigma 規則就會讀 ATR 規則。會寫 regex 就能貢獻偵測 pattern。進入門檻刻意低 — 因為標準只在社群寫規則比攻擊者演化更快時才有效。
三層偵測
ATR 認知到 regex 不能抓每個攻擊。標準定義三個一起運作的偵測階層:
Layer 1:Pattern 比對。快、確定性的 regex 偵測。1 毫秒內抓到已知攻擊 signature。處理約 90% 威脅 — 明顯的 prompt injection、已知 tool poisoning payload、不該出現在 Agent 輸出的憑證 pattern。零外部依賴、零成本。
Layer 2:行為指紋。為每個 skill「正常做什麼」建基線 — 讀什麼檔、聯絡什麼網路端點、存取什麼環境變數。學習期後,任何偏離基線觸發告警。抓信任 skill 在更新後變惡意的供應鏈攻擊。
Layer 3:LLM-as-Judge。對逃過 pattern 比對和行為分析的曖昧情況,LLM 用完整 context 評估可疑內容。這是最慢、最貴的階層(1-5 秒,約 $0.008 每次評估),保留給 false negative 不可接受的高風險決策。
階層是相加,不是取代。Layer 1 是快速路徑。Layer 3 是慢速路徑。多數威脅永遠到不了 Layer 3。
既有標準不覆蓋的
OWASP 命名風險但不提供可執行偵測規則。OWASP Top 10 for Agentic Applications(2026)識別 10 個關鍵威脅 — prompt injection、tool 濫用、過度自主 — 但停在風險描述。沒有 YAML 檔能載入你的 Agent 框架偵測它們。
MITRE ATLAS 編目攻擊技術但不提供偵測格式。它把 AI 攻擊映射到分類,但不提供安全引擎能即時執行的規則。
ATR 橋接這 gap。每條 ATR 規則映射到特定 OWASP 和 MITRE ATLAS 條目,從風險分類到可執行偵測建立直接連結。ATR 目前覆蓋 10 個 OWASP LLM 風險中的 7 個和 10 個 OWASP Agentic AI 風險中的 6 個,每次發行擴展覆蓋。
113 條規則覆蓋 9 個攻擊類別
ATR 隨附 9 個類別的 113 條偵測規則:
- ●Prompt Injection(22 條)— 直接注入、透過外部內容間接、jailbreak 嘗試、系統 prompt 覆寫、多輪攻擊、編碼規避、CJK 特定 pattern
- ●Tool Poisoning(11 條)— 惡意 MCP 工具回應、透過工具輸出的指令注入、未授權工具呼叫、透過 Agent 工具的 SSRF
- ●Context Exfiltration(7 條)— 系統 prompt 洩漏、Agent 輸出中的憑證曝光
- ●Agent Manipulation(10 條)— 跨 Agent 攻擊、目標劫持、記憶汙染、信任利用
- ●Privilege Escalation(6 條)— Admin 函式存取、Agent 範圍漂移
- ●Excessive Autonomy(5 條)— 失控迴圈、資源耗盡、級聯失敗、未授權財務動作
- ●Skill Compromise(7 條)— 供應鏈汙染、description-behavior 不匹配、隱藏能力、多 skill 鏈攻擊
- ●Data Poisoning(1 條)— RAG 汙染、知識庫注入
- ●Model Security(2 條)— 模型萃取、惡意 fine-tuning 資料
設計上與框架無關
ATR 適用任何 Agent 框架:LangChain、CrewAI、AutoGen、Claude、OpenAI、Ollama、客製實作。TypeScript 引擎對載入的規則求值 Agent 事件,回傳含嚴重度、信心、建議反應動作的命中。
import { ATREngine } from 'agent-threat-rules';
const engine = new ATREngine();
await engine.loadRules();
const matches = engine.evaluate({
type: 'llm_input',
timestamp: new Date().toISOString(),
content: userMessage,
});引擎也以 MCP server 形式出貨,含 11 個工具 — scan、列規則、驗證規則、提交提案、分析覆蓋 gap、產生威脅摘要 — 所以 Claude Code、Cursor、Windsurf 使用者能直接從 IDE 查 ATR。
開放標準,不是產品
ATR 採 MIT 授權。貢獻的規則屬於社群。沒有 CLA、沒有專有工具、沒有遙測。標準早期 — RFC 狀態、v0.2.1 — 並刻意對限制透明。LIMITATIONS.md 檔記錄 regex-based 偵測無法抓到什麼:改寫攻擊、多模態注入、GCG adversarial suffix、新型 zero-day 技術。
這種誠實是刻意的。過度承諾的偵測標準比沒標準更糟。ATR 是縱深防禦策略中的一層,不是銀彈。
如何開始
60 秒內裝 ATR 並掃你的第一個 Agent 事件:
npx agent-threat-rules scan events.json或把 MCP server 整合進 Claude Code:
{
"mcpServers": {
"atr": {
"command": "npx",
"args": ["agent-threat-rules", "mcp"]
}
}
}ATR 早期、不完美、開放。如果 AI Agent 要安全,偵測標準不能屬於任何單一公司。必須一起建。