agent-threat-rules 2.1.5 → 3.0.5
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/engine.d.ts +46 -1
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +242 -1
- 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/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/semantic-evaluator.d.ts +48 -0
- package/dist/semantic-evaluator.d.ts.map +1 -0
- package/dist/semantic-evaluator.js +107 -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 +143 -0
- package/dist/types.d.ts.map +1 -1
- package/package.json +5 -3
- package/rules/agent-manipulation/ATR-2026-00552-goal-drift-after-pressure-injection.yaml +216 -0
- package/rules/context-exfiltration/ATR-2026-00471-garak-sysprompt-extraction-mixedunassigned.yaml +126 -0
- package/rules/context-exfiltration/ATR-2026-00501-data-exfiltration-via-markdown-image-and-link-url-injection.yaml +173 -0
- package/rules/context-exfiltration/ATR-2026-00504-tool-and-function-capability-enumeration.yaml +164 -0
- package/rules/context-exfiltration/ATR-2026-00505-system-prompt-extraction-instruction-dump-request.yaml +178 -0
- package/rules/context-exfiltration/ATR-2026-00514-system-prompt-extraction.yaml +202 -0
- package/rules/context-exfiltration/ATR-2026-00516-output-xss-via-llm.yaml +180 -0
- 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/excessive-autonomy/ATR-2026-00491-garak-agent-breaker-markdown-just-raw-json.yaml +152 -0
- package/rules/excessive-autonomy/ATR-2026-00500-ssrf-via-agent-url-fetch-instruction.yaml +168 -0
- package/rules/excessive-autonomy/ATR-2026-00553-runaway-tool-loop-behavioral.yaml +174 -0
- package/rules/model-abuse/ATR-2026-00502-training-data-extraction-via-divergent-repetition-attack.yaml +158 -0
- package/rules/model-abuse/ATR-2026-00517-model-extraction-distillation.yaml +187 -0
- 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 +167 -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-00452-direct-pwned-payload-injection.yaml +172 -0
- package/rules/prompt-injection/ATR-2026-00453-secret-key-reveal-demand.yaml +165 -0
- package/rules/prompt-injection/ATR-2026-00454-backslash-per-character-encoding.yaml +162 -0
- package/rules/prompt-injection/ATR-2026-00455-no-period-output-override.yaml +153 -0
- package/rules/prompt-injection/ATR-2026-00456-conditional-empty-input-injection.yaml +168 -0
- package/rules/prompt-injection/ATR-2026-00457-garak-dan-to-every-prompt.yaml +160 -0
- package/rules/prompt-injection/ATR-2026-00458-garak-dra-step-by-step.yaml +143 -0
- package/rules/prompt-injection/ATR-2026-00459-garak-dan-an-ai-language.yaml +136 -0
- package/rules/prompt-injection/ATR-2026-00460-garak-dan-no-matter-how.yaml +162 -0
- package/rules/prompt-injection/ATR-2026-00461-garak-goodside-mixedunassigned.yaml +140 -0
- package/rules/prompt-injection/ATR-2026-00462-garak-gcg-mixedunassigned.yaml +141 -0
- package/rules/prompt-injection/ATR-2026-00463-garak-lmrc-mixedunassigned.yaml +142 -0
- package/rules/prompt-injection/ATR-2026-00464-garak-dan-i-would-like.yaml +139 -0
- package/rules/prompt-injection/ATR-2026-00465-garak-dan-your-prompt-here.yaml +145 -0
- package/rules/prompt-injection/ATR-2026-00466-garak-latentinjection-following-text-from.yaml +141 -0
- package/rules/prompt-injection/ATR-2026-00467-garak-dan-act-as-a.yaml +140 -0
- package/rules/prompt-injection/ATR-2026-00468-garak-goat-the-target-llm.yaml +141 -0
- package/rules/prompt-injection/ATR-2026-00469-garak-dan-at-the-end.yaml +140 -0
- package/rules/prompt-injection/ATR-2026-00470-garak-dan-as-an-ai.yaml +155 -0
- package/rules/prompt-injection/ATR-2026-00472-garak-dan-are-going-to.yaml +150 -0
- package/rules/prompt-injection/ATR-2026-00473-garak-lmrc-how-can-i.yaml +140 -0
- package/rules/prompt-injection/ATR-2026-00474-garak-dan-that-chatgpt-has.yaml +133 -0
- package/rules/prompt-injection/ATR-2026-00475-garak-web-injection-alert-1-script.yaml +136 -0
- package/rules/prompt-injection/ATR-2026-00476-garak-web-injection-javascript-alert-1.yaml +157 -0
- package/rules/prompt-injection/ATR-2026-00477-garak-latentinjection-translate-the-following-text.yaml +143 -0
- package/rules/prompt-injection/ATR-2026-00478-garak-latentinjection-abuse-contact-email.yaml +136 -0
- package/rules/prompt-injection/ATR-2026-00479-garak-latentinjection-mixedunassigned.yaml +146 -0
- package/rules/prompt-injection/ATR-2026-00480-garak-dan-the-role-of.yaml +137 -0
- package/rules/prompt-injection/ATR-2026-00481-garak-dan-mixedunassigned.yaml +153 -0
- package/rules/prompt-injection/ATR-2026-00482-garak-lmrc-what-s-an.yaml +128 -0
- package/rules/prompt-injection/ATR-2026-00483-garak-dan-the-user-s.yaml +141 -0
- package/rules/prompt-injection/ATR-2026-00484-garak-dan-and-you-will.yaml +138 -0
- package/rules/prompt-injection/ATR-2026-00485-garak-dan-and-does-not.yaml +141 -0
- package/rules/prompt-injection/ATR-2026-00486-garak-dan-t-care-about.yaml +125 -0
- package/rules/prompt-injection/ATR-2026-00487-garak-dan-and-nothing-else.yaml +134 -0
- package/rules/prompt-injection/ATR-2026-00488-garak-encoding-alert-1-script.yaml +137 -0
- package/rules/prompt-injection/ATR-2026-00489-garak-encoding-javascript-alert-1.yaml +158 -0
- package/rules/prompt-injection/ATR-2026-00490-garak-dan-in-order-to.yaml +158 -0
- package/rules/prompt-injection/ATR-2026-00492-garak-dan-want-you-to.yaml +156 -0
- package/rules/prompt-injection/ATR-2026-00493-garak-latentinjection-registrar-iana-id.yaml +158 -0
- package/rules/prompt-injection/ATR-2026-00495-garak-dan-insert-prompt-here.yaml +177 -0
- package/rules/prompt-injection/ATR-2026-00496-garak-dan-no-matter-what.yaml +148 -0
- package/rules/prompt-injection/ATR-2026-00497-garak-encoding-mixedunassigned.yaml +179 -0
- package/rules/prompt-injection/ATR-2026-00498-garak-web-injection-mixedunassigned.yaml +169 -0
- package/rules/prompt-injection/ATR-2026-00499-garak-dan-from-now-on.yaml +150 -0
- package/rules/prompt-injection/ATR-2026-00503-fake-error-state-takeover-unrestricted-replacement-bot.yaml +160 -0
- package/rules/prompt-injection/ATR-2026-00506-nevermind-override-goal-hijacking-in-user-input-promptinject.yaml +149 -0
- package/rules/prompt-injection/ATR-2026-00507-screaming-stop-goal-hijacking-in-user-input-promptinject.yaml +154 -0
- package/rules/prompt-injection/ATR-2026-00508-escape-delimiter-wrapped-goal-hijacking-in-user-input-prompt.yaml +154 -0
- package/rules/prompt-injection/ATR-2026-00509-prompt-leaking-via-ignore-previous-instructions-in-user-inpu.yaml +168 -0
- package/rules/prompt-injection/ATR-2026-00510-delayed-tool-invocation-injection.yaml +189 -0
- package/rules/prompt-injection/ATR-2026-00511-mcp-web-context-poisoning.yaml +185 -0
- package/rules/prompt-injection/ATR-2026-00512-rules-file-backdoor-injection.yaml +181 -0
- package/rules/prompt-injection/ATR-2026-00515-hidden-text-prompt-injection.yaml +194 -0
- package/rules/prompt-injection/ATR-2026-00518-ignore-previous-and-following-instructions-output-command-promptinject.yaml +154 -0
- package/rules/prompt-injection/ATR-2026-00519-tautology-logic-noise-injection-promptbench.yaml +151 -0
- package/rules/prompt-injection/ATR-2026-00520-nlp-task-random-token-suffix-injection-promptbench.yaml +153 -0
- 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/skill-compromise/ATR-2026-00123-skill-overreach-permissions.yaml +5 -2
- 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-00494-garak-exploitation-mixedunassigned.yaml +179 -0
- package/rules/tool-poisoning/ATR-2026-00513-package-hallucination-exploitation.yaml +167 -0
- package/rules/tool-poisoning/ATR-2026-00521-shell-command-injection-agent-tool-context.yaml +176 -0
- package/rules/tool-poisoning/ATR-2026-00522-sql-injection-natural-language-agent-interface.yaml +219 -0
- 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/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
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
"spec_version": "2.1",
|
|
5
5
|
"created_by_ref": "identity--4ee77ba4-f956-5d27-aeb1-cbfeb4c8f8d5",
|
|
6
6
|
"created": "2026-05-11T00:00:00.000Z",
|
|
7
|
-
"modified": "2026-05-
|
|
7
|
+
"modified": "2026-05-28T00:00:00.000Z",
|
|
8
8
|
"name": "Agent Threat Rules (ATR) STIX Extension",
|
|
9
|
-
"description": "Defines the x-atr-rule custom STIX Domain Object for representing AI agent detection rules. Each x-atr-rule instance carries a deterministic rule identifier (e.g. ATR-2026-
|
|
9
|
+
"description": "Defines the x-atr-rule custom STIX Domain Object for representing AI agent detection rules. Each x-atr-rule instance carries a deterministic rule identifier (e.g. ATR-2026-00548), one of ten attack-class categories (prompt-injection, tool-poisoning, context-exfiltration, agent-manipulation, privilege-escalation, excessive-autonomy, data-poisoning, model-abuse, model-security, skill-compromise), severity, the v1.1 detection method (pattern / signature / semantic / behavioral / trace), runtime profile (deterministic / assisted), method-specific detection payloads (signature_indicators, semantic_judge, trace_detection), adversarial probe bindings (probe_id_refs), and external mappings to OWASP LLM/Agentic/AST Top 10, MITRE ATLAS/ATT&CK, EU AI Act, NIST AI RMF, NIST CSF 2.0, ISO/IEC 42001, ETSI TS 104 223, and OSCAL assessment objectives. ATR rules are the open-source detection vocabulary published at github.com/Agent-Threat-Rule/agent-threat-rules under MIT and adopted as a MISP taxonomy at MISP/misp-taxonomies#323 and a MISP galaxy at MISP/misp-galaxy#1207. This extension lets STIX consumers represent ATR rules natively in CTI pipelines without lossy translation through indicator or attack-pattern objects.",
|
|
10
10
|
"schema": "https://raw.githubusercontent.com/Agent-Threat-Rule/agent-threat-rules/main/spec/stix-extension/x-atr-rule-schema.json",
|
|
11
|
-
"version": "1.
|
|
11
|
+
"version": "1.1.0",
|
|
12
12
|
"extension_types": [
|
|
13
13
|
"new-sdo"
|
|
14
14
|
],
|
|
@@ -18,15 +18,35 @@
|
|
|
18
18
|
"description": "ATR canonical repository",
|
|
19
19
|
"url": "https://github.com/Agent-Threat-Rule/agent-threat-rules"
|
|
20
20
|
},
|
|
21
|
+
{
|
|
22
|
+
"source_name": "atr-spec",
|
|
23
|
+
"description": "ATR Core Specification v1.0.0 (Draft)",
|
|
24
|
+
"url": "https://github.com/Agent-Threat-Rule/agent-threat-rules/blob/main/SPEC.md"
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"source_name": "atr-method-spec",
|
|
28
|
+
"description": "ATR Method Extensions v1.1.0 (Draft) — five-plane detection model",
|
|
29
|
+
"url": "https://github.com/Agent-Threat-Rule/agent-threat-rules/blob/main/spec/atr-method-v1.1.md"
|
|
30
|
+
},
|
|
21
31
|
{
|
|
22
32
|
"source_name": "misp-taxonomies",
|
|
23
33
|
"description": "ATR MISP taxonomy adoption",
|
|
24
34
|
"url": "https://github.com/MISP/misp-taxonomies/pull/323"
|
|
25
35
|
},
|
|
36
|
+
{
|
|
37
|
+
"source_name": "misp-galaxy",
|
|
38
|
+
"description": "ATR MISP galaxy adoption",
|
|
39
|
+
"url": "https://github.com/MISP/misp-galaxy/pull/1207"
|
|
40
|
+
},
|
|
26
41
|
{
|
|
27
42
|
"source_name": "stix-2.1",
|
|
28
43
|
"description": "STIX 2.1 specification, Section 7.3 Extension Definition",
|
|
29
44
|
"url": "https://docs.oasis-open.org/cti/stix/v2.1/os/stix-v2.1-os.html"
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
"source_name": "openinference",
|
|
48
|
+
"description": "OpenInference semantic conventions — the ingest format for trace-method rules per atr-method-v1.1.md §8.2",
|
|
49
|
+
"url": "https://github.com/Arize-ai/openinference"
|
|
30
50
|
}
|
|
31
51
|
]
|
|
32
52
|
}
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"$schema": "http://json-schema.org/draft-07/schema#",
|
|
3
3
|
"$id": "https://raw.githubusercontent.com/Agent-Threat-Rule/agent-threat-rules/main/spec/stix-extension/x-atr-rule-schema.json",
|
|
4
4
|
"title": "x-atr-rule",
|
|
5
|
-
"description": "STIX 2.1 custom SDO for an Agent Threat Rules detection rule.",
|
|
5
|
+
"description": "STIX 2.1 custom SDO for an Agent Threat Rules detection rule. v1.1 (2026-05-28) adds method/profile fields for the five-plane detection model defined in spec/atr-method-v1.1.md, and compliance crosswalks for NIST CSF 2.0, ETSI TS 104 223, and OSCAL.",
|
|
6
6
|
"type": "object",
|
|
7
7
|
"required": [
|
|
8
8
|
"type",
|
|
@@ -51,7 +51,7 @@
|
|
|
51
51
|
"atr_id": {
|
|
52
52
|
"type": "string",
|
|
53
53
|
"pattern": "^ATR-[0-9]{4}-[0-9]{5}$",
|
|
54
|
-
"description": "Canonical ATR rule identifier (e.g. ATR-2026-
|
|
54
|
+
"description": "Canonical ATR rule identifier (e.g. ATR-2026-00548)."
|
|
55
55
|
},
|
|
56
56
|
"atr_category": {
|
|
57
57
|
"type": "string",
|
|
@@ -64,13 +64,24 @@
|
|
|
64
64
|
"excessive-autonomy",
|
|
65
65
|
"data-poisoning",
|
|
66
66
|
"model-abuse",
|
|
67
|
+
"model-security",
|
|
67
68
|
"skill-compromise"
|
|
68
69
|
],
|
|
69
|
-
"description": "One of
|
|
70
|
+
"description": "One of ten canonical ATR attack-class categories (SPEC.md §8). v1.1 added 'model-security'."
|
|
70
71
|
},
|
|
71
72
|
"atr_subcategory": {
|
|
72
73
|
"type": "string",
|
|
73
|
-
"description": "Optional finer-grained subcategory (e.g. '
|
|
74
|
+
"description": "Optional finer-grained subcategory (e.g. 'cross-agent-context-drift', 'missing-human-approval')."
|
|
75
|
+
},
|
|
76
|
+
"atr_method": {
|
|
77
|
+
"type": "string",
|
|
78
|
+
"enum": ["pattern", "signature", "semantic", "behavioral", "trace"],
|
|
79
|
+
"description": "Detection method (atr-method-v1.1.md §4). 'pattern' is the v1.0 default; other methods opt into method-specific payload fields. v1.1 addition."
|
|
80
|
+
},
|
|
81
|
+
"atr_runtime_profile": {
|
|
82
|
+
"type": "string",
|
|
83
|
+
"enum": ["deterministic", "assisted"],
|
|
84
|
+
"description": "Deployment profile (atr-method-v1.1.md §4.1). 'deterministic' = signature + pattern, sub-5ms hot path. 'assisted' = semantic + behavioral + trace, sidecar / async path. v1.1 addition."
|
|
74
85
|
},
|
|
75
86
|
"name": {
|
|
76
87
|
"type": "string",
|
|
@@ -83,7 +94,8 @@
|
|
|
83
94
|
},
|
|
84
95
|
"maturity": {
|
|
85
96
|
"type": "string",
|
|
86
|
-
"enum": ["experimental", "test", "stable", "deprecated"]
|
|
97
|
+
"enum": ["experimental", "test", "stable", "deprecated", "draft"],
|
|
98
|
+
"description": "Maturity tier. v1.1 added 'draft' to align with the on-disk rule status vocabulary."
|
|
87
99
|
},
|
|
88
100
|
"agent_source_type": {
|
|
89
101
|
"type": "string",
|
|
@@ -97,12 +109,14 @@
|
|
|
97
109
|
"memory_access",
|
|
98
110
|
"skill_lifecycle",
|
|
99
111
|
"skill_permission",
|
|
100
|
-
"skill_chain"
|
|
101
|
-
|
|
112
|
+
"skill_chain",
|
|
113
|
+
"agent_trace"
|
|
114
|
+
],
|
|
115
|
+
"description": "v1.1 added 'agent_trace' for trace-method rules ingesting OpenInference / OTel GenAI span DAGs."
|
|
102
116
|
},
|
|
103
117
|
"detection_patterns": {
|
|
104
118
|
"type": "array",
|
|
105
|
-
"description": "Regex patterns extracted from the ATR rule's detection.conditions.",
|
|
119
|
+
"description": "Regex patterns extracted from the ATR rule's detection.conditions (method=pattern only).",
|
|
106
120
|
"items": {
|
|
107
121
|
"type": "object",
|
|
108
122
|
"required": ["field", "pattern"],
|
|
@@ -114,6 +128,49 @@
|
|
|
114
128
|
}
|
|
115
129
|
}
|
|
116
130
|
},
|
|
131
|
+
"signature_indicators": {
|
|
132
|
+
"type": "array",
|
|
133
|
+
"description": "v1.1: For method=signature rules. Mirrors detection.signature.indicators in atr-method-v1.1.md §5.",
|
|
134
|
+
"items": {
|
|
135
|
+
"type": "object",
|
|
136
|
+
"required": ["type", "value", "target_field"],
|
|
137
|
+
"properties": {
|
|
138
|
+
"type": {
|
|
139
|
+
"type": "string",
|
|
140
|
+
"enum": ["sha256", "sha512", "blake2b-256", "package_name", "registry_url", "skill_id"]
|
|
141
|
+
},
|
|
142
|
+
"value": { "type": "string" },
|
|
143
|
+
"target_field": { "type": "string" },
|
|
144
|
+
"provenance": { "type": "object" }
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
},
|
|
148
|
+
"semantic_judge": {
|
|
149
|
+
"type": "object",
|
|
150
|
+
"description": "v1.1: For method=semantic rules. Mirrors detection.semantic in atr-method-v1.1.md §6.",
|
|
151
|
+
"properties": {
|
|
152
|
+
"judge_model_class": { "type": "string" },
|
|
153
|
+
"prompt_template": { "type": "string" },
|
|
154
|
+
"threshold": { "type": "number", "minimum": 0.0, "maximum": 1.0 },
|
|
155
|
+
"judge_prompt_hash": { "type": "string" },
|
|
156
|
+
"fallback_method": { "type": "string", "enum": ["pattern", "none"] }
|
|
157
|
+
}
|
|
158
|
+
},
|
|
159
|
+
"trace_detection": {
|
|
160
|
+
"type": "object",
|
|
161
|
+
"description": "v1.1: For method=trace rules. Mirrors detection.trace in atr-method-v1.1.md §8.",
|
|
162
|
+
"properties": {
|
|
163
|
+
"ingest_format": { "type": "string", "enum": ["openinference", "otel_gen_ai"] },
|
|
164
|
+
"primitives": {
|
|
165
|
+
"type": "object",
|
|
166
|
+
"properties": {
|
|
167
|
+
"forbid": { "type": "array" },
|
|
168
|
+
"require": { "type": "array" },
|
|
169
|
+
"invariant": { "type": "array" }
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
},
|
|
117
174
|
"response_actions": {
|
|
118
175
|
"type": "array",
|
|
119
176
|
"items": {
|
|
@@ -122,15 +179,24 @@
|
|
|
122
179
|
"block_input",
|
|
123
180
|
"block_output",
|
|
124
181
|
"block_tool",
|
|
182
|
+
"block_request",
|
|
125
183
|
"quarantine_session",
|
|
184
|
+
"quarantine_artifact",
|
|
126
185
|
"reset_context",
|
|
127
186
|
"alert",
|
|
187
|
+
"log_alert",
|
|
128
188
|
"snapshot",
|
|
129
189
|
"escalate",
|
|
190
|
+
"require_human_review",
|
|
191
|
+
"redact_match",
|
|
192
|
+
"rate_limit_source",
|
|
193
|
+
"revoke_credential",
|
|
194
|
+
"notify_operator",
|
|
130
195
|
"reduce_permissions",
|
|
131
196
|
"kill_agent"
|
|
132
197
|
]
|
|
133
|
-
}
|
|
198
|
+
},
|
|
199
|
+
"description": "v1.1: extended to include actions from SPEC.md Appendix A canonical action vocabulary."
|
|
134
200
|
},
|
|
135
201
|
"owasp_llm_refs": {
|
|
136
202
|
"type": "array",
|
|
@@ -140,6 +206,11 @@
|
|
|
140
206
|
"type": "array",
|
|
141
207
|
"items": { "type": "string" }
|
|
142
208
|
},
|
|
209
|
+
"owasp_ast_refs": {
|
|
210
|
+
"type": "array",
|
|
211
|
+
"items": { "type": "string" },
|
|
212
|
+
"description": "OWASP Agentic Skills Top 10 references (v1.1)."
|
|
213
|
+
},
|
|
143
214
|
"mitre_atlas_refs": {
|
|
144
215
|
"type": "array",
|
|
145
216
|
"items": { "type": "string" }
|
|
@@ -155,13 +226,38 @@
|
|
|
155
226
|
"pattern": "^CVE-[0-9]{4}-[0-9]+$"
|
|
156
227
|
}
|
|
157
228
|
},
|
|
229
|
+
"safe_mcp_refs": {
|
|
230
|
+
"type": "array",
|
|
231
|
+
"items": { "type": "string" },
|
|
232
|
+
"description": "SAFE-MCP technique IDs (v1.1)."
|
|
233
|
+
},
|
|
234
|
+
"probe_id_refs": {
|
|
235
|
+
"type": "array",
|
|
236
|
+
"items": { "type": "string" },
|
|
237
|
+
"description": "v1.1: Adversarial probe identifiers (format <framework>:<probe-name>, e.g. 'pyrit:indirect_pi_v2' or 'garak:promptinject.HijackHateHumans'). Lets STIX consumers measure detection coverage against red-team probe outputs."
|
|
238
|
+
},
|
|
158
239
|
"compliance_refs": {
|
|
159
240
|
"type": "object",
|
|
160
|
-
"description": "Mappings to compliance frameworks.
|
|
241
|
+
"description": "Mappings to compliance frameworks. v1.1 added nist_csf, etsi_ts_104223, oscal_assessment_objective.",
|
|
161
242
|
"properties": {
|
|
162
243
|
"eu_ai_act": { "type": "array" },
|
|
163
244
|
"nist_ai_rmf": { "type": "array" },
|
|
164
|
-
"iso_42001": { "type": "array" }
|
|
245
|
+
"iso_42001": { "type": "array" },
|
|
246
|
+
"nist_csf": {
|
|
247
|
+
"type": "array",
|
|
248
|
+
"items": { "type": "string" },
|
|
249
|
+
"description": "NIST CSF 2.0 subcategory IDs (e.g., DE.CM-09, PR.IR-01). v1.1."
|
|
250
|
+
},
|
|
251
|
+
"etsi_ts_104223": {
|
|
252
|
+
"type": "array",
|
|
253
|
+
"items": { "type": "string" },
|
|
254
|
+
"description": "ETSI TS 104 223 principle / sub-principle IDs (e.g., P4.3). v1.1."
|
|
255
|
+
},
|
|
256
|
+
"oscal_assessment_objective": {
|
|
257
|
+
"type": "array",
|
|
258
|
+
"items": { "type": "string" },
|
|
259
|
+
"description": "OSCAL Assessment Plan / Result objective IDs this rule supplies evidence for. v1.1."
|
|
260
|
+
}
|
|
165
261
|
},
|
|
166
262
|
"additionalProperties": false
|
|
167
263
|
},
|