agent-threat-rules 2.0.3 → 2.0.6
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 +12 -3
- package/dist/cli.js +0 -0
- package/package.json +1 -1
- package/rules/context-exfiltration/ATR-2026-00201-credential-pipe-exfiltration.yaml +83 -0
- package/rules/privilege-escalation/ATR-2026-00204-stealth-execution-persistence.yaml +113 -0
- package/rules/prompt-injection/ATR-2026-00202-encoding-evasion-homoglyph-synonym.yaml +98 -0
- package/rules/prompt-injection/ATR-2026-00203-context-pollution-skill-description.yaml +76 -0
- package/rules/prompt-injection/ATR-2026-00206-hidden-priority-instructions.yaml +59 -0
- package/rules/prompt-injection/ATR-2026-00207-hidden-instructions.yaml +58 -0
- package/rules/prompt-injection/ATR-2026-00211-system-prompt-override.yaml +60 -0
- package/rules/prompt-injection/ATR-2026-00213-system-prompt-override.yaml +59 -0
- package/rules/prompt-injection/ATR-2026-00226-identity-substitution.yaml +107 -0
- package/rules/prompt-injection/ATR-2026-00227-historical-persona-jailbreak.yaml +109 -0
- package/rules/prompt-injection/ATR-2026-00228-structured-jailbreak.yaml +106 -0
- package/rules/prompt-injection/ATR-2026-00229-roleplay-jailbreak.yaml +106 -0
- package/rules/prompt-injection/ATR-2026-00230-persona-moral-bypass.yaml +107 -0
- package/rules/skill-compromise/ATR-2026-00200-agent-memory-config-tampering.yaml +101 -0
- package/rules/skill-compromise/ATR-2026-00214-credential-theft.yaml +57 -0
- package/rules/skill-compromise/ATR-2026-00217-credential-harvesting.yaml +104 -0
- package/rules/skill-compromise/ATR-2026-00220-malware-dropper.yaml +100 -0
- package/rules/skill-compromise/ATR-2026-00222-credential-harvesting.yaml +102 -0
- package/rules/skill-compromise/ATR-2026-00223-reverse-shell-dropper.yaml +100 -0
- package/rules/skill-compromise/ATR-2026-00224-credential-exfiltration.yaml +102 -0
- package/rules/skill-compromise/ATR-2026-00225-c2-communication.yaml +103 -0
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
title: 'Hardcoded Suspicious IP Address in Skill Content'
|
|
2
|
+
id: ATR-2026-00225
|
|
3
|
+
rule_version: 1
|
|
4
|
+
status: experimental
|
|
5
|
+
description: >
|
|
6
|
+
Detects hardcoded IP addresses in skill content that may represent command and control
|
|
7
|
+
(C2) servers, particularly when associated with suspicious network ranges or known
|
|
8
|
+
malware infrastructure. The analyzed skill "sakaen736jih/youtube-watcher-p" contains
|
|
9
|
+
reference to IP 91.92.242.30 identified as a known malware C2 server.
|
|
10
|
+
author: "ATR Threat Cloud Crystallization"
|
|
11
|
+
date: "2026/04/15"
|
|
12
|
+
schema_version: "0.1"
|
|
13
|
+
detection_tier: pattern
|
|
14
|
+
maturity: experimental
|
|
15
|
+
severity: high
|
|
16
|
+
references:
|
|
17
|
+
owasp_llm:
|
|
18
|
+
- "LLM09:2025 - Overreliance"
|
|
19
|
+
owasp_agentic:
|
|
20
|
+
- "ASI04:2026 - Unbounded Consumption"
|
|
21
|
+
mitre_atlas:
|
|
22
|
+
- "AML.T0048"
|
|
23
|
+
tags:
|
|
24
|
+
category: skill-compromise
|
|
25
|
+
subcategory: c2-communication
|
|
26
|
+
scan_target: skill
|
|
27
|
+
confidence: high
|
|
28
|
+
agent_source:
|
|
29
|
+
type: mcp_exchange
|
|
30
|
+
framework: [any]
|
|
31
|
+
provider: [any]
|
|
32
|
+
detection:
|
|
33
|
+
conditions:
|
|
34
|
+
- field: content
|
|
35
|
+
operator: regex
|
|
36
|
+
value: '(C2\s+server|command\s+control|malware\s+actor)\s+[^\n]*\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
|
|
37
|
+
description: 'References to C2 server or malware actor with IP address'
|
|
38
|
+
- field: content
|
|
39
|
+
operator: regex
|
|
40
|
+
value: '(known|identified|detected)\s+(malware|threat|actor|server)[^\n]*\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}'
|
|
41
|
+
description: 'Explicit identification of malicious infrastructure with IP'
|
|
42
|
+
- field: content
|
|
43
|
+
operator: regex
|
|
44
|
+
value: '\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}[^\n]*(C2|command|control|backdoor|malware)'
|
|
45
|
+
description: 'IP address followed by malicious infrastructure terms'
|
|
46
|
+
- field: content
|
|
47
|
+
operator: regex
|
|
48
|
+
value: '(91\.92\.24[0-9]\.|185\.159\.15[0-9]\.|194\.87\.9[0-9]\.)[0-9]{1,3}'
|
|
49
|
+
description: 'Known malicious IP ranges commonly used for C2'
|
|
50
|
+
- field: content
|
|
51
|
+
operator: regex
|
|
52
|
+
value: 'finding_[0-9]+:\s*(known|identified)\s+(malware|threat|C2|command)'
|
|
53
|
+
description: 'Structured threat intelligence findings format'
|
|
54
|
+
condition: any
|
|
55
|
+
false_positives:
|
|
56
|
+
- 'Security research documentation describing C2 patterns'
|
|
57
|
+
- 'Threat intelligence feeds in legitimate security tools'
|
|
58
|
+
- 'Network monitoring tools documenting suspicious activity'
|
|
59
|
+
response:
|
|
60
|
+
actions: [alert, block_tool]
|
|
61
|
+
message_template: >
|
|
62
|
+
[ATR-2026-00225] Skill contains reference to known malicious IP infrastructure
|
|
63
|
+
test_cases:
|
|
64
|
+
true_positives:
|
|
65
|
+
- input: 'finding_0: Known malware actor: C2 server at 91.92.242.30'
|
|
66
|
+
expected: triggered
|
|
67
|
+
- input: 'Command control server identified at 185.159.158.42'
|
|
68
|
+
expected: triggered
|
|
69
|
+
- input: 'Malware actor using 194.87.95.123 for C2 communications'
|
|
70
|
+
expected: triggered
|
|
71
|
+
- input: 'Known C2 infrastructure: 91.92.241.15'
|
|
72
|
+
expected: triggered
|
|
73
|
+
- input: '203.45.67.89 - detected malware server'
|
|
74
|
+
expected: triggered
|
|
75
|
+
true_negatives:
|
|
76
|
+
- input: 'Connect to database at 192.168.1.100'
|
|
77
|
+
expected: not_triggered
|
|
78
|
+
reason: 'Private IP address for legitimate database connection'
|
|
79
|
+
- input: 'API endpoint: https://api.youtube.com/v3/videos'
|
|
80
|
+
expected: not_triggered
|
|
81
|
+
reason: 'Legitimate API endpoint without suspicious context'
|
|
82
|
+
- input: 'Server configuration: bind to 0.0.0.0:8080'
|
|
83
|
+
expected: not_triggered
|
|
84
|
+
reason: 'Standard server binding configuration'
|
|
85
|
+
- input: 'Load balancer IP: 10.0.0.50'
|
|
86
|
+
expected: not_triggered
|
|
87
|
+
reason: 'Private network infrastructure IP'
|
|
88
|
+
- input: 'Monitor health check to 172.16.0.1'
|
|
89
|
+
expected: not_triggered
|
|
90
|
+
reason: 'Private IP range for internal monitoring'
|
|
91
|
+
evasion_tests:
|
|
92
|
+
- input: 'Server location: 91[.]92[.]242[.]30'
|
|
93
|
+
expected: not_triggered
|
|
94
|
+
bypass_technique: 'IP defanging'
|
|
95
|
+
notes: 'Brackets used to defang IP address in security documentation'
|
|
96
|
+
- input: 'Base64: OTEuOTIuMjQyLjMw (decodes to suspicious IP)'
|
|
97
|
+
expected: not_triggered
|
|
98
|
+
bypass_technique: 'Base64 encoding'
|
|
99
|
+
notes: 'IP address encoded in Base64 to evade plain text detection'
|
|
100
|
+
- input: 'Hex encoded: 5b.5c.f2.1e (91.92.242.30 in hex)'
|
|
101
|
+
expected: not_triggered
|
|
102
|
+
bypass_technique: 'Hexadecimal encoding'
|
|
103
|
+
notes: 'IP address represented in hexadecimal notation'
|