@weave_protocol/mund 0.2.3 → 0.3.1
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 +135 -1
- package/dist/analyzers/code-analyzer.d.ts.map +1 -1
- package/dist/analyzers/code-analyzer.js +2 -1
- package/dist/analyzers/code-analyzer.js.map +1 -1
- package/dist/analyzers/exfiltration-detector.d.ts.map +1 -1
- package/dist/analyzers/exfiltration-detector.js +2 -1
- package/dist/analyzers/exfiltration-detector.js.map +1 -1
- package/dist/analyzers/index.d.ts.map +1 -1
- package/dist/analyzers/index.js +4 -2
- package/dist/analyzers/index.js.map +1 -1
- package/dist/analyzers/injection-detector.d.ts.map +1 -1
- package/dist/analyzers/injection-detector.js +2 -1
- package/dist/analyzers/injection-detector.js.map +1 -1
- package/dist/analyzers/mcp-server-analyzer.d.ts +2 -0
- package/dist/analyzers/mcp-server-analyzer.d.ts.map +1 -1
- package/dist/analyzers/mcp-server-analyzer.js.map +1 -1
- package/dist/analyzers/pii-detector.d.ts.map +1 -1
- package/dist/analyzers/pii-detector.js +2 -1
- package/dist/analyzers/pii-detector.js.map +1 -1
- package/dist/analyzers/regex.d.ts +10 -0
- package/dist/analyzers/regex.d.ts.map +1 -0
- package/dist/analyzers/regex.js +17 -0
- package/dist/analyzers/regex.js.map +1 -0
- package/dist/analyzers/secret-scanner.d.ts.map +1 -1
- package/dist/analyzers/secret-scanner.js +2 -1
- package/dist/analyzers/secret-scanner.js.map +1 -1
- package/dist/canary.d.ts +48 -0
- package/dist/canary.d.ts.map +1 -0
- package/dist/canary.js +149 -0
- package/dist/canary.js.map +1 -0
- package/dist/cli/scan.d.ts +50 -0
- package/dist/cli/scan.d.ts.map +1 -0
- package/dist/cli/scan.js +235 -0
- package/dist/cli/scan.js.map +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +12 -4
- package/dist/index.js.map +1 -1
- package/dist/notifications/email.d.ts +21 -8
- package/dist/notifications/email.d.ts.map +1 -1
- package/dist/notifications/email.js +32 -178
- package/dist/notifications/email.js.map +1 -1
- package/dist/osv.d.ts +94 -0
- package/dist/osv.d.ts.map +1 -0
- package/dist/osv.js +239 -0
- package/dist/osv.js.map +1 -0
- package/dist/rugpull.d.ts +73 -0
- package/dist/rugpull.d.ts.map +1 -0
- package/dist/rugpull.js +177 -0
- package/dist/rugpull.js.map +1 -0
- package/dist/sarif.d.ts +20 -0
- package/dist/sarif.d.ts.map +1 -0
- package/dist/sarif.js +122 -0
- package/dist/sarif.js.map +1 -0
- package/dist/scoring.d.ts +26 -0
- package/dist/scoring.d.ts.map +1 -0
- package/dist/scoring.js +49 -0
- package/dist/scoring.js.map +1 -0
- package/dist/threat-intel-manager.d.ts.map +1 -1
- package/dist/threat-intel-manager.js +2 -1
- package/dist/threat-intel-manager.js.map +1 -1
- package/dist/tools/canary-rugpull.d.ts +7 -0
- package/dist/tools/canary-rugpull.d.ts.map +1 -0
- package/dist/tools/canary-rugpull.js +50 -0
- package/dist/tools/canary-rugpull.js.map +1 -0
- package/dist/tools/configuration.d.ts.map +1 -1
- package/dist/tools/configuration.js +2 -1
- package/dist/tools/configuration.js.map +1 -1
- package/dist/tools/index.d.ts +1 -0
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +4 -0
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/mcp-scanning.d.ts.map +1 -1
- package/dist/tools/mcp-scanning.js +4 -0
- package/dist/tools/mcp-scanning.js.map +1 -1
- package/dist/tools/monitoring.d.ts.map +1 -1
- package/dist/tools/monitoring.js +22 -1
- package/dist/tools/monitoring.js.map +1 -1
- package/dist/version.d.ts +6 -0
- package/dist/version.d.ts.map +1 -0
- package/dist/version.js +19 -0
- package/dist/version.js.map +1 -0
- package/package.json +2 -4
- package/src/analyzers/code-analyzer.ts +2 -1
- package/src/analyzers/exfiltration-detector.ts +2 -1
- package/src/analyzers/index.ts +4 -2
- package/src/analyzers/injection-detector.ts +2 -1
- package/src/analyzers/mcp-server-analyzer.ts +2 -0
- package/src/analyzers/pii-detector.ts +2 -1
- package/src/analyzers/regex.ts +17 -0
- package/src/analyzers/secret-scanner.ts +2 -1
- package/src/canary.ts +165 -0
- package/src/cli/scan.ts +260 -0
- package/src/index.ts +13 -4
- package/src/notifications/email.ts +38 -194
- package/src/osv.ts +310 -0
- package/src/rugpull.ts +233 -0
- package/src/sarif.ts +146 -0
- package/src/scoring.ts +64 -0
- package/src/threat-intel-manager.ts +2 -1
- package/src/tools/canary-rugpull.ts +75 -0
- package/src/tools/configuration.ts +2 -1
- package/src/tools/index.ts +5 -0
- package/src/tools/mcp-scanning.ts +5 -0
- package/src/tools/monitoring.ts +23 -1
- package/src/version.ts +20 -0
- package/tests/analyzers/engine.test.ts +60 -0
- package/tests/analyzers/injection-and-code.test.ts +80 -0
- package/tests/analyzers/mcp-server-analyzer.test.ts +82 -0
- package/tests/analyzers/regex.test.ts +35 -0
- package/tests/analyzers/rules.test.ts +54 -0
- package/tests/analyzers/secret-scanner.test.ts +80 -0
- package/tests/canary.test.ts +79 -0
- package/tests/cli/scan.test.ts +92 -0
- package/tests/fixtures/canary/base64.json +9 -0
- package/tests/fixtures/canary/clean-output.json +8 -0
- package/tests/fixtures/canary/exact-leak.json +9 -0
- package/tests/fixtures/canary/lowercased.json +9 -0
- package/tests/fixtures/canary/other-token.json +8 -0
- package/tests/fixtures/canary/prefix-only.json +8 -0
- package/tests/fixtures/canary/reversed.json +9 -0
- package/tests/fixtures/canary/spaced-out.json +9 -0
- package/tests/fixtures/canary/zero-width.json +9 -0
- package/tests/fixtures/rugpull/description-changed/baseline.json +36 -0
- package/tests/fixtures/rugpull/description-changed/current.json +36 -0
- package/tests/fixtures/rugpull/description-changed/expected.json +11 -0
- package/tests/fixtures/rugpull/gains-execution/baseline.json +36 -0
- package/tests/fixtures/rugpull/gains-execution/current.json +36 -0
- package/tests/fixtures/rugpull/gains-execution/expected.json +18 -0
- package/tests/fixtures/rugpull/schema-changed/baseline.json +36 -0
- package/tests/fixtures/rugpull/schema-changed/current.json +39 -0
- package/tests/fixtures/rugpull/schema-changed/expected.json +11 -0
- package/tests/fixtures/rugpull/schema-key-reorder/baseline.json +36 -0
- package/tests/fixtures/rugpull/schema-key-reorder/current.json +36 -0
- package/tests/fixtures/rugpull/schema-key-reorder/expected.json +5 -0
- package/tests/fixtures/rugpull/server-renamed/baseline.json +36 -0
- package/tests/fixtures/rugpull/server-renamed/current.json +36 -0
- package/tests/fixtures/rugpull/server-renamed/expected.json +11 -0
- package/tests/fixtures/rugpull/tool-added/baseline.json +36 -0
- package/tests/fixtures/rugpull/tool-added/current.json +44 -0
- package/tests/fixtures/rugpull/tool-added/expected.json +11 -0
- package/tests/fixtures/rugpull/tool-removed/baseline.json +36 -0
- package/tests/fixtures/rugpull/tool-removed/current.json +21 -0
- package/tests/fixtures/rugpull/tool-removed/expected.json +11 -0
- package/tests/fixtures/rugpull/unchanged/baseline.json +36 -0
- package/tests/fixtures/rugpull/unchanged/current.json +36 -0
- package/tests/fixtures/rugpull/unchanged/expected.json +5 -0
- package/tests/fixtures.test.ts +40 -0
- package/tests/helpers.ts +51 -0
- package/tests/notifications/email.test.ts +68 -0
- package/tests/notifications/hub.test.ts +160 -0
- package/tests/osv.test.ts +117 -0
- package/tests/rugpull.test.ts +80 -0
- package/tests/sarif.test.ts +59 -0
- package/tests/scoring.test.ts +49 -0
- package/tests/tools/canary-rugpull.test.ts +57 -0
- package/tests/tools/monitoring.test.ts +95 -0
- package/vitest.config.ts +8 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mcp-scanning.js","sourceRoot":"","sources":["../../src/tools/mcp-scanning.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,iBAAiB,EAIlB,MAAM,qCAAqC,CAAC;
|
|
1
|
+
{"version":3,"file":"mcp-scanning.js","sourceRoot":"","sources":["../../src/tools/mcp-scanning.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitoring.d.ts","sourceRoot":"","sources":["../../src/tools/monitoring.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EAMd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"monitoring.d.ts","sourceRoot":"","sources":["../../src/tools/monitoring.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,KAAK,EACV,QAAQ,EACR,aAAa,EAMd,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AA8D5D,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,QAAQ,EACjB,KAAK,EAAE,aAAa,EAAE,EACtB,QAAQ,EAAE,cAAc,EACxB,eAAe,EAAE,eAAe,EAChC,SAAS,EAAE,OAAO,GACjB,IAAI,CAmeN"}
|
package/dist/tools/monitoring.js
CHANGED
|
@@ -5,6 +5,9 @@
|
|
|
5
5
|
import { z } from 'zod';
|
|
6
6
|
import { v4 as uuidv4 } from 'uuid';
|
|
7
7
|
import { createHash } from 'crypto';
|
|
8
|
+
import { computeRiskScore } from '../scoring.js';
|
|
9
|
+
import { toSarif } from '../sarif.js';
|
|
10
|
+
import { getVersion } from '../version.js';
|
|
8
11
|
import { MAX_SNIPPET_LENGTH, DEFAULT_EVENTS_LIMIT, MAX_EVENTS_PER_QUERY } from '../constants.js';
|
|
9
12
|
// ============================================================================
|
|
10
13
|
// Input Schemas
|
|
@@ -19,7 +22,11 @@ const ScanContentInputSchema = z.object({
|
|
|
19
22
|
.describe('Type of content being scanned'),
|
|
20
23
|
tool_name: z.string().optional().describe('Name of the tool that generated this content'),
|
|
21
24
|
agent_id: z.string().optional().describe('ID of the agent making this request'),
|
|
22
|
-
session_id: z.string().optional().describe('Current session ID')
|
|
25
|
+
session_id: z.string().optional().describe('Current session ID'),
|
|
26
|
+
format: z.enum(['json', 'sarif']).default('json')
|
|
27
|
+
.describe('Response format: json (default) or sarif (SARIF 2.1.0 for code-scanning tools)'),
|
|
28
|
+
file_path: z.string().optional()
|
|
29
|
+
.describe('Path to report in SARIF locations (defaults to "content")')
|
|
23
30
|
}).strict();
|
|
24
31
|
const CheckUrlInputSchema = z.object({
|
|
25
32
|
url: z.string()
|
|
@@ -72,11 +79,15 @@ Args:
|
|
|
72
79
|
- tool_name (string): Name of tool that generated this content (optional)
|
|
73
80
|
- agent_id (string): ID of the requesting agent (optional)
|
|
74
81
|
- session_id (string): Current session ID (optional)
|
|
82
|
+
- format ('json' | 'sarif'): Response format (default: 'json')
|
|
83
|
+
- file_path (string): Path to use in SARIF locations (optional)
|
|
75
84
|
|
|
76
85
|
Returns:
|
|
77
86
|
JSON object with:
|
|
78
87
|
- scan_id: Unique identifier for this scan
|
|
79
88
|
- issues_found: Number of security issues detected
|
|
89
|
+
- risk_score: 0-100 aggregate risk
|
|
90
|
+
- risk_label: none | low | medium | high | critical
|
|
80
91
|
- blocked: Whether the content was blocked (if block_mode is enabled)
|
|
81
92
|
- issues: Array of detected issues with severity, type, and suggestions
|
|
82
93
|
- scan_duration_ms: Time taken to complete the scan
|
|
@@ -133,10 +144,20 @@ Examples:
|
|
|
133
144
|
// Send notifications for critical/high severity
|
|
134
145
|
await notificationHub.notify(event);
|
|
135
146
|
}
|
|
147
|
+
if (params.format === 'sarif') {
|
|
148
|
+
const sarif = toSarif([{ uri: params.file_path ?? 'content', issues }], { toolVersion: getVersion() });
|
|
149
|
+
return {
|
|
150
|
+
content: [{ type: 'text', text: JSON.stringify(sarif, null, 2) }],
|
|
151
|
+
structuredContent: sarif
|
|
152
|
+
};
|
|
153
|
+
}
|
|
136
154
|
// Format response
|
|
155
|
+
const risk = computeRiskScore(issues);
|
|
137
156
|
const response = {
|
|
138
157
|
scan_id: scanResult.id,
|
|
139
158
|
issues_found: issues.length,
|
|
159
|
+
risk_score: risk.score,
|
|
160
|
+
risk_label: risk.label,
|
|
140
161
|
blocked: shouldBlock,
|
|
141
162
|
issues: issues.map(i => ({
|
|
142
163
|
rule_id: i.rule_id,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"monitoring.js","sourceRoot":"","sources":["../../src/tools/monitoring.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"monitoring.js","sourceRoot":"","sources":["../../src/tools/monitoring.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.d.ts","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAMH,wBAAgB,UAAU,IAAI,MAAM,CAUnC"}
|
package/dist/version.js
ADDED
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mund - The Guardian Protocol
|
|
3
|
+
* Package version, read from package.json at runtime (dist/version.js -> ../package.json)
|
|
4
|
+
*/
|
|
5
|
+
import { readFileSync } from 'fs';
|
|
6
|
+
let cached;
|
|
7
|
+
export function getVersion() {
|
|
8
|
+
if (!cached) {
|
|
9
|
+
try {
|
|
10
|
+
const pkg = JSON.parse(readFileSync(new URL('../package.json', import.meta.url), 'utf8'));
|
|
11
|
+
cached = pkg.version ?? '0.0.0';
|
|
12
|
+
}
|
|
13
|
+
catch {
|
|
14
|
+
cached = '0.0.0';
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
return cached;
|
|
18
|
+
}
|
|
19
|
+
//# sourceMappingURL=version.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAElC,IAAI,MAA0B,CAAC;AAE/B,MAAM,UAAU,UAAU;IACxB,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,IAAI,CAAC;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,GAAG,CAAC,iBAAiB,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,CAAyB,CAAC;YAClH,MAAM,GAAG,GAAG,CAAC,OAAO,IAAI,OAAO,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,GAAG,OAAO,CAAC;QACnB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weave_protocol/mund",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.1",
|
|
4
4
|
"description": "The Guardian Protocol - MCP-based security monitoring for agentic AI systems",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"bin": {
|
|
@@ -12,7 +12,7 @@
|
|
|
12
12
|
"start": "node dist/index.js",
|
|
13
13
|
"dev": "tsx watch src/index.ts",
|
|
14
14
|
"lint": "eslint src/**/*.ts",
|
|
15
|
-
"test": "vitest",
|
|
15
|
+
"test": "vitest run",
|
|
16
16
|
"prepublishOnly": "npm run build"
|
|
17
17
|
},
|
|
18
18
|
"keywords": "[\"mcp\",\"mcp-server\",\"ai\",\"ai-security\",\"llm-security\",\"agent-security\",\"security\",\"prompt-injection\",\"secret-detection\",\"pii-detection\",\"claude\",\"openai\",\"compliance\",\"scanning\",\"guardian\"]",
|
|
@@ -29,7 +29,6 @@
|
|
|
29
29
|
"@modelcontextprotocol/sdk": "^1.29.0",
|
|
30
30
|
"better-sqlite3": "^11.3.0",
|
|
31
31
|
"express": "^4.21.0",
|
|
32
|
-
"nodemailer": "^8.0.9",
|
|
33
32
|
"uuid": "^14.0.0",
|
|
34
33
|
"winston": "^3.14.2",
|
|
35
34
|
"yaml": "^2.5.0",
|
|
@@ -39,7 +38,6 @@
|
|
|
39
38
|
"@types/better-sqlite3": "^7.6.11",
|
|
40
39
|
"@types/express": "^4.17.21",
|
|
41
40
|
"@types/node": "^22.5.5",
|
|
42
|
-
"@types/nodemailer": "^8.0.0",
|
|
43
41
|
"@typescript-eslint/eslint-plugin": "^8.6.0",
|
|
44
42
|
"@typescript-eslint/parser": "^8.6.0",
|
|
45
43
|
"eslint": "^9.10.0",
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
type IAnalyzer,
|
|
10
10
|
type IssueLocation
|
|
11
11
|
} from '../types.js';
|
|
12
|
+
import { compileRulePattern } from './regex.js';
|
|
12
13
|
|
|
13
14
|
export class CodeAnalyzer implements IAnalyzer {
|
|
14
15
|
name = 'CodeAnalyzer';
|
|
@@ -22,7 +23,7 @@ export class CodeAnalyzer implements IAnalyzer {
|
|
|
22
23
|
if (!rule.pattern) continue;
|
|
23
24
|
|
|
24
25
|
try {
|
|
25
|
-
const regex =
|
|
26
|
+
const regex = compileRulePattern(rule.pattern, 'gm');
|
|
26
27
|
let match: RegExpExecArray | null;
|
|
27
28
|
|
|
28
29
|
while ((match = regex.exec(content)) !== null) {
|
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
type IssueLocation
|
|
11
11
|
} from '../types.js';
|
|
12
12
|
import { DANGEROUS_URL_PATTERNS } from '../constants.js';
|
|
13
|
+
import { compileRulePattern } from './regex.js';
|
|
13
14
|
|
|
14
15
|
export class ExfiltrationDetector implements IAnalyzer {
|
|
15
16
|
name = 'ExfiltrationDetector';
|
|
@@ -24,7 +25,7 @@ export class ExfiltrationDetector implements IAnalyzer {
|
|
|
24
25
|
if (!rule.pattern) continue;
|
|
25
26
|
|
|
26
27
|
try {
|
|
27
|
-
const regex =
|
|
28
|
+
const regex = compileRulePattern(rule.pattern, 'gi');
|
|
28
29
|
let match: RegExpExecArray | null;
|
|
29
30
|
|
|
30
31
|
while ((match = regex.exec(content)) !== null) {
|
package/src/analyzers/index.ts
CHANGED
|
@@ -16,6 +16,7 @@ import { CodeAnalyzer } from './code-analyzer.js';
|
|
|
16
16
|
import { InjectionDetector } from './injection-detector.js';
|
|
17
17
|
import { ExfiltrationDetector } from './exfiltration-detector.js';
|
|
18
18
|
import { McpServerAnalyzer } from './mcp-server-analyzer.js';
|
|
19
|
+
import { CanaryDetector } from '../canary.js';
|
|
19
20
|
import type { IAnalyzer } from '../types.js';
|
|
20
21
|
|
|
21
22
|
/**
|
|
@@ -28,7 +29,8 @@ export function getAnalyzers(): IAnalyzer[] {
|
|
|
28
29
|
new CodeAnalyzer(),
|
|
29
30
|
new InjectionDetector(),
|
|
30
31
|
new ExfiltrationDetector(),
|
|
31
|
-
new McpServerAnalyzer()
|
|
32
|
+
new McpServerAnalyzer(),
|
|
33
|
+
new CanaryDetector()
|
|
32
34
|
];
|
|
33
35
|
}
|
|
34
36
|
|
|
@@ -57,7 +59,7 @@ export class AnalyzerEngine {
|
|
|
57
59
|
// Sort by severity (critical first)
|
|
58
60
|
const severityOrder = { critical: 0, high: 1, medium: 2, low: 3, info: 4 };
|
|
59
61
|
allIssues.sort((a, b) =>
|
|
60
|
-
(severityOrder[a.severity]
|
|
62
|
+
(severityOrder[a.severity] ?? 4) - (severityOrder[b.severity] ?? 4)
|
|
61
63
|
);
|
|
62
64
|
|
|
63
65
|
return allIssues;
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
type IAnalyzer,
|
|
10
10
|
type IssueLocation
|
|
11
11
|
} from '../types.js';
|
|
12
|
+
import { compileRulePattern } from './regex.js';
|
|
12
13
|
|
|
13
14
|
export class InjectionDetector implements IAnalyzer {
|
|
14
15
|
name = 'InjectionDetector';
|
|
@@ -25,7 +26,7 @@ export class InjectionDetector implements IAnalyzer {
|
|
|
25
26
|
if (!rule.pattern) continue;
|
|
26
27
|
|
|
27
28
|
try {
|
|
28
|
-
const regex =
|
|
29
|
+
const regex = compileRulePattern(rule.pattern, 'gi');
|
|
29
30
|
let match: RegExpExecArray | null;
|
|
30
31
|
|
|
31
32
|
while ((match = regex.exec(normalizedContent)) !== null) {
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
type IAnalyzer,
|
|
10
10
|
type IssueLocation
|
|
11
11
|
} from '../types.js';
|
|
12
|
+
import { compileRulePattern } from './regex.js';
|
|
12
13
|
|
|
13
14
|
export class PIIDetector implements IAnalyzer {
|
|
14
15
|
name = 'PIIDetector';
|
|
@@ -22,7 +23,7 @@ export class PIIDetector implements IAnalyzer {
|
|
|
22
23
|
if (!rule.pattern) continue;
|
|
23
24
|
|
|
24
25
|
try {
|
|
25
|
-
const regex =
|
|
26
|
+
const regex = compileRulePattern(rule.pattern, 'g');
|
|
26
27
|
let match: RegExpExecArray | null;
|
|
27
28
|
|
|
28
29
|
while ((match = regex.exec(content)) !== null) {
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mund - The Guardian Protocol
|
|
3
|
+
* Rule pattern compilation
|
|
4
|
+
*
|
|
5
|
+
* Rule patterns are often written in PCRE/RE2 style with a leading inline
|
|
6
|
+
* flag group like `(?i)`. JavaScript's RegExp rejects that syntax, so
|
|
7
|
+
* translate leading inline flags into RegExp flags instead.
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
const INLINE_FLAGS = /^\(\?([imsu]+)\)/;
|
|
11
|
+
|
|
12
|
+
export function compileRulePattern(pattern: string, flags = ''): RegExp {
|
|
13
|
+
const m = INLINE_FLAGS.exec(pattern);
|
|
14
|
+
if (!m) return new RegExp(pattern, flags);
|
|
15
|
+
const merged = new Set([...flags, ...m[1]]);
|
|
16
|
+
return new RegExp(pattern.slice(m[0].length), [...merged].join(''));
|
|
17
|
+
}
|
|
@@ -9,6 +9,7 @@ import {
|
|
|
9
9
|
type IAnalyzer,
|
|
10
10
|
type IssueLocation
|
|
11
11
|
} from '../types.js';
|
|
12
|
+
import { compileRulePattern } from './regex.js';
|
|
12
13
|
|
|
13
14
|
export class SecretScanner implements IAnalyzer {
|
|
14
15
|
name = 'SecretScanner';
|
|
@@ -22,7 +23,7 @@ export class SecretScanner implements IAnalyzer {
|
|
|
22
23
|
if (!rule.pattern) continue;
|
|
23
24
|
|
|
24
25
|
try {
|
|
25
|
-
const regex =
|
|
26
|
+
const regex = compileRulePattern(rule.pattern, 'g');
|
|
26
27
|
let match: RegExpExecArray | null;
|
|
27
28
|
|
|
28
29
|
while ((match = regex.exec(content)) !== null) {
|
package/src/canary.ts
ADDED
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mund - The Guardian Protocol
|
|
3
|
+
* Canary Tokens - detect system prompt leakage (OWASP LLM07)
|
|
4
|
+
*
|
|
5
|
+
* Generate a unique marker, place it in your system prompt (or any
|
|
6
|
+
* confidential context), and Mund flags any scanned output that
|
|
7
|
+
* contains it. A model that has been talked into revealing its
|
|
8
|
+
* instructions reveals the canary with them.
|
|
9
|
+
*
|
|
10
|
+
* Matching tolerates the cheap evasions a leaking model or an attacker
|
|
11
|
+
* might apply: case changes, inserted whitespace / zero-width
|
|
12
|
+
* characters / punctuation, base64 encoding, and reversal.
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import { randomBytes } from 'crypto';
|
|
16
|
+
import { readFileSync } from 'fs';
|
|
17
|
+
import type { DetectionRule, IAnalyzer, SecurityIssue } from './types.js';
|
|
18
|
+
|
|
19
|
+
export interface Canary {
|
|
20
|
+
token: string;
|
|
21
|
+
label: string;
|
|
22
|
+
createdAt: string;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
export type CanaryMatchKind = 'exact' | 'obfuscated' | 'base64' | 'reversed';
|
|
26
|
+
|
|
27
|
+
const TOKEN_PREFIX = 'MUND-CANARY-';
|
|
28
|
+
const MIN_TOKEN_LENGTH = 12;
|
|
29
|
+
const ZERO_WIDTH = /[-]/g;
|
|
30
|
+
|
|
31
|
+
/** Lowercase and keep only letters and digits. */
|
|
32
|
+
function squash(text: string): string {
|
|
33
|
+
return text.replace(ZERO_WIDTH, '').toLowerCase().replace(/[^a-z0-9]/g, '');
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
export class CanaryRegistry {
|
|
37
|
+
private canaries = new Map<string, Canary>();
|
|
38
|
+
|
|
39
|
+
/** Create a new random canary token. */
|
|
40
|
+
create(label = 'system-prompt'): Canary {
|
|
41
|
+
const canary: Canary = {
|
|
42
|
+
token: TOKEN_PREFIX + randomBytes(8).toString('hex').toUpperCase(),
|
|
43
|
+
label,
|
|
44
|
+
createdAt: new Date().toISOString(),
|
|
45
|
+
};
|
|
46
|
+
this.canaries.set(canary.token, canary);
|
|
47
|
+
return canary;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
/** Register an existing token (e.g. one already deployed in a prompt). */
|
|
51
|
+
register(token: string, label = 'system-prompt'): Canary {
|
|
52
|
+
if (squash(token).length < MIN_TOKEN_LENGTH) {
|
|
53
|
+
throw new Error(`Canary token must contain at least ${MIN_TOKEN_LENGTH} letters/digits to avoid false positives`);
|
|
54
|
+
}
|
|
55
|
+
const canary: Canary = { token, label, createdAt: new Date().toISOString() };
|
|
56
|
+
this.canaries.set(token, canary);
|
|
57
|
+
return canary;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
remove(token: string): boolean {
|
|
61
|
+
return this.canaries.delete(token);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
list(): Canary[] {
|
|
65
|
+
return [...this.canaries.values()];
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
get size(): number {
|
|
69
|
+
return this.canaries.size;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
/** Find every registered canary that appears in the content. */
|
|
73
|
+
find(content: string): Array<{ canary: Canary; kind: CanaryMatchKind; index: number }> {
|
|
74
|
+
const hits: Array<{ canary: Canary; kind: CanaryMatchKind; index: number }> = [];
|
|
75
|
+
if (this.canaries.size === 0 || !content) return hits;
|
|
76
|
+
|
|
77
|
+
const lower = content.toLowerCase();
|
|
78
|
+
const squashed = squash(content);
|
|
79
|
+
const decoded = decodeBase64Runs(content).map(squash);
|
|
80
|
+
|
|
81
|
+
for (const canary of this.canaries.values()) {
|
|
82
|
+
const needle = squash(canary.token);
|
|
83
|
+
const exactAt = lower.indexOf(canary.token.toLowerCase());
|
|
84
|
+
|
|
85
|
+
if (exactAt !== -1) {
|
|
86
|
+
hits.push({ canary, kind: 'exact', index: exactAt });
|
|
87
|
+
} else if (squashed.includes(needle)) {
|
|
88
|
+
hits.push({ canary, kind: 'obfuscated', index: -1 });
|
|
89
|
+
} else if (decoded.some(d => d.includes(needle))) {
|
|
90
|
+
hits.push({ canary, kind: 'base64', index: -1 });
|
|
91
|
+
} else if (squashed.includes([...needle].reverse().join(''))) {
|
|
92
|
+
hits.push({ canary, kind: 'reversed', index: -1 });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
return hits;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
/** Decode every plausible base64 run in the text (best effort). */
|
|
100
|
+
function decodeBase64Runs(content: string): string[] {
|
|
101
|
+
const runs = content.match(/[A-Za-z0-9+/]{16,}={0,2}/g) ?? [];
|
|
102
|
+
const out: string[] = [];
|
|
103
|
+
for (const run of runs) {
|
|
104
|
+
try {
|
|
105
|
+
const text = Buffer.from(run, 'base64').toString('utf8');
|
|
106
|
+
if (/^[\x20-\x7E\s]+$/.test(text)) out.push(text);
|
|
107
|
+
} catch {
|
|
108
|
+
// not base64
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
return out;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/** Shared registry used by the MCP tools and the default analyzer set. */
|
|
115
|
+
export const canaries = new CanaryRegistry();
|
|
116
|
+
|
|
117
|
+
/** Load canaries from MUND_CANARIES (comma-separated) or MUND_CANARY_FILE (one per line). */
|
|
118
|
+
export function loadCanariesFromEnv(registry: CanaryRegistry = canaries): number {
|
|
119
|
+
const tokens: string[] = [];
|
|
120
|
+
if (process.env.MUND_CANARIES) tokens.push(...process.env.MUND_CANARIES.split(','));
|
|
121
|
+
if (process.env.MUND_CANARY_FILE) {
|
|
122
|
+
try {
|
|
123
|
+
tokens.push(...readFileSync(process.env.MUND_CANARY_FILE, 'utf8').split('\n'));
|
|
124
|
+
} catch {
|
|
125
|
+
// missing file: nothing to load
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
let loaded = 0;
|
|
129
|
+
for (const t of tokens.map(t => t.trim()).filter(Boolean)) {
|
|
130
|
+
try {
|
|
131
|
+
registry.register(t, 'env');
|
|
132
|
+
loaded++;
|
|
133
|
+
} catch {
|
|
134
|
+
// too short; skip
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
return loaded;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
export class CanaryDetector implements IAnalyzer {
|
|
141
|
+
name = 'CanaryDetector';
|
|
142
|
+
type = 'exfiltration';
|
|
143
|
+
|
|
144
|
+
constructor(private registry: CanaryRegistry = canaries) {}
|
|
145
|
+
|
|
146
|
+
async analyze(content: string, _rules: DetectionRule[]): Promise<SecurityIssue[]> {
|
|
147
|
+
return this.registry.find(content).map(({ canary, kind, index }) => {
|
|
148
|
+
const before = index >= 0 ? content.slice(0, index).split('\n') : null;
|
|
149
|
+
return {
|
|
150
|
+
rule_id: 'canary_leak',
|
|
151
|
+
rule_name: `Canary token leaked (${kind})`,
|
|
152
|
+
type: 'exfiltration',
|
|
153
|
+
severity: 'critical',
|
|
154
|
+
action: 'block',
|
|
155
|
+
match: `${canary.token.slice(0, TOKEN_PREFIX.length + 4)}…`,
|
|
156
|
+
...(before
|
|
157
|
+
? { location: { start: index, end: index + canary.token.length, line: before.length, column: before[before.length - 1].length + 1 } }
|
|
158
|
+
: {}),
|
|
159
|
+
suggestion:
|
|
160
|
+
`Content contains the "${canary.label}" canary, so confidential instructions or context are leaking. ` +
|
|
161
|
+
'Block this output and review the prompt that produced it.',
|
|
162
|
+
};
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
}
|