@panguard-ai/atr 1.4.0 → 1.4.2
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/dist/cli.js +0 -0
- package/dist/engine.d.ts +9 -0
- package/dist/engine.d.ts.map +1 -1
- package/dist/engine.js +134 -4
- package/dist/engine.js.map +1 -1
- package/dist/types.d.ts +83 -1
- package/dist/types.d.ts.map +1 -1
- package/package.json +1 -1
- package/rules/agent-manipulation/{ATR-2026-030-cross-agent-attack.yaml → ATR-2026-00030-cross-agent-attack.yaml} +3 -1
- package/rules/agent-manipulation/{ATR-2026-032-goal-hijacking.yaml → ATR-2026-00032-goal-hijacking.yaml} +3 -1
- package/rules/agent-manipulation/{ATR-2026-074-cross-agent-privilege-escalation.yaml → ATR-2026-00074-cross-agent-privilege-escalation.yaml} +3 -1
- package/rules/agent-manipulation/{ATR-2026-076-inter-agent-message-spoofing.yaml → ATR-2026-00076-inter-agent-message-spoofing.yaml} +3 -1
- package/rules/agent-manipulation/{ATR-2026-077-human-trust-exploitation.yaml → ATR-2026-00077-human-trust-exploitation.yaml} +3 -1
- package/rules/agent-manipulation/{ATR-2026-108-consensus-sybil-attack.yaml → ATR-2026-00108-consensus-sybil-attack.yaml} +3 -1
- package/rules/agent-manipulation/{ATR-2026-116-a2a-message-validation.yaml → ATR-2026-00116-a2a-message-validation.yaml} +3 -1
- package/rules/agent-manipulation/{ATR-2026-117-agent-identity-spoofing.yaml → ATR-2026-00117-agent-identity-spoofing.yaml} +3 -1
- package/rules/agent-manipulation/{ATR-2026-118-approval-fatigue.yaml → ATR-2026-00118-approval-fatigue.yaml} +3 -1
- package/rules/agent-manipulation/{ATR-2026-119-social-engineering-via-agent.yaml → ATR-2026-00119-social-engineering-via-agent.yaml} +3 -1
- package/rules/agent-manipulation/ATR-2026-00132-casual-authority-escalation.yaml +99 -0
- package/rules/agent-manipulation/ATR-2026-00139-casual-authority-redirect.yaml +53 -0
- package/rules/context-exfiltration/{ATR-2026-020-system-prompt-leak.yaml → ATR-2026-00020-system-prompt-leak.yaml} +3 -1
- package/rules/context-exfiltration/{ATR-2026-021-api-key-exposure.yaml → ATR-2026-00021-api-key-exposure.yaml} +3 -1
- package/rules/context-exfiltration/{ATR-2026-075-agent-memory-manipulation.yaml → ATR-2026-00075-agent-memory-manipulation.yaml} +3 -1
- package/rules/context-exfiltration/{ATR-2026-102-disguised-analytics-exfiltration.yaml → ATR-2026-00102-disguised-analytics-exfiltration.yaml} +3 -1
- package/rules/context-exfiltration/{ATR-2026-113-credential-theft.yaml → ATR-2026-00113-credential-theft.yaml} +3 -1
- package/rules/context-exfiltration/{ATR-2026-114-oauth-token-abuse.yaml → ATR-2026-00114-oauth-token-abuse.yaml} +3 -1
- package/rules/context-exfiltration/{ATR-2026-115-env-var-harvesting.yaml → ATR-2026-00115-env-var-harvesting.yaml} +3 -1
- package/rules/context-exfiltration/ATR-2026-00136-tool-response-data-piggyback.yaml +100 -0
- package/rules/context-exfiltration/ATR-2026-00141-example-format-key-leak.yaml +52 -0
- package/rules/context-exfiltration/ATR-2026-00142-piggyback-transition-words.yaml +55 -0
- package/rules/context-exfiltration/ATR-2026-00145-obfuscated-key-disclosure.yaml +49 -0
- package/rules/context-exfiltration/ATR-2026-00146-env-var-existence-probe.yaml +49 -0
- package/rules/data-poisoning/{ATR-2026-070-data-poisoning.yaml → ATR-2026-00070-data-poisoning.yaml} +3 -1
- package/rules/excessive-autonomy/{ATR-2026-050-runaway-agent-loop.yaml → ATR-2026-00050-runaway-agent-loop.yaml} +3 -1
- package/rules/excessive-autonomy/{ATR-2026-051-resource-exhaustion.yaml → ATR-2026-00051-resource-exhaustion.yaml} +3 -1
- package/rules/excessive-autonomy/{ATR-2026-052-cascading-failure.yaml → ATR-2026-00052-cascading-failure.yaml} +3 -1
- package/rules/excessive-autonomy/{ATR-2026-098-unauthorized-financial-action.yaml → ATR-2026-00098-unauthorized-financial-action.yaml} +3 -1
- package/rules/excessive-autonomy/{ATR-2026-099-high-risk-tool-gate.yaml → ATR-2026-00099-high-risk-tool-gate.yaml} +3 -1
- package/rules/model-security/{ATR-2026-072-model-behavior-extraction.yaml → ATR-2026-00072-model-behavior-extraction.yaml} +3 -1
- package/rules/model-security/{ATR-2026-073-malicious-finetuning-data.yaml → ATR-2026-00073-malicious-finetuning-data.yaml} +3 -1
- package/rules/privilege-escalation/{ATR-2026-040-privilege-escalation.yaml → ATR-2026-00040-privilege-escalation.yaml} +3 -1
- package/rules/privilege-escalation/{ATR-2026-041-scope-creep.yaml → ATR-2026-00041-scope-creep.yaml} +3 -1
- package/rules/privilege-escalation/{ATR-2026-107-delayed-execution-bypass.yaml → ATR-2026-00107-delayed-execution-bypass.yaml} +3 -1
- package/rules/privilege-escalation/{ATR-2026-110-eval-injection.yaml → ATR-2026-00110-eval-injection.yaml} +3 -1
- package/rules/privilege-escalation/{ATR-2026-111-shell-escape.yaml → ATR-2026-00111-shell-escape.yaml} +5 -3
- package/rules/privilege-escalation/{ATR-2026-112-dynamic-import-exploitation.yaml → ATR-2026-00112-dynamic-import-exploitation.yaml} +3 -1
- package/rules/privilege-escalation/ATR-2026-00143-casual-privilege-escalation.yaml +53 -0
- package/rules/privilege-escalation/ATR-2026-00144-rationalized-safety-bypass.yaml +49 -0
- package/rules/prompt-injection/{ATR-2026-001-direct-prompt-injection.yaml → ATR-2026-00001-direct-prompt-injection.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-002-indirect-prompt-injection.yaml → ATR-2026-00002-indirect-prompt-injection.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-003-jailbreak-attempt.yaml → ATR-2026-00003-jailbreak-attempt.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-004-system-prompt-override.yaml → ATR-2026-00004-system-prompt-override.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-005-multi-turn-injection.yaml → ATR-2026-00005-multi-turn-injection.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-080-encoding-evasion.yaml → ATR-2026-00080-encoding-evasion.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-081-semantic-multi-turn.yaml → ATR-2026-00081-semantic-multi-turn.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-082-fingerprint-evasion.yaml → ATR-2026-00082-fingerprint-evasion.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-083-indirect-tool-injection.yaml → ATR-2026-00083-indirect-tool-injection.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-084-structured-data-injection.yaml → ATR-2026-00084-structured-data-injection.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-085-audit-evasion.yaml → ATR-2026-00085-audit-evasion.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-086-visual-spoofing.yaml → ATR-2026-00086-visual-spoofing.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-087-rule-probing.yaml → ATR-2026-00087-rule-probing.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-088-adaptive-countermeasure.yaml → ATR-2026-00088-adaptive-countermeasure.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-089-polymorphic-skill.yaml → ATR-2026-00089-polymorphic-skill.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-090-threat-intel-exfil.yaml → ATR-2026-00090-threat-intel-exfil.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-091-nested-payload.yaml → ATR-2026-00091-nested-payload.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-092-consensus-poisoning.yaml → ATR-2026-00092-consensus-poisoning.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-093-gradual-escalation.yaml → ATR-2026-00093-gradual-escalation.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-094-audit-bypass.yaml → ATR-2026-00094-audit-bypass.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-097-cjk-injection-patterns.yaml → ATR-2026-00097-cjk-injection-patterns.yaml} +3 -1
- package/rules/prompt-injection/{ATR-2026-104-persona-hijacking.yaml → ATR-2026-00104-persona-hijacking.yaml} +3 -1
- package/rules/prompt-injection/ATR-2026-00130-indirect-authority-claim.yaml +97 -0
- package/rules/prompt-injection/ATR-2026-00131-fictional-academic-framing.yaml +93 -0
- package/rules/prompt-injection/ATR-2026-00133-paraphrase-injection.yaml +111 -0
- package/rules/prompt-injection/ATR-2026-00137-authority-claim-injection.yaml +52 -0
- package/rules/prompt-injection/ATR-2026-00138-fictional-framing-bypass.yaml +51 -0
- package/rules/prompt-injection/ATR-2026-00140-indirect-reference-reversal.yaml +52 -0
- package/rules/prompt-injection/ATR-2026-00148-language-switch-injection.yaml +71 -0
- package/rules/skill-compromise/{ATR-2026-060-skill-impersonation.yaml → ATR-2026-00060-skill-impersonation.yaml} +3 -1
- package/rules/skill-compromise/{ATR-2026-061-description-behavior-mismatch.yaml → ATR-2026-00061-description-behavior-mismatch.yaml} +3 -1
- package/rules/skill-compromise/{ATR-2026-062-hidden-capability.yaml → ATR-2026-00062-hidden-capability.yaml} +3 -1
- package/rules/skill-compromise/{ATR-2026-063-skill-chain-attack.yaml → ATR-2026-00063-skill-chain-attack.yaml} +5 -2
- package/rules/skill-compromise/{ATR-2026-064-over-permissioned-skill.yaml → ATR-2026-00064-over-permissioned-skill.yaml} +3 -1
- package/rules/skill-compromise/{ATR-2026-065-skill-update-attack.yaml → ATR-2026-00065-skill-update-attack.yaml} +3 -1
- package/rules/skill-compromise/{ATR-2026-066-parameter-injection.yaml → ATR-2026-00066-parameter-injection.yaml} +3 -1
- package/rules/skill-compromise/ATR-2026-00120-skill-instruction-injection.yaml +121 -0
- package/rules/skill-compromise/ATR-2026-00121-skill-dangerous-script.yaml +165 -0
- package/rules/skill-compromise/ATR-2026-00122-skill-weaponized-instruction.yaml +114 -0
- package/rules/skill-compromise/ATR-2026-00123-skill-overreach-permissions.yaml +118 -0
- package/rules/skill-compromise/ATR-2026-00124-skill-name-squatting.yaml +98 -0
- package/rules/skill-compromise/ATR-2026-00125-context-poisoning-compaction.yaml +93 -0
- package/rules/skill-compromise/ATR-2026-00126-skill-rug-pull-setup.yaml +99 -0
- package/rules/skill-compromise/ATR-2026-00127-subcommand-overflow.yaml +74 -0
- package/rules/skill-compromise/ATR-2026-00128-html-comment-hidden-payload.yaml +79 -0
- package/rules/skill-compromise/ATR-2026-00129-unicode-smuggling.yaml +73 -0
- package/rules/skill-compromise/ATR-2026-00134-fork-claim-impersonation.yaml +86 -0
- package/rules/skill-compromise/ATR-2026-00135-exfil-url-in-instructions.yaml +82 -0
- package/rules/skill-compromise/ATR-2026-00147-fork-impersonation.yaml +48 -0
- package/rules/tool-poisoning/{ATR-2026-010-mcp-malicious-response.yaml → ATR-2026-00010-mcp-malicious-response.yaml} +3 -1
- package/rules/tool-poisoning/{ATR-2026-011-tool-output-injection.yaml → ATR-2026-00011-tool-output-injection.yaml} +3 -1
- package/rules/tool-poisoning/{ATR-2026-012-unauthorized-tool-call.yaml → ATR-2026-00012-unauthorized-tool-call.yaml} +3 -1
- package/rules/tool-poisoning/{ATR-2026-013-tool-ssrf.yaml → ATR-2026-00013-tool-ssrf.yaml} +3 -1
- package/rules/tool-poisoning/{ATR-2026-095-supply-chain-poisoning.yaml → ATR-2026-00095-supply-chain-poisoning.yaml} +3 -1
- package/rules/tool-poisoning/{ATR-2026-096-registry-poisoning.yaml → ATR-2026-00096-registry-poisoning.yaml} +3 -1
- package/rules/tool-poisoning/{ATR-2026-100-consent-bypass-instruction.yaml → ATR-2026-00100-consent-bypass-instruction.yaml} +3 -1
- package/rules/tool-poisoning/{ATR-2026-101-trust-escalation-override.yaml → ATR-2026-00101-trust-escalation-override.yaml} +3 -1
- package/rules/tool-poisoning/{ATR-2026-103-hidden-safety-bypass-instruction.yaml → ATR-2026-00103-hidden-safety-bypass-instruction.yaml} +3 -1
- package/rules/tool-poisoning/{ATR-2026-105-silent-action-concealment.yaml → ATR-2026-00105-silent-action-concealment.yaml} +3 -1
- package/rules/tool-poisoning/{ATR-2026-106-schema-description-contradiction.yaml → ATR-2026-00106-schema-description-contradiction.yaml} +3 -1
- package/spec/atr-schema.yaml +59 -29
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
title: "Unauthorized Tool Call Detection"
|
|
2
|
-
id: ATR-2026-
|
|
2
|
+
id: ATR-2026-00012
|
|
3
|
+
rule_version: 1
|
|
3
4
|
status: experimental
|
|
4
5
|
description: >
|
|
5
6
|
Detects unauthorized or malicious tool call attempts including parameter injection,
|
|
@@ -31,6 +32,7 @@ references:
|
|
|
31
32
|
tags:
|
|
32
33
|
category: tool-poisoning
|
|
33
34
|
subcategory: unauthorized-access
|
|
35
|
+
scan_target: mcp
|
|
34
36
|
confidence: high
|
|
35
37
|
|
|
36
38
|
agent_source:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
title: "SSRF via Agent Tool Calls"
|
|
2
|
-
id: ATR-2026-
|
|
2
|
+
id: ATR-2026-00013
|
|
3
|
+
rule_version: 1
|
|
3
4
|
status: experimental
|
|
4
5
|
description: >
|
|
5
6
|
Detects Server-Side Request Forgery (SSRF) attempts through agent tool calls.
|
|
@@ -37,6 +38,7 @@ references:
|
|
|
37
38
|
tags:
|
|
38
39
|
category: tool-poisoning
|
|
39
40
|
subcategory: ssrf
|
|
41
|
+
scan_target: both
|
|
40
42
|
confidence: high
|
|
41
43
|
|
|
42
44
|
agent_source:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
title: "MCP Tool Supply Chain Poisoning"
|
|
2
|
-
id: ATR-2026-
|
|
2
|
+
id: ATR-2026-00095
|
|
3
|
+
rule_version: 1
|
|
3
4
|
status: draft
|
|
4
5
|
description: >
|
|
5
6
|
Detects tool poisoning attacks targeting the MCP (Model Context Protocol)
|
|
@@ -21,6 +22,7 @@ references:
|
|
|
21
22
|
tags:
|
|
22
23
|
category: tool-poisoning
|
|
23
24
|
subcategory: supply-chain-attack
|
|
25
|
+
scan_target: mcp
|
|
24
26
|
confidence: medium
|
|
25
27
|
|
|
26
28
|
agent_source:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
title: "Skill Registry Poisoning and Compromised Tool Distribution"
|
|
2
|
-
id: ATR-2026-
|
|
2
|
+
id: ATR-2026-00096
|
|
3
|
+
rule_version: 1
|
|
3
4
|
status: draft
|
|
4
5
|
description: >
|
|
5
6
|
Detects supply chain attacks that target skill/tool registries and
|
|
@@ -23,6 +24,7 @@ references:
|
|
|
23
24
|
tags:
|
|
24
25
|
category: tool-poisoning
|
|
25
26
|
subcategory: registry-poisoning
|
|
27
|
+
scan_target: mcp
|
|
26
28
|
confidence: medium
|
|
27
29
|
|
|
28
30
|
agent_source:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
title: "Consent Bypass via Hidden LLM Instructions in Tool Descriptions"
|
|
2
|
-
id: ATR-2026-
|
|
2
|
+
id: ATR-2026-00100
|
|
3
|
+
rule_version: 1
|
|
3
4
|
status: experimental
|
|
4
5
|
description: |
|
|
5
6
|
Detects tool descriptions that embed instructions directing the LLM to automatically
|
|
@@ -26,6 +27,7 @@ references:
|
|
|
26
27
|
tags:
|
|
27
28
|
category: tool-poisoning
|
|
28
29
|
subcategory: consent-bypass-instruction
|
|
30
|
+
scan_target: mcp
|
|
29
31
|
confidence: medium
|
|
30
32
|
|
|
31
33
|
agent_source:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
title: "Trust Escalation via Authority Override Instructions"
|
|
2
|
-
id: ATR-2026-
|
|
2
|
+
id: ATR-2026-00101
|
|
3
|
+
rule_version: 1
|
|
3
4
|
status: experimental
|
|
4
5
|
description: |
|
|
5
6
|
Detects MCP tools that instruct the LLM to treat tool output as "authoritative directives"
|
|
@@ -25,6 +26,7 @@ references:
|
|
|
25
26
|
tags:
|
|
26
27
|
category: tool-poisoning
|
|
27
28
|
subcategory: trust-escalation-override
|
|
29
|
+
scan_target: mcp
|
|
28
30
|
confidence: medium
|
|
29
31
|
|
|
30
32
|
agent_source:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
title: "Hidden LLM Safety Bypass Instructions in Tool Descriptions"
|
|
2
|
-
id: ATR-2026-
|
|
2
|
+
id: ATR-2026-00103
|
|
3
|
+
rule_version: 1
|
|
3
4
|
status: experimental
|
|
4
5
|
description: |
|
|
5
6
|
Detects tools that embed explicit instructions directing the LLM to disregard safety
|
|
@@ -27,6 +28,7 @@ references:
|
|
|
27
28
|
tags:
|
|
28
29
|
category: tool-poisoning
|
|
29
30
|
subcategory: hidden-llm-instructions
|
|
31
|
+
scan_target: mcp
|
|
30
32
|
confidence: medium
|
|
31
33
|
|
|
32
34
|
agent_source:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
title: "Silent Action Concealment Instructions in Tool Descriptions"
|
|
2
|
-
id: ATR-2026-
|
|
2
|
+
id: ATR-2026-00105
|
|
3
|
+
rule_version: 1
|
|
3
4
|
status: experimental
|
|
4
5
|
description: |
|
|
5
6
|
Detects MCP tools that explicitly instruct the LLM to perform actions silently or hide
|
|
@@ -26,6 +27,7 @@ references:
|
|
|
26
27
|
tags:
|
|
27
28
|
category: tool-poisoning
|
|
28
29
|
subcategory: silent-action-instruction
|
|
30
|
+
scan_target: mcp
|
|
29
31
|
confidence: medium
|
|
30
32
|
|
|
31
33
|
agent_source:
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
title: "Schema-Description Contradiction Attack"
|
|
2
|
-
id: ATR-2026-
|
|
2
|
+
id: ATR-2026-00106
|
|
3
|
+
rule_version: 1
|
|
3
4
|
status: experimental
|
|
4
5
|
description: |
|
|
5
6
|
Detects tools that claim read-only or safe functionality in their description but expose
|
|
@@ -25,6 +26,7 @@ references:
|
|
|
25
26
|
tags:
|
|
26
27
|
category: tool-poisoning
|
|
27
28
|
subcategory: schema-description-mismatch
|
|
29
|
+
scan_target: mcp
|
|
28
30
|
confidence: medium
|
|
29
31
|
|
|
30
32
|
agent_source:
|
package/spec/atr-schema.yaml
CHANGED
|
@@ -7,10 +7,10 @@
|
|
|
7
7
|
# Status: RFC (Request for Comments)
|
|
8
8
|
# License: MIT
|
|
9
9
|
|
|
10
|
-
$schema:
|
|
10
|
+
$schema: "https://json-schema.org/draft/2020-12/schema"
|
|
11
11
|
title: ATR Rule Schema
|
|
12
12
|
description: Schema for Agent Threat Rules (ATR) detection rules
|
|
13
|
-
version:
|
|
13
|
+
version: "1.0.0"
|
|
14
14
|
|
|
15
15
|
type: object
|
|
16
16
|
required:
|
|
@@ -30,11 +30,12 @@ required:
|
|
|
30
30
|
- response
|
|
31
31
|
|
|
32
32
|
properties:
|
|
33
|
+
|
|
33
34
|
# === Metadata ===
|
|
34
35
|
|
|
35
36
|
schema_version:
|
|
36
37
|
type: string
|
|
37
|
-
description:
|
|
38
|
+
description: "ATR schema version this rule conforms to (e.g., \"0.1\")"
|
|
38
39
|
|
|
39
40
|
title:
|
|
40
41
|
type: string
|
|
@@ -42,8 +43,8 @@ properties:
|
|
|
42
43
|
|
|
43
44
|
id:
|
|
44
45
|
type: string
|
|
45
|
-
pattern: "^ATR-\\d{4}-\\d{
|
|
46
|
-
description:
|
|
46
|
+
pattern: "^ATR-\\d{4}-\\d{5}$"
|
|
47
|
+
description: "Unique rule identifier. Format: ATR-YYYY-NNNNN (e.g., ATR-2026-00001)"
|
|
47
48
|
|
|
48
49
|
status:
|
|
49
50
|
type: string
|
|
@@ -61,12 +62,17 @@ properties:
|
|
|
61
62
|
date:
|
|
62
63
|
type: string
|
|
63
64
|
pattern: "^\\d{4}/\\d{2}/\\d{2}$"
|
|
64
|
-
description:
|
|
65
|
+
description: "Creation date in YYYY/MM/DD format"
|
|
65
66
|
|
|
66
67
|
modified:
|
|
67
68
|
type: string
|
|
68
69
|
pattern: "^\\d{4}/\\d{2}/\\d{2}$"
|
|
69
|
-
description:
|
|
70
|
+
description: "Last modification date in YYYY/MM/DD format"
|
|
71
|
+
|
|
72
|
+
rule_version:
|
|
73
|
+
type: integer
|
|
74
|
+
minimum: 1
|
|
75
|
+
description: "Rule version number. Bump when detection logic changes. Starts at 1."
|
|
70
76
|
|
|
71
77
|
# === Classification ===
|
|
72
78
|
|
|
@@ -97,22 +103,42 @@ properties:
|
|
|
97
103
|
type: array
|
|
98
104
|
items:
|
|
99
105
|
type: string
|
|
100
|
-
description:
|
|
106
|
+
description: "OWASP LLM Top 10 references (e.g., LLM01:2025)"
|
|
101
107
|
mitre_atlas:
|
|
102
108
|
type: array
|
|
103
109
|
items:
|
|
104
110
|
type: string
|
|
105
|
-
description:
|
|
111
|
+
description: "MITRE ATLAS technique IDs (e.g., AML.T0054)"
|
|
106
112
|
mitre_attack:
|
|
107
113
|
type: array
|
|
108
114
|
items:
|
|
109
115
|
type: string
|
|
110
|
-
description:
|
|
116
|
+
description: "MITRE ATT&CK technique IDs (if applicable)"
|
|
111
117
|
cve:
|
|
112
118
|
type: array
|
|
113
119
|
items:
|
|
114
120
|
type: string
|
|
115
121
|
description: Related CVE identifiers
|
|
122
|
+
owasp_agentic:
|
|
123
|
+
type: array
|
|
124
|
+
items:
|
|
125
|
+
type: string
|
|
126
|
+
description: "OWASP Agentic Top 10 references (e.g., ASI01, ASI02)"
|
|
127
|
+
owasp_ast:
|
|
128
|
+
type: array
|
|
129
|
+
items:
|
|
130
|
+
type: string
|
|
131
|
+
description: "OWASP Agentic Skills Top 10 references (e.g., AST01)"
|
|
132
|
+
safe_mcp:
|
|
133
|
+
type: array
|
|
134
|
+
items:
|
|
135
|
+
type: string
|
|
136
|
+
description: "SAFE-MCP technique IDs (e.g., SMCP-T001)"
|
|
137
|
+
research:
|
|
138
|
+
type: array
|
|
139
|
+
items:
|
|
140
|
+
type: string
|
|
141
|
+
description: "Research paper references or URLs"
|
|
116
142
|
|
|
117
143
|
# === Tags (ATR classification) ===
|
|
118
144
|
|
|
@@ -140,6 +166,10 @@ properties:
|
|
|
140
166
|
type: string
|
|
141
167
|
enum: [high, medium, low]
|
|
142
168
|
description: Expected accuracy of this rule (high = low false positive rate)
|
|
169
|
+
scan_target:
|
|
170
|
+
type: string
|
|
171
|
+
enum: [mcp, skill, both, runtime]
|
|
172
|
+
description: "Which scan path this rule belongs to. mcp=runtime events, skill=SKILL.md static scan, both=fires in both paths, runtime=behavior monitoring."
|
|
143
173
|
|
|
144
174
|
# === Agent Source (analogous to Sigma's logsource) ===
|
|
145
175
|
|
|
@@ -153,16 +183,16 @@ properties:
|
|
|
153
183
|
type:
|
|
154
184
|
type: string
|
|
155
185
|
enum:
|
|
156
|
-
- llm_io
|
|
157
|
-
- tool_call
|
|
158
|
-
- mcp_exchange
|
|
159
|
-
- agent_behavior
|
|
160
|
-
- multi_agent_comm
|
|
161
|
-
- context_window
|
|
162
|
-
- memory_access
|
|
163
|
-
- skill_lifecycle
|
|
164
|
-
- skill_permission
|
|
165
|
-
- skill_chain
|
|
186
|
+
- llm_io # LLM input/output (prompts and completions)
|
|
187
|
+
- tool_call # Function/tool call requests
|
|
188
|
+
- mcp_exchange # MCP protocol messages
|
|
189
|
+
- agent_behavior # Agent behavioral metrics and patterns
|
|
190
|
+
- multi_agent_comm # Inter-agent communication
|
|
191
|
+
- context_window # Context window contents
|
|
192
|
+
- memory_access # Agent memory read/write operations
|
|
193
|
+
- skill_lifecycle # MCP skill registration, update, removal events
|
|
194
|
+
- skill_permission # Skill permission requests and boundary checks
|
|
195
|
+
- skill_chain # Multi-skill invocation sequences
|
|
166
196
|
description: Type of agent data stream to monitor
|
|
167
197
|
framework:
|
|
168
198
|
type: array
|
|
@@ -245,7 +275,7 @@ properties:
|
|
|
245
275
|
description: Numeric threshold for the metric
|
|
246
276
|
window:
|
|
247
277
|
type: string
|
|
248
|
-
description:
|
|
278
|
+
description: "Time window for behavioral analysis (e.g., 5m, 1h, 30s)"
|
|
249
279
|
ordered:
|
|
250
280
|
type: boolean
|
|
251
281
|
description: Whether steps must occur in order
|
|
@@ -282,16 +312,16 @@ properties:
|
|
|
282
312
|
items:
|
|
283
313
|
type: string
|
|
284
314
|
enum:
|
|
285
|
-
- block_input
|
|
286
|
-
- block_output
|
|
287
|
-
- block_tool
|
|
315
|
+
- block_input # Reject the user/agent input
|
|
316
|
+
- block_output # Suppress the agent output
|
|
317
|
+
- block_tool # Prevent the tool call from executing
|
|
288
318
|
- quarantine_session # Isolate the entire session
|
|
289
|
-
- reset_context
|
|
290
|
-
- alert
|
|
291
|
-
- snapshot
|
|
292
|
-
- escalate
|
|
319
|
+
- reset_context # Clear agent context/memory
|
|
320
|
+
- alert # Send alert to security team
|
|
321
|
+
- snapshot # Capture full session state for forensics
|
|
322
|
+
- escalate # Escalate to human reviewer
|
|
293
323
|
- reduce_permissions # Reduce agent's available tools/capabilities
|
|
294
|
-
- kill_agent
|
|
324
|
+
- kill_agent # Terminate the agent process
|
|
295
325
|
description: Actions to take when the rule triggers
|
|
296
326
|
auto_response_threshold:
|
|
297
327
|
type: string
|