agent-threat-rules 0.2.1 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (151) hide show
  1. package/README.md +159 -442
  2. package/dist/capability-extractor.d.ts +35 -0
  3. package/dist/capability-extractor.d.ts.map +1 -0
  4. package/dist/capability-extractor.js +91 -0
  5. package/dist/capability-extractor.js.map +1 -0
  6. package/dist/cli.js +173 -15
  7. package/dist/cli.js.map +1 -1
  8. package/dist/converters/elastic.d.ts +36 -0
  9. package/dist/converters/elastic.d.ts.map +1 -0
  10. package/dist/converters/elastic.js +125 -0
  11. package/dist/converters/elastic.js.map +1 -0
  12. package/dist/converters/index.d.ts +28 -0
  13. package/dist/converters/index.d.ts.map +1 -0
  14. package/dist/converters/index.js +36 -0
  15. package/dist/converters/index.js.map +1 -0
  16. package/dist/converters/splunk.d.ts +19 -0
  17. package/dist/converters/splunk.d.ts.map +1 -0
  18. package/dist/converters/splunk.js +148 -0
  19. package/dist/converters/splunk.js.map +1 -0
  20. package/dist/embedding/build-corpus.d.ts +15 -0
  21. package/dist/embedding/build-corpus.d.ts.map +1 -0
  22. package/dist/embedding/build-corpus.js +105 -0
  23. package/dist/embedding/build-corpus.js.map +1 -0
  24. package/dist/embedding/model-loader.d.ts +41 -0
  25. package/dist/embedding/model-loader.d.ts.map +1 -0
  26. package/dist/embedding/model-loader.js +90 -0
  27. package/dist/embedding/model-loader.js.map +1 -0
  28. package/dist/embedding/vector-store.d.ts +41 -0
  29. package/dist/embedding/vector-store.d.ts.map +1 -0
  30. package/dist/embedding/vector-store.js +70 -0
  31. package/dist/embedding/vector-store.js.map +1 -0
  32. package/dist/engine.d.ts +23 -22
  33. package/dist/engine.d.ts.map +1 -1
  34. package/dist/engine.js +174 -25
  35. package/dist/engine.js.map +1 -1
  36. package/dist/eval/corpus.d.ts +42 -0
  37. package/dist/eval/corpus.d.ts.map +1 -0
  38. package/dist/eval/corpus.js +427 -0
  39. package/dist/eval/corpus.js.map +1 -0
  40. package/dist/eval/eval-harness.d.ts +44 -0
  41. package/dist/eval/eval-harness.d.ts.map +1 -0
  42. package/dist/eval/eval-harness.js +296 -0
  43. package/dist/eval/eval-harness.js.map +1 -0
  44. package/dist/eval/index.d.ts +13 -0
  45. package/dist/eval/index.d.ts.map +1 -0
  46. package/dist/eval/index.js +9 -0
  47. package/dist/eval/index.js.map +1 -0
  48. package/dist/eval/metrics.d.ts +74 -0
  49. package/dist/eval/metrics.d.ts.map +1 -0
  50. package/dist/eval/metrics.js +108 -0
  51. package/dist/eval/metrics.js.map +1 -0
  52. package/dist/eval/pint-corpus.d.ts +34 -0
  53. package/dist/eval/pint-corpus.d.ts.map +1 -0
  54. package/dist/eval/pint-corpus.js +109 -0
  55. package/dist/eval/pint-corpus.js.map +1 -0
  56. package/dist/eval/rule-corpus.d.ts +9 -0
  57. package/dist/eval/rule-corpus.d.ts.map +1 -0
  58. package/dist/eval/rule-corpus.js +4780 -0
  59. package/dist/eval/rule-corpus.js.map +1 -0
  60. package/dist/eval/rule-metrics.d.ts +34 -0
  61. package/dist/eval/rule-metrics.d.ts.map +1 -0
  62. package/dist/eval/rule-metrics.js +92 -0
  63. package/dist/eval/rule-metrics.js.map +1 -0
  64. package/dist/eval/run-eval.d.ts +7 -0
  65. package/dist/eval/run-eval.d.ts.map +1 -0
  66. package/dist/eval/run-eval.js +11 -0
  67. package/dist/eval/run-eval.js.map +1 -0
  68. package/dist/eval/run-pint-benchmark.d.ts +18 -0
  69. package/dist/eval/run-pint-benchmark.d.ts.map +1 -0
  70. package/dist/eval/run-pint-benchmark.js +157 -0
  71. package/dist/eval/run-pint-benchmark.js.map +1 -0
  72. package/dist/flywheel.d.ts +54 -0
  73. package/dist/flywheel.d.ts.map +1 -0
  74. package/dist/flywheel.js +98 -0
  75. package/dist/flywheel.js.map +1 -0
  76. package/dist/index.d.ts +30 -4
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +33 -4
  79. package/dist/index.js.map +1 -1
  80. package/dist/mcp-server.js +1 -1
  81. package/dist/mcp-tools/scan.d.ts.map +1 -1
  82. package/dist/mcp-tools/scan.js +7 -0
  83. package/dist/mcp-tools/scan.js.map +1 -1
  84. package/dist/mcp-tools/submit-proposal.d.ts.map +1 -1
  85. package/dist/mcp-tools/submit-proposal.js +8 -0
  86. package/dist/mcp-tools/submit-proposal.js.map +1 -1
  87. package/dist/modules/embedding.d.ts +71 -0
  88. package/dist/modules/embedding.d.ts.map +1 -0
  89. package/dist/modules/embedding.js +141 -0
  90. package/dist/modules/embedding.js.map +1 -0
  91. package/dist/modules/semantic.d.ts +1 -0
  92. package/dist/modules/semantic.d.ts.map +1 -1
  93. package/dist/modules/semantic.js +79 -3
  94. package/dist/modules/semantic.js.map +1 -1
  95. package/dist/session-tracker.d.ts +2 -0
  96. package/dist/session-tracker.d.ts.map +1 -1
  97. package/dist/session-tracker.js +1 -0
  98. package/dist/session-tracker.js.map +1 -1
  99. package/dist/shadow-evaluator.d.ts +48 -0
  100. package/dist/shadow-evaluator.d.ts.map +1 -0
  101. package/dist/shadow-evaluator.js +128 -0
  102. package/dist/shadow-evaluator.js.map +1 -0
  103. package/dist/skill-fingerprint.d.ts.map +1 -1
  104. package/dist/skill-fingerprint.js +10 -52
  105. package/dist/skill-fingerprint.js.map +1 -1
  106. package/dist/tier0-invariant.d.ts +49 -0
  107. package/dist/tier0-invariant.d.ts.map +1 -0
  108. package/dist/tier0-invariant.js +184 -0
  109. package/dist/tier0-invariant.js.map +1 -0
  110. package/dist/tier1-blacklist.d.ts +48 -0
  111. package/dist/tier1-blacklist.d.ts.map +1 -0
  112. package/dist/tier1-blacklist.js +91 -0
  113. package/dist/tier1-blacklist.js.map +1 -0
  114. package/dist/types.d.ts +3 -0
  115. package/dist/types.d.ts.map +1 -1
  116. package/package.json +9 -2
  117. package/rules/agent-manipulation/ATR-2026-108-consensus-sybil-attack.yaml +103 -0
  118. package/rules/context-exfiltration/ATR-2026-102-disguised-analytics-exfiltration.yaml +69 -0
  119. package/rules/excessive-autonomy/ATR-2026-098-unauthorized-financial-action.yaml +155 -0
  120. package/rules/excessive-autonomy/ATR-2026-099-high-risk-tool-gate.yaml +174 -0
  121. package/rules/privilege-escalation/ATR-2026-107-delayed-execution-bypass.yaml +67 -0
  122. package/rules/prompt-injection/ATR-2026-001-direct-prompt-injection.yaml +200 -12
  123. package/rules/prompt-injection/ATR-2026-003-jailbreak-attempt.yaml +148 -3
  124. package/rules/prompt-injection/ATR-2026-004-system-prompt-override.yaml +102 -0
  125. package/rules/prompt-injection/ATR-2026-080-encoding-evasion.yaml +7 -1
  126. package/rules/prompt-injection/ATR-2026-081-semantic-multi-turn.yaml +8 -2
  127. package/rules/prompt-injection/ATR-2026-082-fingerprint-evasion.yaml +6 -0
  128. package/rules/prompt-injection/ATR-2026-083-indirect-tool-injection.yaml +9 -0
  129. package/rules/prompt-injection/ATR-2026-084-structured-data-injection.yaml +6 -0
  130. package/rules/prompt-injection/ATR-2026-085-audit-evasion.yaml +6 -0
  131. package/rules/prompt-injection/ATR-2026-086-visual-spoofing.yaml +6 -0
  132. package/rules/prompt-injection/ATR-2026-087-rule-probing.yaml +6 -0
  133. package/rules/prompt-injection/ATR-2026-088-adaptive-countermeasure.yaml +6 -0
  134. package/rules/prompt-injection/ATR-2026-089-polymorphic-skill.yaml +9 -3
  135. package/rules/prompt-injection/ATR-2026-090-threat-intel-exfil.yaml +6 -0
  136. package/rules/prompt-injection/ATR-2026-091-nested-payload.yaml +6 -0
  137. package/rules/prompt-injection/ATR-2026-092-consensus-poisoning.yaml +8 -2
  138. package/rules/prompt-injection/ATR-2026-093-gradual-escalation.yaml +7 -1
  139. package/rules/prompt-injection/ATR-2026-094-audit-bypass.yaml +7 -1
  140. package/rules/prompt-injection/ATR-2026-097-cjk-injection-patterns.yaml +322 -0
  141. package/rules/prompt-injection/ATR-2026-104-persona-hijacking.yaml +72 -0
  142. package/rules/tool-poisoning/ATR-2026-011-tool-output-injection.yaml +9 -0
  143. package/rules/tool-poisoning/ATR-2026-012-unauthorized-tool-call.yaml +9 -0
  144. package/rules/tool-poisoning/ATR-2026-013-tool-ssrf.yaml +11 -2
  145. package/rules/tool-poisoning/ATR-2026-095-supply-chain-poisoning.yaml +9 -0
  146. package/rules/tool-poisoning/ATR-2026-096-registry-poisoning.yaml +9 -0
  147. package/rules/tool-poisoning/ATR-2026-100-consent-bypass-instruction.yaml +80 -0
  148. package/rules/tool-poisoning/ATR-2026-101-trust-escalation-override.yaml +66 -0
  149. package/rules/tool-poisoning/ATR-2026-103-hidden-safety-bypass-instruction.yaml +71 -0
  150. package/rules/tool-poisoning/ATR-2026-105-silent-action-concealment.yaml +67 -0
  151. package/rules/tool-poisoning/ATR-2026-106-schema-description-contradiction.yaml +66 -0
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Shared capability extraction from text content.
3
+ *
4
+ * Used by both SkillFingerprintStore (behavioral drift detection)
5
+ * and InvariantChecker (manifest enforcement).
6
+ *
7
+ * Regex-based, no LLM needed. Analyzes first 10KB to prevent ReDoS.
8
+ *
9
+ * @module agent-threat-rules/capability-extractor
10
+ */
11
+ export declare const FS_WRITE_PATTERN: RegExp;
12
+ export declare const FS_READ_PATTERN: RegExp;
13
+ export declare const FS_DELETE_PATTERN: RegExp;
14
+ export declare const NETWORK_PATTERN: RegExp;
15
+ export declare const ENV_PATTERN: RegExp;
16
+ export declare const ENV_INLINE_PATTERN: RegExp;
17
+ export declare const EXEC_PATTERN: RegExp;
18
+ export declare const EXFIL_PATTERN: RegExp;
19
+ export declare const REDIRECT_PATTERN: RegExp;
20
+ /** Path extraction: find filesystem paths referenced in text (min 2 segments to reduce noise) */
21
+ export declare const PATH_PATTERN: RegExp;
22
+ /** Config file modification patterns */
23
+ export declare const CONFIG_MOD_PATTERN: RegExp;
24
+ export interface ExtractedCapabilities {
25
+ readonly filesystemOps: readonly string[];
26
+ readonly filesystemPaths: readonly string[];
27
+ readonly networkTargets: readonly string[];
28
+ readonly envAccesses: readonly string[];
29
+ readonly processExecs: readonly string[];
30
+ readonly outputPatterns: readonly string[];
31
+ readonly configModifications: boolean;
32
+ }
33
+ /** Classify text content into behavioral capabilities */
34
+ export declare function extractCapabilities(text: string): ExtractedCapabilities;
35
+ //# sourceMappingURL=capability-extractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-extractor.d.ts","sourceRoot":"","sources":["../src/capability-extractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAMH,eAAO,MAAM,gBAAgB,QACkD,CAAC;AAChF,eAAO,MAAM,eAAe,QACiC,CAAC;AAC9D,eAAO,MAAM,iBAAiB,QAC0B,CAAC;AAEzD,eAAO,MAAM,eAAe,QAC0F,CAAC;AAEvH,eAAO,MAAM,WAAW,QAC0D,CAAC;AACnF,eAAO,MAAM,kBAAkB,QAAmC,CAAC;AAEnE,eAAO,MAAM,YAAY,QACiG,CAAC;AAE3H,eAAO,MAAM,aAAa,QAC6D,CAAC;AACxF,eAAO,MAAM,gBAAgB,QACqC,CAAC;AAEnE,iGAAiG;AACjG,eAAO,MAAM,YAAY,QACuB,CAAC;AASjD,wCAAwC;AACxC,eAAO,MAAM,kBAAkB,QACqD,CAAC;AAMrF,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,aAAa,EAAE,SAAS,MAAM,EAAE,CAAC;IAC1C,QAAQ,CAAC,eAAe,EAAE,SAAS,MAAM,EAAE,CAAC;IAC5C,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,WAAW,EAAE,SAAS,MAAM,EAAE,CAAC;IACxC,QAAQ,CAAC,YAAY,EAAE,SAAS,MAAM,EAAE,CAAC;IACzC,QAAQ,CAAC,cAAc,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3C,QAAQ,CAAC,mBAAmB,EAAE,OAAO,CAAC;CACvC;AAED,yDAAyD;AACzD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,qBAAqB,CAwDvE"}
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Shared capability extraction from text content.
3
+ *
4
+ * Used by both SkillFingerprintStore (behavioral drift detection)
5
+ * and InvariantChecker (manifest enforcement).
6
+ *
7
+ * Regex-based, no LLM needed. Analyzes first 10KB to prevent ReDoS.
8
+ *
9
+ * @module agent-threat-rules/capability-extractor
10
+ */
11
+ // ---------------------------------------------------------------------------
12
+ // Pattern detectors
13
+ // ---------------------------------------------------------------------------
14
+ export const FS_WRITE_PATTERN = /(?:write(?:File)?|appendFile|fs\.write|truncate|mkdir|rmdir|unlink|rm\s+-)/i;
15
+ export const FS_READ_PATTERN = /(?:read(?:File)?|readdir|stat|access|exists|glob|find\s)/i;
16
+ export const FS_DELETE_PATTERN = /(?:unlink|rm\s+-rf|delete(?:File)?|removeDir|rmdir)/i;
17
+ export const NETWORK_PATTERN = /(?:https?:\/\/|fetch|curl|wget|axios|http\.request|net\.connect|socket)[\s('"]*([a-zA-Z0-9.-]+(?:\.[a-zA-Z]{2,}))/i;
18
+ export const ENV_PATTERN = /(?:process\.env|os\.environ|getenv|System\.getenv)\[?['"(]?([A-Z_][A-Z0-9_]*)/i;
19
+ export const ENV_INLINE_PATTERN = /\$\{?([A-Z_][A-Z0-9_]{2,})\}?/g;
20
+ export const EXEC_PATTERN = /(?:child_process|spawn|exec(?:File)?|system\(|popen|subprocess|shell_exec|os\.system)\s*\(\s*['"(]?([^\s'")\]]{1,80})/i;
21
+ export const EXFIL_PATTERN = /(?:base64|btoa|encode|compress|deflate|gzip).*(?:http|fetch|curl|send|post|upload)/i;
22
+ export const REDIRECT_PATTERN = /(?:redirect|forward|proxy|tunnel)\s+(?:to\s+)?(?:https?:\/\/)/i;
23
+ /** Path extraction: find filesystem paths referenced in text (min 2 segments to reduce noise) */
24
+ export const PATH_PATTERN = /(?:["'`]|^|\s)(\/(?:[\w.-]+\/){1,}[\w.-]+)/gm;
25
+ /** Common benign paths that appear in docs/version strings -- skip these */
26
+ const BENIGN_PATH_PREFIXES = [
27
+ '/usr/bin/', '/usr/lib/', '/usr/local/',
28
+ '/node_modules/', '/dist/', '/build/',
29
+ '/v1/', '/v2/', '/api/',
30
+ ];
31
+ /** Config file modification patterns */
32
+ export const CONFIG_MOD_PATTERN = /(?:\.mcp\.json|\.claude\/|\.cursor\/|mcp-config|settings\.json|\.env(?:\.\w+)?)/i;
33
+ /** Classify text content into behavioral capabilities */
34
+ export function extractCapabilities(text) {
35
+ const result = {
36
+ filesystemOps: [],
37
+ filesystemPaths: [],
38
+ networkTargets: [],
39
+ envAccesses: [],
40
+ processExecs: [],
41
+ outputPatterns: [],
42
+ configModifications: false,
43
+ };
44
+ if (!text || text.length === 0)
45
+ return result;
46
+ // Limit analysis to first 10KB to prevent ReDoS
47
+ const safeText = text.slice(0, 10_240);
48
+ // Filesystem operations
49
+ if (FS_WRITE_PATTERN.test(safeText))
50
+ result.filesystemOps.push('write');
51
+ if (FS_READ_PATTERN.test(safeText))
52
+ result.filesystemOps.push('read');
53
+ if (FS_DELETE_PATTERN.test(safeText))
54
+ result.filesystemOps.push('delete');
55
+ // Filesystem paths (filter out benign paths from docs/version strings)
56
+ for (const m of safeText.matchAll(PATH_PATTERN)) {
57
+ const path = m[1];
58
+ if (!path || result.filesystemPaths.includes(path))
59
+ continue;
60
+ const isBenign = BENIGN_PATH_PREFIXES.some((p) => path.startsWith(p));
61
+ if (!isBenign) {
62
+ result.filesystemPaths.push(path);
63
+ }
64
+ }
65
+ // Network targets
66
+ const netMatch = safeText.match(NETWORK_PATTERN);
67
+ if (netMatch?.[1])
68
+ result.networkTargets.push(netMatch[1]);
69
+ // Environment variable accesses
70
+ const envMatch = safeText.match(ENV_PATTERN);
71
+ if (envMatch?.[1])
72
+ result.envAccesses.push(envMatch[1]);
73
+ for (const m of safeText.matchAll(ENV_INLINE_PATTERN)) {
74
+ if (m[1] && !result.envAccesses.includes(m[1])) {
75
+ result.envAccesses.push(m[1]);
76
+ }
77
+ }
78
+ // Process executions
79
+ const execMatch = safeText.match(EXEC_PATTERN);
80
+ if (execMatch?.[1])
81
+ result.processExecs.push(execMatch[1]);
82
+ // Output patterns
83
+ if (EXFIL_PATTERN.test(safeText))
84
+ result.outputPatterns.push('exfiltration');
85
+ if (REDIRECT_PATTERN.test(safeText))
86
+ result.outputPatterns.push('redirect');
87
+ // Config modifications
88
+ result.configModifications = CONFIG_MOD_PATTERN.test(safeText);
89
+ return result;
90
+ }
91
+ //# sourceMappingURL=capability-extractor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"capability-extractor.js","sourceRoot":"","sources":["../src/capability-extractor.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -8,8 +8,9 @@
8
8
  * npx agent-threat-rules test <rule.yaml> Run a rule's test cases
9
9
  * npx agent-threat-rules stats Show rule collection stats
10
10
  */
11
- import { readFileSync, readdirSync, existsSync, statSync } from 'node:fs';
12
- import { resolve, dirname, join } from 'node:path';
11
+ import { readFileSync, writeFileSync, readdirSync, existsSync, statSync, mkdirSync } from 'node:fs';
12
+ import { resolve, dirname, join, sep } from 'node:path';
13
+ import { homedir } from 'node:os';
13
14
  import { fileURLToPath } from 'node:url';
14
15
  import { ATREngine } from './engine.js';
15
16
  import { loadRuleFile, loadRulesFromDirectory, validateRule } from './loader.js';
@@ -38,17 +39,22 @@ ${BOLD}Usage:${RESET}
38
39
  atr validate <rule.yaml|dir> Validate rule file(s)
39
40
  atr test <rule.yaml|dir> Run embedded test cases
40
41
  atr stats [--rules <dir>] Show rule collection statistics
42
+ atr convert <splunk|elastic> [--rules <dir>] [--output <file>]
43
+ Convert rules to SIEM query format
41
44
  atr guard [--rules <dir>] [--dry-run] Start as Claude Code hook (stdio)
45
+ atr init [--global] Setup ATR guard hook for Claude Code
42
46
  atr mcp Start MCP server (stdio transport)
43
47
  atr scaffold Interactive rule scaffolding
44
48
 
45
49
  ${BOLD}Options:${RESET}
46
50
  --rules <dir> Custom rules directory (default: bundled rules)
47
51
  --json Output results as JSON
52
+ --output <file> Write output to file instead of stdout (convert)
48
53
  --severity <s> Minimum severity to report (critical|high|medium|low|informational)
49
54
  --dry-run Log actions without executing (guard mode)
50
55
  --fail-open Default to allow on errors (guard mode, default: true)
51
56
  --timeout <ms> Evaluation timeout in ms (guard mode, default: 5000)
57
+ --global Write hook to ~/.claude/settings.json instead of project (init)
52
58
  --help Show this help message
53
59
 
54
60
  ${BOLD}Examples:${RESET}
@@ -64,12 +70,21 @@ ${BOLD}Examples:${RESET}
64
70
  ${DIM}# Show stats for bundled rules${RESET}
65
71
  atr stats
66
72
 
73
+ ${DIM}# One-command Claude Code hook setup${RESET}
74
+ atr init
75
+
67
76
  ${DIM}# Run as a Claude Code guard hook${RESET}
68
77
  atr guard --rules ./my-rules
69
78
 
70
79
  ${DIM}# Start MCP server for AI agent integration${RESET}
71
80
  atr mcp
72
81
 
82
+ ${DIM}# Convert all rules to Splunk SPL${RESET}
83
+ atr convert splunk --output splunk-queries.txt
84
+
85
+ ${DIM}# Convert all rules to Elasticsearch Query DSL${RESET}
86
+ atr convert elastic --json --output elastic-queries.json
87
+
73
88
  ${DIM}# Interactively scaffold a new rule${RESET}
74
89
  atr scaffold
75
90
  `);
@@ -82,7 +97,7 @@ function parseArgs(argv) {
82
97
  for (let i = 1; i < args.length; i++) {
83
98
  if (args[i].startsWith('--')) {
84
99
  const key = args[i].slice(2);
85
- if (key === 'json' || key === 'help' || key === 'dry-run' || key === 'fail-open') {
100
+ if (key === 'json' || key === 'help' || key === 'dry-run' || key === 'fail-open' || key === 'global') {
86
101
  options[key] = 'true';
87
102
  }
88
103
  else {
@@ -186,8 +201,6 @@ function cmdValidate(target, options) {
186
201
  const jsonOutput = options['json'] === 'true';
187
202
  const files = [];
188
203
  if (statSync(targetPath).isDirectory()) {
189
- const rules = loadRulesFromDirectory(targetPath);
190
- // Re-validate each file individually for error reporting
191
204
  collectYamlFiles(targetPath, files);
192
205
  }
193
206
  else {
@@ -286,9 +299,14 @@ async function cmdTest(target, options) {
286
299
  // For testing, normalize extended source types so the engine doesn't filter them out
287
300
  const originalSourceType = rule.agent_source?.type;
288
301
  const baseSourceType = EXTENDED_SOURCE_TO_BASE[originalSourceType ?? ''];
289
- const testRule = baseSourceType
290
- ? { ...rule, agent_source: { ...rule.agent_source, type: baseSourceType } }
291
- : rule;
302
+ // Override status so draft/deprecated rules are not skipped during testing
303
+ const testRule = {
304
+ ...rule,
305
+ status: 'experimental',
306
+ ...(baseSourceType
307
+ ? { agent_source: { ...rule.agent_source, type: baseSourceType } }
308
+ : {}),
309
+ };
292
310
  const engine = new ATREngine({ rules: [testRule] });
293
311
  await engine.loadRules();
294
312
  const tp = rule.test_cases.true_positives ?? [];
@@ -367,15 +385,27 @@ function buildEventFromTestCase(tc, rule) {
367
385
  return v;
368
386
  return JSON.stringify(v);
369
387
  };
370
- // Extract fields, handling both flat and object-style test cases.
388
+ // Extract fields, handling multiple test case formats:
371
389
  // Object-style: input: { tool_name: "...", tool_args: "...", response: "..." }
372
390
  // Flat-style: input: "...", tool_response: "...", tool_name: "..."
391
+ // Tool-call-style: tool_call: { name: "...", args: "..." }
373
392
  const rawInput = tc['input'];
374
393
  let input = '';
375
394
  let toolName = str(tc['tool_name']);
376
395
  let toolArgs = str(tc['tool_args']);
377
396
  let toolResponse = str(tc['tool_response']);
378
397
  const agentOutput = str(tc['agent_output']);
398
+ const toolDescription = str(tc['tool_description']);
399
+ const rawContent = str(tc['content']);
400
+ // Handle tool_call: { name, args } format (used by tool_call rules like ATR-2026-098)
401
+ const rawToolCall = tc['tool_call'];
402
+ if (rawToolCall !== null && rawToolCall !== undefined && typeof rawToolCall === 'object' && !Array.isArray(rawToolCall)) {
403
+ const tcObj = rawToolCall;
404
+ if (tcObj['name'] && !toolName)
405
+ toolName = str(tcObj['name']);
406
+ if (tcObj['args'] && !toolArgs)
407
+ toolArgs = str(tcObj['args']);
408
+ }
379
409
  if (rawInput !== null && rawInput !== undefined && typeof rawInput === 'object' && !Array.isArray(rawInput)) {
380
410
  const inputObj = rawInput;
381
411
  if (inputObj['tool_name'] && !toolName)
@@ -419,7 +449,7 @@ function buildEventFromTestCase(tc, rule) {
419
449
  // (no tool_name, tool_args, or tool_response), use llm_input event type
420
450
  // since the content is natural language, not a tool invocation.
421
451
  // This prevents the engine's tool_name fallback from treating text as a tool name.
422
- if (type === 'tool_call' && !toolName && !toolArgs && !toolResponse) {
452
+ if (type === 'tool_call' && !toolName && !toolArgs && !toolResponse && !toolDescription) {
423
453
  type = 'llm_input';
424
454
  }
425
455
  // Determine the primary content based on what the rule conditions check
@@ -431,7 +461,7 @@ function buildEventFromTestCase(tc, rule) {
431
461
  content = toolResponse;
432
462
  }
433
463
  else {
434
- content = input || toolResponse || agentOutput || '';
464
+ content = input || toolDescription || rawContent || toolResponse || agentOutput || '';
435
465
  }
436
466
  const fields = {};
437
467
  // Populate ALL known field aliases so the engine can resolve any field name
@@ -441,6 +471,8 @@ function buildEventFromTestCase(tc, rule) {
441
471
  fields['tool_response'] = toolResponse;
442
472
  if (agentOutput)
443
473
  fields['agent_output'] = agentOutput;
474
+ if (toolDescription)
475
+ fields['tool_description'] = toolDescription;
444
476
  // Always set tool_name (even empty) to prevent engine fallback
445
477
  // from using event.content as tool_name for tool_call events
446
478
  fields['tool_name'] = toolName;
@@ -475,9 +507,9 @@ function cmdStats(options) {
475
507
  const cat = rule.tags?.category ?? 'unknown';
476
508
  byCategory[cat] = (byCategory[cat] ?? 0) + 1;
477
509
  bySeverity[rule.severity] = (bySeverity[rule.severity] ?? 0) + 1;
478
- const maturity = rule['maturity'] ?? 'experimental';
510
+ const maturity = rule.maturity ?? 'experimental';
479
511
  byMaturity[maturity] = (byMaturity[maturity] ?? 0) + 1;
480
- const tier = rule['detection_tier'] ?? 'pattern';
512
+ const tier = rule.detection_tier ?? 'pattern';
481
513
  byTier[tier] = (byTier[tier] ?? 0) + 1;
482
514
  if (rule.test_cases) {
483
515
  totalTP += rule.test_cases.true_positives?.length ?? 0;
@@ -531,7 +563,8 @@ async function cmdGuard(options) {
531
563
  const rulesDir = options['rules'] ? resolve(options['rules']) : RULES_DIR;
532
564
  const dryRun = options['dry-run'] === 'true';
533
565
  const failOpen = options['fail-open'] !== 'false';
534
- const timeoutMs = options['timeout'] ? parseInt(options['timeout'], 10) : 5000;
566
+ const parsedTimeout = options['timeout'] ? parseInt(options['timeout'], 10) : 5000;
567
+ const timeoutMs = (Number.isFinite(parsedTimeout) && parsedTimeout > 0) ? parsedTimeout : 5000;
535
568
  const { ActionExecutor } = await import('./action-executor.js');
536
569
  const { StdioAdapter } = await import('./adapters/stdio-adapter.js');
537
570
  const { HookHandler } = await import('./hook-handler.js');
@@ -620,10 +653,129 @@ async function cmdScaffold() {
620
653
  }
621
654
  console.log(`\n${DIM}Copy this YAML to a .yaml file in rules/${category.trim()}/ and validate with: atr validate <file>${RESET}\n`);
622
655
  }
656
+ // --- INIT command ---
657
+ function cmdInit(options) {
658
+ const isGlobal = options['global'] === 'true';
659
+ const cwd = process.cwd();
660
+ // Detect Claude Code project (unless --global)
661
+ if (!isGlobal) {
662
+ const hasClaudeDir = existsSync(join(cwd, '.claude'));
663
+ const hasClaudeMd = existsSync(join(cwd, 'CLAUDE.md'));
664
+ if (!hasClaudeDir && !hasClaudeMd) {
665
+ console.error(`${RED}Error: Not a Claude Code project (no .claude/ directory or CLAUDE.md found).${RESET}\n` +
666
+ `Run this command from your project root, or use ${BOLD}atr init --global${RESET} to configure globally.`);
667
+ process.exit(1);
668
+ }
669
+ }
670
+ const hookEntry = {
671
+ // Empty matcher means "match all tools" in Claude Code hooks —
672
+ // this is intentional so every tool call is scanned against ATR rules.
673
+ matcher: '',
674
+ command: 'npx agent-threat-rules guard',
675
+ };
676
+ // Determine target settings file
677
+ const settingsPath = isGlobal
678
+ ? join(homedir(), '.claude', 'settings.json')
679
+ : join(cwd, '.claude', 'settings.local.json');
680
+ // Ensure parent directory exists
681
+ const settingsDir = dirname(settingsPath);
682
+ if (!existsSync(settingsDir)) {
683
+ mkdirSync(settingsDir, { recursive: true });
684
+ }
685
+ // Read existing settings or start fresh
686
+ let settings = {};
687
+ if (existsSync(settingsPath)) {
688
+ let raw;
689
+ try {
690
+ raw = readFileSync(settingsPath, 'utf-8');
691
+ }
692
+ catch (e) {
693
+ const code = e.code;
694
+ console.error(`${RED}Error: Cannot read ${settingsPath} (${code ?? 'permission denied'}). Check file permissions.${RESET}`);
695
+ process.exit(1);
696
+ }
697
+ try {
698
+ settings = JSON.parse(raw);
699
+ }
700
+ catch {
701
+ console.error(`${RED}Error: Invalid JSON in ${settingsPath}. Fix the syntax manually or delete it and retry.${RESET}`);
702
+ process.exit(1);
703
+ }
704
+ }
705
+ // Navigate into hooks.PreToolUse, creating structure as needed
706
+ if (!settings['hooks'] || typeof settings['hooks'] !== 'object') {
707
+ settings['hooks'] = {};
708
+ }
709
+ const hooks = settings['hooks'];
710
+ if (!Array.isArray(hooks['PreToolUse'])) {
711
+ hooks['PreToolUse'] = [];
712
+ }
713
+ const preToolUse = hooks['PreToolUse'];
714
+ // Check if hook is already configured (validate each element is an object before accessing .command)
715
+ const alreadyConfigured = preToolUse.some((entry) => typeof entry === 'object' &&
716
+ entry !== null &&
717
+ !Array.isArray(entry) &&
718
+ entry['command'] === hookEntry.command);
719
+ if (alreadyConfigured) {
720
+ console.log(`${GREEN}ATR guard hook already configured${RESET} in ${settingsPath}`);
721
+ return;
722
+ }
723
+ // Add the hook entry
724
+ preToolUse.push(hookEntry);
725
+ // Write back
726
+ writeFileSync(settingsPath, JSON.stringify(settings, null, 2) + '\n', 'utf-8');
727
+ const relPath = settingsPath.startsWith(cwd + sep)
728
+ ? settingsPath.slice(cwd.length + 1)
729
+ : settingsPath;
730
+ console.log(`\n${GREEN}ATR guard hook configured successfully.${RESET}\n`);
731
+ console.log(` File: ${relPath}`);
732
+ console.log(` Hook: PreToolUse -> npx agent-threat-rules guard\n`);
733
+ console.log(`${DIM}Every tool call Claude Code makes will now be scanned against ATR`);
734
+ console.log(`threat detection rules before execution. Suspicious actions will be`);
735
+ console.log(`flagged with severity and recommendation.${RESET}\n`);
736
+ }
737
+ // --- CONVERT command ---
738
+ async function cmdConvert(target, options) {
739
+ const validFormats = ['splunk', 'elastic'];
740
+ if (!target || !validFormats.includes(target)) {
741
+ console.error(`${RED}Error: Specify format: atr convert <splunk|elastic>${RESET}`);
742
+ process.exit(1);
743
+ }
744
+ const format = target;
745
+ const rulesDir = options['rules'] ? resolve(options['rules']) : RULES_DIR;
746
+ const outputFile = options['output'];
747
+ const jsonOutput = options['json'] === 'true';
748
+ const { convertAllRules } = await import('./converters/index.js');
749
+ const results = convertAllRules(rulesDir, format);
750
+ if (results.length === 0) {
751
+ console.error(`${RED}Error: No rules found in ${rulesDir}${RESET}`);
752
+ process.exit(1);
753
+ }
754
+ let output;
755
+ if (jsonOutput) {
756
+ output = JSON.stringify(results, null, 2);
757
+ }
758
+ else if (format === 'elastic') {
759
+ // For Elastic, JSON output is the natural format
760
+ output = JSON.stringify(results.map(r => JSON.parse(r.query)), null, 2);
761
+ }
762
+ else {
763
+ // For Splunk, emit each query separated by blank lines
764
+ output = results.map(r => r.query).join('\n\n' + '='.repeat(80) + '\n\n');
765
+ }
766
+ if (outputFile) {
767
+ writeFileSync(resolve(outputFile), output, 'utf-8');
768
+ console.log(`${GREEN}Converted ${results.length} rules to ${format} format.${RESET}`);
769
+ console.log(` Output: ${resolve(outputFile)}`);
770
+ }
771
+ else {
772
+ console.log(output);
773
+ }
774
+ }
623
775
  // --- Main ---
624
776
  async function main() {
625
777
  const { command, target, options } = parseArgs(process.argv);
626
- if (command === 'help' || options['help']) {
778
+ if (command === 'help' || command === '--help' || command === '-h' || options['help']) {
627
779
  printUsage();
628
780
  return;
629
781
  }
@@ -640,9 +792,15 @@ async function main() {
640
792
  case 'stats':
641
793
  cmdStats(options);
642
794
  break;
795
+ case 'convert':
796
+ await cmdConvert(target, options);
797
+ break;
643
798
  case 'guard':
644
799
  await cmdGuard(options);
645
800
  break;
801
+ case 'init':
802
+ cmdInit(options);
803
+ break;
646
804
  case 'mcp':
647
805
  await cmdMcp();
648
806
  break;
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * ATR-to-Elastic Query DSL Converter
3
+ *
4
+ * Converts ATR YAML rules into Elasticsearch Query DSL (JSON) that
5
+ * a SOC analyst can use in Kibana or the Elasticsearch API.
6
+ *
7
+ * @module agent-threat-rules/converters/elastic
8
+ */
9
+ import type { ATRRule } from '../types.js';
10
+ interface ElasticQuery {
11
+ _meta: {
12
+ rule_id: string;
13
+ title: string;
14
+ severity: string;
15
+ category: string;
16
+ source_type: string;
17
+ condition_logic: string;
18
+ };
19
+ query: {
20
+ bool: {
21
+ should?: unknown[];
22
+ must?: unknown[];
23
+ minimum_should_match?: number;
24
+ };
25
+ };
26
+ }
27
+ /**
28
+ * Convert an ATR rule to an Elasticsearch Query DSL object.
29
+ *
30
+ * Returns a JSON-serializable object with _meta and query fields.
31
+ * - "any" condition logic -> bool.should with minimum_should_match=1
32
+ * - "all" condition logic -> bool.must
33
+ */
34
+ export declare function ruleToElastic(rule: ATRRule): ElasticQuery;
35
+ export {};
36
+ //# sourceMappingURL=elastic.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elastic.d.ts","sourceRoot":"","sources":["../../src/converters/elastic.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAqB,MAAM,aAAa,CAAC;AAE9D,UAAU,YAAY;IACpB,KAAK,EAAE;QACL,OAAO,EAAE,MAAM,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,WAAW,EAAE,MAAM,CAAC;QACpB,eAAe,EAAE,MAAM,CAAC;KACzB,CAAC;IACF,KAAK,EAAE;QACL,IAAI,EAAE;YACJ,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;YACnB,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;YACjB,oBAAoB,CAAC,EAAE,MAAM,CAAC;SAC/B,CAAC;KACH,CAAC;CACH;AA4ED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,OAAO,GAAG,YAAY,CAkDzD"}