palaryn 0.3.7 → 0.4.4

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 (98) hide show
  1. package/README.md +2 -1
  2. package/dist/src/auth/routes.d.ts.map +1 -1
  3. package/dist/src/auth/routes.js +5 -1
  4. package/dist/src/auth/routes.js.map +1 -1
  5. package/dist/src/config/defaults.d.ts.map +1 -1
  6. package/dist/src/config/defaults.js +7 -2
  7. package/dist/src/config/defaults.js.map +1 -1
  8. package/dist/src/dlp/composite-scanner.d.ts.map +1 -1
  9. package/dist/src/dlp/composite-scanner.js +26 -1
  10. package/dist/src/dlp/composite-scanner.js.map +1 -1
  11. package/dist/src/dlp/heuristic-scorer.d.ts +31 -0
  12. package/dist/src/dlp/heuristic-scorer.d.ts.map +1 -0
  13. package/dist/src/dlp/heuristic-scorer.js +314 -0
  14. package/dist/src/dlp/heuristic-scorer.js.map +1 -0
  15. package/dist/src/dlp/llm-classifier.d.ts +38 -0
  16. package/dist/src/dlp/llm-classifier.d.ts.map +1 -0
  17. package/dist/src/dlp/llm-classifier.js +152 -0
  18. package/dist/src/dlp/llm-classifier.js.map +1 -0
  19. package/dist/src/dlp/patterns.d.ts.map +1 -1
  20. package/dist/src/dlp/patterns.js +1 -0
  21. package/dist/src/dlp/patterns.js.map +1 -1
  22. package/dist/src/dlp/prompt-injection-backend.d.ts.map +1 -1
  23. package/dist/src/dlp/prompt-injection-backend.js +17 -0
  24. package/dist/src/dlp/prompt-injection-backend.js.map +1 -1
  25. package/dist/src/dlp/prompt-injection-patterns.d.ts.map +1 -1
  26. package/dist/src/dlp/prompt-injection-patterns.js +36 -0
  27. package/dist/src/dlp/prompt-injection-patterns.js.map +1 -1
  28. package/dist/src/dlp/regex-backend.d.ts.map +1 -1
  29. package/dist/src/dlp/regex-backend.js +2 -38
  30. package/dist/src/dlp/regex-backend.js.map +1 -1
  31. package/dist/src/dlp/scanner.d.ts.map +1 -1
  32. package/dist/src/dlp/scanner.js +38 -6
  33. package/dist/src/dlp/scanner.js.map +1 -1
  34. package/dist/src/dlp/text-normalizer.d.ts +10 -1
  35. package/dist/src/dlp/text-normalizer.d.ts.map +1 -1
  36. package/dist/src/dlp/text-normalizer.js +124 -2
  37. package/dist/src/dlp/text-normalizer.js.map +1 -1
  38. package/dist/src/mcp/http-transport.d.ts +2 -0
  39. package/dist/src/mcp/http-transport.d.ts.map +1 -1
  40. package/dist/src/mcp/http-transport.js +25 -6
  41. package/dist/src/mcp/http-transport.js.map +1 -1
  42. package/dist/src/policy/engine.d.ts.map +1 -1
  43. package/dist/src/policy/engine.js +109 -0
  44. package/dist/src/policy/engine.js.map +1 -1
  45. package/dist/src/saas/routes.d.ts.map +1 -1
  46. package/dist/src/saas/routes.js +19 -5
  47. package/dist/src/saas/routes.js.map +1 -1
  48. package/dist/src/server/app.d.ts.map +1 -1
  49. package/dist/src/server/app.js +7 -0
  50. package/dist/src/server/app.js.map +1 -1
  51. package/dist/src/server/gateway.d.ts +1 -0
  52. package/dist/src/server/gateway.d.ts.map +1 -1
  53. package/dist/src/server/gateway.js +160 -1
  54. package/dist/src/server/gateway.js.map +1 -1
  55. package/dist/src/types/config.d.ts +14 -1
  56. package/dist/src/types/config.d.ts.map +1 -1
  57. package/dist/tests/security/pentest-payloads.d.ts +46 -0
  58. package/dist/tests/security/pentest-payloads.d.ts.map +1 -0
  59. package/dist/tests/security/pentest-payloads.js +475 -0
  60. package/dist/tests/security/pentest-payloads.js.map +1 -0
  61. package/dist/tests/unit/adversarial-pipeline.test.d.ts +15 -0
  62. package/dist/tests/unit/adversarial-pipeline.test.d.ts.map +1 -0
  63. package/dist/tests/unit/adversarial-pipeline.test.js +1557 -0
  64. package/dist/tests/unit/adversarial-pipeline.test.js.map +1 -0
  65. package/dist/tests/unit/dlp-scanner.test.js +5 -5
  66. package/dist/tests/unit/gateway-branches.test.js +137 -0
  67. package/dist/tests/unit/gateway-branches.test.js.map +1 -1
  68. package/dist/tests/unit/heuristic-scorer.test.d.ts +2 -0
  69. package/dist/tests/unit/heuristic-scorer.test.d.ts.map +1 -0
  70. package/dist/tests/unit/heuristic-scorer.test.js +248 -0
  71. package/dist/tests/unit/heuristic-scorer.test.js.map +1 -0
  72. package/dist/tests/unit/llm-classifier.test.d.ts +2 -0
  73. package/dist/tests/unit/llm-classifier.test.d.ts.map +1 -0
  74. package/dist/tests/unit/llm-classifier.test.js +349 -0
  75. package/dist/tests/unit/llm-classifier.test.js.map +1 -0
  76. package/dist/tests/unit/prompt-injection-backend.test.js +122 -0
  77. package/dist/tests/unit/prompt-injection-backend.test.js.map +1 -1
  78. package/dist/tests/unit/text-normalizer.test.js +52 -1
  79. package/dist/tests/unit/text-normalizer.test.js.map +1 -1
  80. package/package.json +1 -1
  81. package/policy-packs/default.yaml +88 -0
  82. package/src/auth/routes.ts +6 -1
  83. package/src/config/defaults.ts +7 -2
  84. package/src/dlp/composite-scanner.ts +27 -1
  85. package/src/dlp/heuristic-scorer.ts +342 -0
  86. package/src/dlp/llm-classifier.ts +191 -0
  87. package/src/dlp/patterns.ts +1 -0
  88. package/src/dlp/prompt-injection-backend.ts +19 -1
  89. package/src/dlp/prompt-injection-patterns.ts +38 -0
  90. package/src/dlp/regex-backend.ts +2 -45
  91. package/src/dlp/scanner.ts +36 -6
  92. package/src/dlp/text-normalizer.ts +130 -2
  93. package/src/mcp/http-transport.ts +29 -6
  94. package/src/policy/engine.ts +102 -0
  95. package/src/saas/routes.ts +22 -5
  96. package/src/server/app.ts +7 -0
  97. package/src/server/gateway.ts +196 -1
  98. package/src/types/config.ts +15 -1
@@ -1 +1 @@
1
- {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/server/app.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"app.js","sourceRoot":"","sources":["../../../src/server/app.ts"],"names":[],"mappings":"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"}
@@ -57,6 +57,7 @@ export declare class Gateway {
57
57
  private rateLimitConfigStore?;
58
58
  private budgetConfigStore?;
59
59
  private usageExtractor;
60
+ private llmClassifier?;
60
61
  private inFlightCleanupInterval?;
61
62
  /**
62
63
  * Tracks tool_call_ids currently being processed to prevent TOCTOU races.
@@ -1 +1 @@
1
- {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../../src/server/gateway.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gateway.d.ts","sourceRoot":"","sources":["../../../src/server/gateway.ts"],"names":[],"mappings":"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"}
@@ -41,6 +41,8 @@ const opa_engine_1 = require("../policy/opa-engine");
41
41
  const scanner_1 = require("../dlp/scanner");
42
42
  const composite_scanner_1 = require("../dlp/composite-scanner");
43
43
  const prompt_injection_backend_1 = require("../dlp/prompt-injection-backend");
44
+ const heuristic_scorer_1 = require("../dlp/heuristic-scorer");
45
+ const heuristic_scorer_2 = require("../dlp/heuristic-scorer");
44
46
  const trufflehog_backend_1 = require("../dlp/trufflehog-backend");
45
47
  const manager_1 = require("../budget/manager");
46
48
  const usage_extractor_1 = require("../budget/usage-extractor");
@@ -55,6 +57,7 @@ const manager_2 = require("../approval/manager");
55
57
  const limiter_1 = require("../ratelimit/limiter");
56
58
  const memory_1 = require("../storage/memory");
57
59
  const anomaly_1 = require("../anomaly");
60
+ const llm_classifier_1 = require("../dlp/llm-classifier");
58
61
  const logger_2 = require("./logger");
59
62
  /** Compute a short body hash for idempotency cache keys (A2). */
60
63
  function computeBodyHash(toolCall) {
@@ -123,6 +126,7 @@ class Gateway {
123
126
  dlpBackends.push(new prompt_injection_backend_1.PromptInjectionBackend({
124
127
  scan_output: config.dlp.scan_output,
125
128
  }));
129
+ dlpBackends.push(new heuristic_scorer_1.HeuristicScorerBackend());
126
130
  }
127
131
  if (config.dlp.trufflehog?.enabled) {
128
132
  dlpBackends.push(new trufflehog_backend_1.TruffleHogBackend({
@@ -149,6 +153,14 @@ class Gateway {
149
153
  if (config.policy.opa?.enabled) {
150
154
  this.opaEngine = new opa_engine_1.OPAEngine(config.policy.opa);
151
155
  }
156
+ // Set up LLM-based prompt injection classifier if enabled
157
+ if (config.dlp.llm_classifier?.enabled) {
158
+ this.llmClassifier = new llm_classifier_1.LlmPromptInjectionClassifier(config.dlp.llm_classifier);
159
+ console.log(`[Gateway] LLM classifier enabled (model: ${config.dlp.llm_classifier.model || 'default'})`);
160
+ }
161
+ else {
162
+ console.log(`[Gateway] LLM classifier disabled (PALARYN_LLM_API_KEY ${process.env.PALARYN_LLM_API_KEY ? 'set' : 'NOT set'})`);
163
+ }
152
164
  this.usageExtractor = new usage_extractor_1.UsageExtractor(config.budget.token_pricing);
153
165
  // Set up executor registry with HTTP as default + catch-all fallback
154
166
  this.executorRegistry = new registry_1.ExecutorRegistry();
@@ -277,7 +289,7 @@ class Gateway {
277
289
  // Prompt injection blocking check (before policy, so it always runs)
278
290
  const piAction = this.config.dlp.prompt_injection_action || 'log';
279
291
  if (piAction === 'block' && argsDlp.detected.length > 0) {
280
- const piDetections = argsDlp.detected.filter((d) => d.startsWith('prompt_injection_'));
292
+ const piDetections = argsDlp.detected.filter((d) => d.startsWith('prompt_injection_') || d.startsWith('heuristic_prompt_injection'));
281
293
  if (piDetections.length > 0) {
282
294
  const threshold = this.config.dlp.prompt_injection_block_threshold || 'high';
283
295
  const severityRank = { low: 0, medium: 1, high: 2 };
@@ -308,6 +320,96 @@ class Gateway {
308
320
  }
309
321
  }
310
322
  }
323
+ // Heuristic scoring — force LLM classifier when structural signals are elevated
324
+ let forceLlmClassification = false;
325
+ const inputText = JSON.stringify(toolCall);
326
+ const heuristicResult = (0, heuristic_scorer_2.scorePromptInjection)(inputText);
327
+ if (heuristicResult.score >= 0.4) {
328
+ forceLlmClassification = true;
329
+ logger_2.log.pipelineStep('🔍', 'HEURISTIC_SCORER', `score=${heuristicResult.score.toFixed(2)} signals=[${heuristicResult.signals.join(',')}]`);
330
+ // Fallback: if heuristic score >= 0.5 and no LLM classifier is available, block directly.
331
+ // Without an LLM classifier the forceLlmClassification flag has no effect,
332
+ // so we treat a score of 0.5+ (3+ structural signals) as sufficient evidence to block.
333
+ if (heuristicResult.score >= 0.5 && !this.llmClassifier && piAction === 'block') {
334
+ const heuristicDetection = `heuristic_prompt_injection (score=${heuristicResult.score.toFixed(2)}, signals=${heuristicResult.signals.join(',')})`;
335
+ argsDlp.detected.push(heuristicDetection);
336
+ argsDlp.severity = this.maxSeverity(argsDlp.severity, 'high');
337
+ this.auditLogger.logDLPScanned(toolCall, [heuristicDetection], 'high', 0);
338
+ this.metrics?.recordDLPDetection('heuristic_prompt_injection', 'high');
339
+ logger_2.log.pipelineStep('🛡️', 'HEURISTIC_BLOCK', `score=${heuristicResult.score.toFixed(2)} — no LLM classifier available, blocking`);
340
+ const durationSec = (Date.now() - startTime) / 1000;
341
+ this.metrics?.recordRequest('blocked', toolCall.tool.name, toolCall.tool.capability, durationSec);
342
+ const result = this.buildResult(toolCall, 'blocked', {
343
+ decision: 'deny',
344
+ rule_id: 'heuristic_prompt_injection_block',
345
+ rule_name: 'Heuristic prompt injection detected',
346
+ reasons: [`Heuristic prompt injection detected: ${heuristicResult.signals.join(', ')} (score=${heuristicResult.score.toFixed(2)})`],
347
+ }, startTime, undefined, `Blocked by heuristic prompt injection scorer (score=${heuristicResult.score.toFixed(2)}, signals: ${heuristicResult.signals.join(', ')})`, undefined, argsDlp);
348
+ logger_2.log.pipelineEnd('blocked', Date.now() - startTime);
349
+ return { allowed: false, result, stepTimings, startTime };
350
+ }
351
+ }
352
+ // LLM-based prompt injection classification on INPUT (async, runs after sync DLP scan)
353
+ if ((this.llmClassifier && this.config.dlp.llm_classifier?.scan_input !== false) || (forceLlmClassification && this.llmClassifier)) {
354
+ const llmInputStart = Date.now();
355
+ const llmInputResult = await asyncChildSpan(otel, 'gateway.llm_classifier_input', () => this.llmClassifier.classify(inputText));
356
+ stepTimings.llm_classifier_input = Date.now() - llmInputStart;
357
+ const llmInputClassifications = llmInputResult.classifications;
358
+ // Degraded signal: LLM classifier failed while heuristic flagged suspicious content
359
+ if (llmInputResult.error && forceLlmClassification) {
360
+ const degradedName = 'llm_classifier_unavailable';
361
+ argsDlp.detected.push(degradedName);
362
+ argsDlp.severity = this.maxSeverity(argsDlp.severity, 'medium');
363
+ this.auditLogger.logDLPScanned(toolCall, [degradedName], 'medium', 0);
364
+ this.metrics?.recordDLPDetection(degradedName, 'medium');
365
+ logger_2.log.pipelineStep('⚠️', 'LLM_CLASSIFIER_UNAVAILABLE', `LLM classifier failed with heuristic score=${heuristicResult.score.toFixed(2)} — emitting degraded signal`);
366
+ }
367
+ if (llmInputClassifications.length > 0) {
368
+ const llmDetections = llm_classifier_1.LlmPromptInjectionClassifier.toDLPDetections(llmInputClassifications, inputText);
369
+ const llmDetectionNames = llmDetections.map(d => d.pattern_name);
370
+ argsDlp.detected.push(...llmDetectionNames);
371
+ for (const d of llmDetections) {
372
+ argsDlp.severity = this.maxSeverity(argsDlp.severity, d.severity);
373
+ }
374
+ this.auditLogger.logDLPScanned(toolCall, llmDetectionNames, argsDlp.severity, 0);
375
+ for (const name of llmDetectionNames) {
376
+ this.metrics?.recordDLPDetection(name, argsDlp.severity);
377
+ }
378
+ // Re-check prompt injection blocking with LLM classifier detections.
379
+ // LLM classifier uses 'high' threshold to reduce false positives on benign content —
380
+ // it's more aggressive than regex/heuristic and needs higher confidence to block.
381
+ if (piAction === 'block') {
382
+ const llmPiDetections = argsDlp.detected.filter((d) => d.startsWith('llm_classifier_'));
383
+ if (llmPiDetections.length > 0) {
384
+ // Use max of configured threshold and 'high' — LLM-only blocks require high severity
385
+ const configThreshold = this.config.dlp.prompt_injection_block_threshold || 'high';
386
+ const severityRank = { low: 0, medium: 1, high: 2 };
387
+ const hasHeuristicDetection = argsDlp.detected.some((d) => d.startsWith('heuristic_prompt_injection'));
388
+ // If heuristic also flagged it, trust the LLM at configured threshold;
389
+ // otherwise require 'high' to avoid false positives on benign content.
390
+ const threshold = hasHeuristicDetection ? configThreshold : 'high';
391
+ const thresholdRank = severityRank[threshold] ?? 2;
392
+ const maxLlmSeverity = llmInputClassifications.reduce((max, c) => {
393
+ const rank = severityRank[c.severity] ?? 0;
394
+ return rank > max ? rank : max;
395
+ }, 0);
396
+ if (maxLlmSeverity >= thresholdRank) {
397
+ logger_2.log.pipelineStep('🛡️', 'LLM_CLASSIFIER_INPUT_BLOCK', `Blocked: ${llmPiDetections.join(', ')} (severity: ${argsDlp.severity}, threshold: ${threshold})`);
398
+ const durationSec = (Date.now() - startTime) / 1000;
399
+ this.metrics?.recordRequest('blocked', toolCall.tool.name, toolCall.tool.capability, durationSec);
400
+ const result = this.buildResult(toolCall, 'blocked', {
401
+ decision: 'deny',
402
+ rule_id: 'llm_classifier_input_block',
403
+ rule_name: 'LLM classifier detected prompt injection in input',
404
+ reasons: [`LLM classifier detected: ${llmPiDetections.join(', ')}`],
405
+ }, startTime, undefined, `Blocked by LLM classifier: ${llmPiDetections.join(', ')} (severity: ${argsDlp.severity})`, undefined, argsDlp);
406
+ logger_2.log.pipelineEnd('blocked', Date.now() - startTime);
407
+ return { allowed: false, result, stepTimings, startTime };
408
+ }
409
+ }
410
+ }
411
+ }
412
+ }
311
413
  // Policy evaluation — DLP context is passed so DLP-conditioned rules
312
414
  // compete with all other rules in a single priority-ordered pass.
313
415
  stepStart = Date.now();
@@ -455,6 +557,63 @@ class Gateway {
455
557
  }
456
558
  }
457
559
  stepTimings.dlp_out = Date.now() - stepStart;
560
+ // LLM-based prompt injection classification (async, runs after sync DLP scan)
561
+ if (this.llmClassifier && output.body && this.config.dlp.llm_classifier?.scan_output !== false) {
562
+ const llmStart = Date.now();
563
+ const text = typeof output.body === 'string' ? output.body : JSON.stringify(output.body);
564
+ const llmOutputResult = await asyncChildSpan(otel, 'gateway.llm_classifier', () => this.llmClassifier.classify(text));
565
+ stepTimings.llm_classifier = Date.now() - llmStart;
566
+ const llmClassifications = llmOutputResult.classifications;
567
+ if (llmClassifications.length > 0) {
568
+ const llmDetections = llm_classifier_1.LlmPromptInjectionClassifier.toDLPDetections(llmClassifications, text);
569
+ const llmDetectionNames = llmDetections.map(d => d.pattern_name);
570
+ outputDlp.detected.push(...llmDetectionNames);
571
+ // Recalculate severity: take the max of existing and LLM detections
572
+ for (const d of llmDetections) {
573
+ outputDlp.severity = this.maxSeverity(outputDlp.severity, d.severity);
574
+ }
575
+ this.auditLogger.logDLPScanned(toolCall, llmDetectionNames, outputDlp.severity, 0);
576
+ for (const name of llmDetectionNames) {
577
+ this.metrics?.recordDLPDetection(name, outputDlp.severity);
578
+ }
579
+ }
580
+ }
581
+ // Prompt injection blocking check on output (regex + LLM classifier detections)
582
+ const piOutputAction = this.config.dlp.prompt_injection_action || 'log';
583
+ if (piOutputAction === 'block' && outputDlp.detected.length > 0) {
584
+ const piDetections = outputDlp.detected.filter((d) => d.startsWith('prompt_injection_') || d.startsWith('llm_classifier_'));
585
+ if (piDetections.length > 0) {
586
+ const threshold = this.config.dlp.prompt_injection_block_threshold || 'medium';
587
+ const severityRank = { low: 0, medium: 1, high: 2 };
588
+ const thresholdRank = severityRank[threshold] ?? 1;
589
+ const maxSeverityRank = severityRank[outputDlp.severity] ?? 0;
590
+ if (maxSeverityRank >= thresholdRank) {
591
+ // Release budget reservation since we're blocking
592
+ if (reservationKey) {
593
+ this.budgetManager.commitReservation(reservationKey, 0);
594
+ }
595
+ logger_2.log.pipelineStep('🛡️', 'PROMPT_INJECTION_OUTPUT_BLOCK', `Blocked output: ${piDetections.join(', ')} (severity: ${outputDlp.severity}, threshold: ${threshold})`);
596
+ const durationSec = (Date.now() - startTime) / 1000;
597
+ this.metrics?.recordRequest('blocked', toolCall.tool.name, toolCall.tool.capability, durationSec);
598
+ const defaultPolicy = policyResult || { decision: 'allow', rule_id: 'passthrough', rule_name: 'Passthrough', reasons: [] };
599
+ const argsDlpSafe = argsDlp || { detected: [], redactions: [], severity: 'low' };
600
+ const mergedDlp = {
601
+ detected: [...new Set([...argsDlpSafe.detected, ...outputDlp.detected])],
602
+ redactions: [...argsDlpSafe.redactions, ...outputDlp.redactions],
603
+ severity: this.maxSeverity(argsDlpSafe.severity, outputDlp.severity),
604
+ };
605
+ const result = this.buildResult(toolCall, 'blocked', {
606
+ decision: 'deny',
607
+ rule_id: 'prompt_injection_output_block',
608
+ rule_name: 'Prompt injection detected in output',
609
+ reasons: [`Prompt injection detected in output: ${piDetections.join(', ')}`],
610
+ }, startTime, undefined, `Blocked by prompt injection detection in output: ${piDetections.join(', ')} (severity: ${outputDlp.severity})`, undefined, mergedDlp);
611
+ this.auditLogger.logToolResultReturned(toolCall, 'blocked', Date.now() - startTime, { prompt_injection_blocked: true, detections: piDetections });
612
+ logger_2.log.pipelineEnd('blocked', Date.now() - startTime);
613
+ return result;
614
+ }
615
+ }
616
+ }
458
617
  // Extract usage data from response
459
618
  const headerUsage = this.usageExtractor.extractFromHeaders(output.headers);
460
619
  const bodyUsage = this.usageExtractor.extractFromBody(output.body);