@datahogo/core 0.1.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/LICENSE +661 -0
- package/README.md +17 -0
- package/dist/engines/config.d.ts +3 -0
- package/dist/engines/config.d.ts.map +1 -0
- package/dist/engines/config.js +433 -0
- package/dist/engines/config.js.map +1 -0
- package/dist/engines/dast.d.ts +3 -0
- package/dist/engines/dast.d.ts.map +1 -0
- package/dist/engines/dast.js +167 -0
- package/dist/engines/dast.js.map +1 -0
- package/dist/engines/db-rules.d.ts +3 -0
- package/dist/engines/db-rules.d.ts.map +1 -0
- package/dist/engines/db-rules.js +166 -0
- package/dist/engines/db-rules.js.map +1 -0
- package/dist/engines/dependencies.d.ts +3 -0
- package/dist/engines/dependencies.d.ts.map +1 -0
- package/dist/engines/dependencies.js +167 -0
- package/dist/engines/dependencies.js.map +1 -0
- package/dist/engines/github-actions.d.ts +3 -0
- package/dist/engines/github-actions.d.ts.map +1 -0
- package/dist/engines/github-actions.js +215 -0
- package/dist/engines/github-actions.js.map +1 -0
- package/dist/engines/gitleaks.d.ts +3 -0
- package/dist/engines/gitleaks.d.ts.map +1 -0
- package/dist/engines/gitleaks.js +107 -0
- package/dist/engines/gitleaks.js.map +1 -0
- package/dist/engines/npm-audit.d.ts +3 -0
- package/dist/engines/npm-audit.d.ts.map +1 -0
- package/dist/engines/npm-audit.js +113 -0
- package/dist/engines/npm-audit.js.map +1 -0
- package/dist/engines/patterns.d.ts +3 -0
- package/dist/engines/patterns.d.ts.map +1 -0
- package/dist/engines/patterns.js +1330 -0
- package/dist/engines/patterns.js.map +1 -0
- package/dist/engines/secrets.d.ts +4 -0
- package/dist/engines/secrets.d.ts.map +1 -0
- package/dist/engines/secrets.js +260 -0
- package/dist/engines/secrets.js.map +1 -0
- package/dist/engines/semgrep.d.ts +3 -0
- package/dist/engines/semgrep.d.ts.map +1 -0
- package/dist/engines/semgrep.js +173 -0
- package/dist/engines/semgrep.js.map +1 -0
- package/dist/engines/types.d.ts +30 -0
- package/dist/engines/types.d.ts.map +1 -0
- package/dist/engines/types.js +3 -0
- package/dist/engines/types.js.map +1 -0
- package/dist/engines/url-scanner.d.ts +3 -0
- package/dist/engines/url-scanner.d.ts.map +1 -0
- package/dist/engines/url-scanner.js +469 -0
- package/dist/engines/url-scanner.js.map +1 -0
- package/dist/index.d.ts +8 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +8 -0
- package/dist/index.js.map +1 -0
- package/dist/orchestrator.d.ts +32 -0
- package/dist/orchestrator.d.ts.map +1 -0
- package/dist/orchestrator.js +237 -0
- package/dist/orchestrator.js.map +1 -0
- package/dist/rules/.gitkeep +0 -0
- package/dist/rules/ai-llm-security.yaml +199 -0
- package/dist/rules/api-security.yaml +489 -0
- package/dist/rules/auth-patterns.yaml +406 -0
- package/dist/rules/crypto-patterns.yaml +227 -0
- package/dist/rules/database-cloud-security.yaml +169 -0
- package/dist/rules/general-security.yaml +588 -0
- package/dist/rules/injection-patterns.yaml +318 -0
- package/dist/rules/nextjs-security.yaml +532 -0
- package/dist/rules/node-security.yaml +380 -0
- package/dist/rules/rules/.gitkeep +0 -0
- package/dist/rules/rules/ai-llm-security.yaml +199 -0
- package/dist/rules/rules/api-security.yaml +489 -0
- package/dist/rules/rules/auth-patterns.yaml +406 -0
- package/dist/rules/rules/crypto-patterns.yaml +227 -0
- package/dist/rules/rules/database-cloud-security.yaml +169 -0
- package/dist/rules/rules/general-security.yaml +588 -0
- package/dist/rules/rules/injection-patterns.yaml +318 -0
- package/dist/rules/rules/nextjs-security.yaml +532 -0
- package/dist/rules/rules/node-security.yaml +380 -0
- package/dist/rules/rules/supabase-security.yaml +387 -0
- package/dist/rules/supabase-security.yaml +387 -0
- package/dist/scanning/agents/csharp-agent.d.ts +12 -0
- package/dist/scanning/agents/csharp-agent.d.ts.map +1 -0
- package/dist/scanning/agents/csharp-agent.js +592 -0
- package/dist/scanning/agents/csharp-agent.js.map +1 -0
- package/dist/scanning/agents/go-agent.d.ts +14 -0
- package/dist/scanning/agents/go-agent.d.ts.map +1 -0
- package/dist/scanning/agents/go-agent.js +641 -0
- package/dist/scanning/agents/go-agent.js.map +1 -0
- package/dist/scanning/agents/java-agent.d.ts +8 -0
- package/dist/scanning/agents/java-agent.d.ts.map +1 -0
- package/dist/scanning/agents/java-agent.js +807 -0
- package/dist/scanning/agents/java-agent.js.map +1 -0
- package/dist/scanning/agents/javascript-agent.d.ts +8 -0
- package/dist/scanning/agents/javascript-agent.d.ts.map +1 -0
- package/dist/scanning/agents/javascript-agent.js +77 -0
- package/dist/scanning/agents/javascript-agent.js.map +1 -0
- package/dist/scanning/agents/mobile-agent.d.ts +8 -0
- package/dist/scanning/agents/mobile-agent.d.ts.map +1 -0
- package/dist/scanning/agents/mobile-agent.js +916 -0
- package/dist/scanning/agents/mobile-agent.js.map +1 -0
- package/dist/scanning/agents/php-agent.d.ts +8 -0
- package/dist/scanning/agents/php-agent.d.ts.map +1 -0
- package/dist/scanning/agents/php-agent.js +679 -0
- package/dist/scanning/agents/php-agent.js.map +1 -0
- package/dist/scanning/agents/python-agent.d.ts +8 -0
- package/dist/scanning/agents/python-agent.d.ts.map +1 -0
- package/dist/scanning/agents/python-agent.js +701 -0
- package/dist/scanning/agents/python-agent.js.map +1 -0
- package/dist/scanning/agents/supabase-agent.d.ts +8 -0
- package/dist/scanning/agents/supabase-agent.d.ts.map +1 -0
- package/dist/scanning/agents/supabase-agent.js +484 -0
- package/dist/scanning/agents/supabase-agent.js.map +1 -0
- package/dist/scanning/orchestrator.d.ts +29 -0
- package/dist/scanning/orchestrator.d.ts.map +1 -0
- package/dist/scanning/orchestrator.js +186 -0
- package/dist/scanning/orchestrator.js.map +1 -0
- package/dist/scanning/tech-detector.d.ts +12 -0
- package/dist/scanning/tech-detector.d.ts.map +1 -0
- package/dist/scanning/tech-detector.js +252 -0
- package/dist/scanning/tech-detector.js.map +1 -0
- package/dist/scanning/types.d.ts +87 -0
- package/dist/scanning/types.d.ts.map +1 -0
- package/dist/scanning/types.js +5 -0
- package/dist/scanning/types.js.map +1 -0
- package/dist/utils/child-process.d.ts +2 -0
- package/dist/utils/child-process.d.ts.map +1 -0
- package/dist/utils/child-process.js +4 -0
- package/dist/utils/child-process.js.map +1 -0
- package/dist/utils/context-classifier.d.ts +11 -0
- package/dist/utils/context-classifier.d.ts.map +1 -0
- package/dist/utils/context-classifier.js +79 -0
- package/dist/utils/context-classifier.js.map +1 -0
- package/dist/utils/exec.d.ts +18 -0
- package/dist/utils/exec.d.ts.map +1 -0
- package/dist/utils/exec.js +51 -0
- package/dist/utils/exec.js.map +1 -0
- package/dist/utils/file-filter.d.ts +4 -0
- package/dist/utils/file-filter.d.ts.map +1 -0
- package/dist/utils/file-filter.js +68 -0
- package/dist/utils/file-filter.js.map +1 -0
- package/dist/utils/fs.d.ts +2 -0
- package/dist/utils/fs.d.ts.map +1 -0
- package/dist/utils/fs.js +5 -0
- package/dist/utils/fs.js.map +1 -0
- package/dist/utils/logger.d.ts +12 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +27 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/post-processor.d.ts +10 -0
- package/dist/utils/post-processor.d.ts.map +1 -0
- package/dist/utils/post-processor.js +183 -0
- package/dist/utils/post-processor.js.map +1 -0
- package/package.json +44 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patterns.js","sourceRoot":"","sources":["../../src/engines/patterns.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.d.ts","sourceRoot":"","sources":["../../src/engines/secrets.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AA2M9C,wBAAgB,aAAa,CAC3B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,WAAW,EAAE,CAuEf;AAUD,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GACzB,WAAW,EAAE,CAOf"}
|
|
@@ -0,0 +1,260 @@
|
|
|
1
|
+
// Secrets detection engine - detects hardcoded API keys, tokens, and credentials
|
|
2
|
+
// Uses regex patterns (Gitleaks integration would be added in production)
|
|
3
|
+
const SECRET_PATTERNS = [
|
|
4
|
+
// Supabase — format-specific, high confidence
|
|
5
|
+
{
|
|
6
|
+
id: 34,
|
|
7
|
+
name: "Supabase Service Role Key Exposed",
|
|
8
|
+
severity: "critical",
|
|
9
|
+
pattern: /(?:service_role|SERVICE_ROLE|serviceRole)[\s]*[=:]\s*["']?eyJ[A-Za-z0-9_-]+\.eyJ[A-Za-z0-9_-]+/g,
|
|
10
|
+
category: "supabase",
|
|
11
|
+
owasp: "A07:2021",
|
|
12
|
+
confidence: "high",
|
|
13
|
+
},
|
|
14
|
+
// Generic API key — requires assignment context
|
|
15
|
+
{
|
|
16
|
+
id: 53,
|
|
17
|
+
name: "API Key Hardcoded",
|
|
18
|
+
severity: "critical",
|
|
19
|
+
pattern: /(?:api[_-]?key|apikey|api_secret|secret_key)[\s]*[=:]\s*["'][a-zA-Z0-9_\-]{20,}["']/gi,
|
|
20
|
+
category: "vibecoding",
|
|
21
|
+
owasp: "A07:2021",
|
|
22
|
+
confidence: "medium",
|
|
23
|
+
},
|
|
24
|
+
// OpenAI — format-specific prefix
|
|
25
|
+
{
|
|
26
|
+
id: 53,
|
|
27
|
+
name: "OpenAI API Key Hardcoded",
|
|
28
|
+
severity: "critical",
|
|
29
|
+
pattern: /sk-(?:proj-)?[a-zA-Z0-9]{20,}/g,
|
|
30
|
+
category: "vibecoding",
|
|
31
|
+
owasp: "A07:2021",
|
|
32
|
+
confidence: "high",
|
|
33
|
+
},
|
|
34
|
+
// AWS — format-specific prefix
|
|
35
|
+
{
|
|
36
|
+
id: 53,
|
|
37
|
+
name: "AWS Access Key Hardcoded",
|
|
38
|
+
severity: "critical",
|
|
39
|
+
pattern: /AKIA[0-9A-Z]{16}/g,
|
|
40
|
+
category: "vibecoding",
|
|
41
|
+
owasp: "A07:2021",
|
|
42
|
+
confidence: "high",
|
|
43
|
+
},
|
|
44
|
+
// GitHub — format-specific prefix
|
|
45
|
+
{
|
|
46
|
+
id: 53,
|
|
47
|
+
name: "GitHub Token Hardcoded",
|
|
48
|
+
severity: "critical",
|
|
49
|
+
pattern: /(?:ghp|ghs|gho|ghu|github_pat)_[A-Za-z0-9_]{36,}/g,
|
|
50
|
+
category: "vibecoding",
|
|
51
|
+
owasp: "A07:2021",
|
|
52
|
+
confidence: "high",
|
|
53
|
+
},
|
|
54
|
+
// Stripe — format-specific prefix
|
|
55
|
+
{
|
|
56
|
+
id: 53,
|
|
57
|
+
name: "Stripe Secret Key Hardcoded",
|
|
58
|
+
severity: "critical",
|
|
59
|
+
pattern: /sk_(?:live|test)_[a-zA-Z0-9]{24,}/g,
|
|
60
|
+
category: "vibecoding",
|
|
61
|
+
owasp: "A07:2021",
|
|
62
|
+
confidence: "high",
|
|
63
|
+
},
|
|
64
|
+
// Anthropic — format-specific prefix
|
|
65
|
+
{
|
|
66
|
+
id: 53,
|
|
67
|
+
name: "Anthropic API Key Hardcoded",
|
|
68
|
+
severity: "critical",
|
|
69
|
+
pattern: /sk-ant-[a-zA-Z0-9_-]{20,}/g,
|
|
70
|
+
category: "vibecoding",
|
|
71
|
+
owasp: "A07:2021",
|
|
72
|
+
confidence: "high",
|
|
73
|
+
},
|
|
74
|
+
// Generic passwords — broad match, medium confidence
|
|
75
|
+
{
|
|
76
|
+
id: 55,
|
|
77
|
+
name: "Password in Plaintext",
|
|
78
|
+
severity: "critical",
|
|
79
|
+
pattern: /(?:password|passwd|pwd)[\s]*[=:]\s*["'][^"']{8,}["']/gi,
|
|
80
|
+
category: "vibecoding",
|
|
81
|
+
owasp: "A07:2021",
|
|
82
|
+
confidence: "medium",
|
|
83
|
+
},
|
|
84
|
+
// Database connection strings — format-specific
|
|
85
|
+
{
|
|
86
|
+
id: 101,
|
|
87
|
+
name: "Database Connection String Exposed",
|
|
88
|
+
severity: "critical",
|
|
89
|
+
pattern: /(?:postgres|mysql|mongodb|redis):\/\/[^"\s]+:[^"\s]+@(?!localhost|127\.0\.0\.1)[^"\s]+/g,
|
|
90
|
+
category: "database",
|
|
91
|
+
owasp: "A07:2021",
|
|
92
|
+
confidence: "high",
|
|
93
|
+
},
|
|
94
|
+
// Private keys — format-specific
|
|
95
|
+
{
|
|
96
|
+
id: 53,
|
|
97
|
+
name: "Private Key in Source Code",
|
|
98
|
+
severity: "critical",
|
|
99
|
+
pattern: /-----BEGIN (?:RSA |EC |DSA )?PRIVATE KEY-----/g,
|
|
100
|
+
category: "vibecoding",
|
|
101
|
+
owasp: "A07:2021",
|
|
102
|
+
confidence: "high",
|
|
103
|
+
},
|
|
104
|
+
// .env file committed
|
|
105
|
+
{
|
|
106
|
+
id: 62,
|
|
107
|
+
name: "Secrets in Committed .env File",
|
|
108
|
+
severity: "critical",
|
|
109
|
+
pattern: /(?:API_KEY|SECRET|PASSWORD|TOKEN|PRIVATE_KEY)[\s]*=[\s]*[^\s]{10,}/g,
|
|
110
|
+
category: "vibecoding",
|
|
111
|
+
owasp: "A07:2021",
|
|
112
|
+
confidence: "medium",
|
|
113
|
+
},
|
|
114
|
+
// Firebase — public keys are expected, lower severity
|
|
115
|
+
{
|
|
116
|
+
id: 43,
|
|
117
|
+
name: "Firebase Config in Code",
|
|
118
|
+
severity: "low",
|
|
119
|
+
pattern: /(?:apiKey|authDomain|databaseURL|storageBucket|messagingSenderId)[\s]*:[\s]*["'][^"']+["']/g,
|
|
120
|
+
category: "firebase",
|
|
121
|
+
confidence: "low",
|
|
122
|
+
},
|
|
123
|
+
];
|
|
124
|
+
// Files to skip for secrets scanning
|
|
125
|
+
const SKIP_FILES = [
|
|
126
|
+
".env.example",
|
|
127
|
+
".env.template",
|
|
128
|
+
".env.sample",
|
|
129
|
+
".env.defaults",
|
|
130
|
+
"package-lock.json",
|
|
131
|
+
"yarn.lock",
|
|
132
|
+
"pnpm-lock.yaml",
|
|
133
|
+
];
|
|
134
|
+
// Path patterns that indicate test/example/docs (lower confidence, not skipped)
|
|
135
|
+
const TEST_DOC_PATHS = [
|
|
136
|
+
/\/__tests__\//,
|
|
137
|
+
/\/test\//,
|
|
138
|
+
/\/tests\//,
|
|
139
|
+
/\.test\.[jt]sx?$/,
|
|
140
|
+
/\.spec\.[jt]sx?$/,
|
|
141
|
+
/\/fixtures?\//,
|
|
142
|
+
/\/mocks?\//,
|
|
143
|
+
/\/examples?\//,
|
|
144
|
+
/\/docs?\//,
|
|
145
|
+
/\/samples?\//,
|
|
146
|
+
/README/i,
|
|
147
|
+
/CHANGELOG/i,
|
|
148
|
+
];
|
|
149
|
+
const SKIP_EXTENSIONS = [
|
|
150
|
+
".md",
|
|
151
|
+
".txt",
|
|
152
|
+
".svg",
|
|
153
|
+
".png",
|
|
154
|
+
".jpg",
|
|
155
|
+
".gif",
|
|
156
|
+
".ico",
|
|
157
|
+
".woff",
|
|
158
|
+
".woff2",
|
|
159
|
+
".ttf",
|
|
160
|
+
".eot",
|
|
161
|
+
];
|
|
162
|
+
// Placeholder values to ignore
|
|
163
|
+
const PLACEHOLDER_VALUES = [
|
|
164
|
+
"your_key_here",
|
|
165
|
+
"your-api-key",
|
|
166
|
+
"your_",
|
|
167
|
+
"xxxx",
|
|
168
|
+
"todo",
|
|
169
|
+
"placeholder",
|
|
170
|
+
"example",
|
|
171
|
+
"changeme",
|
|
172
|
+
"replace_me",
|
|
173
|
+
"sk-xxx",
|
|
174
|
+
"sk-...",
|
|
175
|
+
"sk_test_",
|
|
176
|
+
"sk-test",
|
|
177
|
+
"INSERT_KEY_HERE",
|
|
178
|
+
"put_your",
|
|
179
|
+
"dummy",
|
|
180
|
+
"fake",
|
|
181
|
+
"sample",
|
|
182
|
+
"test_key",
|
|
183
|
+
"test_secret",
|
|
184
|
+
"test_token",
|
|
185
|
+
"000000",
|
|
186
|
+
"111111",
|
|
187
|
+
"aaaaaa",
|
|
188
|
+
];
|
|
189
|
+
export function detectSecrets(code, filePath) {
|
|
190
|
+
const fileName = filePath.split("/").pop() || "";
|
|
191
|
+
// Skip non-relevant files
|
|
192
|
+
if (SKIP_FILES.includes(fileName))
|
|
193
|
+
return [];
|
|
194
|
+
if (SKIP_EXTENSIONS.some((ext) => filePath.endsWith(ext)))
|
|
195
|
+
return [];
|
|
196
|
+
// Detect if file is in test/docs/examples path (lower confidence)
|
|
197
|
+
const isTestOrDoc = TEST_DOC_PATHS.some((p) => p.test(filePath));
|
|
198
|
+
const findings = [];
|
|
199
|
+
const lines = code.split("\n");
|
|
200
|
+
// Determine which patterns to use
|
|
201
|
+
const isEnvFile = fileName === ".env" || fileName === ".env.local" || fileName === ".env.production";
|
|
202
|
+
const patternsToUse = isEnvFile
|
|
203
|
+
? SECRET_PATTERNS.filter((p) => p.id === 62 || p.id === 101)
|
|
204
|
+
: SECRET_PATTERNS.filter((p) => p.id !== 62);
|
|
205
|
+
for (const pattern of patternsToUse) {
|
|
206
|
+
// Reset regex lastIndex
|
|
207
|
+
pattern.pattern.lastIndex = 0;
|
|
208
|
+
for (let lineNum = 0; lineNum < lines.length; lineNum++) {
|
|
209
|
+
const line = lines[lineNum];
|
|
210
|
+
// Skip comments
|
|
211
|
+
const trimmed = line.trimStart();
|
|
212
|
+
if (trimmed.startsWith("//") || trimmed.startsWith("#") || trimmed.startsWith("*") || trimmed.startsWith("<!--")) {
|
|
213
|
+
continue;
|
|
214
|
+
}
|
|
215
|
+
// Reset before each line check
|
|
216
|
+
pattern.pattern.lastIndex = 0;
|
|
217
|
+
const match = pattern.pattern.exec(line);
|
|
218
|
+
if (match) {
|
|
219
|
+
const matchedValue = match[0];
|
|
220
|
+
// Skip placeholders
|
|
221
|
+
const isPlaceholder = PLACEHOLDER_VALUES.some((p) => matchedValue.toLowerCase().includes(p.toLowerCase()));
|
|
222
|
+
if (isPlaceholder)
|
|
223
|
+
continue;
|
|
224
|
+
// Skip if the value is referencing an env var
|
|
225
|
+
if (matchedValue.includes("process.env.") || matchedValue.includes("${") || matchedValue.includes("os.environ") || matchedValue.includes("os.Getenv"))
|
|
226
|
+
continue;
|
|
227
|
+
// Extract a safe snippet (mask the actual secret)
|
|
228
|
+
const snippet = maskSecret(line.trim());
|
|
229
|
+
// Lower confidence for test/doc files
|
|
230
|
+
const confidence = isTestOrDoc ? "low" : pattern.confidence;
|
|
231
|
+
findings.push({
|
|
232
|
+
vulnerability_id: pattern.id,
|
|
233
|
+
severity: pattern.severity,
|
|
234
|
+
category: pattern.category,
|
|
235
|
+
title: pattern.name,
|
|
236
|
+
file_path: filePath,
|
|
237
|
+
line_number: lineNum + 1,
|
|
238
|
+
code_snippet: snippet,
|
|
239
|
+
owasp_ref: pattern.owasp,
|
|
240
|
+
status: "open",
|
|
241
|
+
confidence,
|
|
242
|
+
});
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
return findings;
|
|
247
|
+
}
|
|
248
|
+
function maskSecret(line) {
|
|
249
|
+
// Mask long strings that look like secrets
|
|
250
|
+
return line.replace(/["']([a-zA-Z0-9_\-./+=]{20,})["']/g, (_, match) => `"${match.substring(0, 6)}...REDACTED"`);
|
|
251
|
+
}
|
|
252
|
+
export function runSecretsEngine(files) {
|
|
253
|
+
const allFindings = [];
|
|
254
|
+
for (const [filePath, content] of files) {
|
|
255
|
+
const findings = detectSecrets(content, filePath);
|
|
256
|
+
allFindings.push(...findings);
|
|
257
|
+
}
|
|
258
|
+
return allFindings;
|
|
259
|
+
}
|
|
260
|
+
//# sourceMappingURL=secrets.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secrets.js","sourceRoot":"","sources":["../../src/engines/secrets.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semgrep.d.ts","sourceRoot":"","sources":["../../src/engines/semgrep.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAY,MAAM,YAAY,CAAC;AAyExD,wBAAsB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAqCxE"}
|
|
@@ -0,0 +1,173 @@
|
|
|
1
|
+
// Semgrep engine - runs Semgrep binary for AST-based code analysis.
|
|
2
|
+
// Uses both custom rules (worker/src/rules/) and community rulesets.
|
|
3
|
+
// Falls back gracefully if semgrep is not installed (regex patterns engine covers basics).
|
|
4
|
+
import { execWithTimeout } from "../utils/exec.js";
|
|
5
|
+
import path from "node:path";
|
|
6
|
+
import { fileURLToPath } from "node:url";
|
|
7
|
+
// Resolve rules directory relative to this file's compiled location (dist/engines/)
|
|
8
|
+
const __dirname = path.dirname(fileURLToPath(import.meta.url));
|
|
9
|
+
const RULES_DIR = path.resolve(__dirname, "../rules");
|
|
10
|
+
// Community rulesets to use alongside custom rules
|
|
11
|
+
const COMMUNITY_CONFIGS = [
|
|
12
|
+
"p/javascript",
|
|
13
|
+
"p/typescript",
|
|
14
|
+
"p/owasp-top-ten",
|
|
15
|
+
"p/react",
|
|
16
|
+
"p/nextjs",
|
|
17
|
+
];
|
|
18
|
+
// Map Semgrep severity strings to our severity levels
|
|
19
|
+
const SEVERITY_MAP = {
|
|
20
|
+
ERROR: "high",
|
|
21
|
+
WARNING: "medium",
|
|
22
|
+
INFO: "low",
|
|
23
|
+
};
|
|
24
|
+
// Map community rule prefixes to our vulnerability IDs
|
|
25
|
+
const COMMUNITY_RULE_MAP = {
|
|
26
|
+
// OWASP
|
|
27
|
+
"owasp.": { id: 1, category: "web-owasp" },
|
|
28
|
+
"javascript.lang.security.audit.sqli": { id: 5, category: "web-owasp" },
|
|
29
|
+
"javascript.lang.security.audit.xss": { id: 7, category: "web-owasp" },
|
|
30
|
+
"javascript.lang.security.audit.eval": { id: 61, category: "vibecoding" },
|
|
31
|
+
"javascript.lang.security.audit.crypto": { id: 2, category: "web-owasp" },
|
|
32
|
+
"javascript.lang.security.audit.path-traversal": { id: 106, category: "files" },
|
|
33
|
+
"javascript.lang.security.audit.command-injection": { id: 75, category: "injection" },
|
|
34
|
+
"javascript.lang.security.audit.prototype-pollution": { id: 128, category: "javascript" },
|
|
35
|
+
// React
|
|
36
|
+
"react.": { id: 46, category: "react-nextjs" },
|
|
37
|
+
"typescript.react.security": { id: 46, category: "react-nextjs" },
|
|
38
|
+
// Next.js
|
|
39
|
+
"nextjs.": { id: 46, category: "react-nextjs" },
|
|
40
|
+
// JWT
|
|
41
|
+
"javascript.jsonwebtoken": { id: 56, category: "vibecoding" },
|
|
42
|
+
"javascript.jwt": { id: 56, category: "vibecoding" },
|
|
43
|
+
// Express/Node
|
|
44
|
+
"javascript.express": { id: 1, category: "web-owasp" },
|
|
45
|
+
"javascript.lang.security": { id: 128, category: "javascript" },
|
|
46
|
+
// Crypto
|
|
47
|
+
"javascript.lang.security.audit.weak-crypto": { id: 2, category: "cryptography" },
|
|
48
|
+
};
|
|
49
|
+
export async function runSemgrep(repoDir) {
|
|
50
|
+
const args = [
|
|
51
|
+
"scan",
|
|
52
|
+
"--json",
|
|
53
|
+
"--config", RULES_DIR,
|
|
54
|
+
...COMMUNITY_CONFIGS.flatMap((config) => ["--config", config]),
|
|
55
|
+
"--metrics=off",
|
|
56
|
+
"--max-target-bytes", "500000",
|
|
57
|
+
"--timeout", "30", // Per-rule timeout in seconds
|
|
58
|
+
"--quiet", // Suppress progress output
|
|
59
|
+
repoDir,
|
|
60
|
+
];
|
|
61
|
+
const { stdout, stderr } = await execWithTimeout("semgrep", args, {
|
|
62
|
+
timeoutMs: 60_000,
|
|
63
|
+
maxBuffer: 20 * 1024 * 1024, // 20MB — Semgrep output can be large
|
|
64
|
+
});
|
|
65
|
+
if (!stdout.trim())
|
|
66
|
+
return [];
|
|
67
|
+
let output;
|
|
68
|
+
try {
|
|
69
|
+
output = JSON.parse(stdout);
|
|
70
|
+
}
|
|
71
|
+
catch {
|
|
72
|
+
// If JSON parsing fails, try to extract JSON from mixed output
|
|
73
|
+
const jsonStart = stdout.indexOf("{");
|
|
74
|
+
if (jsonStart === -1)
|
|
75
|
+
return [];
|
|
76
|
+
try {
|
|
77
|
+
output = JSON.parse(stdout.slice(jsonStart));
|
|
78
|
+
}
|
|
79
|
+
catch {
|
|
80
|
+
return [];
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
if (!output.results || !Array.isArray(output.results))
|
|
84
|
+
return [];
|
|
85
|
+
return output.results.map((result) => mapResultToFinding(result, repoDir));
|
|
86
|
+
}
|
|
87
|
+
function mapResultToFinding(result, repoDir) {
|
|
88
|
+
// Check for our custom datahogo_id in rule metadata
|
|
89
|
+
const metadata = result.extra.metadata;
|
|
90
|
+
const datahogoId = metadata?.datahogo_id;
|
|
91
|
+
// Make file path relative to repo root
|
|
92
|
+
const filePath = result.path.startsWith(repoDir)
|
|
93
|
+
? result.path.slice(repoDir.length + 1)
|
|
94
|
+
: result.path;
|
|
95
|
+
const severity = SEVERITY_MAP[result.extra.severity] ?? "medium";
|
|
96
|
+
if (datahogoId) {
|
|
97
|
+
// Custom rule with explicit mapping
|
|
98
|
+
const category = metadata?.datahogo_category ?? "web-owasp";
|
|
99
|
+
const owasp = metadata?.owasp_ref;
|
|
100
|
+
return {
|
|
101
|
+
vulnerability_id: datahogoId,
|
|
102
|
+
severity,
|
|
103
|
+
category,
|
|
104
|
+
title: result.extra.message.split(".")[0] || result.check_id,
|
|
105
|
+
description_technical: result.extra.message,
|
|
106
|
+
file_path: filePath,
|
|
107
|
+
line_number: result.start.line,
|
|
108
|
+
code_snippet: result.extra.lines,
|
|
109
|
+
owasp_ref: owasp,
|
|
110
|
+
status: "open",
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
// Community rule — map by check_id prefix
|
|
114
|
+
const mapping = findCommunityMapping(result.check_id);
|
|
115
|
+
return {
|
|
116
|
+
vulnerability_id: mapping.id,
|
|
117
|
+
severity,
|
|
118
|
+
category: mapping.category,
|
|
119
|
+
title: formatTitle(result.check_id, result.extra.message),
|
|
120
|
+
description_technical: `[Semgrep: ${result.check_id}] ${result.extra.message}`,
|
|
121
|
+
file_path: filePath,
|
|
122
|
+
line_number: result.start.line,
|
|
123
|
+
code_snippet: result.extra.lines,
|
|
124
|
+
status: "open",
|
|
125
|
+
};
|
|
126
|
+
}
|
|
127
|
+
function findCommunityMapping(checkId) {
|
|
128
|
+
// Try increasingly specific prefix matches
|
|
129
|
+
for (const [prefix, mapping] of Object.entries(COMMUNITY_RULE_MAP)) {
|
|
130
|
+
if (checkId.startsWith(prefix) || checkId.includes(prefix)) {
|
|
131
|
+
return mapping;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Fallback: categorize by keywords in the check ID
|
|
135
|
+
const lower = checkId.toLowerCase();
|
|
136
|
+
if (lower.includes("sqli") || lower.includes("sql-injection"))
|
|
137
|
+
return { id: 5, category: "web-owasp" };
|
|
138
|
+
if (lower.includes("xss") || lower.includes("cross-site"))
|
|
139
|
+
return { id: 7, category: "web-owasp" };
|
|
140
|
+
if (lower.includes("ssrf"))
|
|
141
|
+
return { id: 10, category: "web-owasp" };
|
|
142
|
+
if (lower.includes("command") || lower.includes("exec"))
|
|
143
|
+
return { id: 75, category: "injection" };
|
|
144
|
+
if (lower.includes("path-traversal"))
|
|
145
|
+
return { id: 106, category: "files" };
|
|
146
|
+
if (lower.includes("auth"))
|
|
147
|
+
return { id: 1, category: "web-owasp" };
|
|
148
|
+
if (lower.includes("crypto") || lower.includes("hash"))
|
|
149
|
+
return { id: 2, category: "cryptography" };
|
|
150
|
+
if (lower.includes("jwt"))
|
|
151
|
+
return { id: 56, category: "vibecoding" };
|
|
152
|
+
if (lower.includes("cors"))
|
|
153
|
+
return { id: 4, category: "web-owasp" };
|
|
154
|
+
if (lower.includes("secret") || lower.includes("key") || lower.includes("token"))
|
|
155
|
+
return { id: 53, category: "vibecoding" };
|
|
156
|
+
// Generic fallback
|
|
157
|
+
return { id: 199, category: "best-practices" };
|
|
158
|
+
}
|
|
159
|
+
function formatTitle(checkId, message) {
|
|
160
|
+
// Use first sentence of message if available
|
|
161
|
+
const firstSentence = message.split(/[.!]/)[0];
|
|
162
|
+
if (firstSentence && firstSentence.length > 10 && firstSentence.length < 100) {
|
|
163
|
+
return firstSentence;
|
|
164
|
+
}
|
|
165
|
+
// Fallback: humanize the check_id
|
|
166
|
+
return checkId
|
|
167
|
+
.split(/[.-]/)
|
|
168
|
+
.slice(-3)
|
|
169
|
+
.join(" ")
|
|
170
|
+
.replace(/_/g, " ")
|
|
171
|
+
.replace(/\b\w/g, (c) => c.toUpperCase());
|
|
172
|
+
}
|
|
173
|
+
//# sourceMappingURL=semgrep.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"semgrep.js","sourceRoot":"","sources":["../../src/engines/semgrep.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export type Severity = "critical" | "high" | "medium" | "low" | "info";
|
|
2
|
+
export type FindingContext = "production" | "test" | "example" | "config" | "rule" | "vendored";
|
|
3
|
+
export type FindingConfidence = "high" | "medium" | "low";
|
|
4
|
+
export interface FindingData {
|
|
5
|
+
vulnerability_id: number;
|
|
6
|
+
severity: Severity;
|
|
7
|
+
category: string;
|
|
8
|
+
title: string;
|
|
9
|
+
description_simple?: string;
|
|
10
|
+
description_technical?: string;
|
|
11
|
+
file_path?: string;
|
|
12
|
+
line_number?: number;
|
|
13
|
+
code_snippet?: string;
|
|
14
|
+
fix_description?: string;
|
|
15
|
+
fix_code?: string;
|
|
16
|
+
owasp_ref?: string;
|
|
17
|
+
status: "open";
|
|
18
|
+
context?: FindingContext;
|
|
19
|
+
confidence?: FindingConfidence;
|
|
20
|
+
is_framework_requirement?: boolean;
|
|
21
|
+
framework_note?: string;
|
|
22
|
+
classification?: "actionable" | "informational";
|
|
23
|
+
}
|
|
24
|
+
export interface EngineResult {
|
|
25
|
+
engine: string;
|
|
26
|
+
findings: FindingData[];
|
|
27
|
+
error?: string;
|
|
28
|
+
durationMs: number;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/engines/types.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,QAAQ,GAAG,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;AAEvE,MAAM,MAAM,cAAc,GACtB,YAAY,GACZ,MAAM,GACN,SAAS,GACT,QAAQ,GACR,MAAM,GACN,UAAU,CAAC;AAEf,MAAM,MAAM,iBAAiB,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;AAE1D,MAAM,WAAW,WAAW;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,QAAQ,EAAE,QAAQ,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAE/B,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,cAAc,CAAC,EAAE,YAAY,GAAG,eAAe,CAAC;CACjD;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,WAAW,EAAE,CAAC;IACxB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;CACpB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/engines/types.ts"],"names":[],"mappings":"AAAA,kCAAkC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"url-scanner.d.ts","sourceRoot":"","sources":["../../src/engines/url-scanner.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAuD9C,wBAAsB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC,CAuQpE"}
|