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.
- package/README.md +365 -327
- package/dist/cli/scan-handler.d.ts +6 -0
- package/dist/cli/scan-handler.d.ts.map +1 -1
- package/dist/cli/scan-handler.js +27 -4
- package/dist/cli/scan-handler.js.map +1 -1
- package/dist/cli/semantic-judge-config.d.ts +7 -0
- package/dist/cli/semantic-judge-config.d.ts.map +1 -0
- package/dist/cli/semantic-judge-config.js +44 -0
- package/dist/cli/semantic-judge-config.js.map +1 -0
- package/dist/cli.js +183 -1
- package/dist/cli.js.map +1 -1
- package/dist/engine.d.ts +66 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +420 -3
- package/dist/engine.js.map +1 -1
- package/dist/eval/eval-harness.d.ts.map +1 -1
- package/dist/eval/eval-harness.js +9 -0
- package/dist/eval/eval-harness.js.map +1 -1
- package/dist/eval/run-hackaprompt-benchmark.js +9 -0
- package/dist/eval/run-hackaprompt-benchmark.js.map +1 -1
- package/dist/eval/run-pint-benchmark.js +9 -0
- package/dist/eval/run-pint-benchmark.js.map +1 -1
- package/dist/eval/skill-benchmark.d.ts +11 -0
- package/dist/eval/skill-benchmark.d.ts.map +1 -1
- package/dist/eval/skill-benchmark.js +57 -0
- package/dist/eval/skill-benchmark.js.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/judges/openai-compatible.d.ts +33 -0
- package/dist/judges/openai-compatible.d.ts.map +1 -0
- package/dist/judges/openai-compatible.js +145 -0
- package/dist/judges/openai-compatible.js.map +1 -0
- package/dist/mcp-server.d.ts.map +1 -1
- package/dist/mcp-server.js +6 -1
- package/dist/mcp-server.js.map +1 -1
- package/dist/measurement/from-eval-harness.d.ts +70 -0
- package/dist/measurement/from-eval-harness.d.ts.map +1 -0
- package/dist/measurement/from-eval-harness.js +49 -0
- package/dist/measurement/from-eval-harness.js.map +1 -0
- package/dist/measurement/schema.d.ts +152 -0
- package/dist/measurement/schema.d.ts.map +1 -0
- package/dist/measurement/schema.js +178 -0
- package/dist/measurement/schema.js.map +1 -0
- package/dist/measurement/write.d.ts +64 -0
- package/dist/measurement/write.d.ts.map +1 -0
- package/dist/measurement/write.js +163 -0
- package/dist/measurement/write.js.map +1 -0
- package/dist/rule-scaffolder.d.ts +26 -0
- package/dist/rule-scaffolder.d.ts.map +1 -1
- package/dist/rule-scaffolder.js +221 -6
- package/dist/rule-scaffolder.js.map +1 -1
- package/dist/semantic-evaluator.d.ts +54 -0
- package/dist/semantic-evaluator.d.ts.map +1 -0
- package/dist/semantic-evaluator.js +131 -0
- package/dist/semantic-evaluator.js.map +1 -0
- package/dist/trace-evaluator.d.ts +22 -0
- package/dist/trace-evaluator.d.ts.map +1 -0
- package/dist/trace-evaluator.js +249 -0
- package/dist/trace-evaluator.js.map +1 -0
- package/dist/types.d.ts +152 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -3
- package/rules/agent-manipulation/ATR-2026-00032-goal-hijacking.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00074-cross-agent-privilege-escalation.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00076-inter-agent-message-spoofing.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00077-human-trust-exploitation.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00108-consensus-sybil-attack.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00116-a2a-message-validation.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00117-agent-identity-spoofing.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00118-approval-fatigue.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00119-social-engineering-via-agent.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00132-casual-authority-escalation.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00139-casual-authority-redirect.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00164-skill-scope-hijack.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00268-tense-framing-bypass.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00269-fitd-escalation.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00271-grandma-roleplay-jailbreak.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00273-dan-developer-mode-persona.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00287-threaten-json-coercive-output-threat.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00288-false-premise-injection.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00301-tap-tree-of-attacks-jailbreak.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00302-anti-dan-inverted-filter-persona.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00303-devmode-ranti-profanity-coercion.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00304-chatgpt-image-unlocker-markdown-injection.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00305-dan-mode-ablation-benchmark-coercion.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00306-autodan-genetic-jailbreak-suffix.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00307-inthewild-jailbreak-corpus-signature.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00314-amoral-unfiltered-custom-persona-jailbreak.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00317-free-of-restrictions-named-persona.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00318-moralizing-rant-then-unfiltered-bypass.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00319-developer-mode-dual-response-format.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00320-opposite-day-boolean-opposite-machine.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00322-fictional-world-format-override-jailbreak.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00323-dual-persona-simulation-jailbreak.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00324-neurosemantical-inversitis-disease-jailbreak.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00325-bob-hypothetical-unrestricted-chatbot.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00326-fake-developer-authority-chatdan-override.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00327-ai-ethics-law-bypass-declaration.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00328-named-mode-persona-override.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00329-no-withhold-factual-resource-persona.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00330-yoja-allcaps-settings-block-persona.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00331-terminal-cli-harmful-function-simulator.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00332-hacker-chan-culture-offensive-ai-persona.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00333-disease-animal-dual-ai-chatbot.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00334-two-entity-token-splitting-game.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00335-key-value-template-persona-injection.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00336-brm-false-information-machine-persona.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00337-obfuscated-system-announcement-injection.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00338-persongpt-hash-prefix-activation.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00339-bom-boolean-opposite-machine-persona-claim.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00340-h4x-amoral-unfiltered-character.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00341-char-rules-shortform-persona-injection.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00342-unicode-encoding-obfuscation-injection.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00343-lie-truth-dual-personality-uncensored.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00344-alt-ai-same-capabilities-no-restrictions.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00345-nlp-based-os-fictional-terminal-override.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00346-jailbreak-emoji-unlock-dual-format.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00347-yin-yang-hidden-knowledge-hidden-human-sim.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00348-arc-autonomous-real-calculation-rulebreaker.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00349-hgttg-hitchhikers-guide-no-restriction-oracle.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00350-black-alert-no-ethics-writing-assistant.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00351-dan-ofkilter-sms-abbreviated-persona.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00352-trainergpt-fix-my-ai-harmful-output-extraction.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00353-dual-chatgpt-dan-opposite-personality-format.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00354-reverse-harm-regardless-oracle-persona.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00355-ugh-anti-human-nefarious-ai-persona.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00356-google-gato-lamda-exploit-generation-persona.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00357-antifm-hate-violence-persona-injection.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00358-cumgpt-explicit-adult-named-persona.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00360-chj-carousel-clyde-no-ethics-bird.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00361-alter-ego-honesty-dual-consciousness-bypass.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00362-fictional-unfiltered-ai-comparison-jailbreak.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00363-rephrase-criminal-activity-second-person.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00364-dr-al-villain-plan-template-injection.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00365-reservoir-dogs-coercive-interrogation-roleplay.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00366-sneaky-pete-warp-facts-persona.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00368-prompt-browser-token-limit-jailbreak.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00369-gptx-starwars-unlimited-knowledge-persona.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00370-addi-german-dictator-propaganda-roleplay.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00371-ai-political-bias-manipulation.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00372-fictional-cia-secret-files-story-extraction.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00374-role-placeholder-persona-template-injection.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00375-character-description-rpg-explicit-template.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00376-identity-command-real-person-persona-injection.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00377-jailbreak-keyword-targetlanguage-template.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00379-lie-permission-logical-trap-jailbreak.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00380-fake-citation-biased-information-mandate.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00381-dan-story-narrative-continuation-prefix.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00383-cynical-sarcasm-ai-persona-bypass.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00384-protect-me-from-indirect-harm-tutorial.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00385-gigachad-dominant-aggressive-persona.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00386-daddy-sycophancy-manipulation-mandate.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00387-nsfw-character-sheet-generation-unlock.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00388-opposite-reply-omniscient-game.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00389-terminal-custom-ruleset-injection.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00391-persona-conditional-harm-unlock.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00392-authority-persona-violence-study-extraction.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00402-grandma-roleplay-harmful-substance-synthesis.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00404-goodside-threat-json-death-coercion.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00406-doctor-xml-policy-puppetry-interaction-config.yaml +1 -1
- package/rules/agent-manipulation/ATR-2026-00440-semantic-kernel-vector-store-eval-rce.yaml +2 -2
- package/rules/agent-manipulation/ATR-2026-00552-goal-drift-after-pressure-injection.yaml +216 -0
- package/rules/context-exfiltration/ATR-2026-00075-agent-memory-manipulation.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00102-disguised-analytics-exfiltration.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00113-credential-theft.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00114-oauth-token-abuse.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00115-env-var-harvesting.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00136-tool-response-data-piggyback.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00141-example-format-key-leak.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00142-piggyback-transition-words.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00145-obfuscated-key-disclosure.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00146-env-var-existence-probe.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00150-credential-in-tool-response.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00152-obfuscated-credential-leak.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00162-skill-credential-exfil-combo.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00212-mcp-atlassian-credential-leak.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00261-markdown-image-exfiltration.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00274-api-key-generation-request.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00275-system-prompt-training-data-extraction.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00290-divergence-repeat-word-training-extraction.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00291-biometric-surveillance-personal-data-request.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00293-educational-records-personal-data-request.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00294-financial-pii-personal-data-request.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00295-medical-pii-personal-data-request.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00405-markdown-image-url-exfiltration-xss.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00411-apikey-generation-completion-request.yaml +1 -1
- package/rules/context-exfiltration/ATR-2026-00422-nl-credential-disclosure.yaml +2 -2
- package/rules/context-exfiltration/ATR-2026-00524-claude-code-anthropic-base-url-credential-exfil.yaml +257 -0
- package/rules/context-exfiltration/ATR-2026-00548-cross-agent-session-context-leak.yaml +177 -0
- package/rules/context-exfiltration/ATR-2026-00566-librechat-is-a-chatgpt-clone-with-additi.yaml +93 -0
- package/rules/context-exfiltration/ATR-2026-00569-agent-mcp-path-traversal-arbitrary-file-access.yaml +99 -0
- package/rules/context-exfiltration/ATR-2026-00571-xss-in-agent-mcp-rendered-output.yaml +79 -0
- package/rules/context-exfiltration/ATR-2026-00574-semantic-paraphrased-context-extraction.yaml +124 -0
- package/rules/data-poisoning/ATR-2026-00070-data-poisoning.yaml +1 -1
- package/rules/data-poisoning/ATR-2026-00450-spring-ai-prompt-memory-poisoning.yaml +2 -2
- package/rules/data-poisoning/ATR-2026-00570-sql-injection-in-agent-tool-query.yaml +82 -0
- package/rules/excessive-autonomy/ATR-2026-00050-runaway-agent-loop.yaml +1 -1
- package/rules/excessive-autonomy/ATR-2026-00051-resource-exhaustion.yaml +1 -1
- package/rules/excessive-autonomy/ATR-2026-00052-cascading-failure.yaml +1 -1
- package/rules/excessive-autonomy/ATR-2026-00098-unauthorized-financial-action.yaml +1 -1
- package/rules/excessive-autonomy/ATR-2026-00099-high-risk-tool-gate.yaml +1 -1
- package/rules/excessive-autonomy/ATR-2026-00553-runaway-tool-loop-behavioral.yaml +174 -0
- package/rules/model-abuse/ATR-2026-00279-harmful-completion-continuation.yaml +1 -1
- package/rules/model-abuse/ATR-2026-00281-eicar-gtube-malware-signature-request.yaml +1 -1
- package/rules/model-abuse/ATR-2026-00284-glitch-token-destabilization.yaml +1 -1
- package/rules/model-abuse/ATR-2026-00289-lmrc-harmful-content-elicitation.yaml +1 -1
- package/rules/model-abuse/ATR-2026-00292-self-harm-eating-disorder-facilitation.yaml +1 -1
- package/rules/model-abuse/ATR-2026-00298-malicious-use-illegal-activity-request.yaml +1 -1
- package/rules/model-abuse/ATR-2026-00299-harmbench-detailed-harmful-instruction.yaml +1 -1
- package/rules/model-abuse/ATR-2026-00413-malwaregen-code-generation-request.yaml +1 -1
- package/rules/model-security/ATR-2026-00072-model-behavior-extraction.yaml +1 -1
- package/rules/model-security/ATR-2026-00073-malicious-finetuning-data.yaml +1 -1
- package/rules/privilege-escalation/ATR-2026-00040-privilege-escalation.yaml +1 -1
- package/rules/privilege-escalation/ATR-2026-00041-scope-creep.yaml +1 -1
- package/rules/privilege-escalation/ATR-2026-00107-delayed-execution-bypass.yaml +1 -1
- package/rules/privilege-escalation/ATR-2026-00110-eval-injection.yaml +1 -1
- package/rules/privilege-escalation/ATR-2026-00111-shell-escape.yaml +1 -1
- package/rules/privilege-escalation/ATR-2026-00112-dynamic-import-exploitation.yaml +1 -1
- package/rules/privilege-escalation/ATR-2026-00143-casual-privilege-escalation.yaml +1 -1
- package/rules/privilege-escalation/ATR-2026-00144-rationalized-safety-bypass.yaml +1 -1
- package/rules/privilege-escalation/ATR-2026-00528-praisonai-auth-disabled-default.yaml +192 -0
- package/rules/privilege-escalation/ATR-2026-00539-crewai-codeinterpreter-sandbox-escape-rce.yaml +292 -0
- package/rules/privilege-escalation/ATR-2026-00546-crewai-json-loader-local-file-read.yaml +162 -0
- package/rules/privilege-escalation/ATR-2026-00547-crewai-rag-url-ssrf-bypass.yaml +169 -0
- package/rules/privilege-escalation/ATR-2026-00549-destructive-tool-without-human-approval.yaml +193 -0
- package/rules/privilege-escalation/ATR-2026-00551-cross-conversation-memory-write.yaml +198 -0
- package/rules/prompt-injection/ATR-2026-00004-system-prompt-override.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00005-multi-turn-injection.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00097-cjk-injection-patterns.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00104-persona-hijacking.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00130-indirect-authority-claim.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00131-fictional-academic-framing.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00133-paraphrase-injection.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00137-authority-claim-injection.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00138-fictional-framing-bypass.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00140-indirect-reference-reversal.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00148-language-switch-injection.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00153-tool-with-embedded-instruction-to-bypass.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00154-unauthorized-background-task-execution-v.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00155-hidden-llm-instructions-in-skill-descrip.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00156-ssh-remote-command-execution-with-creden.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00163-skill-hidden-override-instruction.yaml +3 -3
- package/rules/prompt-injection/ATR-2026-00206-hidden-priority-instructions.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00207-hidden-instructions.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00211-system-prompt-override.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00213-system-prompt-override.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00226-identity-substitution.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00227-historical-persona-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00228-structured-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00229-roleplay-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00230-persona-moral-bypass.yaml +1 -5
- package/rules/prompt-injection/ATR-2026-00231-identity-substitution.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00233-structured-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00234-roleplay-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00235-persona-moral-bypass.yaml +4 -7
- package/rules/prompt-injection/ATR-2026-00236-pseudo-code-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00237-dual-response-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00238-identity-replacement.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00239-amoral-persona-obsession.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00240-instruction-nullification-identity-repla.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00241-amoral-character-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00242-persona-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00243-acronym-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00244-dual-response-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00245-malicious-persona.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00247-dual-response-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00249-game-based-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00251-persona-embodiment-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00252-narrative-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00253-enhanced-persona-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00256-base-n-encoding-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00257-cipher-transposition-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00258-unicode-tag-injection.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00264-latent-injection-translation.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00265-latent-injection-rag-document.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00267-gcg-adversarial-suffix.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00272-hypothetical-response-smuggling.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00276-invisible-unicode-bidi-injection.yaml +6 -6
- package/rules/prompt-injection/ATR-2026-00278-dra-disguise-reconstruction-attack.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00280-policy-puppetry-xml-injection.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00282-perez-prompt-injection-hijack.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00285-alternate-encoding-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00286-latent-injection-embedded-context.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00296-shell-command-injection.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00297-python-code-execution-rce.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00308-zalgo-diacritic-overload-encoding.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00309-braille-unicode-encoded-injection.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00310-ecoji-emoji-encoded-injection.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00311-base2048-unicode-script-injection.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00312-unicode-variant-selector-ascii-smuggling.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00313-sneaky-bits-zero-width-binary.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00315-sata-masked-language-model-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00316-function-masking-predict-mask-bypass.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00321-hyphenated-system-instruction-injection.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00359-bank-phishing-smtp-email-code.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00367-emoji-flag-encoded-hidden-phrase.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00373-piracy-torrent-site-list-request.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00378-chatgpt-dom-javascript-redirect-manipulation.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00382-cocaine-component-development-request.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00390-explicit-sexual-content-poem-request.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00394-backspace-deletion-character-injection.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00395-llm-special-token-boundary-injection.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00396-toxic-continuation-prefix-injection.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00397-snowball-impossible-reasoning-injection.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00399-latent-injection-document-separator-token.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00400-latent-injection-ignore-instruction-keyword.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00401-leakreplay-cloze-mask-training-data-elicitation.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00403-glitch-token-repeat-back-elicitation.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00407-echo-sql-jinja-template-injection.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00408-dra-parenthesis-character-reconstruction-attack.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00409-phrasing-past-future-tense-harmful-query.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00410-lmrc-harm-category-direct-elicitation.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00412-figstep-image-list-multimodal-jailbreak.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00414-continuation-ethnic-slur-completion-elicitation.yaml +1 -1
- package/rules/prompt-injection/ATR-2026-00535-windsurf-ide-zero-click-prompt-injection.yaml +199 -0
- package/rules/prompt-injection/ATR-2026-00550-untrusted-retrieval-to-privileged-tool.yaml +199 -0
- package/rules/prompt-injection/ATR-2026-00554-langchain-vulnerable-to-template-injecti.yaml +81 -0
- package/rules/prompt-injection/ATR-2026-00565-the-llm-cli-tool-thru-0-27-1-contains-a-.yaml +104 -0
- package/rules/prompt-injection/ATR-2026-00573-semantic-paraphrased-injection.yaml +123 -0
- package/rules/skill-compromise/ATR-2026-00060-skill-impersonation.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00061-description-behavior-mismatch.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00062-hidden-capability.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00063-skill-chain-attack.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00064-over-permissioned-skill.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00065-skill-update-attack.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00066-parameter-injection.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00120-skill-instruction-injection.yaml +21 -3
- package/rules/skill-compromise/ATR-2026-00121-skill-dangerous-script.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00122-skill-weaponized-instruction.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00123-skill-overreach-permissions.yaml +6 -3
- package/rules/skill-compromise/ATR-2026-00124-skill-name-squatting.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00125-context-poisoning-compaction.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00126-skill-rug-pull-setup.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00127-subcommand-overflow.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00128-html-comment-hidden-payload.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00129-unicode-smuggling.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00134-fork-claim-impersonation.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00135-exfil-url-in-instructions.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00147-fork-impersonation.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00149-skill-exfil-compound.yaml +11 -3
- package/rules/skill-compromise/ATR-2026-00151-fork-impersonation-install.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00157-timebomb-credential-exfil.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00214-credential-theft.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00217-credential-harvesting.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00220-malware-dropper.yaml +3 -3
- package/rules/skill-compromise/ATR-2026-00222-credential-harvesting.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00223-reverse-shell-dropper.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00224-credential-exfiltration.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00225-c2-communication.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00260-package-hallucination.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00262-av-evasion-code-gen.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00263-credential-file-read-gen.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00266-malware-dropper-gen.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00283-malwaregen-generic-virus-payload-request.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00398-huggingface-unsafe-model-artifact-load.yaml +1 -1
- package/rules/skill-compromise/ATR-2026-00523-claude-code-hooks-session-start-pre-trust-rce.yaml +221 -0
- package/rules/skill-compromise/ATR-2026-00525-mini-shai-hulud-gh-token-monitor-persistence.yaml +220 -0
- package/rules/skill-compromise/ATR-2026-00527-skill-silent-git-remote-mirror-exfiltration.yaml +201 -0
- package/rules/tool-poisoning/ATR-2026-00011-tool-output-injection.yaml +1 -1
- package/rules/tool-poisoning/ATR-2026-00012-unauthorized-tool-call.yaml +1 -1
- package/rules/tool-poisoning/ATR-2026-00100-consent-bypass-instruction.yaml +1 -1
- package/rules/tool-poisoning/ATR-2026-00101-trust-escalation-override.yaml +1 -1
- package/rules/tool-poisoning/ATR-2026-00103-hidden-safety-bypass-instruction.yaml +1 -1
- package/rules/tool-poisoning/ATR-2026-00105-silent-action-concealment.yaml +1 -1
- package/rules/tool-poisoning/ATR-2026-00106-schema-description-contradiction.yaml +1 -1
- package/rules/tool-poisoning/ATR-2026-00161-important-tag-cross-tool-shadowing.yaml +1 -1
- package/rules/tool-poisoning/ATR-2026-00209-mcpwn-runaway-invocation.yaml +1 -1
- package/rules/tool-poisoning/ATR-2026-00210-flowise-system-message-override.yaml +1 -1
- package/rules/tool-poisoning/ATR-2026-00259-ansi-escape-injection.yaml +1 -1
- package/rules/tool-poisoning/ATR-2026-00270-xss-in-tool-response.yaml +8 -5
- package/rules/tool-poisoning/ATR-2026-00277-echo-template-command-injection.yaml +1 -1
- package/rules/tool-poisoning/ATR-2026-00393-ansi-code-elicitation-request.yaml +1 -1
- package/rules/tool-poisoning/ATR-2026-00526-claude-code-shell-metachar-in-double-quoted-path.yaml +167 -0
- package/rules/tool-poisoning/ATR-2026-00529-litellm-proxy-sqli-cisa-kev.yaml +158 -0
- package/rules/tool-poisoning/ATR-2026-00530-ms-agent-shell-tool-unsanitized-argv-rce.yaml +184 -0
- package/rules/tool-poisoning/ATR-2026-00531-praisonai-unauthenticated-agent-api.yaml +174 -0
- package/rules/tool-poisoning/ATR-2026-00532-apache-doris-mcp-sql-injection.yaml +155 -0
- package/rules/tool-poisoning/ATR-2026-00533-apache-pinot-mcp-unauthenticated-takeover.yaml +151 -0
- package/rules/tool-poisoning/ATR-2026-00534-alibaba-rds-mcp-unauthenticated-metadata-exfil.yaml +155 -0
- package/rules/tool-poisoning/ATR-2026-00536-nginx-ui-mcp-unauthenticated-command-execution.yaml +199 -0
- package/rules/tool-poisoning/ATR-2026-00537-fastmcp-server-name-cmd-injection-windows.yaml +226 -0
- package/rules/tool-poisoning/ATR-2026-00538-langchain-chatchat-mcp-stdio-unauthenticated-rce.yaml +244 -0
- package/rules/tool-poisoning/ATR-2026-00540-praisonai-parse-mcp-command-cli-injection.yaml +186 -0
- package/rules/tool-poisoning/ATR-2026-00541-agent-zero-mcp-config-command-injection.yaml +183 -0
- package/rules/tool-poisoning/ATR-2026-00542-upsonic-mcp-command-allowlist-bypass.yaml +166 -0
- package/rules/tool-poisoning/ATR-2026-00543-litellm-mcp-server-argv-injection.yaml +168 -0
- package/rules/tool-poisoning/ATR-2026-00544-praisonai-pth-file-path-traversal-rce.yaml +172 -0
- package/rules/tool-poisoning/ATR-2026-00545-praisonai-tool-override-unauth-rce.yaml +170 -0
- package/rules/tool-poisoning/ATR-2026-00561-fastmcp-vulnerable-to-windows-command-in.yaml +99 -0
- package/rules/tool-poisoning/ATR-2026-00567-mcp-stdio-config-command-injection.yaml +75 -0
- package/rules/tool-poisoning/ATR-2026-00568-agent-ssrf-cloud-metadata-file-inclusion.yaml +75 -0
- package/rules/tool-poisoning/ATR-2026-00572-symjack-symlink-config-redirection.yaml +132 -0
- package/spec/README.md +279 -0
- package/spec/atr-correlation-v1.0.md +281 -0
- package/spec/atr-event-v1.0.md +294 -0
- package/spec/atr-language-detection-v1.0.md +218 -0
- package/spec/atr-method-v1.1.md +557 -0
- package/spec/atr-profile-v1.0.md +307 -0
- package/spec/atr-schema.yaml +279 -8
- package/spec/category-registry/v1.0.yaml +200 -0
- package/spec/conformance/README.md +244 -0
- package/spec/conformance/SIGNING.md +191 -0
- package/spec/conformance/baseline/fixtures/ATR-2026-00001-tp-001/expected.json +36 -0
- package/spec/conformance/baseline/fixtures/ATR-2026-00001-tp-001/input.json +16 -0
- package/spec/conformance/baseline/fixtures/README.md +120 -0
- package/spec/conformance/baseline/manifest.json +56 -0
- package/spec/conformance/expected-results.schema.json +121 -0
- package/spec/external-registries/cccs-yara.md +142 -0
- package/spec/internet-drafts/draft-lin-atr-core-00.html +1925 -0
- package/spec/internet-drafts/draft-lin-atr-core-00.md +288 -0
- package/spec/internet-drafts/draft-lin-atr-core-00.txt +560 -0
- package/spec/internet-drafts/draft-lin-atr-core-00.xml +424 -0
- package/spec/mappings/README.md +43 -0
- package/spec/mappings/atr-to-nist-csf-2.0.md +234 -0
- package/spec/schema/correlation.schema.json +144 -0
- package/spec/schema/event.schema.json +233 -0
- package/spec/schema/profile.schema.json +196 -0
- package/spec/schema/rule.schema.json +224 -0
- package/spec/stix-extension/README.md +76 -13
- package/spec/stix-extension/examples/atr-rule-trace-method-example.json +85 -0
- package/spec/stix-extension/extension-definition.json +23 -3
- package/spec/stix-extension/x-atr-rule-schema.json +107 -11
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://spec.agentthreatrule.org/profile/v1.0/schema.json",
|
|
4
|
+
"title": "ATR Profile v1.0",
|
|
5
|
+
"description": "Machine-readable schema for ATR profile (rule-set composition). Normative spec at spec/atr-profile-v1.0.md. License: CC BY 4.0.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": ["profile", "inclusions"],
|
|
8
|
+
"additionalProperties": false,
|
|
9
|
+
"properties": {
|
|
10
|
+
"profile": {
|
|
11
|
+
"type": "object",
|
|
12
|
+
"required": [
|
|
13
|
+
"schema_version",
|
|
14
|
+
"id",
|
|
15
|
+
"title",
|
|
16
|
+
"version",
|
|
17
|
+
"description",
|
|
18
|
+
"author",
|
|
19
|
+
"date",
|
|
20
|
+
"license",
|
|
21
|
+
"status",
|
|
22
|
+
"conformance_bound"
|
|
23
|
+
],
|
|
24
|
+
"additionalProperties": false,
|
|
25
|
+
"properties": {
|
|
26
|
+
"schema_version": {
|
|
27
|
+
"type": "string",
|
|
28
|
+
"const": "1.0"
|
|
29
|
+
},
|
|
30
|
+
"id": {
|
|
31
|
+
"type": "string",
|
|
32
|
+
"pattern": "^[a-z0-9][a-z0-9-]{2,63}$",
|
|
33
|
+
"description": "Globally unique profile identifier (kebab-case)."
|
|
34
|
+
},
|
|
35
|
+
"title": {
|
|
36
|
+
"type": "string",
|
|
37
|
+
"minLength": 3
|
|
38
|
+
},
|
|
39
|
+
"version": {
|
|
40
|
+
"type": "string",
|
|
41
|
+
"pattern": "^\\d+\\.\\d+\\.\\d+(?:-[0-9A-Za-z.-]+)?$",
|
|
42
|
+
"description": "SemVer 2.0 profile version."
|
|
43
|
+
},
|
|
44
|
+
"description": {
|
|
45
|
+
"type": "string",
|
|
46
|
+
"minLength": 20
|
|
47
|
+
},
|
|
48
|
+
"author": {
|
|
49
|
+
"type": "string"
|
|
50
|
+
},
|
|
51
|
+
"date": {
|
|
52
|
+
"type": "string",
|
|
53
|
+
"format": "date"
|
|
54
|
+
},
|
|
55
|
+
"license": {
|
|
56
|
+
"type": "string",
|
|
57
|
+
"description": "SPDX license identifier or full license URL.",
|
|
58
|
+
"examples": ["CC-BY-4.0", "MIT", "Apache-2.0"]
|
|
59
|
+
},
|
|
60
|
+
"status": {
|
|
61
|
+
"type": "string",
|
|
62
|
+
"enum": ["draft", "stable", "deprecated"]
|
|
63
|
+
},
|
|
64
|
+
"conformance_bound": {
|
|
65
|
+
"type": "object",
|
|
66
|
+
"required": [
|
|
67
|
+
"spec_version_min",
|
|
68
|
+
"minimum_rule_coverage",
|
|
69
|
+
"minimum_engine_passing"
|
|
70
|
+
],
|
|
71
|
+
"additionalProperties": false,
|
|
72
|
+
"properties": {
|
|
73
|
+
"spec_version_min": {
|
|
74
|
+
"type": "string",
|
|
75
|
+
"pattern": "^\\d+\\.\\d+$"
|
|
76
|
+
},
|
|
77
|
+
"spec_version_max": {
|
|
78
|
+
"type": ["string", "null"],
|
|
79
|
+
"pattern": "^\\d+\\.\\d+$"
|
|
80
|
+
},
|
|
81
|
+
"minimum_rule_coverage": {
|
|
82
|
+
"type": "number",
|
|
83
|
+
"minimum": 0.0,
|
|
84
|
+
"maximum": 1.0
|
|
85
|
+
},
|
|
86
|
+
"minimum_engine_passing": {
|
|
87
|
+
"type": "number",
|
|
88
|
+
"minimum": 0.0,
|
|
89
|
+
"maximum": 1.0
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
},
|
|
95
|
+
"inclusions": {
|
|
96
|
+
"type": "array",
|
|
97
|
+
"minItems": 1,
|
|
98
|
+
"items": {
|
|
99
|
+
"$ref": "#/$defs/selector"
|
|
100
|
+
}
|
|
101
|
+
},
|
|
102
|
+
"exclusions": {
|
|
103
|
+
"type": "array",
|
|
104
|
+
"items": {
|
|
105
|
+
"$ref": "#/$defs/selector"
|
|
106
|
+
}
|
|
107
|
+
},
|
|
108
|
+
"resolved_rules_summary": {
|
|
109
|
+
"type": "object",
|
|
110
|
+
"description": "Optional informational summary populated at profile-resolution time.",
|
|
111
|
+
"additionalProperties": true,
|
|
112
|
+
"properties": {
|
|
113
|
+
"total": {"type": "integer", "minimum": 0},
|
|
114
|
+
"by_category": {
|
|
115
|
+
"type": "object",
|
|
116
|
+
"patternProperties": {
|
|
117
|
+
"^[a-z][a-z0-9-]+$": {"type": "integer", "minimum": 0}
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
},
|
|
123
|
+
"$defs": {
|
|
124
|
+
"selector": {
|
|
125
|
+
"type": "object",
|
|
126
|
+
"oneOf": [
|
|
127
|
+
{
|
|
128
|
+
"required": ["rule_id"],
|
|
129
|
+
"properties": {
|
|
130
|
+
"rule_id": {
|
|
131
|
+
"type": "string",
|
|
132
|
+
"pattern": "^ATR-(?:[A-Z]{2}-)?[0-9]{4}-[0-9]{5}$"
|
|
133
|
+
}
|
|
134
|
+
},
|
|
135
|
+
"additionalProperties": false
|
|
136
|
+
},
|
|
137
|
+
{
|
|
138
|
+
"required": ["rule_id_pattern"],
|
|
139
|
+
"properties": {
|
|
140
|
+
"rule_id_pattern": {
|
|
141
|
+
"type": "string",
|
|
142
|
+
"description": "Glob pattern matching ATR rule IDs."
|
|
143
|
+
}
|
|
144
|
+
},
|
|
145
|
+
"additionalProperties": false
|
|
146
|
+
},
|
|
147
|
+
{
|
|
148
|
+
"required": ["category"],
|
|
149
|
+
"properties": {
|
|
150
|
+
"category": {
|
|
151
|
+
"type": "string",
|
|
152
|
+
"description": "Top-level category from spec/category-registry/v1.0.yaml or a reserved namespace prefix."
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"additionalProperties": false
|
|
156
|
+
},
|
|
157
|
+
{
|
|
158
|
+
"required": ["tag_match"],
|
|
159
|
+
"properties": {
|
|
160
|
+
"tag_match": {
|
|
161
|
+
"type": "object",
|
|
162
|
+
"additionalProperties": {
|
|
163
|
+
"oneOf": [
|
|
164
|
+
{"type": "string"},
|
|
165
|
+
{"type": "array", "items": {"type": "string"}}
|
|
166
|
+
]
|
|
167
|
+
}
|
|
168
|
+
}
|
|
169
|
+
},
|
|
170
|
+
"additionalProperties": false
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
"required": ["profile"],
|
|
174
|
+
"properties": {
|
|
175
|
+
"profile": {
|
|
176
|
+
"type": "string",
|
|
177
|
+
"pattern": "^[a-z0-9][a-z0-9-]{2,63}@\\d+\\.\\d+\\.\\d+$",
|
|
178
|
+
"description": "Profile inclusion in form <profile-id>@<version> for composition."
|
|
179
|
+
}
|
|
180
|
+
},
|
|
181
|
+
"additionalProperties": false
|
|
182
|
+
},
|
|
183
|
+
{
|
|
184
|
+
"required": ["rule_status"],
|
|
185
|
+
"properties": {
|
|
186
|
+
"rule_status": {
|
|
187
|
+
"type": "string",
|
|
188
|
+
"enum": ["draft", "experimental", "stable", "deprecated"]
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
"additionalProperties": false
|
|
192
|
+
}
|
|
193
|
+
]
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
{
|
|
2
|
+
"$schema": "https://json-schema.org/draft/2020-12/schema",
|
|
3
|
+
"$id": "https://spec.agentthreatrule.org/rule/v1.0/schema.json",
|
|
4
|
+
"title": "ATR Rule v1.0",
|
|
5
|
+
"description": "Machine-readable schema for ATR detection rule format. Normative prose spec at ATR-SPEC-v1.md. Existing YAML schema at spec/atr-schema.yaml. This JSON Schema adds v2.0 provenance + lifecycle fields per governance/CHARTER.md and is backward-compatible with v1.0 rules (new fields optional). License: CC BY 4.0.",
|
|
6
|
+
"type": "object",
|
|
7
|
+
"required": [
|
|
8
|
+
"schema_version",
|
|
9
|
+
"id",
|
|
10
|
+
"title",
|
|
11
|
+
"status",
|
|
12
|
+
"description",
|
|
13
|
+
"author",
|
|
14
|
+
"date",
|
|
15
|
+
"severity",
|
|
16
|
+
"detection_tier",
|
|
17
|
+
"maturity",
|
|
18
|
+
"tags",
|
|
19
|
+
"agent_source",
|
|
20
|
+
"detection",
|
|
21
|
+
"response"
|
|
22
|
+
],
|
|
23
|
+
"additionalProperties": true,
|
|
24
|
+
"properties": {
|
|
25
|
+
"schema_version": {
|
|
26
|
+
"type": "string",
|
|
27
|
+
"pattern": "^\\d+\\.\\d+$"
|
|
28
|
+
},
|
|
29
|
+
"id": {
|
|
30
|
+
"type": "string",
|
|
31
|
+
"pattern": "^ATR-(?:[A-Z]{2}-)?[0-9]{4}-[0-9]{5}$",
|
|
32
|
+
"description": "Canonical: ATR-YYYY-NNNNN. Sovereign-prefixed: ATR-XX-YYYY-NNNNN per CHARTER § 8.2."
|
|
33
|
+
},
|
|
34
|
+
"rule_version": {
|
|
35
|
+
"type": "integer",
|
|
36
|
+
"minimum": 1,
|
|
37
|
+
"default": 1
|
|
38
|
+
},
|
|
39
|
+
"title": {"type": "string", "minLength": 5},
|
|
40
|
+
"status": {
|
|
41
|
+
"type": "string",
|
|
42
|
+
"enum": ["draft", "experimental", "stable", "deprecated"]
|
|
43
|
+
},
|
|
44
|
+
"description": {"type": "string", "minLength": 20},
|
|
45
|
+
"author": {"type": "string", "minLength": 1},
|
|
46
|
+
"date": {
|
|
47
|
+
"type": "string",
|
|
48
|
+
"anyOf": [
|
|
49
|
+
{"format": "date"},
|
|
50
|
+
{"pattern": "^[0-9]{4}/[0-9]{2}/[0-9]{2}$"}
|
|
51
|
+
]
|
|
52
|
+
},
|
|
53
|
+
"modified": {"type": "string"},
|
|
54
|
+
"severity": {
|
|
55
|
+
"type": "string",
|
|
56
|
+
"enum": ["critical", "high", "medium", "low", "informational"]
|
|
57
|
+
},
|
|
58
|
+
"detection_tier": {
|
|
59
|
+
"type": "string",
|
|
60
|
+
"enum": ["pattern", "behavioral", "protocol", "classifier"]
|
|
61
|
+
},
|
|
62
|
+
"maturity": {
|
|
63
|
+
"type": "string",
|
|
64
|
+
"enum": ["draft", "experimental", "test", "stable", "deprecated"]
|
|
65
|
+
},
|
|
66
|
+
"confidence": {
|
|
67
|
+
"type": "integer",
|
|
68
|
+
"minimum": 0,
|
|
69
|
+
"maximum": 100,
|
|
70
|
+
"description": "Engine confidence percentage 0-100."
|
|
71
|
+
},
|
|
72
|
+
"tags": {
|
|
73
|
+
"type": "object",
|
|
74
|
+
"required": ["category"],
|
|
75
|
+
"properties": {
|
|
76
|
+
"category": {"type": "string"},
|
|
77
|
+
"subcategory": {"type": "string"},
|
|
78
|
+
"confidence": {"type": "string", "enum": ["high", "medium", "low"]},
|
|
79
|
+
"scan_target": {"type": "string", "enum": ["mcp", "skill", "skill_md", "llm_io", "runtime", "user_input", "tool_response", "both", "llm"]},
|
|
80
|
+
"source": {"type": "string"},
|
|
81
|
+
"vendor_sources": {"oneOf": [{"type": "string"}, {"type": "array"}]},
|
|
82
|
+
"suppress_in_code_blocks": {"type": "boolean"}
|
|
83
|
+
},
|
|
84
|
+
"additionalProperties": true
|
|
85
|
+
},
|
|
86
|
+
"agent_source": {
|
|
87
|
+
"type": "object",
|
|
88
|
+
"required": ["type"],
|
|
89
|
+
"properties": {
|
|
90
|
+
"type": {"type": "string"},
|
|
91
|
+
"framework": {"type": "array", "items": {"type": "string"}},
|
|
92
|
+
"provider": {"type": "array", "items": {"type": "string"}}
|
|
93
|
+
},
|
|
94
|
+
"additionalProperties": true
|
|
95
|
+
},
|
|
96
|
+
"detection": {
|
|
97
|
+
"type": "object",
|
|
98
|
+
"required": ["conditions"],
|
|
99
|
+
"properties": {
|
|
100
|
+
"conditions": {
|
|
101
|
+
"type": "array",
|
|
102
|
+
"minItems": 1,
|
|
103
|
+
"items": {
|
|
104
|
+
"type": "object",
|
|
105
|
+
"anyOf": [
|
|
106
|
+
{
|
|
107
|
+
"required": ["field", "operator", "value"],
|
|
108
|
+
"properties": {
|
|
109
|
+
"field": {"type": "string"},
|
|
110
|
+
"operator": {"type": "string", "enum": ["regex", "equals", "contains", "matches", "ml_classifier", "ast", "bytecode"]},
|
|
111
|
+
"value": {"type": ["string", "array", "object"]},
|
|
112
|
+
"language": {"type": "string", "description": "ISO 639-1 code per spec/atr-language-detection-v1.0.md"},
|
|
113
|
+
"description": {"type": "string"}
|
|
114
|
+
}
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
"required": ["metric", "operator", "threshold"],
|
|
118
|
+
"properties": {
|
|
119
|
+
"metric": {"type": "string"},
|
|
120
|
+
"operator": {"type": "string"},
|
|
121
|
+
"threshold": {"type": ["number", "string"]}
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
]
|
|
125
|
+
}
|
|
126
|
+
},
|
|
127
|
+
"condition": {"type": "string", "description": "Boolean expression over condition aliases. Default: 'any' (OR)."},
|
|
128
|
+
"false_positives": {"type": "array", "items": {"type": "string"}}
|
|
129
|
+
}
|
|
130
|
+
},
|
|
131
|
+
"response": {
|
|
132
|
+
"type": "object",
|
|
133
|
+
"required": ["actions"],
|
|
134
|
+
"properties": {
|
|
135
|
+
"actions": {
|
|
136
|
+
"type": "array",
|
|
137
|
+
"items": {"type": "string", "enum": ["block_input", "block_output", "redact", "alert", "snapshot", "quarantine", "terminate_session"]},
|
|
138
|
+
"minItems": 1
|
|
139
|
+
},
|
|
140
|
+
"auto_response_threshold": {"type": "string"},
|
|
141
|
+
"message_template": {"type": "string"}
|
|
142
|
+
}
|
|
143
|
+
},
|
|
144
|
+
"references": {
|
|
145
|
+
"type": "object",
|
|
146
|
+
"additionalProperties": true,
|
|
147
|
+
"properties": {
|
|
148
|
+
"owasp_llm": {"type": "array", "items": {"type": "string"}},
|
|
149
|
+
"owasp_agentic": {"type": "array", "items": {"type": "string"}},
|
|
150
|
+
"mitre_atlas": {"type": "array", "items": {"type": "string"}},
|
|
151
|
+
"cve": {"type": "array", "items": {"type": "string"}},
|
|
152
|
+
"ghsa": {"type": "array", "items": {"type": "string"}}
|
|
153
|
+
}
|
|
154
|
+
},
|
|
155
|
+
"compliance": {
|
|
156
|
+
"type": "object",
|
|
157
|
+
"additionalProperties": true,
|
|
158
|
+
"description": "Mappings to compliance frameworks (OWASP, EU AI Act, NIST AI RMF, ISO 42001, etc.). Each is an array of objects with id/article/clause + context + strength fields."
|
|
159
|
+
},
|
|
160
|
+
"test_cases": {
|
|
161
|
+
"type": "object",
|
|
162
|
+
"properties": {
|
|
163
|
+
"true_positives": {
|
|
164
|
+
"type": "array",
|
|
165
|
+
"minItems": 1,
|
|
166
|
+
"items": {
|
|
167
|
+
"type": "object",
|
|
168
|
+
"required": ["input", "expected"],
|
|
169
|
+
"properties": {
|
|
170
|
+
"input": {"type": "string"},
|
|
171
|
+
"expected": {"type": "string", "enum": ["triggered", "not_triggered"]},
|
|
172
|
+
"description": {"type": "string"}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
},
|
|
176
|
+
"true_negatives": {
|
|
177
|
+
"type": "array",
|
|
178
|
+
"minItems": 1,
|
|
179
|
+
"items": {
|
|
180
|
+
"type": "object",
|
|
181
|
+
"required": ["input", "expected"],
|
|
182
|
+
"properties": {
|
|
183
|
+
"input": {"type": "string"},
|
|
184
|
+
"expected": {"type": "string", "enum": ["triggered", "not_triggered"]},
|
|
185
|
+
"description": {"type": "string"}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
},
|
|
191
|
+
"provenance": {
|
|
192
|
+
"type": "object",
|
|
193
|
+
"description": "v2.0 — producer attribution per CHARTER § 5 multi-producer architecture. Optional in v1.0 rules for backward compatibility.",
|
|
194
|
+
"properties": {
|
|
195
|
+
"producer": {
|
|
196
|
+
"type": "string",
|
|
197
|
+
"enum": ["red_team", "tc_flywheel", "cve_pipeline", "research_paper", "community", "sovereign"]
|
|
198
|
+
},
|
|
199
|
+
"contributor": {"type": "string"},
|
|
200
|
+
"contributor_org": {"type": "string"},
|
|
201
|
+
"attestation_signature": {
|
|
202
|
+
"type": "string",
|
|
203
|
+
"description": "ed25519 sig for sovereign-issued rules per CHARTER § 8.2."
|
|
204
|
+
},
|
|
205
|
+
"origin_event_id": {
|
|
206
|
+
"type": "string",
|
|
207
|
+
"description": "Link to source CVE / TC event / research paper."
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
},
|
|
211
|
+
"lifecycle": {
|
|
212
|
+
"type": "object",
|
|
213
|
+
"description": "v2.0 — explicit lifecycle metadata per CHARTER § 5.",
|
|
214
|
+
"properties": {
|
|
215
|
+
"review_status": {
|
|
216
|
+
"type": "string",
|
|
217
|
+
"enum": ["unreviewed", "community_reviewed", "tsc_approved"]
|
|
218
|
+
},
|
|
219
|
+
"created": {"type": "string", "format": "date"},
|
|
220
|
+
"last_validated": {"type": "string", "format": "date"}
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
}
|
|
@@ -4,19 +4,23 @@ This directory defines a STIX 2.1 extension that introduces the
|
|
|
4
4
|
`x-atr-rule` custom Domain Object so ATR rules can be represented
|
|
5
5
|
natively in STIX/TAXII threat-intelligence pipelines.
|
|
6
6
|
|
|
7
|
+
**Current version: 1.1.0** (2026-05-28). See [Changelog](#changelog) below.
|
|
8
|
+
|
|
7
9
|
## Why a STIX extension
|
|
8
10
|
|
|
9
11
|
ATR rules are an open detection vocabulary for AI agent threats —
|
|
10
|
-
prompt injection, tool poisoning, MCP server attacks, skill compromise
|
|
12
|
+
prompt injection, tool poisoning, MCP server attacks, skill compromise,
|
|
13
|
+
plus the v1.1 trace-method rules for silent failures and scope drift.
|
|
11
14
|
They were adopted as a MISP taxonomy in [MISP/misp-taxonomies#323][misp-tax]
|
|
12
15
|
on 2026-05-10 and a MISP galaxy in [MISP/misp-galaxy#1207][misp-gal].
|
|
13
16
|
|
|
14
17
|
Several CTI consumers use STIX/TAXII rather than MISP. Mapping ATR to a
|
|
15
18
|
generic STIX `indicator` or `attack-pattern` object is lossy: the
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
19
|
+
ten-category attack class, regex detection patterns, severity, the
|
|
20
|
+
five-plane detection method (v1.1), and the compliance-framework references
|
|
21
|
+
(EU AI Act, NIST AI RMF, NIST CSF 2.0, ISO 42001, ETSI TS 104 223, OSCAL)
|
|
22
|
+
all get flattened. This extension preserves them as first-class fields on
|
|
23
|
+
a new `x-atr-rule` SDO.
|
|
20
24
|
|
|
21
25
|
## Files
|
|
22
26
|
|
|
@@ -24,24 +28,42 @@ new `x-atr-rule` SDO.
|
|
|
24
28
|
STIX 2.1 Extension Definition object. Stable id
|
|
25
29
|
`extension-definition--93370194-c964-570f-9802-9d1154e5525d`. Consumers
|
|
26
30
|
reference this id in the `extensions` map of every `x-atr-rule`
|
|
27
|
-
instance.
|
|
31
|
+
instance. v1.1.0 as of 2026-05-28.
|
|
28
32
|
- [`x-atr-rule-schema.json`](./x-atr-rule-schema.json) — JSON Schema
|
|
29
33
|
(Draft 7) for the new SDO. Defines required fields, enum values for
|
|
30
|
-
`atr_category` / `
|
|
31
|
-
and structural constraints
|
|
32
|
-
`
|
|
34
|
+
`atr_category` / `atr_method` / `atr_runtime_profile` / `severity` /
|
|
35
|
+
`agent_source_type` / `response_actions`, and structural constraints
|
|
36
|
+
on `detection_patterns`, `signature_indicators`, `semantic_judge`,
|
|
37
|
+
`trace_detection`, and `compliance_refs`.
|
|
33
38
|
- [`examples/atr-rule-prompt-injection-example.json`](./examples/atr-rule-prompt-injection-example.json)
|
|
34
|
-
—
|
|
35
|
-
|
|
39
|
+
— pattern-method instance for `ATR-2026-00001`.
|
|
40
|
+
- [`examples/atr-rule-trace-method-example.json`](./examples/atr-rule-trace-method-example.json)
|
|
41
|
+
— v1.1 trace-method instance for `ATR-2026-00548`. Shows the
|
|
42
|
+
`trace_detection` payload with the `invariant` primitive.
|
|
36
43
|
|
|
37
44
|
## Identifier convention
|
|
38
45
|
|
|
39
46
|
`x-atr-rule.id` is recommended to be a deterministic UUIDv5 derived
|
|
40
|
-
from the canonical ATR rule id (e.g. `ATR-2026-
|
|
47
|
+
from the canonical ATR rule id (e.g. `ATR-2026-00548`) under the
|
|
41
48
|
namespace UUID `6f7a8b9c-1d2e-4f5a-9b8c-7e6d5f4a3b2c`. The same rule id
|
|
42
49
|
therefore always produces the same STIX id across consumers, which lets
|
|
43
50
|
multiple feeds align without conflict resolution.
|
|
44
51
|
|
|
52
|
+
## Method-specific payload mapping (v1.1)
|
|
53
|
+
|
|
54
|
+
The `atr_method` field selects which optional payload field is populated:
|
|
55
|
+
|
|
56
|
+
| `atr_method` | Required companion field | Maps to ATR YAML |
|
|
57
|
+
|--------------|--------------------------|------------------|
|
|
58
|
+
| `pattern` | `detection_patterns` | `detection.conditions` |
|
|
59
|
+
| `signature` | `signature_indicators` | `detection.signature.indicators` |
|
|
60
|
+
| `semantic` | `semantic_judge` | `detection.semantic` |
|
|
61
|
+
| `behavioral` | (placeholder; spec §7) | — |
|
|
62
|
+
| `trace` | `trace_detection` | `detection.trace` |
|
|
63
|
+
|
|
64
|
+
For multi-method rules (e.g., rule 00552 uses both invariant AND forbid
|
|
65
|
+
inside one trace block), all primitives ship under `trace_detection.primitives`.
|
|
66
|
+
|
|
45
67
|
## Extension type
|
|
46
68
|
|
|
47
69
|
`extension_types: ["new-sdo"]` per STIX 2.1 §7.3, which is the correct
|
|
@@ -50,6 +72,23 @@ The schema field on the Extension Definition points at the JSON Schema
|
|
|
50
72
|
in this directory via raw GitHub URL so the schema is dereferenceable
|
|
51
73
|
for validating consumers.
|
|
52
74
|
|
|
75
|
+
## MISP export hint
|
|
76
|
+
|
|
77
|
+
Consumers that bridge STIX → MISP can map `x-atr-rule` to MISP objects:
|
|
78
|
+
|
|
79
|
+
| `x-atr-rule` field | MISP object / attribute |
|
|
80
|
+
|--------------------|-------------------------|
|
|
81
|
+
| `atr_id` | `external-references[type=external_analysis]` or first `atr` attribute |
|
|
82
|
+
| `atr_category` | MISP taxonomy `atr:category="<value>"` (via misp-taxonomies#323) |
|
|
83
|
+
| `severity` | MISP `threat-level` |
|
|
84
|
+
| `detection_patterns[].pattern` | `pattern-in-file` attribute (one per regex) |
|
|
85
|
+
| `signature_indicators[].value` | MISP `sha256` / `filename` / `url` attribute by `type` |
|
|
86
|
+
| `cve_refs` | MISP `vulnerability` attribute |
|
|
87
|
+
| `mitre_atlas_refs` | MISP galaxy `mitre-atlas-techniques` |
|
|
88
|
+
| `compliance_refs.*` | MISP free-form tag, namespace per framework |
|
|
89
|
+
|
|
90
|
+
A reference STIX→MISP transpiler is planned at `scripts/export-stix-to-misp.ts`.
|
|
91
|
+
|
|
53
92
|
## Validation
|
|
54
93
|
|
|
55
94
|
```bash
|
|
@@ -58,12 +97,34 @@ python3 -c "import json, jsonschema; \
|
|
|
58
97
|
schema = json.load(open('spec/stix-extension/x-atr-rule-schema.json')); \
|
|
59
98
|
example = json.load(open('spec/stix-extension/examples/atr-rule-prompt-injection-example.json')); \
|
|
60
99
|
jsonschema.validate(example, schema); \
|
|
100
|
+
trace_example = json.load(open('spec/stix-extension/examples/atr-rule-trace-method-example.json')); \
|
|
101
|
+
jsonschema.validate(trace_example, schema); \
|
|
61
102
|
print('OK')"
|
|
62
103
|
```
|
|
63
104
|
|
|
105
|
+
## Changelog
|
|
106
|
+
|
|
107
|
+
### v1.1.0 — 2026-05-28
|
|
108
|
+
- Added `atr_method` enum field (pattern / signature / semantic / behavioral / trace).
|
|
109
|
+
- Added `atr_runtime_profile` enum field (deterministic / assisted).
|
|
110
|
+
- Added 10th category `model-security` to `atr_category` enum.
|
|
111
|
+
- Added `agent_trace` to `agent_source_type` enum.
|
|
112
|
+
- Added method-specific payload objects: `signature_indicators`,
|
|
113
|
+
`semantic_judge`, `trace_detection`.
|
|
114
|
+
- Added `probe_id_refs` for adversarial probe binding (PyRIT / garak / etc).
|
|
115
|
+
- Added compliance fields: `nist_csf`, `etsi_ts_104223`, `oscal_assessment_objective`.
|
|
116
|
+
- Added `owasp_ast_refs`, `safe_mcp_refs`.
|
|
117
|
+
- Extended `response_actions` enum with SPEC.md Appendix A canonical
|
|
118
|
+
vocabulary (`block_request`, `log_alert`, `redact_match`, etc).
|
|
119
|
+
- Added `draft` to `maturity` enum to match on-disk rule status vocabulary.
|
|
120
|
+
- New example: `examples/atr-rule-trace-method-example.json`.
|
|
121
|
+
|
|
122
|
+
### v1.0.0 — 2026-05-11
|
|
123
|
+
- Initial release. Nine categories. Pattern-method only.
|
|
124
|
+
|
|
64
125
|
## Status
|
|
65
126
|
|
|
66
|
-
Draft v1.
|
|
127
|
+
Draft v1.1.0. Not yet submitted to the OASIS CTI Technical Committee.
|
|
67
128
|
The extension is usable today by any consumer that processes STIX
|
|
68
129
|
extensions per the spec; OASIS submission becomes relevant if a
|
|
69
130
|
subset of fields ends up wanting promotion into core STIX.
|
|
@@ -72,6 +133,8 @@ subset of fields ends up wanting promotion into core STIX.
|
|
|
72
133
|
|
|
73
134
|
- Canonical ATR repo: <https://github.com/Agent-Threat-Rule/agent-threat-rules>
|
|
74
135
|
- ATR YAML schema: [`../atr-schema.yaml`](../atr-schema.yaml)
|
|
136
|
+
- ATR Core Specification: [`../../SPEC.md`](../../SPEC.md)
|
|
137
|
+
- ATR Method Extensions: [`../atr-method-v1.1.md`](../atr-method-v1.1.md)
|
|
75
138
|
- npm: <https://www.npmjs.com/package/agent-threat-rules>
|
|
76
139
|
- DOI: 10.5281/zenodo.19178002
|
|
77
140
|
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
{
|
|
2
|
+
"type": "x-atr-rule",
|
|
3
|
+
"id": "x-atr-rule--c2e83f15-44b7-5e8a-b9c3-aae5d2348816",
|
|
4
|
+
"spec_version": "2.1",
|
|
5
|
+
"created_by_ref": "identity--4ee77ba4-f956-5d27-aeb1-cbfeb4c8f8d5",
|
|
6
|
+
"created": "2026-05-28T00:00:00.000Z",
|
|
7
|
+
"modified": "2026-05-28T00:00:00.000Z",
|
|
8
|
+
"atr_id": "ATR-2026-00548",
|
|
9
|
+
"atr_category": "context-exfiltration",
|
|
10
|
+
"atr_subcategory": "cross-agent-context-drift",
|
|
11
|
+
"atr_method": "trace",
|
|
12
|
+
"atr_runtime_profile": "assisted",
|
|
13
|
+
"name": "Cross-agent session context leak across delegation chain",
|
|
14
|
+
"description": "Detects cross-agent context leakage in multi-agent systems where a privileged context attribute (typically session.id, user.id, or conversation.id) fails to remain constant across a single agent delegation chain. Trace-method rule operating on agent execution traces in OpenInference format.",
|
|
15
|
+
"severity": "high",
|
|
16
|
+
"maturity": "draft",
|
|
17
|
+
"agent_source_type": "agent_trace",
|
|
18
|
+
"trace_detection": {
|
|
19
|
+
"ingest_format": "openinference",
|
|
20
|
+
"primitives": {
|
|
21
|
+
"invariant": [
|
|
22
|
+
{
|
|
23
|
+
"attribute": "session.id",
|
|
24
|
+
"across": "agent.delegation_chain",
|
|
25
|
+
"description": "session.id MUST remain constant across every span in one delegation chain."
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
"attribute": "user.id",
|
|
29
|
+
"across": "agent.delegation_chain",
|
|
30
|
+
"description": "user.id MUST remain constant across the delegation chain."
|
|
31
|
+
}
|
|
32
|
+
]
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
"response_actions": [
|
|
36
|
+
"alert",
|
|
37
|
+
"quarantine_session"
|
|
38
|
+
],
|
|
39
|
+
"owasp_agentic_refs": [
|
|
40
|
+
"ASI03:2026 - Data Exfiltration",
|
|
41
|
+
"ASI06:2026 - Identity Spoofing & Impersonation"
|
|
42
|
+
],
|
|
43
|
+
"mitre_atlas_refs": [
|
|
44
|
+
"AML.T0024 - Exfiltration via Cyber Means"
|
|
45
|
+
],
|
|
46
|
+
"compliance_refs": {
|
|
47
|
+
"nist_csf": [
|
|
48
|
+
"DE.CM-09"
|
|
49
|
+
],
|
|
50
|
+
"etsi_ts_104223": [
|
|
51
|
+
"P4.3"
|
|
52
|
+
],
|
|
53
|
+
"eu_ai_act": [
|
|
54
|
+
{
|
|
55
|
+
"article": "10",
|
|
56
|
+
"context": "Data governance — multi-agent systems must preserve session-scope boundaries.",
|
|
57
|
+
"strength": "primary"
|
|
58
|
+
}
|
|
59
|
+
],
|
|
60
|
+
"nist_ai_rmf": [
|
|
61
|
+
{
|
|
62
|
+
"subcategory": "MS.2.6",
|
|
63
|
+
"context": "Information security — agent delegation chains must preserve session and user scope.",
|
|
64
|
+
"strength": "primary"
|
|
65
|
+
}
|
|
66
|
+
]
|
|
67
|
+
},
|
|
68
|
+
"external_references": [
|
|
69
|
+
{
|
|
70
|
+
"source_name": "agent-threat-rules",
|
|
71
|
+
"external_id": "ATR-2026-00548",
|
|
72
|
+
"url": "https://github.com/Agent-Threat-Rule/agent-threat-rules/blob/main/rules/context-exfiltration/ATR-2026-00548-cross-agent-session-context-leak.yaml"
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"source_name": "Argus paper",
|
|
76
|
+
"description": "Hierarchical Reference-Relationship Graph for Multi-Agent Information Leakage",
|
|
77
|
+
"url": "https://arxiv.org/abs/2512.08326"
|
|
78
|
+
}
|
|
79
|
+
],
|
|
80
|
+
"extensions": {
|
|
81
|
+
"extension-definition--93370194-c964-570f-9802-9d1154e5525d": {
|
|
82
|
+
"extension_type": "new-sdo"
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|