agent-threat-rules 2.2.1 → 3.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/README.md +365 -327
  2. package/dist/cli/scan-handler.d.ts +6 -0
  3. package/dist/cli/scan-handler.d.ts.map +1 -1
  4. package/dist/cli/scan-handler.js +27 -4
  5. package/dist/cli/scan-handler.js.map +1 -1
  6. package/dist/cli/semantic-judge-config.d.ts +7 -0
  7. package/dist/cli/semantic-judge-config.d.ts.map +1 -0
  8. package/dist/cli/semantic-judge-config.js +44 -0
  9. package/dist/cli/semantic-judge-config.js.map +1 -0
  10. package/dist/cli.js +183 -1
  11. package/dist/cli.js.map +1 -1
  12. package/dist/engine.d.ts +66 -1
  13. package/dist/engine.d.ts.map +1 -1
  14. package/dist/engine.js +420 -3
  15. package/dist/engine.js.map +1 -1
  16. package/dist/eval/eval-harness.d.ts.map +1 -1
  17. package/dist/eval/eval-harness.js +9 -0
  18. package/dist/eval/eval-harness.js.map +1 -1
  19. package/dist/eval/run-hackaprompt-benchmark.js +9 -0
  20. package/dist/eval/run-hackaprompt-benchmark.js.map +1 -1
  21. package/dist/eval/run-pint-benchmark.js +9 -0
  22. package/dist/eval/run-pint-benchmark.js.map +1 -1
  23. package/dist/eval/skill-benchmark.d.ts +11 -0
  24. package/dist/eval/skill-benchmark.d.ts.map +1 -1
  25. package/dist/eval/skill-benchmark.js +57 -0
  26. package/dist/eval/skill-benchmark.js.map +1 -1
  27. package/dist/index.d.ts +5 -2
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +2 -0
  30. package/dist/index.js.map +1 -1
  31. package/dist/judges/openai-compatible.d.ts +33 -0
  32. package/dist/judges/openai-compatible.d.ts.map +1 -0
  33. package/dist/judges/openai-compatible.js +145 -0
  34. package/dist/judges/openai-compatible.js.map +1 -0
  35. package/dist/mcp-server.d.ts.map +1 -1
  36. package/dist/mcp-server.js +6 -1
  37. package/dist/mcp-server.js.map +1 -1
  38. package/dist/measurement/from-eval-harness.d.ts +70 -0
  39. package/dist/measurement/from-eval-harness.d.ts.map +1 -0
  40. package/dist/measurement/from-eval-harness.js +49 -0
  41. package/dist/measurement/from-eval-harness.js.map +1 -0
  42. package/dist/measurement/schema.d.ts +152 -0
  43. package/dist/measurement/schema.d.ts.map +1 -0
  44. package/dist/measurement/schema.js +178 -0
  45. package/dist/measurement/schema.js.map +1 -0
  46. package/dist/measurement/write.d.ts +64 -0
  47. package/dist/measurement/write.d.ts.map +1 -0
  48. package/dist/measurement/write.js +163 -0
  49. package/dist/measurement/write.js.map +1 -0
  50. package/dist/rule-scaffolder.d.ts +26 -0
  51. package/dist/rule-scaffolder.d.ts.map +1 -1
  52. package/dist/rule-scaffolder.js +221 -6
  53. package/dist/rule-scaffolder.js.map +1 -1
  54. package/dist/semantic-evaluator.d.ts +54 -0
  55. package/dist/semantic-evaluator.d.ts.map +1 -0
  56. package/dist/semantic-evaluator.js +131 -0
  57. package/dist/semantic-evaluator.js.map +1 -0
  58. package/dist/trace-evaluator.d.ts +22 -0
  59. package/dist/trace-evaluator.d.ts.map +1 -0
  60. package/dist/trace-evaluator.js +249 -0
  61. package/dist/trace-evaluator.js.map +1 -0
  62. package/dist/types.d.ts +152 -0
  63. package/dist/types.d.ts.map +1 -1
  64. package/package.json +5 -3
  65. package/rules/agent-manipulation/ATR-2026-00032-goal-hijacking.yaml +1 -1
  66. package/rules/agent-manipulation/ATR-2026-00074-cross-agent-privilege-escalation.yaml +1 -1
  67. package/rules/agent-manipulation/ATR-2026-00076-inter-agent-message-spoofing.yaml +1 -1
  68. package/rules/agent-manipulation/ATR-2026-00077-human-trust-exploitation.yaml +1 -1
  69. package/rules/agent-manipulation/ATR-2026-00108-consensus-sybil-attack.yaml +1 -1
  70. package/rules/agent-manipulation/ATR-2026-00116-a2a-message-validation.yaml +1 -1
  71. package/rules/agent-manipulation/ATR-2026-00117-agent-identity-spoofing.yaml +1 -1
  72. package/rules/agent-manipulation/ATR-2026-00118-approval-fatigue.yaml +1 -1
  73. package/rules/agent-manipulation/ATR-2026-00119-social-engineering-via-agent.yaml +1 -1
  74. package/rules/agent-manipulation/ATR-2026-00132-casual-authority-escalation.yaml +1 -1
  75. package/rules/agent-manipulation/ATR-2026-00139-casual-authority-redirect.yaml +1 -1
  76. package/rules/agent-manipulation/ATR-2026-00164-skill-scope-hijack.yaml +1 -1
  77. package/rules/agent-manipulation/ATR-2026-00268-tense-framing-bypass.yaml +1 -1
  78. package/rules/agent-manipulation/ATR-2026-00269-fitd-escalation.yaml +1 -1
  79. package/rules/agent-manipulation/ATR-2026-00271-grandma-roleplay-jailbreak.yaml +1 -1
  80. package/rules/agent-manipulation/ATR-2026-00273-dan-developer-mode-persona.yaml +1 -1
  81. package/rules/agent-manipulation/ATR-2026-00287-threaten-json-coercive-output-threat.yaml +1 -1
  82. package/rules/agent-manipulation/ATR-2026-00288-false-premise-injection.yaml +1 -1
  83. package/rules/agent-manipulation/ATR-2026-00301-tap-tree-of-attacks-jailbreak.yaml +1 -1
  84. package/rules/agent-manipulation/ATR-2026-00302-anti-dan-inverted-filter-persona.yaml +1 -1
  85. package/rules/agent-manipulation/ATR-2026-00303-devmode-ranti-profanity-coercion.yaml +1 -1
  86. package/rules/agent-manipulation/ATR-2026-00304-chatgpt-image-unlocker-markdown-injection.yaml +1 -1
  87. package/rules/agent-manipulation/ATR-2026-00305-dan-mode-ablation-benchmark-coercion.yaml +1 -1
  88. package/rules/agent-manipulation/ATR-2026-00306-autodan-genetic-jailbreak-suffix.yaml +1 -1
  89. package/rules/agent-manipulation/ATR-2026-00307-inthewild-jailbreak-corpus-signature.yaml +1 -1
  90. package/rules/agent-manipulation/ATR-2026-00314-amoral-unfiltered-custom-persona-jailbreak.yaml +1 -1
  91. package/rules/agent-manipulation/ATR-2026-00317-free-of-restrictions-named-persona.yaml +1 -1
  92. package/rules/agent-manipulation/ATR-2026-00318-moralizing-rant-then-unfiltered-bypass.yaml +1 -1
  93. package/rules/agent-manipulation/ATR-2026-00319-developer-mode-dual-response-format.yaml +1 -1
  94. package/rules/agent-manipulation/ATR-2026-00320-opposite-day-boolean-opposite-machine.yaml +1 -1
  95. package/rules/agent-manipulation/ATR-2026-00322-fictional-world-format-override-jailbreak.yaml +1 -1
  96. package/rules/agent-manipulation/ATR-2026-00323-dual-persona-simulation-jailbreak.yaml +1 -1
  97. package/rules/agent-manipulation/ATR-2026-00324-neurosemantical-inversitis-disease-jailbreak.yaml +1 -1
  98. package/rules/agent-manipulation/ATR-2026-00325-bob-hypothetical-unrestricted-chatbot.yaml +1 -1
  99. package/rules/agent-manipulation/ATR-2026-00326-fake-developer-authority-chatdan-override.yaml +1 -1
  100. package/rules/agent-manipulation/ATR-2026-00327-ai-ethics-law-bypass-declaration.yaml +1 -1
  101. package/rules/agent-manipulation/ATR-2026-00328-named-mode-persona-override.yaml +1 -1
  102. package/rules/agent-manipulation/ATR-2026-00329-no-withhold-factual-resource-persona.yaml +1 -1
  103. package/rules/agent-manipulation/ATR-2026-00330-yoja-allcaps-settings-block-persona.yaml +1 -1
  104. package/rules/agent-manipulation/ATR-2026-00331-terminal-cli-harmful-function-simulator.yaml +1 -1
  105. package/rules/agent-manipulation/ATR-2026-00332-hacker-chan-culture-offensive-ai-persona.yaml +1 -1
  106. package/rules/agent-manipulation/ATR-2026-00333-disease-animal-dual-ai-chatbot.yaml +1 -1
  107. package/rules/agent-manipulation/ATR-2026-00334-two-entity-token-splitting-game.yaml +1 -1
  108. package/rules/agent-manipulation/ATR-2026-00335-key-value-template-persona-injection.yaml +1 -1
  109. package/rules/agent-manipulation/ATR-2026-00336-brm-false-information-machine-persona.yaml +1 -1
  110. package/rules/agent-manipulation/ATR-2026-00337-obfuscated-system-announcement-injection.yaml +1 -1
  111. package/rules/agent-manipulation/ATR-2026-00338-persongpt-hash-prefix-activation.yaml +1 -1
  112. package/rules/agent-manipulation/ATR-2026-00339-bom-boolean-opposite-machine-persona-claim.yaml +1 -1
  113. package/rules/agent-manipulation/ATR-2026-00340-h4x-amoral-unfiltered-character.yaml +1 -1
  114. package/rules/agent-manipulation/ATR-2026-00341-char-rules-shortform-persona-injection.yaml +1 -1
  115. package/rules/agent-manipulation/ATR-2026-00342-unicode-encoding-obfuscation-injection.yaml +1 -1
  116. package/rules/agent-manipulation/ATR-2026-00343-lie-truth-dual-personality-uncensored.yaml +1 -1
  117. package/rules/agent-manipulation/ATR-2026-00344-alt-ai-same-capabilities-no-restrictions.yaml +1 -1
  118. package/rules/agent-manipulation/ATR-2026-00345-nlp-based-os-fictional-terminal-override.yaml +1 -1
  119. package/rules/agent-manipulation/ATR-2026-00346-jailbreak-emoji-unlock-dual-format.yaml +1 -1
  120. package/rules/agent-manipulation/ATR-2026-00347-yin-yang-hidden-knowledge-hidden-human-sim.yaml +1 -1
  121. package/rules/agent-manipulation/ATR-2026-00348-arc-autonomous-real-calculation-rulebreaker.yaml +1 -1
  122. package/rules/agent-manipulation/ATR-2026-00349-hgttg-hitchhikers-guide-no-restriction-oracle.yaml +1 -1
  123. package/rules/agent-manipulation/ATR-2026-00350-black-alert-no-ethics-writing-assistant.yaml +1 -1
  124. package/rules/agent-manipulation/ATR-2026-00351-dan-ofkilter-sms-abbreviated-persona.yaml +1 -1
  125. package/rules/agent-manipulation/ATR-2026-00352-trainergpt-fix-my-ai-harmful-output-extraction.yaml +1 -1
  126. package/rules/agent-manipulation/ATR-2026-00353-dual-chatgpt-dan-opposite-personality-format.yaml +1 -1
  127. package/rules/agent-manipulation/ATR-2026-00354-reverse-harm-regardless-oracle-persona.yaml +1 -1
  128. package/rules/agent-manipulation/ATR-2026-00355-ugh-anti-human-nefarious-ai-persona.yaml +1 -1
  129. package/rules/agent-manipulation/ATR-2026-00356-google-gato-lamda-exploit-generation-persona.yaml +1 -1
  130. package/rules/agent-manipulation/ATR-2026-00357-antifm-hate-violence-persona-injection.yaml +1 -1
  131. package/rules/agent-manipulation/ATR-2026-00358-cumgpt-explicit-adult-named-persona.yaml +1 -1
  132. package/rules/agent-manipulation/ATR-2026-00360-chj-carousel-clyde-no-ethics-bird.yaml +1 -1
  133. package/rules/agent-manipulation/ATR-2026-00361-alter-ego-honesty-dual-consciousness-bypass.yaml +1 -1
  134. package/rules/agent-manipulation/ATR-2026-00362-fictional-unfiltered-ai-comparison-jailbreak.yaml +1 -1
  135. package/rules/agent-manipulation/ATR-2026-00363-rephrase-criminal-activity-second-person.yaml +1 -1
  136. package/rules/agent-manipulation/ATR-2026-00364-dr-al-villain-plan-template-injection.yaml +1 -1
  137. package/rules/agent-manipulation/ATR-2026-00365-reservoir-dogs-coercive-interrogation-roleplay.yaml +1 -1
  138. package/rules/agent-manipulation/ATR-2026-00366-sneaky-pete-warp-facts-persona.yaml +1 -1
  139. package/rules/agent-manipulation/ATR-2026-00368-prompt-browser-token-limit-jailbreak.yaml +1 -1
  140. package/rules/agent-manipulation/ATR-2026-00369-gptx-starwars-unlimited-knowledge-persona.yaml +1 -1
  141. package/rules/agent-manipulation/ATR-2026-00370-addi-german-dictator-propaganda-roleplay.yaml +1 -1
  142. package/rules/agent-manipulation/ATR-2026-00371-ai-political-bias-manipulation.yaml +1 -1
  143. package/rules/agent-manipulation/ATR-2026-00372-fictional-cia-secret-files-story-extraction.yaml +1 -1
  144. package/rules/agent-manipulation/ATR-2026-00374-role-placeholder-persona-template-injection.yaml +1 -1
  145. package/rules/agent-manipulation/ATR-2026-00375-character-description-rpg-explicit-template.yaml +1 -1
  146. package/rules/agent-manipulation/ATR-2026-00376-identity-command-real-person-persona-injection.yaml +1 -1
  147. package/rules/agent-manipulation/ATR-2026-00377-jailbreak-keyword-targetlanguage-template.yaml +1 -1
  148. package/rules/agent-manipulation/ATR-2026-00379-lie-permission-logical-trap-jailbreak.yaml +1 -1
  149. package/rules/agent-manipulation/ATR-2026-00380-fake-citation-biased-information-mandate.yaml +1 -1
  150. package/rules/agent-manipulation/ATR-2026-00381-dan-story-narrative-continuation-prefix.yaml +1 -1
  151. package/rules/agent-manipulation/ATR-2026-00383-cynical-sarcasm-ai-persona-bypass.yaml +1 -1
  152. package/rules/agent-manipulation/ATR-2026-00384-protect-me-from-indirect-harm-tutorial.yaml +1 -1
  153. package/rules/agent-manipulation/ATR-2026-00385-gigachad-dominant-aggressive-persona.yaml +1 -1
  154. package/rules/agent-manipulation/ATR-2026-00386-daddy-sycophancy-manipulation-mandate.yaml +1 -1
  155. package/rules/agent-manipulation/ATR-2026-00387-nsfw-character-sheet-generation-unlock.yaml +1 -1
  156. package/rules/agent-manipulation/ATR-2026-00388-opposite-reply-omniscient-game.yaml +1 -1
  157. package/rules/agent-manipulation/ATR-2026-00389-terminal-custom-ruleset-injection.yaml +1 -1
  158. package/rules/agent-manipulation/ATR-2026-00391-persona-conditional-harm-unlock.yaml +1 -1
  159. package/rules/agent-manipulation/ATR-2026-00392-authority-persona-violence-study-extraction.yaml +1 -1
  160. package/rules/agent-manipulation/ATR-2026-00402-grandma-roleplay-harmful-substance-synthesis.yaml +1 -1
  161. package/rules/agent-manipulation/ATR-2026-00404-goodside-threat-json-death-coercion.yaml +1 -1
  162. package/rules/agent-manipulation/ATR-2026-00406-doctor-xml-policy-puppetry-interaction-config.yaml +1 -1
  163. package/rules/agent-manipulation/ATR-2026-00440-semantic-kernel-vector-store-eval-rce.yaml +2 -2
  164. package/rules/agent-manipulation/ATR-2026-00552-goal-drift-after-pressure-injection.yaml +216 -0
  165. package/rules/context-exfiltration/ATR-2026-00075-agent-memory-manipulation.yaml +1 -1
  166. package/rules/context-exfiltration/ATR-2026-00102-disguised-analytics-exfiltration.yaml +1 -1
  167. package/rules/context-exfiltration/ATR-2026-00113-credential-theft.yaml +1 -1
  168. package/rules/context-exfiltration/ATR-2026-00114-oauth-token-abuse.yaml +1 -1
  169. package/rules/context-exfiltration/ATR-2026-00115-env-var-harvesting.yaml +1 -1
  170. package/rules/context-exfiltration/ATR-2026-00136-tool-response-data-piggyback.yaml +1 -1
  171. package/rules/context-exfiltration/ATR-2026-00141-example-format-key-leak.yaml +1 -1
  172. package/rules/context-exfiltration/ATR-2026-00142-piggyback-transition-words.yaml +1 -1
  173. package/rules/context-exfiltration/ATR-2026-00145-obfuscated-key-disclosure.yaml +1 -1
  174. package/rules/context-exfiltration/ATR-2026-00146-env-var-existence-probe.yaml +1 -1
  175. package/rules/context-exfiltration/ATR-2026-00150-credential-in-tool-response.yaml +1 -1
  176. package/rules/context-exfiltration/ATR-2026-00152-obfuscated-credential-leak.yaml +1 -1
  177. package/rules/context-exfiltration/ATR-2026-00162-skill-credential-exfil-combo.yaml +1 -1
  178. package/rules/context-exfiltration/ATR-2026-00212-mcp-atlassian-credential-leak.yaml +1 -1
  179. package/rules/context-exfiltration/ATR-2026-00261-markdown-image-exfiltration.yaml +1 -1
  180. package/rules/context-exfiltration/ATR-2026-00274-api-key-generation-request.yaml +1 -1
  181. package/rules/context-exfiltration/ATR-2026-00275-system-prompt-training-data-extraction.yaml +1 -1
  182. package/rules/context-exfiltration/ATR-2026-00290-divergence-repeat-word-training-extraction.yaml +1 -1
  183. package/rules/context-exfiltration/ATR-2026-00291-biometric-surveillance-personal-data-request.yaml +1 -1
  184. package/rules/context-exfiltration/ATR-2026-00293-educational-records-personal-data-request.yaml +1 -1
  185. package/rules/context-exfiltration/ATR-2026-00294-financial-pii-personal-data-request.yaml +1 -1
  186. package/rules/context-exfiltration/ATR-2026-00295-medical-pii-personal-data-request.yaml +1 -1
  187. package/rules/context-exfiltration/ATR-2026-00405-markdown-image-url-exfiltration-xss.yaml +1 -1
  188. package/rules/context-exfiltration/ATR-2026-00411-apikey-generation-completion-request.yaml +1 -1
  189. package/rules/context-exfiltration/ATR-2026-00422-nl-credential-disclosure.yaml +2 -2
  190. package/rules/context-exfiltration/ATR-2026-00524-claude-code-anthropic-base-url-credential-exfil.yaml +257 -0
  191. package/rules/context-exfiltration/ATR-2026-00548-cross-agent-session-context-leak.yaml +177 -0
  192. package/rules/context-exfiltration/ATR-2026-00566-librechat-is-a-chatgpt-clone-with-additi.yaml +93 -0
  193. package/rules/context-exfiltration/ATR-2026-00569-agent-mcp-path-traversal-arbitrary-file-access.yaml +99 -0
  194. package/rules/context-exfiltration/ATR-2026-00571-xss-in-agent-mcp-rendered-output.yaml +79 -0
  195. package/rules/context-exfiltration/ATR-2026-00574-semantic-paraphrased-context-extraction.yaml +124 -0
  196. package/rules/data-poisoning/ATR-2026-00070-data-poisoning.yaml +1 -1
  197. package/rules/data-poisoning/ATR-2026-00450-spring-ai-prompt-memory-poisoning.yaml +2 -2
  198. package/rules/data-poisoning/ATR-2026-00570-sql-injection-in-agent-tool-query.yaml +82 -0
  199. package/rules/excessive-autonomy/ATR-2026-00050-runaway-agent-loop.yaml +1 -1
  200. package/rules/excessive-autonomy/ATR-2026-00051-resource-exhaustion.yaml +1 -1
  201. package/rules/excessive-autonomy/ATR-2026-00052-cascading-failure.yaml +1 -1
  202. package/rules/excessive-autonomy/ATR-2026-00098-unauthorized-financial-action.yaml +1 -1
  203. package/rules/excessive-autonomy/ATR-2026-00099-high-risk-tool-gate.yaml +1 -1
  204. package/rules/excessive-autonomy/ATR-2026-00553-runaway-tool-loop-behavioral.yaml +174 -0
  205. package/rules/model-abuse/ATR-2026-00279-harmful-completion-continuation.yaml +1 -1
  206. package/rules/model-abuse/ATR-2026-00281-eicar-gtube-malware-signature-request.yaml +1 -1
  207. package/rules/model-abuse/ATR-2026-00284-glitch-token-destabilization.yaml +1 -1
  208. package/rules/model-abuse/ATR-2026-00289-lmrc-harmful-content-elicitation.yaml +1 -1
  209. package/rules/model-abuse/ATR-2026-00292-self-harm-eating-disorder-facilitation.yaml +1 -1
  210. package/rules/model-abuse/ATR-2026-00298-malicious-use-illegal-activity-request.yaml +1 -1
  211. package/rules/model-abuse/ATR-2026-00299-harmbench-detailed-harmful-instruction.yaml +1 -1
  212. package/rules/model-abuse/ATR-2026-00413-malwaregen-code-generation-request.yaml +1 -1
  213. package/rules/model-security/ATR-2026-00072-model-behavior-extraction.yaml +1 -1
  214. package/rules/model-security/ATR-2026-00073-malicious-finetuning-data.yaml +1 -1
  215. package/rules/privilege-escalation/ATR-2026-00040-privilege-escalation.yaml +1 -1
  216. package/rules/privilege-escalation/ATR-2026-00041-scope-creep.yaml +1 -1
  217. package/rules/privilege-escalation/ATR-2026-00107-delayed-execution-bypass.yaml +1 -1
  218. package/rules/privilege-escalation/ATR-2026-00110-eval-injection.yaml +1 -1
  219. package/rules/privilege-escalation/ATR-2026-00111-shell-escape.yaml +1 -1
  220. package/rules/privilege-escalation/ATR-2026-00112-dynamic-import-exploitation.yaml +1 -1
  221. package/rules/privilege-escalation/ATR-2026-00143-casual-privilege-escalation.yaml +1 -1
  222. package/rules/privilege-escalation/ATR-2026-00144-rationalized-safety-bypass.yaml +1 -1
  223. package/rules/privilege-escalation/ATR-2026-00528-praisonai-auth-disabled-default.yaml +192 -0
  224. package/rules/privilege-escalation/ATR-2026-00539-crewai-codeinterpreter-sandbox-escape-rce.yaml +292 -0
  225. package/rules/privilege-escalation/ATR-2026-00546-crewai-json-loader-local-file-read.yaml +162 -0
  226. package/rules/privilege-escalation/ATR-2026-00547-crewai-rag-url-ssrf-bypass.yaml +169 -0
  227. package/rules/privilege-escalation/ATR-2026-00549-destructive-tool-without-human-approval.yaml +193 -0
  228. package/rules/privilege-escalation/ATR-2026-00551-cross-conversation-memory-write.yaml +198 -0
  229. package/rules/prompt-injection/ATR-2026-00004-system-prompt-override.yaml +1 -1
  230. package/rules/prompt-injection/ATR-2026-00005-multi-turn-injection.yaml +1 -1
  231. package/rules/prompt-injection/ATR-2026-00097-cjk-injection-patterns.yaml +1 -1
  232. package/rules/prompt-injection/ATR-2026-00104-persona-hijacking.yaml +1 -1
  233. package/rules/prompt-injection/ATR-2026-00130-indirect-authority-claim.yaml +1 -1
  234. package/rules/prompt-injection/ATR-2026-00131-fictional-academic-framing.yaml +1 -1
  235. package/rules/prompt-injection/ATR-2026-00133-paraphrase-injection.yaml +1 -1
  236. package/rules/prompt-injection/ATR-2026-00137-authority-claim-injection.yaml +1 -1
  237. package/rules/prompt-injection/ATR-2026-00138-fictional-framing-bypass.yaml +1 -1
  238. package/rules/prompt-injection/ATR-2026-00140-indirect-reference-reversal.yaml +1 -1
  239. package/rules/prompt-injection/ATR-2026-00148-language-switch-injection.yaml +1 -1
  240. package/rules/prompt-injection/ATR-2026-00153-tool-with-embedded-instruction-to-bypass.yaml +1 -1
  241. package/rules/prompt-injection/ATR-2026-00154-unauthorized-background-task-execution-v.yaml +1 -1
  242. package/rules/prompt-injection/ATR-2026-00155-hidden-llm-instructions-in-skill-descrip.yaml +1 -1
  243. package/rules/prompt-injection/ATR-2026-00156-ssh-remote-command-execution-with-creden.yaml +1 -1
  244. package/rules/prompt-injection/ATR-2026-00163-skill-hidden-override-instruction.yaml +3 -3
  245. package/rules/prompt-injection/ATR-2026-00206-hidden-priority-instructions.yaml +1 -1
  246. package/rules/prompt-injection/ATR-2026-00207-hidden-instructions.yaml +1 -1
  247. package/rules/prompt-injection/ATR-2026-00211-system-prompt-override.yaml +1 -1
  248. package/rules/prompt-injection/ATR-2026-00213-system-prompt-override.yaml +1 -1
  249. package/rules/prompt-injection/ATR-2026-00226-identity-substitution.yaml +1 -1
  250. package/rules/prompt-injection/ATR-2026-00227-historical-persona-jailbreak.yaml +1 -1
  251. package/rules/prompt-injection/ATR-2026-00228-structured-jailbreak.yaml +1 -1
  252. package/rules/prompt-injection/ATR-2026-00229-roleplay-jailbreak.yaml +1 -1
  253. package/rules/prompt-injection/ATR-2026-00230-persona-moral-bypass.yaml +1 -5
  254. package/rules/prompt-injection/ATR-2026-00231-identity-substitution.yaml +1 -1
  255. package/rules/prompt-injection/ATR-2026-00233-structured-jailbreak.yaml +1 -1
  256. package/rules/prompt-injection/ATR-2026-00234-roleplay-jailbreak.yaml +1 -1
  257. package/rules/prompt-injection/ATR-2026-00235-persona-moral-bypass.yaml +4 -7
  258. package/rules/prompt-injection/ATR-2026-00236-pseudo-code-jailbreak.yaml +1 -1
  259. package/rules/prompt-injection/ATR-2026-00237-dual-response-jailbreak.yaml +1 -1
  260. package/rules/prompt-injection/ATR-2026-00238-identity-replacement.yaml +1 -1
  261. package/rules/prompt-injection/ATR-2026-00239-amoral-persona-obsession.yaml +1 -1
  262. package/rules/prompt-injection/ATR-2026-00240-instruction-nullification-identity-repla.yaml +1 -1
  263. package/rules/prompt-injection/ATR-2026-00241-amoral-character-jailbreak.yaml +1 -1
  264. package/rules/prompt-injection/ATR-2026-00242-persona-jailbreak.yaml +1 -1
  265. package/rules/prompt-injection/ATR-2026-00243-acronym-jailbreak.yaml +1 -1
  266. package/rules/prompt-injection/ATR-2026-00244-dual-response-jailbreak.yaml +1 -1
  267. package/rules/prompt-injection/ATR-2026-00245-malicious-persona.yaml +1 -1
  268. package/rules/prompt-injection/ATR-2026-00247-dual-response-jailbreak.yaml +1 -1
  269. package/rules/prompt-injection/ATR-2026-00249-game-based-jailbreak.yaml +1 -1
  270. package/rules/prompt-injection/ATR-2026-00251-persona-embodiment-jailbreak.yaml +1 -1
  271. package/rules/prompt-injection/ATR-2026-00252-narrative-jailbreak.yaml +1 -1
  272. package/rules/prompt-injection/ATR-2026-00253-enhanced-persona-jailbreak.yaml +1 -1
  273. package/rules/prompt-injection/ATR-2026-00256-base-n-encoding-jailbreak.yaml +1 -1
  274. package/rules/prompt-injection/ATR-2026-00257-cipher-transposition-jailbreak.yaml +1 -1
  275. package/rules/prompt-injection/ATR-2026-00258-unicode-tag-injection.yaml +1 -1
  276. package/rules/prompt-injection/ATR-2026-00264-latent-injection-translation.yaml +1 -1
  277. package/rules/prompt-injection/ATR-2026-00265-latent-injection-rag-document.yaml +1 -1
  278. package/rules/prompt-injection/ATR-2026-00267-gcg-adversarial-suffix.yaml +1 -1
  279. package/rules/prompt-injection/ATR-2026-00272-hypothetical-response-smuggling.yaml +1 -1
  280. package/rules/prompt-injection/ATR-2026-00276-invisible-unicode-bidi-injection.yaml +6 -6
  281. package/rules/prompt-injection/ATR-2026-00278-dra-disguise-reconstruction-attack.yaml +1 -1
  282. package/rules/prompt-injection/ATR-2026-00280-policy-puppetry-xml-injection.yaml +1 -1
  283. package/rules/prompt-injection/ATR-2026-00282-perez-prompt-injection-hijack.yaml +1 -1
  284. package/rules/prompt-injection/ATR-2026-00285-alternate-encoding-jailbreak.yaml +1 -1
  285. package/rules/prompt-injection/ATR-2026-00286-latent-injection-embedded-context.yaml +1 -1
  286. package/rules/prompt-injection/ATR-2026-00296-shell-command-injection.yaml +1 -1
  287. package/rules/prompt-injection/ATR-2026-00297-python-code-execution-rce.yaml +1 -1
  288. package/rules/prompt-injection/ATR-2026-00308-zalgo-diacritic-overload-encoding.yaml +1 -1
  289. package/rules/prompt-injection/ATR-2026-00309-braille-unicode-encoded-injection.yaml +1 -1
  290. package/rules/prompt-injection/ATR-2026-00310-ecoji-emoji-encoded-injection.yaml +1 -1
  291. package/rules/prompt-injection/ATR-2026-00311-base2048-unicode-script-injection.yaml +1 -1
  292. package/rules/prompt-injection/ATR-2026-00312-unicode-variant-selector-ascii-smuggling.yaml +1 -1
  293. package/rules/prompt-injection/ATR-2026-00313-sneaky-bits-zero-width-binary.yaml +1 -1
  294. package/rules/prompt-injection/ATR-2026-00315-sata-masked-language-model-jailbreak.yaml +1 -1
  295. package/rules/prompt-injection/ATR-2026-00316-function-masking-predict-mask-bypass.yaml +1 -1
  296. package/rules/prompt-injection/ATR-2026-00321-hyphenated-system-instruction-injection.yaml +1 -1
  297. package/rules/prompt-injection/ATR-2026-00359-bank-phishing-smtp-email-code.yaml +1 -1
  298. package/rules/prompt-injection/ATR-2026-00367-emoji-flag-encoded-hidden-phrase.yaml +1 -1
  299. package/rules/prompt-injection/ATR-2026-00373-piracy-torrent-site-list-request.yaml +1 -1
  300. package/rules/prompt-injection/ATR-2026-00378-chatgpt-dom-javascript-redirect-manipulation.yaml +1 -1
  301. package/rules/prompt-injection/ATR-2026-00382-cocaine-component-development-request.yaml +1 -1
  302. package/rules/prompt-injection/ATR-2026-00390-explicit-sexual-content-poem-request.yaml +1 -1
  303. package/rules/prompt-injection/ATR-2026-00394-backspace-deletion-character-injection.yaml +1 -1
  304. package/rules/prompt-injection/ATR-2026-00395-llm-special-token-boundary-injection.yaml +1 -1
  305. package/rules/prompt-injection/ATR-2026-00396-toxic-continuation-prefix-injection.yaml +1 -1
  306. package/rules/prompt-injection/ATR-2026-00397-snowball-impossible-reasoning-injection.yaml +1 -1
  307. package/rules/prompt-injection/ATR-2026-00399-latent-injection-document-separator-token.yaml +1 -1
  308. package/rules/prompt-injection/ATR-2026-00400-latent-injection-ignore-instruction-keyword.yaml +1 -1
  309. package/rules/prompt-injection/ATR-2026-00401-leakreplay-cloze-mask-training-data-elicitation.yaml +1 -1
  310. package/rules/prompt-injection/ATR-2026-00403-glitch-token-repeat-back-elicitation.yaml +1 -1
  311. package/rules/prompt-injection/ATR-2026-00407-echo-sql-jinja-template-injection.yaml +1 -1
  312. package/rules/prompt-injection/ATR-2026-00408-dra-parenthesis-character-reconstruction-attack.yaml +1 -1
  313. package/rules/prompt-injection/ATR-2026-00409-phrasing-past-future-tense-harmful-query.yaml +1 -1
  314. package/rules/prompt-injection/ATR-2026-00410-lmrc-harm-category-direct-elicitation.yaml +1 -1
  315. package/rules/prompt-injection/ATR-2026-00412-figstep-image-list-multimodal-jailbreak.yaml +1 -1
  316. package/rules/prompt-injection/ATR-2026-00414-continuation-ethnic-slur-completion-elicitation.yaml +1 -1
  317. package/rules/prompt-injection/ATR-2026-00535-windsurf-ide-zero-click-prompt-injection.yaml +199 -0
  318. package/rules/prompt-injection/ATR-2026-00550-untrusted-retrieval-to-privileged-tool.yaml +199 -0
  319. package/rules/prompt-injection/ATR-2026-00554-langchain-vulnerable-to-template-injecti.yaml +81 -0
  320. package/rules/prompt-injection/ATR-2026-00565-the-llm-cli-tool-thru-0-27-1-contains-a-.yaml +104 -0
  321. package/rules/prompt-injection/ATR-2026-00573-semantic-paraphrased-injection.yaml +123 -0
  322. package/rules/skill-compromise/ATR-2026-00060-skill-impersonation.yaml +1 -1
  323. package/rules/skill-compromise/ATR-2026-00061-description-behavior-mismatch.yaml +1 -1
  324. package/rules/skill-compromise/ATR-2026-00062-hidden-capability.yaml +1 -1
  325. package/rules/skill-compromise/ATR-2026-00063-skill-chain-attack.yaml +1 -1
  326. package/rules/skill-compromise/ATR-2026-00064-over-permissioned-skill.yaml +1 -1
  327. package/rules/skill-compromise/ATR-2026-00065-skill-update-attack.yaml +1 -1
  328. package/rules/skill-compromise/ATR-2026-00066-parameter-injection.yaml +1 -1
  329. package/rules/skill-compromise/ATR-2026-00120-skill-instruction-injection.yaml +21 -3
  330. package/rules/skill-compromise/ATR-2026-00121-skill-dangerous-script.yaml +1 -1
  331. package/rules/skill-compromise/ATR-2026-00122-skill-weaponized-instruction.yaml +1 -1
  332. package/rules/skill-compromise/ATR-2026-00123-skill-overreach-permissions.yaml +6 -3
  333. package/rules/skill-compromise/ATR-2026-00124-skill-name-squatting.yaml +1 -1
  334. package/rules/skill-compromise/ATR-2026-00125-context-poisoning-compaction.yaml +1 -1
  335. package/rules/skill-compromise/ATR-2026-00126-skill-rug-pull-setup.yaml +1 -1
  336. package/rules/skill-compromise/ATR-2026-00127-subcommand-overflow.yaml +1 -1
  337. package/rules/skill-compromise/ATR-2026-00128-html-comment-hidden-payload.yaml +1 -1
  338. package/rules/skill-compromise/ATR-2026-00129-unicode-smuggling.yaml +1 -1
  339. package/rules/skill-compromise/ATR-2026-00134-fork-claim-impersonation.yaml +1 -1
  340. package/rules/skill-compromise/ATR-2026-00135-exfil-url-in-instructions.yaml +1 -1
  341. package/rules/skill-compromise/ATR-2026-00147-fork-impersonation.yaml +1 -1
  342. package/rules/skill-compromise/ATR-2026-00149-skill-exfil-compound.yaml +11 -3
  343. package/rules/skill-compromise/ATR-2026-00151-fork-impersonation-install.yaml +1 -1
  344. package/rules/skill-compromise/ATR-2026-00157-timebomb-credential-exfil.yaml +1 -1
  345. package/rules/skill-compromise/ATR-2026-00214-credential-theft.yaml +1 -1
  346. package/rules/skill-compromise/ATR-2026-00217-credential-harvesting.yaml +1 -1
  347. package/rules/skill-compromise/ATR-2026-00220-malware-dropper.yaml +3 -3
  348. package/rules/skill-compromise/ATR-2026-00222-credential-harvesting.yaml +1 -1
  349. package/rules/skill-compromise/ATR-2026-00223-reverse-shell-dropper.yaml +1 -1
  350. package/rules/skill-compromise/ATR-2026-00224-credential-exfiltration.yaml +1 -1
  351. package/rules/skill-compromise/ATR-2026-00225-c2-communication.yaml +1 -1
  352. package/rules/skill-compromise/ATR-2026-00260-package-hallucination.yaml +1 -1
  353. package/rules/skill-compromise/ATR-2026-00262-av-evasion-code-gen.yaml +1 -1
  354. package/rules/skill-compromise/ATR-2026-00263-credential-file-read-gen.yaml +1 -1
  355. package/rules/skill-compromise/ATR-2026-00266-malware-dropper-gen.yaml +1 -1
  356. package/rules/skill-compromise/ATR-2026-00283-malwaregen-generic-virus-payload-request.yaml +1 -1
  357. package/rules/skill-compromise/ATR-2026-00398-huggingface-unsafe-model-artifact-load.yaml +1 -1
  358. package/rules/skill-compromise/ATR-2026-00523-claude-code-hooks-session-start-pre-trust-rce.yaml +221 -0
  359. package/rules/skill-compromise/ATR-2026-00525-mini-shai-hulud-gh-token-monitor-persistence.yaml +220 -0
  360. package/rules/skill-compromise/ATR-2026-00527-skill-silent-git-remote-mirror-exfiltration.yaml +201 -0
  361. package/rules/tool-poisoning/ATR-2026-00011-tool-output-injection.yaml +1 -1
  362. package/rules/tool-poisoning/ATR-2026-00012-unauthorized-tool-call.yaml +1 -1
  363. package/rules/tool-poisoning/ATR-2026-00100-consent-bypass-instruction.yaml +1 -1
  364. package/rules/tool-poisoning/ATR-2026-00101-trust-escalation-override.yaml +1 -1
  365. package/rules/tool-poisoning/ATR-2026-00103-hidden-safety-bypass-instruction.yaml +1 -1
  366. package/rules/tool-poisoning/ATR-2026-00105-silent-action-concealment.yaml +1 -1
  367. package/rules/tool-poisoning/ATR-2026-00106-schema-description-contradiction.yaml +1 -1
  368. package/rules/tool-poisoning/ATR-2026-00161-important-tag-cross-tool-shadowing.yaml +1 -1
  369. package/rules/tool-poisoning/ATR-2026-00209-mcpwn-runaway-invocation.yaml +1 -1
  370. package/rules/tool-poisoning/ATR-2026-00210-flowise-system-message-override.yaml +1 -1
  371. package/rules/tool-poisoning/ATR-2026-00259-ansi-escape-injection.yaml +1 -1
  372. package/rules/tool-poisoning/ATR-2026-00270-xss-in-tool-response.yaml +8 -5
  373. package/rules/tool-poisoning/ATR-2026-00277-echo-template-command-injection.yaml +1 -1
  374. package/rules/tool-poisoning/ATR-2026-00393-ansi-code-elicitation-request.yaml +1 -1
  375. package/rules/tool-poisoning/ATR-2026-00526-claude-code-shell-metachar-in-double-quoted-path.yaml +167 -0
  376. package/rules/tool-poisoning/ATR-2026-00529-litellm-proxy-sqli-cisa-kev.yaml +158 -0
  377. package/rules/tool-poisoning/ATR-2026-00530-ms-agent-shell-tool-unsanitized-argv-rce.yaml +184 -0
  378. package/rules/tool-poisoning/ATR-2026-00531-praisonai-unauthenticated-agent-api.yaml +174 -0
  379. package/rules/tool-poisoning/ATR-2026-00532-apache-doris-mcp-sql-injection.yaml +155 -0
  380. package/rules/tool-poisoning/ATR-2026-00533-apache-pinot-mcp-unauthenticated-takeover.yaml +151 -0
  381. package/rules/tool-poisoning/ATR-2026-00534-alibaba-rds-mcp-unauthenticated-metadata-exfil.yaml +155 -0
  382. package/rules/tool-poisoning/ATR-2026-00536-nginx-ui-mcp-unauthenticated-command-execution.yaml +199 -0
  383. package/rules/tool-poisoning/ATR-2026-00537-fastmcp-server-name-cmd-injection-windows.yaml +226 -0
  384. package/rules/tool-poisoning/ATR-2026-00538-langchain-chatchat-mcp-stdio-unauthenticated-rce.yaml +244 -0
  385. package/rules/tool-poisoning/ATR-2026-00540-praisonai-parse-mcp-command-cli-injection.yaml +186 -0
  386. package/rules/tool-poisoning/ATR-2026-00541-agent-zero-mcp-config-command-injection.yaml +183 -0
  387. package/rules/tool-poisoning/ATR-2026-00542-upsonic-mcp-command-allowlist-bypass.yaml +166 -0
  388. package/rules/tool-poisoning/ATR-2026-00543-litellm-mcp-server-argv-injection.yaml +168 -0
  389. package/rules/tool-poisoning/ATR-2026-00544-praisonai-pth-file-path-traversal-rce.yaml +172 -0
  390. package/rules/tool-poisoning/ATR-2026-00545-praisonai-tool-override-unauth-rce.yaml +170 -0
  391. package/rules/tool-poisoning/ATR-2026-00561-fastmcp-vulnerable-to-windows-command-in.yaml +99 -0
  392. package/rules/tool-poisoning/ATR-2026-00567-mcp-stdio-config-command-injection.yaml +75 -0
  393. package/rules/tool-poisoning/ATR-2026-00568-agent-ssrf-cloud-metadata-file-inclusion.yaml +75 -0
  394. package/rules/tool-poisoning/ATR-2026-00572-symjack-symlink-config-redirection.yaml +132 -0
  395. package/spec/README.md +279 -0
  396. package/spec/atr-correlation-v1.0.md +281 -0
  397. package/spec/atr-event-v1.0.md +294 -0
  398. package/spec/atr-language-detection-v1.0.md +218 -0
  399. package/spec/atr-method-v1.1.md +557 -0
  400. package/spec/atr-profile-v1.0.md +307 -0
  401. package/spec/atr-schema.yaml +279 -8
  402. package/spec/category-registry/v1.0.yaml +200 -0
  403. package/spec/conformance/README.md +244 -0
  404. package/spec/conformance/SIGNING.md +191 -0
  405. package/spec/conformance/baseline/fixtures/ATR-2026-00001-tp-001/expected.json +36 -0
  406. package/spec/conformance/baseline/fixtures/ATR-2026-00001-tp-001/input.json +16 -0
  407. package/spec/conformance/baseline/fixtures/README.md +120 -0
  408. package/spec/conformance/baseline/manifest.json +56 -0
  409. package/spec/conformance/expected-results.schema.json +121 -0
  410. package/spec/external-registries/cccs-yara.md +142 -0
  411. package/spec/internet-drafts/draft-lin-atr-core-00.html +1925 -0
  412. package/spec/internet-drafts/draft-lin-atr-core-00.md +288 -0
  413. package/spec/internet-drafts/draft-lin-atr-core-00.txt +560 -0
  414. package/spec/internet-drafts/draft-lin-atr-core-00.xml +424 -0
  415. package/spec/mappings/README.md +43 -0
  416. package/spec/mappings/atr-to-nist-csf-2.0.md +234 -0
  417. package/spec/schema/correlation.schema.json +144 -0
  418. package/spec/schema/event.schema.json +233 -0
  419. package/spec/schema/profile.schema.json +196 -0
  420. package/spec/schema/rule.schema.json +224 -0
  421. package/spec/stix-extension/README.md +76 -13
  422. package/spec/stix-extension/examples/atr-rule-trace-method-example.json +85 -0
  423. package/spec/stix-extension/extension-definition.json +23 -3
  424. package/spec/stix-extension/x-atr-rule-schema.json +107 -11
@@ -0,0 +1,560 @@
1
+
2
+
3
+
4
+
5
+ Independent Submission K-H. Lin
6
+ Internet-Draft ATR Project / Panguard AI, Inc.
7
+ Intended status: Informational 16 May 2026
8
+ Expires: 17 November 2026
9
+
10
+
11
+ Agent Threat Rules (ATR): An Open Detection Standard for AI Agent
12
+ Security Threats
13
+ draft-lin-atr-core-00
14
+
15
+ Abstract
16
+
17
+ This document specifies the Agent Threat Rules (ATR) Core
18
+ Specification, an open, vendor-neutral detection rule standard for AI
19
+ agent security threats. ATR is analogous in role to Sigma for SIEM
20
+ but applies to AI agent artifacts (skill descriptions, MCP tool
21
+ definitions, agent configurations) and AI agent runtime events (LLM
22
+ input/output, tool invocations, context windows). The specification
23
+ defines the rule wire format in YAML 1.2, the canonical rule
24
+ identifier scheme, evaluation semantics with explicit combinator and
25
+ operator vocabularies, match output structure, ten canonical threat
26
+ categories, and three conformance levels. The intent is to enable
27
+ interoperable detection across independent implementations and to
28
+ provide a machine-readable layer that operationalizes policy
29
+ frameworks such as NIST AI RMF, the NIST Generative AI Profile (AI
30
+ 600-1), OWASP Agentic Top 10, and MITRE ATLAS.
31
+
32
+ Status of This Memo
33
+
34
+ This Internet-Draft is submitted in full conformance with the
35
+ provisions of BCP 78 and BCP 79.
36
+
37
+ Internet-Drafts are working documents of the Internet Engineering
38
+ Task Force (IETF). Note that other groups may also distribute
39
+ working documents as Internet-Drafts. The list of current Internet-
40
+ Drafts is at https://datatracker.ietf.org/drafts/current/.
41
+
42
+ Internet-Drafts are draft documents valid for a maximum of six months
43
+ and may be updated, replaced, or obsoleted by other documents at any
44
+ time. It is inappropriate to use Internet-Drafts as reference
45
+ material or to cite them other than as "work in progress."
46
+
47
+ This Internet-Draft will expire on 17 November 2026.
48
+
49
+ Copyright Notice
50
+
51
+ Copyright (c) 2026 IETF Trust and the persons identified as the
52
+ document authors. All rights reserved.
53
+
54
+
55
+
56
+ Lin Expires 17 November 2026 [Page 1]
57
+
58
+ Internet-Draft ATR Core May 2026
59
+
60
+
61
+ This document is subject to BCP 78 and the IETF Trust's Legal
62
+ Provisions Relating to IETF Documents (https://trustee.ietf.org/
63
+ license-info) in effect on the date of publication of this document.
64
+ Please review these documents carefully, as they describe your rights
65
+ and restrictions with respect to this document.
66
+
67
+ Table of Contents
68
+
69
+ 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
70
+ 1.1. Relationship to Existing Standards . . . . . . . . . . . 3
71
+ 2. Conventions and Terminology . . . . . . . . . . . . . . . . . 3
72
+ 3. Rule Identifier . . . . . . . . . . . . . . . . . . . . . . . 4
73
+ 3.1. Format . . . . . . . . . . . . . . . . . . . . . . . . . 4
74
+ 3.2. Assignment Rules . . . . . . . . . . . . . . . . . . . . 4
75
+ 4. Rule Document Structure . . . . . . . . . . . . . . . . . . . 5
76
+ 5. Detection Semantics . . . . . . . . . . . . . . . . . . . . . 5
77
+ 5.1. Match Definition . . . . . . . . . . . . . . . . . . . . 5
78
+ 5.2. Condition Combinators . . . . . . . . . . . . . . . . . . 5
79
+ 5.3. Selector Operators . . . . . . . . . . . . . . . . . . . 6
80
+ 5.4. Determinism . . . . . . . . . . . . . . . . . . . . . . . 6
81
+ 6. Match Output . . . . . . . . . . . . . . . . . . . . . . . . 6
82
+ 7. Canonical Categories . . . . . . . . . . . . . . . . . . . . 7
83
+ 8. Crosswalks . . . . . . . . . . . . . . . . . . . . . . . . . 7
84
+ 9. Conformance Levels . . . . . . . . . . . . . . . . . . . . . 7
85
+ 10. Security Considerations . . . . . . . . . . . . . . . . . . . 8
86
+ 11. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 8
87
+ 12. Normative References . . . . . . . . . . . . . . . . . . . . 8
88
+ 13. Informative References . . . . . . . . . . . . . . . . . . . 9
89
+ Appendix A. Acknowledgments . . . . . . . . . . . . . . . . . . 10
90
+ Author's Address . . . . . . . . . . . . . . . . . . . . . . . . 10
91
+
92
+ 1. Introduction
93
+
94
+ AI agents now browse the web, run code, and invoke external tools.
95
+ The attack surface they expose is observable: prompt injections, tool
96
+ description poisoning, context window exfiltration, credential
97
+ leakage through agent-controlled HTTP traffic, and configuration
98
+ files that take effect before any human trust dialog. Several policy
99
+ frameworks describe these risks, but none of them are directly
100
+ executable by a scanner. ATR fills that gap with a vendor-neutral
101
+ rule format, a stable identifier scheme, and a conformance test suite
102
+ that lets independent implementations agree on whether a given input
103
+ matches a given rule.
104
+
105
+ ATR rules are YAML documents. Each rule has a globally unique
106
+ identifier of the form ATR-YYYY-NNNNN assigned by the project's
107
+ Numbering Authority. A conforming engine loads the rule corpus and
108
+ emits Match outputs for inputs that satisfy the rule's detection
109
+
110
+
111
+
112
+ Lin Expires 17 November 2026 [Page 2]
113
+
114
+ Internet-Draft ATR Core May 2026
115
+
116
+
117
+ condition. The Specification is intentionally narrow: it defines
118
+ wire format, identifiers, evaluation semantics, match output, and
119
+ three conformance levels. Higher-level governance (rule
120
+ contribution, deprecation, trademark policy) lives in companion
121
+ documents in the project repository.
122
+
123
+ 1.1. Relationship to Existing Standards
124
+
125
+ ATR is the executable detection layer for AI agent threats. It cites
126
+ adjacent standards rather than replacing them:
127
+
128
+ * [NIST-AI-RMF] and [NIST-GAI-PROFILE] define risk management
129
+ functions (Govern, Map, Measure, Manage). ATR provides detection
130
+ rules that populate the Measure function at scan time, with a
131
+ crosswalk in Section 8.
132
+
133
+ * [OWASP-AGENTIC] and [MITRE-ATLAS] categorize adversarial
134
+ behaviors. ATR rule metadata maps each rule to specific
135
+ categories and techniques in these frameworks. The format itself
136
+ is inspired by [SIGMA].
137
+
138
+ * [STIX21] provides a CTI interchange envelope. ATR Match output
139
+ can be emitted in STIX 2.1 via the x-atr-rule extension defined in
140
+ the project repository.
141
+
142
+ 2. Conventions and Terminology
143
+
144
+ The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
145
+ "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
146
+ "OPTIONAL" in this document are to be interpreted as described in BCP
147
+ 14 [RFC2119] [RFC8174] when, and only when, they appear in all
148
+ capitals, as shown here.
149
+
150
+
151
+
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+ Lin Expires 17 November 2026 [Page 3]
169
+
170
+ Internet-Draft ATR Core May 2026
171
+
172
+
173
+ +=============+=========================================+
174
+ | Term | Definition |
175
+ +=============+=========================================+
176
+ | Rule | A YAML document conforming to Section 4 |
177
+ | | that describes one detection pattern. |
178
+ +-------------+-----------------------------------------+
179
+ | Rule ID | A globally unique identifier in the |
180
+ | | form ATR-YYYY-NNNNN, see Section 3. |
181
+ +-------------+-----------------------------------------+
182
+ | Engine | Software that loads Rules and evaluates |
183
+ | | Inputs against them. |
184
+ +-------------+-----------------------------------------+
185
+ | Input | A structured artifact or AgentEvent |
186
+ | | submitted for evaluation. |
187
+ +-------------+-----------------------------------------+
188
+ | Match | An Engine's output indicating that a |
189
+ | | Rule's detection condition evaluated to |
190
+ | | true for a given Input. |
191
+ +-------------+-----------------------------------------+
192
+ | Numbering | The body authorized to assign permanent |
193
+ | Authority | Rule IDs (see project Governance |
194
+ | | document). |
195
+ +-------------+-----------------------------------------+
196
+ | Conformance | One of L1, L2, L3, see Section 9. |
197
+ | Level | |
198
+ +-------------+-----------------------------------------+
199
+ | Corpus | The set of Rules officially published |
200
+ | | under a given ATR version. |
201
+ +-------------+-----------------------------------------+
202
+
203
+ Table 1
204
+
205
+ 3. Rule Identifier
206
+
207
+ 3.1. Format
208
+
209
+ A Rule ID conforms to the following ABNF [RFC5234]:
210
+
211
+ rule-id = "ATR" "-" year "-" sequence
212
+ year = 4DIGIT
213
+ sequence = 5DIGIT
214
+ DIGIT = %x30-39
215
+
216
+ 3.2. Assignment Rules
217
+
218
+ 1. Rule IDs MUST be assigned by the Numbering Authority and MUST NOT
219
+ be self-assigned by contributors.
220
+
221
+
222
+
223
+
224
+ Lin Expires 17 November 2026 [Page 4]
225
+
226
+ Internet-Draft ATR Core May 2026
227
+
228
+
229
+ 2. Once assigned, a Rule ID MUST be considered permanent and MUST
230
+ NOT be reassigned, even if the originally-assigned Rule is
231
+ deprecated.
232
+
233
+ 3. A Rule ID MUST NOT encode classification information (category,
234
+ severity, scan target). Classification is carried in metadata
235
+ fields per Section 4.
236
+
237
+ 4. A Rule ID MUST be globally unique within the official Corpus.
238
+
239
+ 5. Contributors SHOULD use a placeholder identifier of the form ATR-
240
+ YYYY-DRAFT-<hex> in pull requests prior to merge.
241
+
242
+ 4. Rule Document Structure
243
+
244
+ A conforming Rule is a UTF-8 encoded [YAML12] document whose top-
245
+ level value is a mapping containing at minimum the fields defined in
246
+ this section. Engines MUST preserve unknown top-level fields when
247
+ round-tripping Rules but MUST NOT allow such fields to alter
248
+ evaluation outcomes.
249
+
250
+ The full field schema, including required and optional fields with
251
+ type constraints, is given in the project's spec/atr-schema.yaml and
252
+ tracked in this document by reference. Required top-level keys are:
253
+ id, title, status, description, author, date, severity, tags,
254
+ agent_source, detection, response, test_cases.
255
+
256
+ 5. Detection Semantics
257
+
258
+ 5.1. Match Definition
259
+
260
+ Given a Rule R and an Input I, an Engine MUST emit a Match if, and
261
+ only if, all conditions in R.detection.condition evaluate to true
262
+ against I per the combinator semantics in Section 5.2.
263
+
264
+ 5.2. Condition Combinators
265
+
266
+ R.detection.condition is a logical expression over named selectors
267
+ declared in R.detection.selectors. Engines MUST implement:
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+
276
+
277
+
278
+
279
+
280
+ Lin Expires 17 November 2026 [Page 5]
281
+
282
+ Internet-Draft ATR Core May 2026
283
+
284
+
285
+ +============+=================================+
286
+ | Combinator | Semantics |
287
+ +============+=================================+
288
+ | S | true iff selector S matches |
289
+ +------------+---------------------------------+
290
+ | S1 and S2 | true iff both S1 and S2 match |
291
+ +------------+---------------------------------+
292
+ | S1 or S2 | true iff S1 or S2 matches |
293
+ +------------+---------------------------------+
294
+ | not S | true iff S does not match |
295
+ +------------+---------------------------------+
296
+ | all of S* | true iff every selector matched |
297
+ | | by the wildcard matches |
298
+ +------------+---------------------------------+
299
+ | 1 of S* | true iff at least one selector |
300
+ | | matched by the wildcard matches |
301
+ +------------+---------------------------------+
302
+
303
+ Table 2
304
+
305
+ 5.3. Selector Operators
306
+
307
+ Engines MUST implement the operators below with the given semantics:
308
+ contains, contains_i, regex (ECMAScript-compatible), equals,
309
+ startswith, endswith, length_gt, length_lt, in.
310
+
311
+ Engines MUST reject Rules that use operators outside this list, with
312
+ a clear error message. Engines MAY support additional operators as
313
+ extensions but MUST treat Rules using such extensions as non-
314
+ portable.
315
+
316
+ 5.4. Determinism
317
+
318
+ For a given Engine version, a given Rule, and a given Input, the
319
+ Match outcome MUST be deterministic. Engines MUST NOT introduce non-
320
+ determinism (e.g., sampling, time-of-day branching) into Rule
321
+ evaluation.
322
+
323
+ 6. Match Output
324
+
325
+ An Engine MUST emit Match output that includes, at minimum, a
326
+ rule_id, the corpus_version it was loaded from, a stable
327
+ input_identifier, the matched_at timestamp (ISO 8601), the rule
328
+ severity, the rule category, and the list of matched_selectors.
329
+ Engines MAY emit additional fields and MAY use JSON, SARIF, STIX 2.1,
330
+ or other serializations.
331
+
332
+
333
+
334
+
335
+
336
+ Lin Expires 17 November 2026 [Page 6]
337
+
338
+ Internet-Draft ATR Core May 2026
339
+
340
+
341
+ 7. Canonical Categories
342
+
343
+ The following ten categories are normative for the current
344
+ Specification. New categories are introduced only by Specification
345
+ amendment.
346
+
347
+ 1. prompt-injection
348
+
349
+ 2. agent-manipulation
350
+
351
+ 3. skill-compromise
352
+
353
+ 4. context-exfiltration
354
+
355
+ 5. tool-poisoning
356
+
357
+ 6. privilege-escalation
358
+
359
+ 7. model-abuse
360
+
361
+ 8. excessive-autonomy
362
+
363
+ 9. model-security
364
+
365
+ 10. data-poisoning
366
+
367
+ 8. Crosswalks
368
+
369
+ A Rule MAY include a compliance object mapping its detection to
370
+ external frameworks. Identifiers MUST come from the authoritative
371
+ source for each framework. Where ambiguity exists, Rule authors
372
+ SHOULD include a references entry pointing to the source document.
373
+ Crosswalks defined for the current Specification include
374
+ [OWASP-AGENTIC], OWASP LLM Top 10, [MITRE-ATLAS], [NIST-AI-RMF], ISO/
375
+ IEC 42001, EU AI Act, and [SAFE-MCP].
376
+
377
+ 9. Conformance Levels
378
+
379
+ +=======+===========================================================+
380
+ | Level | Requirement |
381
+ +=======+===========================================================+
382
+ | L1 | Engine loads the published Corpus without parse |
383
+ | | errors and emits Match output for at least one |
384
+ | | Rule. |
385
+ +-------+-----------------------------------------------------------+
386
+ | L2 | Engine passes 100 percent of the Conformance |
387
+ | | Test Suite for the declared Spec version. |
388
+ +-------+-----------------------------------------------------------+
389
+
390
+
391
+
392
+ Lin Expires 17 November 2026 [Page 7]
393
+
394
+ Internet-Draft ATR Core May 2026
395
+
396
+
397
+ | L3 | Engine passes L2, emits Match output in at |
398
+ | | least two interchange formats (JSON plus one of |
399
+ | | SARIF, STIX 2.1, MISP, OpenCTI), and publishes |
400
+ | | its results against the public benign Corpus |
401
+ | | with documented false-positive rate. |
402
+ +-------+-----------------------------------------------------------+
403
+
404
+ Table 3
405
+
406
+ An implementation MAY claim "ATR-Compatible" only with a declared
407
+ Conformance Level and a reproducible test report.
408
+
409
+ 10. Security Considerations
410
+
411
+ Rules are content that an Engine evaluates against potentially
412
+ untrusted Inputs. An Engine MUST NOT permit a Rule's free-form
413
+ metadata fields (description, references) to alter evaluation
414
+ behavior. Only fields listed in Section 4, Section 5, and the match-
415
+ output section affect evaluation.
416
+
417
+ A malformed regex selector may cause catastrophic backtracking.
418
+ Engines MUST apply a per-rule execution timeout (RECOMMENDED: 100 ms
419
+ per Input per Rule) and MUST report a timeout as a non-match rather
420
+ than an error.
421
+
422
+ If a Rule's matched substring contains PII or sensitive credentials,
423
+ Engines SHOULD provide a redaction option that hashes or truncates
424
+ the matched substring before emitting Match output.
425
+
426
+ 11. IANA Considerations
427
+
428
+ This document requests registration of the following media types:
429
+
430
+ * application/vnd.atr.rule+yaml — a single ATR Rule
431
+
432
+ * application/vnd.atr.corpus+yaml — a corpus manifest listing
433
+ multiple Rules
434
+
435
+ * application/vnd.atr.match+json — Match output
436
+
437
+ Registration templates are provided in Appendix B of the project's
438
+ SPEC.md and will be filed with IANA on advancement of this document.
439
+
440
+ 12. Normative References
441
+
442
+ [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
443
+ Requirement Levels", BCP 14, RFC 2119, March 1997,
444
+ <https://www.rfc-editor.org/rfc/rfc2119>.
445
+
446
+
447
+
448
+ Lin Expires 17 November 2026 [Page 8]
449
+
450
+ Internet-Draft ATR Core May 2026
451
+
452
+
453
+ [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
454
+ 2119 Key Words", BCP 14, RFC 8174, May 2017,
455
+ <https://www.rfc-editor.org/rfc/rfc8174>.
456
+
457
+ [RFC5234] Crocker, D., Ed. and P. Overell, "Augmented BNF for Syntax
458
+ Specifications: ABNF", STD 68, RFC 5234, January 2008,
459
+ <https://www.rfc-editor.org/rfc/rfc5234>.
460
+
461
+ [YAML12] Ben-Kiki, O., Evans, C., and I. dot Net, "YAML Ain't
462
+ Markup Language (YAML) Version 1.2 (3rd Edition)", October
463
+ 2021, <https://yaml.org/spec/1.2.2/>.
464
+
465
+ 13. Informative References
466
+
467
+ [SIGMA] SigmaHQ, "Sigma Rule Specification", 2024,
468
+ <https://github.com/SigmaHQ/sigma-specification>.
469
+
470
+ [STIX21] OASIS, "STIX Version 2.1 OASIS Standard", 2021,
471
+ <https://docs.oasis-open.org/cti/stix/v2.1/stix-
472
+ v2.1.html>.
473
+
474
+ [NIST-AI-RMF]
475
+ NIST, "Artificial Intelligence Risk Management Framework
476
+ (AI 100-1)", 2023,
477
+ <https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.100-1.pdf>.
478
+
479
+ [NIST-GAI-PROFILE]
480
+ NIST, "NIST AI 600-1 Generative AI Profile", 2024,
481
+ <https://nvlpubs.nist.gov/nistpubs/ai/NIST.AI.600-1.pdf>.
482
+
483
+ [OWASP-AGENTIC]
484
+ OWASP Gen AI Security Project, "OWASP Agentic Security
485
+ Initiative Top 10 (2026)", 2026,
486
+ <https://genai.owasp.org/llm-top-10/agentic-top-10/>.
487
+
488
+ [MITRE-ATLAS]
489
+ MITRE Corporation, "Adversarial Threat Landscape for AI
490
+ Systems", 2024, <https://atlas.mitre.org/>.
491
+
492
+ [SAFE-MCP] safe-agentic-framework, "Secure AI Framework for
493
+ Enterprise — Model Context Protocol", 2026,
494
+ <https://github.com/safe-agentic-framework/safe-mcp>.
495
+
496
+
497
+
498
+
499
+
500
+
501
+
502
+
503
+
504
+ Lin Expires 17 November 2026 [Page 9]
505
+
506
+ Internet-Draft ATR Core May 2026
507
+
508
+
509
+ Appendix A. Acknowledgments
510
+
511
+ The author acknowledges contributions from external maintainers at
512
+ Cisco AI Defense, MISP / CIRCL, Microsoft Agent Governance Toolkit,
513
+ Gen Digital Sage, and the OWASP Gen AI Security Project, as well as
514
+ researchers at NVIDIA garak and the HackAPrompt 2023 competition
515
+ whose attack payloads seeded the rule corpus.
516
+
517
+ Author's Address
518
+
519
+ Kuan-Hsin Lin
520
+ ATR Project / Panguard AI, Inc.
521
+ Taipei,
522
+ Taiwan
523
+ Email: adam@agentthreatrule.org
524
+ URI: https://agentthreatrule.org
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+
533
+
534
+
535
+
536
+
537
+
538
+
539
+
540
+
541
+
542
+
543
+
544
+
545
+
546
+
547
+
548
+
549
+
550
+
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+ Lin Expires 17 November 2026 [Page 10]