supply-chain-guard 5.22.0 → 5.23.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.
- package/README.md +1 -1
- package/dist/cli.js +1 -1
- package/dist/config-scanner.d.ts.map +1 -1
- package/dist/config-scanner.js +15 -24
- package/dist/config-scanner.js.map +1 -1
- package/dist/dockerfile-scanner.d.ts.map +1 -1
- package/dist/dockerfile-scanner.js +10 -20
- package/dist/dockerfile-scanner.js.map +1 -1
- package/dist/npm-scanner.d.ts.map +1 -1
- package/dist/npm-scanner.js +10 -20
- package/dist/npm-scanner.js.map +1 -1
- package/dist/patterns.d.ts +54 -0
- package/dist/patterns.d.ts.map +1 -1
- package/dist/patterns.js +163 -3
- package/dist/patterns.js.map +1 -1
- package/dist/pypi-scanner.d.ts.map +1 -1
- package/dist/pypi-scanner.js +38 -66
- package/dist/pypi-scanner.js.map +1 -1
- package/dist/reporter.js +5 -5
- package/dist/scanner.d.ts.map +1 -1
- package/dist/scanner.js +53 -98
- package/dist/scanner.js.map +1 -1
- package/dist/types.d.ts +17 -0
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js.map +1 -1
- package/dist/vscode-scanner.d.ts.map +1 -1
- package/dist/vscode-scanner.js +24 -51
- package/dist/vscode-scanner.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
package/dist/cli.js
CHANGED
|
@@ -22,7 +22,7 @@ const program = new commander_1.Command();
|
|
|
22
22
|
program
|
|
23
23
|
.name("supply-chain-guard")
|
|
24
24
|
.description("Open-source supply-chain security scanner. Detects GlassWorm and similar malware campaigns in npm packages, PyPI packages, code repos, VS Code extensions, and project dependencies.")
|
|
25
|
-
.version("5.
|
|
25
|
+
.version("5.23.0");
|
|
26
26
|
// ── scan command ────────────────────────────────────────────────────
|
|
27
27
|
program
|
|
28
28
|
.command("scan")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-scanner.d.ts","sourceRoot":"","sources":["../src/config-scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAOxD,eAAO,MAAM,eAAe,EAAE,YAAY,EA4DzC,CAAC;AAYF;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config-scanner.d.ts","sourceRoot":"","sources":["../src/config-scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAOxD,eAAO,MAAM,eAAe,EAAE,YAAY,EA4DzC,CAAC;AAYF;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,EAAE,CAwBX;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAsBtD"}
|
package/dist/config-scanner.js
CHANGED
|
@@ -120,33 +120,24 @@ function isConfigFile(filename) {
|
|
|
120
120
|
*/
|
|
121
121
|
function scanConfigFile(content, relativePath) {
|
|
122
122
|
const findings = [];
|
|
123
|
-
const lines = content.split("\n");
|
|
124
123
|
for (const pattern of exports.CONFIG_PATTERNS) {
|
|
125
124
|
if (!(0, patterns_js_1.isPatternApplicableToFile)(pattern, content))
|
|
126
125
|
continue;
|
|
127
|
-
const
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
file: relativePath,
|
|
143
|
-
line: i + 1,
|
|
144
|
-
match: match[0].length > 120
|
|
145
|
-
? match[0].substring(0, 120) + "..."
|
|
146
|
-
: match[0],
|
|
147
|
-
recommendation: getConfigRecommendation(pattern.rule),
|
|
148
|
-
});
|
|
149
|
-
}
|
|
126
|
+
for (const hit of (0, patterns_js_1.matchPatternInContent)(pattern, content, "i", {
|
|
127
|
+
skipLine: (line) => {
|
|
128
|
+
const t = line.trimStart();
|
|
129
|
+
return t.startsWith("#") || t.startsWith(";");
|
|
130
|
+
},
|
|
131
|
+
})) {
|
|
132
|
+
findings.push({
|
|
133
|
+
rule: pattern.rule,
|
|
134
|
+
description: pattern.description,
|
|
135
|
+
severity: pattern.severity,
|
|
136
|
+
file: relativePath,
|
|
137
|
+
line: hit.line,
|
|
138
|
+
match: (0, patterns_js_1.truncateMatch)(hit.text),
|
|
139
|
+
recommendation: getConfigRecommendation(pattern.rule),
|
|
140
|
+
});
|
|
150
141
|
}
|
|
151
142
|
}
|
|
152
143
|
return findings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config-scanner.js","sourceRoot":"","sources":["../src/config-scanner.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,MAAY,EAAE,oCAAgB;AAC9B,MAAY,IAAI,sCAAkB;AAElC,+
|
|
1
|
+
{"version":3,"file":"config-scanner.js","sourceRoot":"","sources":["../src/config-scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dockerfile-scanner.d.ts","sourceRoot":"","sources":["../src/dockerfile-scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAmCxD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAgB9D;AAMD,eAAO,MAAM,mBAAmB,EAAE,YAAY,EAuF7C,CAAC;AAWF;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"dockerfile-scanner.d.ts","sourceRoot":"","sources":["../src/dockerfile-scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAmCxD;;;;;;;;GAQG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAgB9D;AAMD,eAAO,MAAM,mBAAmB,EAAE,YAAY,EAuF7C,CAAC;AAWF;;GAEG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,cAAc,CAC5B,OAAO,EAAE,MAAM,EACf,YAAY,EAAE,MAAM,GACnB,OAAO,EAAE,CAmBX;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,CAwBtD"}
|
|
@@ -195,29 +195,19 @@ function isDockerFile(filename) {
|
|
|
195
195
|
*/
|
|
196
196
|
function scanDockerFile(content, relativePath) {
|
|
197
197
|
const findings = [];
|
|
198
|
-
const lines = content.split("\n");
|
|
199
198
|
for (const pattern of exports.DOCKERFILE_PATTERNS) {
|
|
200
199
|
if (!(0, patterns_js_1.isPatternApplicableToFile)(pattern, content))
|
|
201
200
|
continue;
|
|
202
|
-
const
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
rule: pattern.rule,
|
|
213
|
-
description: pattern.description,
|
|
214
|
-
severity: pattern.severity,
|
|
215
|
-
file: relativePath,
|
|
216
|
-
line: i + 1,
|
|
217
|
-
match: match[0].length > 120 ? match[0].substring(0, 120) + "..." : match[0],
|
|
218
|
-
recommendation: getDockerRecommendation(pattern.rule),
|
|
219
|
-
});
|
|
220
|
-
}
|
|
201
|
+
for (const hit of (0, patterns_js_1.matchPatternInContent)(pattern, content, "i")) {
|
|
202
|
+
findings.push({
|
|
203
|
+
rule: pattern.rule,
|
|
204
|
+
description: pattern.description,
|
|
205
|
+
severity: pattern.severity,
|
|
206
|
+
file: relativePath,
|
|
207
|
+
line: hit.line,
|
|
208
|
+
match: (0, patterns_js_1.truncateMatch)(hit.text),
|
|
209
|
+
recommendation: getDockerRecommendation(pattern.rule),
|
|
210
|
+
});
|
|
221
211
|
}
|
|
222
212
|
}
|
|
223
213
|
return findings;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dockerfile-scanner.js","sourceRoot":"","sources":["../src/dockerfile-scanner.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,MAAY,EAAE,oCAAgB;AAC9B,MAAY,IAAI,sCAAkB;AAElC,+
|
|
1
|
+
{"version":3,"file":"dockerfile-scanner.js","sourceRoot":"","sources":["../src/dockerfile-scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-scanner.d.ts","sourceRoot":"","sources":["../src/npm-scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAkB,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"npm-scanner.d.ts","sourceRoot":"","sources":["../src/npm-scanner.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAMH,OAAO,KAAK,EAAE,OAAO,EAAkB,UAAU,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAmCnF;;GAEG;AACH,wBAAsB,cAAc,CAClC,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,GACzD,OAAO,CAAC,UAAU,CAAC,CA2ErB;AAoJD;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,UAAU,EAAE,OAAO,GAClB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAqB5D;AAmCD;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAsB,oBAAoB,CACxC,WAAW,EAAE,MAAM,EACnB,WAAW,EAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAE,EACrC,QAAQ,EAAE,OAAO,EAAE,GAClB,OAAO,CAAC,IAAI,CAAC,CAiEf;AAqED;;;GAGG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,OAAO,EAAE,GAClB,IAAI,CAoCN"}
|
package/dist/npm-scanner.js
CHANGED
|
@@ -479,26 +479,16 @@ function scanExtractedNpmFiles(extractDir, findings) {
|
|
|
479
479
|
for (const pattern of patterns_js_1.FILE_PATTERNS) {
|
|
480
480
|
if (!(0, patterns_js_1.isPatternApplicableToFile)(pattern, content))
|
|
481
481
|
continue;
|
|
482
|
-
const
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
|
|
492
|
-
rule: pattern.rule,
|
|
493
|
-
description: pattern.description,
|
|
494
|
-
severity: pattern.severity,
|
|
495
|
-
file: relativePath,
|
|
496
|
-
line: i + 1,
|
|
497
|
-
match: match[0].substring(0, 120),
|
|
498
|
-
recommendation: `Found in published npm tarball. ${pattern.description}`,
|
|
499
|
-
});
|
|
500
|
-
regex.lastIndex = 0;
|
|
501
|
-
}
|
|
482
|
+
for (const hit of (0, patterns_js_1.matchPatternInContent)(pattern, content, "g")) {
|
|
483
|
+
findings.push({
|
|
484
|
+
rule: pattern.rule,
|
|
485
|
+
description: pattern.description,
|
|
486
|
+
severity: pattern.severity,
|
|
487
|
+
file: relativePath,
|
|
488
|
+
line: hit.line,
|
|
489
|
+
match: (0, patterns_js_1.truncateMatch)(hit.text),
|
|
490
|
+
recommendation: `Found in published npm tarball. ${pattern.description}`,
|
|
491
|
+
});
|
|
502
492
|
}
|
|
503
493
|
}
|
|
504
494
|
}
|
package/dist/npm-scanner.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"npm-scanner.js","sourceRoot":"","sources":["../src/npm-scanner.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"npm-scanner.js","sourceRoot":"","sources":["../src/npm-scanner.ts"],"names":[],"mappings":"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"}
|
package/dist/patterns.d.ts
CHANGED
|
@@ -27,6 +27,60 @@ export declare function isPatternMatchAccepted(pattern: Pick<PatternEntry, "valu
|
|
|
27
27
|
* Call this once per file, before the per-line loop.
|
|
28
28
|
*/
|
|
29
29
|
export declare function isPatternApplicableToFile(pattern: Pick<PatternEntry, "requiresInFile">, content: string): boolean;
|
|
30
|
+
/**
|
|
31
|
+
* Hard cap on PatternEntry.spansLines. Larger windows approach whole-file
|
|
32
|
+
* matching and reintroduce the false-positive class that v5.22 removed.
|
|
33
|
+
* Validated at module load.
|
|
34
|
+
*/
|
|
35
|
+
export declare const MAX_SPANS_LINES = 20;
|
|
36
|
+
/**
|
|
37
|
+
* Character budget for one multi-line window. Caps ReDoS cost: a `.*`-heavy
|
|
38
|
+
* regex over an unbounded window against a multi-megabyte file is a hang, not
|
|
39
|
+
* a slow scan. Windows longer than this are truncated from the end (match
|
|
40
|
+
* start line stays correct).
|
|
41
|
+
*/
|
|
42
|
+
export declare const MAX_SPAN_WINDOW_CHARS = 4096;
|
|
43
|
+
/**
|
|
44
|
+
* Max regex attempts per pattern per file (across all windows). Bounds
|
|
45
|
+
* pathological inputs that would otherwise thrash the engine.
|
|
46
|
+
*/
|
|
47
|
+
export declare const MAX_MATCH_ATTEMPTS_PER_PATTERN = 500;
|
|
48
|
+
/** One accepted match of a pattern against file content. */
|
|
49
|
+
export interface PatternHit {
|
|
50
|
+
/** 1-based line number where the match STARTS. */
|
|
51
|
+
line: number;
|
|
52
|
+
/** Raw matched text (caller should pass through truncateMatch for reports). */
|
|
53
|
+
text: string;
|
|
54
|
+
/** Full regex match array (for valueFilter / capture groups). */
|
|
55
|
+
match: RegExpMatchArray;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Truncate a match string for display in SARIF, JSON and annotations.
|
|
59
|
+
* Multi-line hits are collapsed to a single readable line so a whole window
|
|
60
|
+
* cannot leak into a report.
|
|
61
|
+
*/
|
|
62
|
+
export declare function truncateMatch(match: string, maxLen?: number): string;
|
|
63
|
+
/**
|
|
64
|
+
* Match a single pattern against file content using a bounded sliding line
|
|
65
|
+
* window.
|
|
66
|
+
*
|
|
67
|
+
* - `spansLines` defaults to 1: identical to the historical per-line loop.
|
|
68
|
+
* - `spansLines` > 1: join that many consecutive lines, match with the `s`
|
|
69
|
+
* (dotAll) flag so `.*` can bridge ideas inside the window, slide by one
|
|
70
|
+
* line. Findings are deduplicated by start-line so overlapping windows do
|
|
71
|
+
* not emit the same hit twice.
|
|
72
|
+
*
|
|
73
|
+
* Always applies `isPatternMatchAccepted` (valueFilter). Callers still own
|
|
74
|
+
* `isPatternApplicableToFile` and path/extension filters - those are
|
|
75
|
+
* file-level and must run before this.
|
|
76
|
+
*
|
|
77
|
+
* @param flags Base regex flags. `g` is always enforced for lastIndex hygiene;
|
|
78
|
+
* `s` is added automatically when spansLines > 1.
|
|
79
|
+
*/
|
|
80
|
+
export declare function matchPatternInContent(pattern: Pick<PatternEntry, "pattern" | "spansLines" | "valueFilter" | "valueGroup">, content: string, flags?: string, options?: {
|
|
81
|
+
/** Skip a physical line before matching (e.g. config-file comments). */
|
|
82
|
+
skipLine?: (line: string, index: number) => boolean;
|
|
83
|
+
}): PatternHit[];
|
|
30
84
|
/**
|
|
31
85
|
* True when a quoted value assigned to a secret-looking key is a real embedded
|
|
32
86
|
* credential rather than a reference, a placeholder or a prefix constant.
|
package/dist/patterns.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAwBlE;;;;;;;GAOG;AACH,wBAAgB,sBAAsB,CACpC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,aAAa,GAAG,YAAY,CAAC,EACzD,KAAK,EAAE,gBAAgB,GACtB,OAAO,CAGT;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,IAAI,CAAC,YAAY,EAAE,gBAAgB,CAAC,EAC7C,OAAO,EAAE,MAAM,GACd,OAAO,CAGT;AAiCD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAS9D;AAMD,eAAO,MAAM,aAAa,EAAE,YAAY,EAoIvC,CAAC;AAMF,8CAA8C;AAC9C,eAAO,MAAM,gBAAgB,EAAE,KAAK,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd,CAeA,CAAC;AAMF,uDAAuD;AACvD,eAAO,MAAM,kBAAkB,EAAE,YAAY,EA0C5C,CAAC;AAMF,uEAAuE;AACvE,eAAO,MAAM,0BAA0B,EAAE,MAAM,EAyL9C,CAAC;AAMF,eAAO,MAAM,iBAAiB,EAAE,YAAY,EAkZ3C,CAAC;AAMF,+DAA+D;AAC/D,eAAO,MAAM,kBAAkB,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"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"}
|
package/dist/patterns.js
CHANGED
|
@@ -6,9 +6,11 @@
|
|
|
6
6
|
* Add new patterns, wallet addresses, or domain patterns as they are discovered.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.ALL_PATTERN_RULES = exports.PROVENANCE_PATTERNS = exports.OBFUSCATION_V3_PATTERNS = exports.SECRETS_PATTERNS = exports.C2_EXTENDED_PATTERNS = exports.PROMPT_INJECTION_PATTERNS = exports.LURE_PATTERNS = exports.INFOSTEALER_PATTERNS = exports.IAC_PATTERNS = exports.OBFUSCATION_PATTERNS_V2 = exports.CAMPAIGN_PATTERNS_V2 = exports.MONOREPO_PATTERNS = exports.BUILD_CONFIG_FILES = exports.BUILD_TOOL_PATTERNS = exports.MAX_FILE_SIZE = exports.SCANNABLE_EXTENSIONS = exports.BEACON_MINER_PATTERNS = exports.KNOWN_NATIVE_PACKAGES = exports.BINARY_DOWNLOAD_PATTERNS = exports.BINARY_EXTENSIONS = exports.PYPI_TYPOSQUAT_PATTERNS = exports.PYTHON_EXTENSIONS = exports.PYPI_INSTALL_HOOK_PATTERNS = exports.PYPI_SETUP_FILES = exports.PYPI_FILE_PATTERNS = exports.CAMPAIGN_PATTERNS = exports.MALICIOUS_PACKAGE_PATTERNS = exports.SUSPICIOUS_SCRIPTS = exports.SUSPICIOUS_FILES = exports.FILE_PATTERNS = void 0;
|
|
9
|
+
exports.ALL_PATTERN_RULES = exports.PROVENANCE_PATTERNS = exports.OBFUSCATION_V3_PATTERNS = exports.SECRETS_PATTERNS = exports.C2_EXTENDED_PATTERNS = exports.PROMPT_INJECTION_PATTERNS = exports.LURE_PATTERNS = exports.INFOSTEALER_PATTERNS = exports.IAC_PATTERNS = exports.OBFUSCATION_PATTERNS_V2 = exports.CAMPAIGN_PATTERNS_V2 = exports.MONOREPO_PATTERNS = exports.BUILD_CONFIG_FILES = exports.BUILD_TOOL_PATTERNS = exports.MAX_FILE_SIZE = exports.SCANNABLE_EXTENSIONS = exports.BEACON_MINER_PATTERNS = exports.KNOWN_NATIVE_PACKAGES = exports.BINARY_DOWNLOAD_PATTERNS = exports.BINARY_EXTENSIONS = exports.PYPI_TYPOSQUAT_PATTERNS = exports.PYTHON_EXTENSIONS = exports.PYPI_INSTALL_HOOK_PATTERNS = exports.PYPI_SETUP_FILES = exports.PYPI_FILE_PATTERNS = exports.CAMPAIGN_PATTERNS = exports.MALICIOUS_PACKAGE_PATTERNS = exports.SUSPICIOUS_SCRIPTS = exports.SUSPICIOUS_FILES = exports.FILE_PATTERNS = exports.MAX_MATCH_ATTEMPTS_PER_PATTERN = exports.MAX_SPAN_WINDOW_CHARS = exports.MAX_SPANS_LINES = void 0;
|
|
10
10
|
exports.isPatternMatchAccepted = isPatternMatchAccepted;
|
|
11
11
|
exports.isPatternApplicableToFile = isPatternApplicableToFile;
|
|
12
|
+
exports.truncateMatch = truncateMatch;
|
|
13
|
+
exports.matchPatternInContent = matchPatternInContent;
|
|
12
14
|
exports.isLikelyRealSecretValue = isLikelyRealSecretValue;
|
|
13
15
|
exports.makeOversizedSkipFinding = makeOversizedSkipFinding;
|
|
14
16
|
/** Matches the scanner's own source files — used to prevent self-scan false positives. */
|
|
@@ -57,6 +59,125 @@ function isPatternApplicableToFile(pattern, content) {
|
|
|
57
59
|
return true;
|
|
58
60
|
return pattern.requiresInFile.test(content);
|
|
59
61
|
}
|
|
62
|
+
// ---------------------------------------------------------------------------
|
|
63
|
+
// Bounded multi-line pattern engine (v5.23)
|
|
64
|
+
// ---------------------------------------------------------------------------
|
|
65
|
+
/**
|
|
66
|
+
* Hard cap on PatternEntry.spansLines. Larger windows approach whole-file
|
|
67
|
+
* matching and reintroduce the false-positive class that v5.22 removed.
|
|
68
|
+
* Validated at module load.
|
|
69
|
+
*/
|
|
70
|
+
exports.MAX_SPANS_LINES = 20;
|
|
71
|
+
/**
|
|
72
|
+
* Character budget for one multi-line window. Caps ReDoS cost: a `.*`-heavy
|
|
73
|
+
* regex over an unbounded window against a multi-megabyte file is a hang, not
|
|
74
|
+
* a slow scan. Windows longer than this are truncated from the end (match
|
|
75
|
+
* start line stays correct).
|
|
76
|
+
*/
|
|
77
|
+
exports.MAX_SPAN_WINDOW_CHARS = 4096;
|
|
78
|
+
/**
|
|
79
|
+
* Max regex attempts per pattern per file (across all windows). Bounds
|
|
80
|
+
* pathological inputs that would otherwise thrash the engine.
|
|
81
|
+
*/
|
|
82
|
+
exports.MAX_MATCH_ATTEMPTS_PER_PATTERN = 500;
|
|
83
|
+
/**
|
|
84
|
+
* Truncate a match string for display in SARIF, JSON and annotations.
|
|
85
|
+
* Multi-line hits are collapsed to a single readable line so a whole window
|
|
86
|
+
* cannot leak into a report.
|
|
87
|
+
*/
|
|
88
|
+
function truncateMatch(match, maxLen = 120) {
|
|
89
|
+
const collapsed = match.replace(/\s+/g, " ").trim();
|
|
90
|
+
if (collapsed.length <= maxLen)
|
|
91
|
+
return collapsed;
|
|
92
|
+
return collapsed.substring(0, maxLen) + "...";
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Match a single pattern against file content using a bounded sliding line
|
|
96
|
+
* window.
|
|
97
|
+
*
|
|
98
|
+
* - `spansLines` defaults to 1: identical to the historical per-line loop.
|
|
99
|
+
* - `spansLines` > 1: join that many consecutive lines, match with the `s`
|
|
100
|
+
* (dotAll) flag so `.*` can bridge ideas inside the window, slide by one
|
|
101
|
+
* line. Findings are deduplicated by start-line so overlapping windows do
|
|
102
|
+
* not emit the same hit twice.
|
|
103
|
+
*
|
|
104
|
+
* Always applies `isPatternMatchAccepted` (valueFilter). Callers still own
|
|
105
|
+
* `isPatternApplicableToFile` and path/extension filters - those are
|
|
106
|
+
* file-level and must run before this.
|
|
107
|
+
*
|
|
108
|
+
* @param flags Base regex flags. `g` is always enforced for lastIndex hygiene;
|
|
109
|
+
* `s` is added automatically when spansLines > 1.
|
|
110
|
+
*/
|
|
111
|
+
function matchPatternInContent(pattern, content, flags = "g", options) {
|
|
112
|
+
const rawSpans = pattern.spansLines ?? 1;
|
|
113
|
+
const spans = Math.max(1, Math.min(rawSpans, exports.MAX_SPANS_LINES));
|
|
114
|
+
const lines = content.split("\n");
|
|
115
|
+
const hits = [];
|
|
116
|
+
const seenStartLines = new Set();
|
|
117
|
+
let attempts = 0;
|
|
118
|
+
// Build flags: always global; add dotAll only inside multi-line windows.
|
|
119
|
+
let useFlags = flags.includes("g") ? flags : flags + "g";
|
|
120
|
+
if (spans > 1 && !useFlags.includes("s"))
|
|
121
|
+
useFlags += "s";
|
|
122
|
+
let regex;
|
|
123
|
+
try {
|
|
124
|
+
regex = new RegExp(pattern.pattern, useFlags);
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
// Load-time validation should have caught this; refuse quietly rather than
|
|
128
|
+
// throwing mid-scan and silencing later rules.
|
|
129
|
+
return hits;
|
|
130
|
+
}
|
|
131
|
+
if (spans === 1) {
|
|
132
|
+
for (let i = 0; i < lines.length; i++) {
|
|
133
|
+
const line = lines[i] ?? "";
|
|
134
|
+
if (options?.skipLine?.(line, i))
|
|
135
|
+
continue;
|
|
136
|
+
if (++attempts > exports.MAX_MATCH_ATTEMPTS_PER_PATTERN)
|
|
137
|
+
break;
|
|
138
|
+
regex.lastIndex = 0;
|
|
139
|
+
const match = regex.exec(line);
|
|
140
|
+
if (!match || match[0] === "")
|
|
141
|
+
continue;
|
|
142
|
+
if (!isPatternMatchAccepted(pattern, match))
|
|
143
|
+
continue;
|
|
144
|
+
const startLine = i + 1;
|
|
145
|
+
if (seenStartLines.has(startLine))
|
|
146
|
+
continue;
|
|
147
|
+
seenStartLines.add(startLine);
|
|
148
|
+
hits.push({ line: startLine, text: match[0], match });
|
|
149
|
+
}
|
|
150
|
+
return hits;
|
|
151
|
+
}
|
|
152
|
+
// Multi-line sliding window.
|
|
153
|
+
for (let i = 0; i < lines.length; i++) {
|
|
154
|
+
if (++attempts > exports.MAX_MATCH_ATTEMPTS_PER_PATTERN)
|
|
155
|
+
break;
|
|
156
|
+
const end = Math.min(i + spans, lines.length);
|
|
157
|
+
let window = lines.slice(i, end).join("\n");
|
|
158
|
+
if (window.length > exports.MAX_SPAN_WINDOW_CHARS) {
|
|
159
|
+
window = window.slice(0, exports.MAX_SPAN_WINDOW_CHARS);
|
|
160
|
+
}
|
|
161
|
+
regex.lastIndex = 0;
|
|
162
|
+
const match = regex.exec(window);
|
|
163
|
+
if (!match || match[0] === "")
|
|
164
|
+
continue;
|
|
165
|
+
// Map match.index inside the window back to a 1-based file line.
|
|
166
|
+
const offset = match.index ?? 0;
|
|
167
|
+
const linesBeforeInWindow = window.slice(0, offset).split("\n").length - 1;
|
|
168
|
+
const startLine = i + linesBeforeInWindow + 1;
|
|
169
|
+
const startLineIndex = startLine - 1;
|
|
170
|
+
if (options?.skipLine?.(lines[startLineIndex] ?? "", startLineIndex))
|
|
171
|
+
continue;
|
|
172
|
+
if (seenStartLines.has(startLine))
|
|
173
|
+
continue;
|
|
174
|
+
if (!isPatternMatchAccepted(pattern, match))
|
|
175
|
+
continue;
|
|
176
|
+
seenStartLines.add(startLine);
|
|
177
|
+
hits.push({ line: startLine, text: match[0], match });
|
|
178
|
+
}
|
|
179
|
+
return hits;
|
|
180
|
+
}
|
|
60
181
|
/**
|
|
61
182
|
* Values that are references to a secret rather than a secret: shell and
|
|
62
183
|
* make variables (`$FOO`, `${FOO}`), command substitution (`$(...)`, backticks),
|
|
@@ -958,13 +1079,16 @@ exports.PYPI_FILE_PATTERNS = [
|
|
|
958
1079
|
rule: "PYPI_EXEC_MARSHAL",
|
|
959
1080
|
notTestFile: true,
|
|
960
1081
|
},
|
|
961
|
-
// base64.b64decode combined with exec (
|
|
1082
|
+
// base64.b64decode combined with exec (same line or a short multi-line block)
|
|
962
1083
|
{
|
|
963
1084
|
name: "python-b64decode-exec-combined",
|
|
964
1085
|
pattern: "base64\\.b64decode\\s*\\([^)]*\\).*\\bexec\\b|\\bexec\\b.*base64\\.b64decode",
|
|
965
|
-
description: "base64.b64decode combined with exec
|
|
1086
|
+
description: "base64.b64decode combined with exec (obfuscated execution)",
|
|
966
1087
|
severity: "critical",
|
|
967
1088
|
rule: "PYPI_B64_EXEC_COMBINED",
|
|
1089
|
+
// decode then exec is almost always two statements. 4 lines is enough for
|
|
1090
|
+
// an assignment + blank line + exec without spanning half a module.
|
|
1091
|
+
spansLines: 4,
|
|
968
1092
|
notTestFile: true,
|
|
969
1093
|
},
|
|
970
1094
|
];
|
|
@@ -982,6 +1106,8 @@ exports.PYPI_INSTALL_HOOK_PATTERNS = [
|
|
|
982
1106
|
description: "Custom install command class detected (code runs during pip install)",
|
|
983
1107
|
severity: "medium",
|
|
984
1108
|
rule: "PYPI_CUSTOM_INSTALL",
|
|
1109
|
+
// cmdclass={ 'install': ... } is almost always pretty-printed.
|
|
1110
|
+
spansLines: 6,
|
|
985
1111
|
notTestFile: true,
|
|
986
1112
|
},
|
|
987
1113
|
{
|
|
@@ -990,6 +1116,7 @@ exports.PYPI_INSTALL_HOOK_PATTERNS = [
|
|
|
990
1116
|
description: "Custom develop command class detected (code runs during pip install -e)",
|
|
991
1117
|
severity: "medium",
|
|
992
1118
|
rule: "PYPI_CUSTOM_DEVELOP",
|
|
1119
|
+
spansLines: 6,
|
|
993
1120
|
notTestFile: true,
|
|
994
1121
|
},
|
|
995
1122
|
{
|
|
@@ -998,6 +1125,7 @@ exports.PYPI_INSTALL_HOOK_PATTERNS = [
|
|
|
998
1125
|
description: "Custom egg_info command class detected (code runs during package metadata generation)",
|
|
999
1126
|
severity: "medium",
|
|
1000
1127
|
rule: "PYPI_CUSTOM_EGG_INFO",
|
|
1128
|
+
spansLines: 6,
|
|
1001
1129
|
notTestFile: true,
|
|
1002
1130
|
},
|
|
1003
1131
|
{
|
|
@@ -1006,6 +1134,7 @@ exports.PYPI_INSTALL_HOOK_PATTERNS = [
|
|
|
1006
1134
|
description: "Custom sdist command class detected (code runs during source distribution build)",
|
|
1007
1135
|
severity: "low",
|
|
1008
1136
|
rule: "PYPI_CUSTOM_SDIST",
|
|
1137
|
+
spansLines: 6,
|
|
1009
1138
|
notTestFile: true,
|
|
1010
1139
|
},
|
|
1011
1140
|
{
|
|
@@ -1014,6 +1143,7 @@ exports.PYPI_INSTALL_HOOK_PATTERNS = [
|
|
|
1014
1143
|
description: "Custom build_ext command class detected (code runs during native extension build)",
|
|
1015
1144
|
severity: "low",
|
|
1016
1145
|
rule: "PYPI_CUSTOM_BUILD_EXT",
|
|
1146
|
+
spansLines: 6,
|
|
1017
1147
|
notTestFile: true,
|
|
1018
1148
|
},
|
|
1019
1149
|
];
|
|
@@ -1394,6 +1524,8 @@ exports.CAMPAIGN_PATTERNS_V2 = [
|
|
|
1394
1524
|
description: "IP geolocation combined with destructive file operations. Advanced protestware pattern.",
|
|
1395
1525
|
severity: "critical",
|
|
1396
1526
|
rule: "PROTESTWARE_IP_GEO_V2",
|
|
1527
|
+
// Geo lookup then destructive call is often two statements in a branch.
|
|
1528
|
+
spansLines: 8,
|
|
1397
1529
|
notTestFile: true,
|
|
1398
1530
|
notFilePattern: SCANNER_SRC_OR_DOCS,
|
|
1399
1531
|
},
|
|
@@ -1416,6 +1548,10 @@ exports.OBFUSCATION_PATTERNS_V2 = [
|
|
|
1416
1548
|
description: "Proxy handler trap detected. Proxy objects can intercept and modify all object operations.",
|
|
1417
1549
|
severity: "high",
|
|
1418
1550
|
rule: "PROXY_HANDLER_TRAP",
|
|
1551
|
+
// new Proxy(target, { get: ... }) is routinely pretty-printed across 2-4
|
|
1552
|
+
// lines. spansLines:5 covers that formatting without pairing a Proxy on
|
|
1553
|
+
// line 1 with an unrelated handler 50 lines later.
|
|
1554
|
+
spansLines: 5,
|
|
1419
1555
|
// new Proxy({}, { get, set }) is a plain ES6 idiom used by prisma, vitest,
|
|
1420
1556
|
// jiti and playwright-core. It is only interesting when the trap body does
|
|
1421
1557
|
// something hostile, so require an exfil / eval / credential-harvest signal.
|
|
@@ -1593,6 +1729,10 @@ exports.INFOSTEALER_PATTERNS = [
|
|
|
1593
1729
|
description: "Dropper pattern: writing and executing files in temporary directories.",
|
|
1594
1730
|
severity: "critical",
|
|
1595
1731
|
rule: "DROPPER_TEMP_EXEC",
|
|
1732
|
+
// writeFileSync(tmpdir) then execSync a few lines later is the real shape;
|
|
1733
|
+
// a one-line form is rare. 6 lines covers the common dropper layout without
|
|
1734
|
+
// pairing an early tmpdir reference with a distant spawn.
|
|
1735
|
+
spansLines: 6,
|
|
1596
1736
|
// Writing into os.tmpdir() and running it is exactly how tsx, jiti, prisma and
|
|
1597
1737
|
// playwright cache-compile. A dropper is distinguished by the payload being
|
|
1598
1738
|
// FETCHED or DECODED first rather than generated from local source.
|
|
@@ -1961,6 +2101,26 @@ for (const [setName, set] of ALL_PATTERN_SETS) {
|
|
|
1961
2101
|
if (entry.pattern.length === 0) {
|
|
1962
2102
|
throw new Error(`${setName}: pattern for rule "${entry.rule}" is empty, which matches every line.`);
|
|
1963
2103
|
}
|
|
2104
|
+
// Multi-line form is a second compiled shape (dotAll). Validate it too so a
|
|
2105
|
+
// flag-sensitive construct cannot pass single-line compile and fail only in
|
|
2106
|
+
// the multi-line engine path.
|
|
2107
|
+
const spans = entry.spansLines ?? 1;
|
|
2108
|
+
if (typeof spans !== "number" || !Number.isInteger(spans) || spans < 1) {
|
|
2109
|
+
throw new Error(`${setName}: rule "${entry.rule}" has invalid spansLines=${String(spans)} (need integer >= 1).`);
|
|
2110
|
+
}
|
|
2111
|
+
if (spans > exports.MAX_SPANS_LINES) {
|
|
2112
|
+
throw new Error(`${setName}: rule "${entry.rule}" spansLines=${spans} exceeds MAX_SPANS_LINES=${exports.MAX_SPANS_LINES}. ` +
|
|
2113
|
+
"Large windows approach whole-file matching and reintroduce cross-file-region false positives.");
|
|
2114
|
+
}
|
|
2115
|
+
if (spans > 1) {
|
|
2116
|
+
try {
|
|
2117
|
+
new RegExp(entry.pattern, "gs");
|
|
2118
|
+
}
|
|
2119
|
+
catch (err) {
|
|
2120
|
+
throw new Error(`${setName}: multi-line form of rule "${entry.rule}" failed to compile with the s flag: ` +
|
|
2121
|
+
`${err instanceof Error ? err.message : String(err)}.`);
|
|
2122
|
+
}
|
|
2123
|
+
}
|
|
1964
2124
|
}
|
|
1965
2125
|
}
|
|
1966
2126
|
//# sourceMappingURL=patterns.js.map
|