@trailofbits/vsix-audit 0.1.0 → 0.1.3

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 (82) hide show
  1. package/README.md +23 -30
  2. package/dist/index.js +0 -0
  3. package/dist/scanner/checks/ioc.test.js +1 -0
  4. package/dist/scanner/checks/ioc.test.js.map +1 -1
  5. package/dist/scanner/checks/package.test.js +1 -0
  6. package/dist/scanner/checks/package.test.js.map +1 -1
  7. package/dist/scanner/checks/telemetry.d.ts +6 -0
  8. package/dist/scanner/checks/telemetry.d.ts.map +1 -0
  9. package/dist/scanner/checks/telemetry.js +487 -0
  10. package/dist/scanner/checks/telemetry.js.map +1 -0
  11. package/dist/scanner/checks/telemetry.test.d.ts +2 -0
  12. package/dist/scanner/checks/telemetry.test.d.ts.map +1 -0
  13. package/dist/scanner/checks/telemetry.test.js +583 -0
  14. package/dist/scanner/checks/telemetry.test.js.map +1 -0
  15. package/dist/scanner/index.d.ts +1 -1
  16. package/dist/scanner/index.d.ts.map +1 -1
  17. package/dist/scanner/index.js +14 -1
  18. package/dist/scanner/index.js.map +1 -1
  19. package/dist/scanner/loaders/zoo.d.ts.map +1 -1
  20. package/dist/scanner/loaders/zoo.js +35 -1
  21. package/dist/scanner/loaders/zoo.js.map +1 -1
  22. package/dist/scanner/types.d.ts +8 -0
  23. package/dist/scanner/types.d.ts.map +1 -1
  24. package/package.json +1 -1
  25. package/zoo/signatures/yara/README.md +7 -4
  26. package/zoo/telemetry/known-services.txt +27 -0
  27. package/dist/scanner/checks/behavioral.d.ts +0 -3
  28. package/dist/scanner/checks/behavioral.d.ts.map +0 -1
  29. package/dist/scanner/checks/behavioral.js +0 -367
  30. package/dist/scanner/checks/behavioral.js.map +0 -1
  31. package/dist/scanner/checks/blocklist.d.ts +0 -3
  32. package/dist/scanner/checks/blocklist.d.ts.map +0 -1
  33. package/dist/scanner/checks/blocklist.js +0 -32
  34. package/dist/scanner/checks/blocklist.js.map +0 -1
  35. package/dist/scanner/checks/blocklist.test.d.ts +0 -2
  36. package/dist/scanner/checks/blocklist.test.d.ts.map +0 -1
  37. package/dist/scanner/checks/blocklist.test.js +0 -74
  38. package/dist/scanner/checks/blocklist.test.js.map +0 -1
  39. package/dist/scanner/checks/chains.d.ts +0 -35
  40. package/dist/scanner/checks/chains.d.ts.map +0 -1
  41. package/dist/scanner/checks/chains.js +0 -505
  42. package/dist/scanner/checks/chains.js.map +0 -1
  43. package/dist/scanner/checks/chains.test.d.ts +0 -2
  44. package/dist/scanner/checks/chains.test.d.ts.map +0 -1
  45. package/dist/scanner/checks/chains.test.js +0 -250
  46. package/dist/scanner/checks/chains.test.js.map +0 -1
  47. package/dist/scanner/checks/dataflow.d.ts +0 -3
  48. package/dist/scanner/checks/dataflow.d.ts.map +0 -1
  49. package/dist/scanner/checks/dataflow.js +0 -316
  50. package/dist/scanner/checks/dataflow.js.map +0 -1
  51. package/dist/scanner/checks/dependencies.d.ts +0 -13
  52. package/dist/scanner/checks/dependencies.d.ts.map +0 -1
  53. package/dist/scanner/checks/dependencies.js +0 -225
  54. package/dist/scanner/checks/dependencies.js.map +0 -1
  55. package/dist/scanner/checks/dependencies.test.d.ts +0 -2
  56. package/dist/scanner/checks/dependencies.test.d.ts.map +0 -1
  57. package/dist/scanner/checks/dependencies.test.js +0 -248
  58. package/dist/scanner/checks/dependencies.test.js.map +0 -1
  59. package/dist/scanner/checks/manifest.d.ts +0 -6
  60. package/dist/scanner/checks/manifest.d.ts.map +0 -1
  61. package/dist/scanner/checks/manifest.js +0 -123
  62. package/dist/scanner/checks/manifest.js.map +0 -1
  63. package/dist/scanner/checks/manifest.test.d.ts +0 -2
  64. package/dist/scanner/checks/manifest.test.d.ts.map +0 -1
  65. package/dist/scanner/checks/manifest.test.js +0 -108
  66. package/dist/scanner/checks/manifest.test.js.map +0 -1
  67. package/dist/scanner/checks/patterns.d.ts +0 -5
  68. package/dist/scanner/checks/patterns.d.ts.map +0 -1
  69. package/dist/scanner/checks/patterns.js +0 -251
  70. package/dist/scanner/checks/patterns.js.map +0 -1
  71. package/dist/scanner/checks/patterns.test.d.ts +0 -2
  72. package/dist/scanner/checks/patterns.test.d.ts.map +0 -1
  73. package/dist/scanner/checks/patterns.test.js +0 -147
  74. package/dist/scanner/checks/patterns.test.js.map +0 -1
  75. package/dist/scanner/checks/unicode.d.ts +0 -3
  76. package/dist/scanner/checks/unicode.d.ts.map +0 -1
  77. package/dist/scanner/checks/unicode.js +0 -247
  78. package/dist/scanner/checks/unicode.js.map +0 -1
  79. package/dist/scanner/checks/unicode.test.d.ts +0 -2
  80. package/dist/scanner/checks/unicode.test.d.ts.map +0 -1
  81. package/dist/scanner/checks/unicode.test.js +0 -202
  82. package/dist/scanner/checks/unicode.test.js.map +0 -1
@@ -3,11 +3,12 @@ import { checkAST } from "./checks/ast.js";
3
3
  import { checkIocs } from "./checks/ioc.js";
4
4
  import { checkObfuscation } from "./checks/obfuscation.js";
5
5
  import { checkPackage } from "./checks/package.js";
6
+ import { checkTelemetry } from "./checks/telemetry.js";
6
7
  import { checkYara, DEFAULT_YARA_RULES_DIR, isYaraAvailable, listYaraRules, } from "./checks/yara.js";
7
8
  import { isScannable, SCANNABLE_EXTENSIONS_PATTERN, SCANNABLE_EXTENSIONS_UNICODE, } from "./constants.js";
8
9
  import { loadZooData } from "./loaders/zoo.js";
9
10
  import { loadExtension } from "./vsix.js";
10
- export const MODULE_NAMES = ["package", "obfuscation", "ast", "ioc", "yara"];
11
+ export const MODULE_NAMES = ["package", "obfuscation", "ast", "ioc", "yara", "telemetry"];
11
12
  export { findVsixFiles, scanDirectory } from "./batch.js";
12
13
  const SEVERITY_ORDER = {
13
14
  low: 0,
@@ -144,6 +145,18 @@ export async function scanExtension(target, options) {
144
145
  });
145
146
  }
146
147
  }
148
+ // Telemetry check
149
+ if (shouldRunModule("telemetry", options)) {
150
+ const moduleStart = performance.now();
151
+ findings.push(...checkTelemetry(contents, zooData));
152
+ timings.telemetry = performance.now() - moduleStart;
153
+ inventory.push({
154
+ name: "Telemetry",
155
+ enabled: true,
156
+ description: "Analytics and data collection detection",
157
+ filesExamined: codeFileCount,
158
+ });
159
+ }
147
160
  findings = deduplicateFindings(findings);
148
161
  findings = filterBySeverity(findings, options.severity);
149
162
  findings = sortFindings(findings);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/scanner/index.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"zoo.d.ts","sourceRoot":"","sources":["../../../src/scanner/loaders/zoo.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAkB,OAAO,EAAE,MAAM,aAAa,CAAC;AAkG3D,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CAwCpD"}
1
+ {"version":3,"file":"zoo.d.ts","sourceRoot":"","sources":["../../../src/scanner/loaders/zoo.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAA2D,OAAO,EAAE,MAAM,aAAa,CAAC;AAuIpG,wBAAsB,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC,CA2CpD"}
@@ -82,13 +82,45 @@ function parseWalletFile(content) {
82
82
  }
83
83
  return result;
84
84
  }
85
+ /**
86
+ * Parse telemetry services file format: SERVICE_NAME CATEGORY DOMAIN1,DOMAIN2,...
87
+ * Returns a map from domain to service info for fast lookup.
88
+ */
89
+ function parseTelemetryServices(content) {
90
+ const result = new Map();
91
+ const validCategories = new Set(["analytics", "crash-reporting", "apm"]);
92
+ for (const line of content.split("\n")) {
93
+ const trimmed = line.trim();
94
+ if (!trimmed || trimmed.startsWith("#"))
95
+ continue;
96
+ // Format: SERVICE_NAME CATEGORY DOMAIN1,DOMAIN2,...
97
+ // Use regex to split on 2+ whitespace to handle multi-word service names
98
+ const parts = trimmed.split(/\s{2,}/);
99
+ if (parts.length < 3)
100
+ continue;
101
+ const name = parts[0];
102
+ const category = parts[1];
103
+ const domainsStr = parts[2];
104
+ if (!name || !validCategories.has(category) || !domainsStr)
105
+ continue;
106
+ const domains = domainsStr.split(",").map((d) => d.trim().toLowerCase());
107
+ const serviceInfo = { name, category, domains };
108
+ // Map each domain to this service for fast lookup
109
+ for (const domain of domains) {
110
+ if (domain) {
111
+ result.set(domain, serviceInfo);
112
+ }
113
+ }
114
+ }
115
+ return result;
116
+ }
85
117
  let cachedZooData;
86
118
  export async function loadZooData() {
87
119
  if (cachedZooData) {
88
120
  return cachedZooData;
89
121
  }
90
122
  const zooRoot = await findZooRoot();
91
- const [blocklistContent, hashesContent, domainsContent, ipsContent, npmContent, walletsContent, blockchainContent,] = await Promise.all([
123
+ const [blocklistContent, hashesContent, domainsContent, ipsContent, npmContent, walletsContent, blockchainContent, telemetryContent,] = await Promise.all([
92
124
  readFile(join(zooRoot, "blocklist", "extensions.json"), "utf8"),
93
125
  readFile(join(zooRoot, "iocs", "hashes.txt"), "utf8"),
94
126
  readFile(join(zooRoot, "iocs", "c2-domains.txt"), "utf8"),
@@ -96,6 +128,7 @@ export async function loadZooData() {
96
128
  readFile(join(zooRoot, "iocs", "malicious-npm.txt"), "utf8"),
97
129
  readFile(join(zooRoot, "iocs", "wallets.txt"), "utf8"),
98
130
  readFile(join(zooRoot, "iocs", "blockchain-extensions.txt"), "utf8"),
131
+ readFile(join(zooRoot, "telemetry", "known-services.txt"), "utf8").catch(() => ""),
99
132
  ]);
100
133
  const blocklistFile = JSON.parse(blocklistContent);
101
134
  cachedZooData = {
@@ -106,6 +139,7 @@ export async function loadZooData() {
106
139
  maliciousNpmPackages: parseIOCFile(npmContent, (pkg) => pkg.toLowerCase()),
107
140
  wallets: parseWalletFile(walletsContent),
108
141
  blockchainAllowlist: parseIOCFile(blockchainContent, (extId) => extId),
142
+ telemetryServices: parseTelemetryServices(telemetryContent),
109
143
  };
110
144
  return cachedZooData;
111
145
  }
@@ -1 +1 @@
1
- {"version":3,"file":"zoo.js","sourceRoot":"","sources":["../../../src/scanner/loaders/zoo.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"zoo.js","sourceRoot":"","sources":["../../../src/scanner/loaders/zoo.ts"],"names":[],"mappings":"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"}
@@ -7,6 +7,7 @@ export interface ModuleTimings {
7
7
  ast?: number;
8
8
  ioc?: number;
9
9
  yara?: number;
10
+ telemetry?: number;
10
11
  total: number;
11
12
  }
12
13
  export interface ScanOptions {
@@ -91,6 +92,12 @@ export interface BlocklistEntry {
91
92
  addedDate?: string;
92
93
  reference?: string;
93
94
  }
95
+ export type TelemetryCategory = "analytics" | "crash-reporting" | "apm";
96
+ export interface TelemetryServiceInfo {
97
+ name: string;
98
+ category: TelemetryCategory;
99
+ domains: string[];
100
+ }
94
101
  export interface ZooData {
95
102
  blocklist: BlocklistEntry[];
96
103
  hashes: Set<string>;
@@ -99,6 +106,7 @@ export interface ZooData {
99
106
  maliciousNpmPackages: Set<string>;
100
107
  wallets: Set<string>;
101
108
  blockchainAllowlist: Set<string>;
109
+ telemetryServices: Map<string, TelemetryServiceInfo>;
102
110
  }
103
111
  export interface BatchScanResult {
104
112
  results: ScanResult[];
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scanner/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/scanner/types.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trailofbits/vsix-audit",
3
- "version": "0.1.0",
3
+ "version": "0.1.3",
4
4
  "description": "Security scanner for VS Code extensions",
5
5
  "keywords": [
6
6
  "audit",
@@ -38,9 +38,12 @@ Example: `tigerjack_keylogger.yar`
38
38
  ## Usage
39
39
 
40
40
  ```bash
41
- # Scan with YARA
42
- yara -r zoo/signatures/yara/ path/to/extension/
41
+ # Scan with YARA-X
42
+ yr scan -r zoo/signatures/yara/unicode_stealth.yar path/to/extension/
43
43
 
44
- # With vsix-audit (planned)
45
- vsix-audit scan extension.vsix --yara zoo/signatures/yara/
44
+ # Or scan all rules in directory
45
+ for f in zoo/signatures/yara/*.yar; do yr scan -r "$f" path/to/extension/; done
46
+
47
+ # With vsix-audit (automatic)
48
+ vsix-audit scan extension.vsix # YARA rules loaded automatically
46
49
  ```
@@ -0,0 +1,27 @@
1
+ # Known telemetry services for VS Code extension analysis
2
+ # Format: SERVICE_NAME CATEGORY DOMAIN1,DOMAIN2,...
3
+ # Categories: analytics, crash-reporting, apm
4
+
5
+ # Analytics
6
+ Google Analytics analytics analytics.google.com,google-analytics.com,www.google-analytics.com
7
+ Mixpanel analytics api.mixpanel.com,mixpanel.com
8
+ Segment analytics api.segment.io,cdn.segment.io,segment.io
9
+ Amplitude analytics api.amplitude.com,amplitude.com,api2.amplitude.com
10
+ PostHog analytics app.posthog.com,us.posthog.com,eu.posthog.com,posthog.com
11
+ Heap analytics heapanalytics.com,cdn.heapanalytics.com
12
+ Plausible analytics plausible.io
13
+ Matomo analytics matomo.cloud
14
+
15
+ # Crash Reporting
16
+ Sentry crash-reporting sentry.io,ingest.sentry.io,o0.ingest.sentry.io
17
+ Bugsnag crash-reporting notify.bugsnag.com,bugsnag.com,sessions.bugsnag.com
18
+ Rollbar crash-reporting api.rollbar.com,rollbar.com
19
+ Raygun crash-reporting api.raygun.io,raygun.io
20
+
21
+ # APM (Application Performance Monitoring)
22
+ Azure App Insights apm applicationinsights.azure.com,dc.services.visualstudio.com,centralus-0.in.applicationinsights.azure.com
23
+ Datadog apm datadoghq.com,browser-intake-datadoghq.com,logs.datadoghq.com
24
+ New Relic apm collector.newrelic.com,newrelic.com,bam.nr-data.net
25
+
26
+ # VS Code Specific
27
+ VS Code Telemetry analytics vortex.data.microsoft.com
@@ -1,3 +0,0 @@
1
- import type { Finding, VsixContents } from "../types.js";
2
- export declare function checkBehavioral(contents: VsixContents): Finding[];
3
- //# sourceMappingURL=behavioral.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"behavioral.d.ts","sourceRoot":"","sources":["../../../src/scanner/checks/behavioral.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAY,YAAY,EAAE,MAAM,aAAa,CAAC;AA6XnE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,YAAY,GAAG,OAAO,EAAE,CAkDjE"}
@@ -1,367 +0,0 @@
1
- import { isScannable, SCANNABLE_EXTENSIONS_PATTERN } from "../constants.js";
2
- import { findLineNumberByIndex } from "../utils.js";
3
- const SIGNATURES = [
4
- {
5
- id: "BEHAVIOR_CREDENTIAL_EXFIL",
6
- title: "Credential exfiltration pattern",
7
- description: "Code reads sensitive files, encodes the content, and sends it to an external server. This is the classic credential theft attack chain.",
8
- severity: "critical",
9
- stages: [
10
- {
11
- action: "file_read",
12
- patterns: [
13
- /readFile(?:Sync)?\s*\(/gi,
14
- /fs\.promises\.readFile/gi,
15
- /createReadStream\s*\(/gi,
16
- ],
17
- description: "File read operation",
18
- },
19
- {
20
- action: "encode",
21
- patterns: [
22
- /Buffer\.from\s*\([^)]+\)\.toString\s*\(\s*['"]base64/gi,
23
- /btoa\s*\(/gi,
24
- /\.toString\s*\(\s*['"](?:base64|hex)['"]\s*\)/gi,
25
- /JSON\.stringify\s*\(/gi,
26
- ],
27
- description: "Data encoding for transmission",
28
- },
29
- {
30
- action: "network",
31
- patterns: [
32
- /fetch\s*\(/gi,
33
- /axios\./gi,
34
- /https?\.request/gi,
35
- /\.post\s*\(/gi,
36
- /\.send\s*\(/gi,
37
- ],
38
- description: "Network transmission",
39
- },
40
- ],
41
- redFlags: [
42
- "Reads from home directory or .ssh",
43
- "Encodes before sending",
44
- "Sends to external domain",
45
- ],
46
- },
47
- {
48
- id: "BEHAVIOR_REVERSE_SHELL",
49
- title: "Reverse shell pattern",
50
- description: "Code establishes network connection and pipes input to command execution. This creates a remote shell for attackers.",
51
- severity: "critical",
52
- stages: [
53
- {
54
- action: "network",
55
- patterns: [
56
- /net\.Socket/gi,
57
- /net\.connect/gi,
58
- /net\.createConnection/gi,
59
- /new\s+WebSocket/gi,
60
- ],
61
- description: "Network connection",
62
- },
63
- {
64
- action: "exec",
65
- patterns: [/child_process/gi, /\.spawn\s*\(/gi, /\.exec\s*\(/gi, /process\.stdin/gi],
66
- description: "Command execution",
67
- },
68
- ],
69
- maxSpan: 1500,
70
- redFlags: ["Socket piped to shell", "Remote command execution"],
71
- },
72
- {
73
- id: "BEHAVIOR_SUPPLY_CHAIN_ATTACK",
74
- title: "Install script attack pattern",
75
- description: "Package lifecycle script accesses environment, executes commands, and phones home. This is a supply chain attack pattern.",
76
- severity: "high", // Downgraded - common in legitimate build tools
77
- stages: [
78
- {
79
- action: "env_access",
80
- patterns: [
81
- /os\.homedir\s*\(\)/gi,
82
- /os\.userInfo\s*\(\)/gi,
83
- /process\.env\.(?:HOME|USERPROFILE|APPDATA)/gi,
84
- ],
85
- description: "Home directory access",
86
- },
87
- {
88
- action: "exec",
89
- patterns: [/child_process\.exec\s*\(/gi, /execSync\s*\(/gi, /spawnSync\s*\(/gi],
90
- description: "Command execution",
91
- },
92
- {
93
- action: "network",
94
- patterns: [/fetch\s*\(/gi, /axios\s*\./gi, /curl\s+/gi, /wget\s+/gi],
95
- description: "Network activity",
96
- },
97
- ],
98
- minStages: 3, // Require all 3 stages to reduce false positives
99
- maxSpan: 1000, // Tighter proximity requirement
100
- legitimateUses: ["Build scripts", "Development tools"],
101
- redFlags: ["Runs in postinstall", "Collects system info", "Sends to unknown domain"],
102
- },
103
- {
104
- id: "BEHAVIOR_DROPPER",
105
- title: "Malware dropper pattern",
106
- description: "Code downloads content from remote URL, writes it to file, and executes it. This is a dropper/downloader pattern.",
107
- severity: "critical",
108
- stages: [
109
- {
110
- action: "download",
111
- patterns: [
112
- /fetch\s*\([^)]*https?:\/\//gi,
113
- /axios\.get\s*\([^)]*https?:\/\//gi,
114
- /https?\.get\s*\(/gi,
115
- /request\s*\([^)]*https?:\/\//gi,
116
- ],
117
- description: "Remote content download",
118
- },
119
- {
120
- action: "file_read",
121
- patterns: [
122
- /writeFile(?:Sync)?\s*\(/gi,
123
- /createWriteStream\s*\(/gi,
124
- /fs\.promises\.writeFile/gi,
125
- ],
126
- description: "File write",
127
- },
128
- {
129
- action: "exec",
130
- patterns: [/child_process/gi, /\.exec\s*\(/gi, /\.spawn\s*\(/gi, /execSync/gi],
131
- description: "Execution",
132
- },
133
- ],
134
- maxSpan: 2000,
135
- redFlags: [
136
- "Downloads executable",
137
- "Writes to temp or hidden location",
138
- "Executes downloaded content",
139
- ],
140
- },
141
- {
142
- id: "BEHAVIOR_KEYLOGGER",
143
- title: "Keystroke capture pattern",
144
- description: "Code captures keyboard/input events and stores or transmits the data. This indicates keylogging behavior.",
145
- severity: "high",
146
- stages: [
147
- {
148
- action: "clipboard",
149
- patterns: [
150
- // onDidChangeTextDocument is legitimate for language servers - don't flag it
151
- // Instead, look for actual keystroke monitoring
152
- /keyboard.*event/gi,
153
- /keydown|keyup|keypress/gi,
154
- /clipboard\.readText/gi,
155
- /getSelection\s*\(\s*\)\.toString/gi,
156
- ],
157
- description: "Keystroke/clipboard capture",
158
- },
159
- {
160
- action: "persistence",
161
- patterns: [
162
- /globalState\.update/gi,
163
- /writeFileSync?\s*\([^)]*keystroke/gi,
164
- /localStorage\.setItem/gi,
165
- ],
166
- description: "Data storage",
167
- },
168
- {
169
- action: "network",
170
- patterns: [/discord\.com\/api\/webhooks/gi, /discordapp\.com\/api\/webhooks/gi],
171
- description: "Data exfiltration to Discord",
172
- },
173
- ],
174
- minStages: 2,
175
- legitimateUses: ["Keyboard shortcut extensions"],
176
- redFlags: ["Captures all keystrokes", "Sends to Discord webhook", "No user consent mechanism"],
177
- },
178
- {
179
- id: "BEHAVIOR_CRYPTO_STEALER",
180
- title: "Cryptocurrency stealer pattern",
181
- description: "Code scans for wallet files, extracts keys/seeds, and exfiltrates them.",
182
- severity: "critical",
183
- stages: [
184
- {
185
- action: "file_read",
186
- patterns: [
187
- /\.ethereum/gi,
188
- /\.bitcoin/gi,
189
- /wallet\.dat/gi,
190
- /keystore/gi,
191
- /seed.*phrase/gi,
192
- /mnemonic/gi,
193
- ],
194
- description: "Wallet file access",
195
- },
196
- {
197
- action: "encode",
198
- patterns: [
199
- /btoa\s*\(/gi, // More specific - require function call
200
- /Buffer\.from\s*\([^)]*\)\.toString\s*\(\s*['"]base64/gi,
201
- /toString\s*\(\s*['"](?:base64|hex)['"]\s*\)/gi,
202
- ],
203
- description: "Data encoding for exfil",
204
- },
205
- {
206
- action: "network",
207
- patterns: [/discord.*webhook/gi, /\.post\s*\([^)]*wallet/gi],
208
- description: "Exfiltration",
209
- },
210
- ],
211
- // Require all 3 stages - wallet access is the key indicator
212
- minStages: 3,
213
- maxSpan: 1500,
214
- redFlags: [
215
- "Scans for multiple wallet types",
216
- "Extracts private keys",
217
- "Sends to Discord/external",
218
- ],
219
- },
220
- {
221
- id: "BEHAVIOR_PERSISTENCE",
222
- title: "Persistence mechanism pattern",
223
- description: "Code modifies startup files, schedules tasks, or installs itself for persistence.",
224
- severity: "high",
225
- stages: [
226
- {
227
- action: "file_read",
228
- patterns: [
229
- /\.bashrc/gi,
230
- /\.zshrc/gi,
231
- /\.profile/gi,
232
- /crontab/gi,
233
- /startup/gi,
234
- /autostart/gi,
235
- ],
236
- description: "Startup file access",
237
- },
238
- {
239
- action: "persistence",
240
- patterns: [/writeFile/gi, /appendFile/gi, /fs\.promises\.writeFile/gi],
241
- description: "File modification",
242
- },
243
- ],
244
- legitimateUses: ["Shell configuration tools", "Development environment setup"],
245
- redFlags: ["Writes to startup files", "Adds hidden entries", "No user interaction"],
246
- },
247
- {
248
- id: "BEHAVIOR_SELF_PROPAGATION",
249
- title: "Self-propagation pattern",
250
- description: "Code accesses package publishing credentials and attempts to publish itself. This is worm-like behavior.",
251
- severity: "critical",
252
- stages: [
253
- {
254
- action: "file_read",
255
- patterns: [/\.npmrc/gi, /NPM_TOKEN/gi, /OPENVSX_TOKEN/gi, /npm\s+config/gi],
256
- description: "Publishing credential access",
257
- },
258
- {
259
- action: "exec",
260
- patterns: [/npm\s+publish/gi, /vsce\s+publish/gi, /ovsx\s+publish/gi, /yarn\s+publish/gi],
261
- description: "Package publishing",
262
- },
263
- ],
264
- redFlags: ["Accesses publish tokens", "Runs publish commands", "GlassWorm-style worm"],
265
- },
266
- ];
267
- /**
268
- * Find all matches for patterns in content
269
- */
270
- function findPatternMatches(content, patterns) {
271
- const matches = [];
272
- for (const pattern of patterns) {
273
- const regex = new RegExp(pattern.source, pattern.flags);
274
- let match;
275
- while ((match = regex.exec(content)) !== null) {
276
- matches.push({
277
- index: match.index,
278
- matched: match[0].slice(0, 60),
279
- });
280
- }
281
- }
282
- return matches;
283
- }
284
- /**
285
- * Check if a signature matches in the content
286
- */
287
- function checkSignature(content, signature) {
288
- const stageMatches = [];
289
- const minStages = signature.minStages ?? signature.stages.length;
290
- const maxSpan = signature.maxSpan ?? 3000;
291
- // Find matches for each stage
292
- for (const stage of signature.stages) {
293
- const matches = findPatternMatches(content, stage.patterns);
294
- if (matches.length > 0) {
295
- const firstMatch = matches[0];
296
- if (firstMatch) {
297
- stageMatches.push({
298
- stage,
299
- index: firstMatch.index,
300
- matched: firstMatch.matched,
301
- });
302
- }
303
- }
304
- }
305
- // Check if enough stages matched
306
- if (stageMatches.length < minStages) {
307
- return null;
308
- }
309
- // Check if stages are within maxSpan
310
- if (stageMatches.length > 1) {
311
- const indices = stageMatches.map((m) => m.index);
312
- const span = Math.max(...indices) - Math.min(...indices);
313
- if (span > maxSpan) {
314
- return null;
315
- }
316
- }
317
- return stageMatches;
318
- }
319
- export function checkBehavioral(contents) {
320
- const findings = [];
321
- const seenFindings = new Set();
322
- for (const [filename, buffer] of contents.files) {
323
- if (!isScannable(filename, SCANNABLE_EXTENSIONS_PATTERN))
324
- continue;
325
- const content = buffer.toString("utf8");
326
- for (const signature of SIGNATURES) {
327
- const stageMatches = checkSignature(content, signature);
328
- if (!stageMatches)
329
- continue;
330
- // Deduplicate
331
- const key = `${signature.id}:${filename}`;
332
- if (seenFindings.has(key))
333
- continue;
334
- seenFindings.add(key);
335
- const firstMatch = stageMatches[0];
336
- if (!firstMatch)
337
- continue;
338
- findings.push({
339
- id: signature.id,
340
- title: signature.title,
341
- description: signature.description,
342
- severity: signature.severity,
343
- category: "behavioral",
344
- location: {
345
- file: filename,
346
- line: findLineNumberByIndex(content, firstMatch.index),
347
- },
348
- metadata: {
349
- stagesMatched: stageMatches.length,
350
- totalStages: signature.stages.length,
351
- stages: stageMatches.map((m) => ({
352
- action: m.stage.action,
353
- description: m.stage.description,
354
- matched: m.matched,
355
- line: findLineNumberByIndex(content, m.index),
356
- })),
357
- ...(signature.legitimateUses && {
358
- legitimateUses: signature.legitimateUses,
359
- }),
360
- ...(signature.redFlags && { redFlags: signature.redFlags }),
361
- },
362
- });
363
- }
364
- }
365
- return findings;
366
- }
367
- //# sourceMappingURL=behavioral.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"behavioral.js","sourceRoot":"","sources":["../../../src/scanner/checks/behavioral.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import type { BlocklistEntry, Finding, VsixManifest } from "../types.js";
2
- export declare function checkBlocklist(manifest: VsixManifest, blocklist: BlocklistEntry[]): Finding[];
3
- //# sourceMappingURL=blocklist.d.ts.map