atlas-pipeline-mcp 1.0.16 → 1.0.18
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 +45 -1
- package/dist/mcp.js +263 -0
- package/dist/mcp.js.map +1 -1
- package/dist/providers/llm-provider.d.ts +60 -25
- package/dist/providers/llm-provider.d.ts.map +1 -1
- package/dist/providers/llm-provider.js +154 -73
- package/dist/providers/llm-provider.js.map +1 -1
- package/dist/server.js +3 -3
- package/dist/server.js.map +1 -1
- package/dist/tools/context.js.map +1 -1
- package/dist/tools/critique.d.ts.map +1 -1
- package/dist/tools/critique.js +4 -3
- package/dist/tools/critique.js.map +1 -1
- package/dist/tools/debug.d.ts +101 -0
- package/dist/tools/debug.d.ts.map +1 -0
- package/dist/tools/debug.js +712 -0
- package/dist/tools/debug.js.map +1 -0
- package/dist/tools/decompose.d.ts.map +1 -1
- package/dist/tools/decompose.js +40 -28
- package/dist/tools/decompose.js.map +1 -1
- package/dist/tools/docs.d.ts +94 -0
- package/dist/tools/docs.d.ts.map +1 -0
- package/dist/tools/docs.js +508 -0
- package/dist/tools/docs.js.map +1 -0
- package/dist/tools/explain.d.ts +82 -0
- package/dist/tools/explain.d.ts.map +1 -0
- package/dist/tools/explain.js +543 -0
- package/dist/tools/explain.js.map +1 -0
- package/dist/tools/intent.d.ts.map +1 -1
- package/dist/tools/intent.js +33 -20
- package/dist/tools/intent.js.map +1 -1
- package/dist/tools/optimize.d.ts.map +1 -1
- package/dist/tools/optimize.js +18 -3
- package/dist/tools/optimize.js.map +1 -1
- package/dist/tools/security.d.ts +45 -0
- package/dist/tools/security.d.ts.map +1 -0
- package/dist/tools/security.js +417 -0
- package/dist/tools/security.js.map +1 -0
- package/dist/tools/testgen.d.ts +52 -0
- package/dist/tools/testgen.d.ts.map +1 -0
- package/dist/tools/testgen.js +413 -0
- package/dist/tools/testgen.js.map +1 -0
- package/dist/tools/think.d.ts +187 -0
- package/dist/tools/think.d.ts.map +1 -0
- package/dist/tools/think.js +432 -0
- package/dist/tools/think.js.map +1 -0
- package/dist/tools/variants.d.ts.map +1 -1
- package/dist/tools/variants.js +41 -29
- package/dist/tools/variants.js.map +1 -1
- package/dist/types.d.ts +77 -20
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +21 -0
- package/dist/types.js.map +1 -1
- package/dist/utils.d.ts +108 -12
- package/dist/utils.d.ts.map +1 -1
- package/dist/utils.js +302 -68
- package/dist/utils.js.map +1 -1
- package/package.json +2 -3
package/dist/tools/intent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../../src/tools/intent.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;
|
|
1
|
+
{"version":3,"file":"intent.js","sourceRoot":"","sources":["../../src/tools/intent.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimize.d.ts","sourceRoot":"","sources":["../../src/tools/optimize.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,eAAe,EACf,YAAY,EAEb,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"optimize.d.ts","sourceRoot":"","sources":["../../src/tools/optimize.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,QAAQ,EACR,eAAe,EACf,YAAY,EAEb,MAAM,aAAa,CAAC;AASrB;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,QAAQ,GACjB,OAAO,CAAC,eAAe,CAAC,CAqF1B;AA6JD;;GAEG;AACH,wBAAsB,qBAAqB,CACzC,OAAO,EAAE,eAAe,EACxB,QAAQ,EAAE,QAAQ,EAClB,SAAS,GAAE,MAAU,GACpB,OAAO,CAAC,eAAe,CAAC,CAwC1B;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB;IAC9B;;OAEG;;eAE2C,YAAY,CAAC,MAAM,CAAC,EAAE;;;;IAKpE;;OAEG;;eAE0C,YAAY,CAAC,MAAM,CAAC,EAAE;;;;IAKnE;;OAEG;;eAEsB,YAAY,CAAC,MAAM,CAAC,EAAE;;;;IAK/C;;OAEG;;eAEqE,YAAY,CAAC,MAAM,CAAC,EAAE;;;;CAI/F,CAAC;AAEF;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,QAAQ,EAAE,QAAQ,GACjB;IACD,MAAM,EAAE,MAAM,OAAO,mBAAmB,CAAC;IACzC,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB,CAqCA"}
|
package/dist/tools/optimize.js
CHANGED
|
@@ -7,7 +7,8 @@
|
|
|
7
7
|
* - Enhances readability and maintainability
|
|
8
8
|
* - Follows best practices
|
|
9
9
|
*/
|
|
10
|
-
import {
|
|
10
|
+
import { getActiveProvider, isNoLLMMode } from '../providers/index.js';
|
|
11
|
+
import { PromptTemplates } from './ollama.js';
|
|
11
12
|
import { logger } from '../utils.js';
|
|
12
13
|
// ============================================================================
|
|
13
14
|
// Optimization
|
|
@@ -25,10 +26,24 @@ export async function optimizeVariant(variant, critique) {
|
|
|
25
26
|
if (critique.qualityScore >= 90 && !hasCriticalIssues(critique)) {
|
|
26
27
|
return createMinimalOptimization(variant, critique);
|
|
27
28
|
}
|
|
29
|
+
// Check if we're in no-LLM mode - return delegation fallback
|
|
30
|
+
if (isNoLLMMode()) {
|
|
31
|
+
logger.debug('No LLM available, returning optimization delegation fallback');
|
|
32
|
+
return {
|
|
33
|
+
content: variant.content,
|
|
34
|
+
optimizationsApplied: [{
|
|
35
|
+
type: 'best_practice',
|
|
36
|
+
description: 'Optimization Delegation: AI Assistant to perform changes',
|
|
37
|
+
impact: 'high',
|
|
38
|
+
}],
|
|
39
|
+
finalMetrics: critique.assessment,
|
|
40
|
+
explanation: `Optimization Strategy: Manual Application.\n\nBased on the analysis, please apply the following improvements to the code:\n${critique.issues.map(i => `- [${i.severity}] ${i.description}`).join('\n')}`,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
28
43
|
try {
|
|
29
|
-
const
|
|
44
|
+
const provider = await getActiveProvider();
|
|
30
45
|
const prompt = buildOptimizationPrompt(variant, critique);
|
|
31
|
-
const response = await
|
|
46
|
+
const response = await provider.completeJson(prompt, {
|
|
32
47
|
systemPrompt: PromptTemplates.optimization,
|
|
33
48
|
temperature: 0.4,
|
|
34
49
|
maxTokens: 4096,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"optimize.js","sourceRoot":"","sources":["../../src/tools/optimize.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AASH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"optimize.js","sourceRoot":"","sources":["../../src/tools/optimize.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Server - Security Analysis Tool
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive security vulnerability scanning:
|
|
5
|
+
* - SQL Injection detection
|
|
6
|
+
* - XSS vulnerability detection
|
|
7
|
+
* - Hardcoded secrets/credentials
|
|
8
|
+
* - Insecure dependencies patterns
|
|
9
|
+
* - Authentication/Authorization issues
|
|
10
|
+
* - Input validation gaps
|
|
11
|
+
* - Cryptographic weaknesses
|
|
12
|
+
*/
|
|
13
|
+
export interface SecurityVulnerability {
|
|
14
|
+
id: string;
|
|
15
|
+
severity: 'critical' | 'high' | 'medium' | 'low' | 'info';
|
|
16
|
+
category: SecurityCategory;
|
|
17
|
+
title: string;
|
|
18
|
+
description: string;
|
|
19
|
+
lineNumber?: number;
|
|
20
|
+
codeSnippet?: string;
|
|
21
|
+
recommendation: string;
|
|
22
|
+
cweId?: string;
|
|
23
|
+
owaspCategory?: string;
|
|
24
|
+
}
|
|
25
|
+
export type SecurityCategory = 'injection' | 'authentication' | 'authorization' | 'xss' | 'secrets' | 'cryptography' | 'configuration' | 'dependencies' | 'input_validation' | 'sensitive_data' | 'other';
|
|
26
|
+
export interface SecurityScanResult {
|
|
27
|
+
vulnerabilities: SecurityVulnerability[];
|
|
28
|
+
summary: SecuritySummary;
|
|
29
|
+
riskScore: number;
|
|
30
|
+
recommendations: string[];
|
|
31
|
+
scannedAt: string;
|
|
32
|
+
}
|
|
33
|
+
export interface SecuritySummary {
|
|
34
|
+
critical: number;
|
|
35
|
+
high: number;
|
|
36
|
+
medium: number;
|
|
37
|
+
low: number;
|
|
38
|
+
info: number;
|
|
39
|
+
total: number;
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* Scan code for security vulnerabilities
|
|
43
|
+
*/
|
|
44
|
+
export declare function scanSecurity(code: string, language?: string, context?: string): Promise<SecurityScanResult>;
|
|
45
|
+
//# sourceMappingURL=security.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.d.ts","sourceRoot":"","sources":["../../src/tools/security.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAUH,MAAM,WAAW,qBAAqB;IACpC,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,GAAG,MAAM,CAAC;IAC1D,QAAQ,EAAE,gBAAgB,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GACxB,WAAW,GACX,gBAAgB,GAChB,eAAe,GACf,KAAK,GACL,SAAS,GACT,cAAc,GACd,eAAe,GACf,cAAc,GACd,kBAAkB,GAClB,gBAAgB,GAChB,OAAO,CAAC;AAEZ,MAAM,WAAW,kBAAkB;IACjC,eAAe,EAAE,qBAAqB,EAAE,CAAC;IACzC,OAAO,EAAE,eAAe,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;CACf;AAsMD;;GAEG;AACH,wBAAsB,YAAY,CAChC,IAAI,EAAE,MAAM,EACZ,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,MAAM,GACf,OAAO,CAAC,kBAAkB,CAAC,CAiC7B"}
|
|
@@ -0,0 +1,417 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Server - Security Analysis Tool
|
|
3
|
+
*
|
|
4
|
+
* Comprehensive security vulnerability scanning:
|
|
5
|
+
* - SQL Injection detection
|
|
6
|
+
* - XSS vulnerability detection
|
|
7
|
+
* - Hardcoded secrets/credentials
|
|
8
|
+
* - Insecure dependencies patterns
|
|
9
|
+
* - Authentication/Authorization issues
|
|
10
|
+
* - Input validation gaps
|
|
11
|
+
* - Cryptographic weaknesses
|
|
12
|
+
*/
|
|
13
|
+
import { getActiveProvider, isNoLLMMode } from '../providers/index.js';
|
|
14
|
+
import { logger } from '../utils.js';
|
|
15
|
+
const SECURITY_PATTERNS = [
|
|
16
|
+
// SQL Injection
|
|
17
|
+
{
|
|
18
|
+
pattern: /(\$\{.*\}|`.*\$\{.*\}`|\+\s*\w+\s*\+).*(?:SELECT|INSERT|UPDATE|DELETE|DROP|CREATE|ALTER|EXEC|EXECUTE)/gi,
|
|
19
|
+
category: 'injection',
|
|
20
|
+
severity: 'critical',
|
|
21
|
+
title: 'Potential SQL Injection',
|
|
22
|
+
description: 'String concatenation or template literals used in SQL queries can lead to SQL injection attacks.',
|
|
23
|
+
recommendation: 'Use parameterized queries or prepared statements instead of string concatenation.',
|
|
24
|
+
cweId: 'CWE-89',
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
pattern: /(?:query|execute|exec)\s*\(\s*[`'"].*\$\{/gi,
|
|
28
|
+
category: 'injection',
|
|
29
|
+
severity: 'critical',
|
|
30
|
+
title: 'SQL Query with Template Literal',
|
|
31
|
+
description: 'Template literals in SQL queries are vulnerable to injection attacks.',
|
|
32
|
+
recommendation: 'Use parameterized queries with placeholders (?, $1, :param).',
|
|
33
|
+
cweId: 'CWE-89',
|
|
34
|
+
},
|
|
35
|
+
// Command Injection
|
|
36
|
+
{
|
|
37
|
+
pattern: /(?:exec|spawn|execSync|spawnSync|execFile)\s*\([^)]*\$\{/gi,
|
|
38
|
+
category: 'injection',
|
|
39
|
+
severity: 'critical',
|
|
40
|
+
title: 'Potential Command Injection',
|
|
41
|
+
description: 'User input in shell commands can lead to arbitrary command execution.',
|
|
42
|
+
recommendation: 'Validate and sanitize all inputs. Use execFile with argument arrays instead of exec.',
|
|
43
|
+
cweId: 'CWE-78',
|
|
44
|
+
},
|
|
45
|
+
// XSS
|
|
46
|
+
{
|
|
47
|
+
pattern: /innerHTML\s*=|outerHTML\s*=|document\.write\s*\(/gi,
|
|
48
|
+
category: 'xss',
|
|
49
|
+
severity: 'high',
|
|
50
|
+
title: 'Potential XSS Vulnerability',
|
|
51
|
+
description: 'Direct DOM manipulation with user content can lead to cross-site scripting.',
|
|
52
|
+
recommendation: 'Use textContent instead of innerHTML, or sanitize HTML with DOMPurify.',
|
|
53
|
+
cweId: 'CWE-79',
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
pattern: /dangerouslySetInnerHTML/gi,
|
|
57
|
+
category: 'xss',
|
|
58
|
+
severity: 'high',
|
|
59
|
+
title: 'React dangerouslySetInnerHTML',
|
|
60
|
+
description: 'Using dangerouslySetInnerHTML can introduce XSS vulnerabilities.',
|
|
61
|
+
recommendation: 'Sanitize HTML content with DOMPurify before rendering.',
|
|
62
|
+
cweId: 'CWE-79',
|
|
63
|
+
},
|
|
64
|
+
// Hardcoded Secrets
|
|
65
|
+
{
|
|
66
|
+
pattern: /(?:api[_-]?key|apikey|secret|password|passwd|pwd|token|auth|credential)\s*[:=]\s*['"][^'"]{8,}['"]/gi,
|
|
67
|
+
category: 'secrets',
|
|
68
|
+
severity: 'critical',
|
|
69
|
+
title: 'Hardcoded Secret/Credential',
|
|
70
|
+
description: 'Secrets hardcoded in source code can be exposed in version control.',
|
|
71
|
+
recommendation: 'Use environment variables or a secrets manager (e.g., AWS Secrets Manager, HashiCorp Vault).',
|
|
72
|
+
cweId: 'CWE-798',
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
pattern: /(?:-----BEGIN\s+(?:RSA\s+)?PRIVATE\s+KEY-----)/gi,
|
|
76
|
+
category: 'secrets',
|
|
77
|
+
severity: 'critical',
|
|
78
|
+
title: 'Private Key in Source Code',
|
|
79
|
+
description: 'Private keys should never be stored in source code.',
|
|
80
|
+
recommendation: 'Store private keys in secure key management systems, not in code.',
|
|
81
|
+
cweId: 'CWE-321',
|
|
82
|
+
},
|
|
83
|
+
// Weak Cryptography
|
|
84
|
+
{
|
|
85
|
+
pattern: /createHash\s*\(\s*['"](?:md5|sha1)['"]\s*\)/gi,
|
|
86
|
+
category: 'cryptography',
|
|
87
|
+
severity: 'high',
|
|
88
|
+
title: 'Weak Hash Algorithm',
|
|
89
|
+
description: 'MD5 and SHA1 are cryptographically broken and should not be used for security.',
|
|
90
|
+
recommendation: 'Use SHA-256, SHA-3, or bcrypt/argon2 for password hashing.',
|
|
91
|
+
cweId: 'CWE-328',
|
|
92
|
+
},
|
|
93
|
+
{
|
|
94
|
+
pattern: /Math\.random\s*\(\)/gi,
|
|
95
|
+
category: 'cryptography',
|
|
96
|
+
severity: 'medium',
|
|
97
|
+
title: 'Insecure Random Number Generator',
|
|
98
|
+
description: 'Math.random() is not cryptographically secure.',
|
|
99
|
+
recommendation: 'Use crypto.randomBytes() or crypto.randomUUID() for security-sensitive operations.',
|
|
100
|
+
cweId: 'CWE-338',
|
|
101
|
+
},
|
|
102
|
+
// Authentication Issues
|
|
103
|
+
{
|
|
104
|
+
pattern: /(?:verify|check).*(?:===|==)\s*(?:true|false|['"])/gi,
|
|
105
|
+
category: 'authentication',
|
|
106
|
+
severity: 'medium',
|
|
107
|
+
title: 'Potentially Weak Authentication Check',
|
|
108
|
+
description: 'Simple boolean comparisons for authentication may be bypassable.',
|
|
109
|
+
recommendation: 'Use timing-safe comparison functions and proper authentication libraries.',
|
|
110
|
+
cweId: 'CWE-287',
|
|
111
|
+
},
|
|
112
|
+
// Eval and Dynamic Code Execution
|
|
113
|
+
{
|
|
114
|
+
pattern: /\beval\s*\(/gi,
|
|
115
|
+
category: 'injection',
|
|
116
|
+
severity: 'critical',
|
|
117
|
+
title: 'Use of eval()',
|
|
118
|
+
description: 'eval() executes arbitrary code and is a severe security risk.',
|
|
119
|
+
recommendation: 'Avoid eval(). Use JSON.parse() for JSON, or Function constructor with caution.',
|
|
120
|
+
cweId: 'CWE-95',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
pattern: /new\s+Function\s*\(/gi,
|
|
124
|
+
category: 'injection',
|
|
125
|
+
severity: 'high',
|
|
126
|
+
title: 'Dynamic Function Constructor',
|
|
127
|
+
description: 'new Function() can execute arbitrary code similar to eval().',
|
|
128
|
+
recommendation: 'Avoid dynamic code generation. Use safe alternatives.',
|
|
129
|
+
cweId: 'CWE-95',
|
|
130
|
+
},
|
|
131
|
+
// Input Validation
|
|
132
|
+
{
|
|
133
|
+
pattern: /JSON\.parse\s*\([^)]*(?:req|request|body|params|query)/gi,
|
|
134
|
+
category: 'input_validation',
|
|
135
|
+
severity: 'medium',
|
|
136
|
+
title: 'Unvalidated JSON Parsing',
|
|
137
|
+
description: 'Parsing user input without validation can lead to prototype pollution or crashes.',
|
|
138
|
+
recommendation: 'Validate JSON schema before parsing. Use libraries like zod or joi.',
|
|
139
|
+
cweId: 'CWE-20',
|
|
140
|
+
},
|
|
141
|
+
// Sensitive Data Exposure
|
|
142
|
+
{
|
|
143
|
+
pattern: /console\.log\s*\([^)]*(?:password|secret|token|key|credential)/gi,
|
|
144
|
+
category: 'sensitive_data',
|
|
145
|
+
severity: 'medium',
|
|
146
|
+
title: 'Sensitive Data in Logs',
|
|
147
|
+
description: 'Logging sensitive information can expose credentials.',
|
|
148
|
+
recommendation: 'Redact sensitive data before logging. Use structured logging.',
|
|
149
|
+
cweId: 'CWE-532',
|
|
150
|
+
},
|
|
151
|
+
// CORS Misconfiguration
|
|
152
|
+
{
|
|
153
|
+
pattern: /(?:Access-Control-Allow-Origin|cors).*['"]\*['"]/gi,
|
|
154
|
+
category: 'configuration',
|
|
155
|
+
severity: 'medium',
|
|
156
|
+
title: 'Overly Permissive CORS',
|
|
157
|
+
description: 'Allowing all origins (*) can expose APIs to unauthorized access.',
|
|
158
|
+
recommendation: 'Specify allowed origins explicitly instead of using wildcard.',
|
|
159
|
+
cweId: 'CWE-942',
|
|
160
|
+
},
|
|
161
|
+
// Path Traversal
|
|
162
|
+
{
|
|
163
|
+
pattern: /(?:readFile|writeFile|readdir|unlink|rmdir).*(?:req|request|params|query)/gi,
|
|
164
|
+
category: 'injection',
|
|
165
|
+
severity: 'high',
|
|
166
|
+
title: 'Potential Path Traversal',
|
|
167
|
+
description: 'Using user input in file operations can allow directory traversal attacks.',
|
|
168
|
+
recommendation: 'Validate and sanitize file paths. Use path.resolve() and check against base directory.',
|
|
169
|
+
cweId: 'CWE-22',
|
|
170
|
+
},
|
|
171
|
+
// Insecure Deserialization
|
|
172
|
+
{
|
|
173
|
+
pattern: /(?:unserialize|deserialize|pickle\.loads|yaml\.load(?!_safe))/gi,
|
|
174
|
+
category: 'injection',
|
|
175
|
+
severity: 'critical',
|
|
176
|
+
title: 'Insecure Deserialization',
|
|
177
|
+
description: 'Deserializing untrusted data can lead to remote code execution.',
|
|
178
|
+
recommendation: 'Use safe deserialization methods. Validate and sanitize input.',
|
|
179
|
+
cweId: 'CWE-502',
|
|
180
|
+
},
|
|
181
|
+
// HTTP without TLS
|
|
182
|
+
{
|
|
183
|
+
pattern: /http:\/\/(?!localhost|127\.0\.0\.1|0\.0\.0\.0)/gi,
|
|
184
|
+
category: 'configuration',
|
|
185
|
+
severity: 'low',
|
|
186
|
+
title: 'Non-HTTPS URL',
|
|
187
|
+
description: 'Using HTTP instead of HTTPS exposes data to interception.',
|
|
188
|
+
recommendation: 'Use HTTPS for all external communications.',
|
|
189
|
+
cweId: 'CWE-319',
|
|
190
|
+
},
|
|
191
|
+
];
|
|
192
|
+
// ============================================================================
|
|
193
|
+
// Security Scanning
|
|
194
|
+
// ============================================================================
|
|
195
|
+
/**
|
|
196
|
+
* Scan code for security vulnerabilities
|
|
197
|
+
*/
|
|
198
|
+
export async function scanSecurity(code, language, context) {
|
|
199
|
+
logger.debug({ codeLength: code.length, language }, 'Starting security scan');
|
|
200
|
+
// First, run heuristic pattern matching
|
|
201
|
+
const heuristicVulns = runHeuristicScan(code);
|
|
202
|
+
// If LLM is available, enhance with AI analysis
|
|
203
|
+
let aiVulns = [];
|
|
204
|
+
if (!isNoLLMMode()) {
|
|
205
|
+
try {
|
|
206
|
+
aiVulns = await runAIScan(code, language, context);
|
|
207
|
+
}
|
|
208
|
+
catch (error) {
|
|
209
|
+
logger.warn({ error }, 'AI security scan failed, using heuristic results only');
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
// Merge and deduplicate vulnerabilities
|
|
213
|
+
const allVulns = mergeVulnerabilities(heuristicVulns, aiVulns);
|
|
214
|
+
// Calculate summary
|
|
215
|
+
const summary = calculateSummary(allVulns);
|
|
216
|
+
const riskScore = calculateRiskScore(summary);
|
|
217
|
+
// Generate recommendations
|
|
218
|
+
const recommendations = generateRecommendations(allVulns);
|
|
219
|
+
return {
|
|
220
|
+
vulnerabilities: allVulns,
|
|
221
|
+
summary,
|
|
222
|
+
riskScore,
|
|
223
|
+
recommendations,
|
|
224
|
+
scannedAt: new Date().toISOString(),
|
|
225
|
+
};
|
|
226
|
+
}
|
|
227
|
+
/**
|
|
228
|
+
* Run heuristic pattern-based security scan
|
|
229
|
+
*/
|
|
230
|
+
function runHeuristicScan(code) {
|
|
231
|
+
const vulnerabilities = [];
|
|
232
|
+
const lines = code.split('\n');
|
|
233
|
+
for (const secPattern of SECURITY_PATTERNS) {
|
|
234
|
+
// Reset regex state
|
|
235
|
+
secPattern.pattern.lastIndex = 0;
|
|
236
|
+
let match;
|
|
237
|
+
while ((match = secPattern.pattern.exec(code)) !== null) {
|
|
238
|
+
// Find line number
|
|
239
|
+
const beforeMatch = code.substring(0, match.index);
|
|
240
|
+
const lineNumber = beforeMatch.split('\n').length;
|
|
241
|
+
// Get code snippet (the line containing the match)
|
|
242
|
+
const snippetLine = lines[lineNumber - 1] || '';
|
|
243
|
+
vulnerabilities.push({
|
|
244
|
+
id: `heur-${vulnerabilities.length + 1}`,
|
|
245
|
+
severity: secPattern.severity,
|
|
246
|
+
category: secPattern.category,
|
|
247
|
+
title: secPattern.title,
|
|
248
|
+
description: secPattern.description,
|
|
249
|
+
lineNumber,
|
|
250
|
+
codeSnippet: snippetLine.trim(),
|
|
251
|
+
recommendation: secPattern.recommendation,
|
|
252
|
+
cweId: secPattern.cweId,
|
|
253
|
+
});
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
return vulnerabilities;
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Run AI-powered security analysis
|
|
260
|
+
*/
|
|
261
|
+
async function runAIScan(code, language, context) {
|
|
262
|
+
const provider = await getActiveProvider();
|
|
263
|
+
const prompt = `Analyze this code for security vulnerabilities.
|
|
264
|
+
|
|
265
|
+
## Code
|
|
266
|
+
\`\`\`${language ?? ''}
|
|
267
|
+
${code}
|
|
268
|
+
\`\`\`
|
|
269
|
+
|
|
270
|
+
${context ? `## Additional Context\n${context}\n` : ''}
|
|
271
|
+
|
|
272
|
+
## Find These Types of Issues:
|
|
273
|
+
1. Injection vulnerabilities (SQL, Command, XSS)
|
|
274
|
+
2. Authentication/Authorization flaws
|
|
275
|
+
3. Hardcoded secrets or credentials
|
|
276
|
+
4. Cryptographic weaknesses
|
|
277
|
+
5. Input validation issues
|
|
278
|
+
6. Sensitive data exposure
|
|
279
|
+
7. Configuration problems
|
|
280
|
+
8. Any OWASP Top 10 vulnerabilities
|
|
281
|
+
|
|
282
|
+
## Output Format
|
|
283
|
+
{
|
|
284
|
+
"vulnerabilities": [
|
|
285
|
+
{
|
|
286
|
+
"severity": "critical|high|medium|low|info",
|
|
287
|
+
"category": "injection|authentication|authorization|xss|secrets|cryptography|configuration|dependencies|input_validation|sensitive_data|other",
|
|
288
|
+
"title": "Brief title",
|
|
289
|
+
"description": "Detailed description of the vulnerability",
|
|
290
|
+
"lineNumber": 0,
|
|
291
|
+
"recommendation": "How to fix it",
|
|
292
|
+
"cweId": "CWE-XXX",
|
|
293
|
+
"owaspCategory": "A01:2021 - Broken Access Control"
|
|
294
|
+
}
|
|
295
|
+
]
|
|
296
|
+
}`;
|
|
297
|
+
const response = await provider.completeJson(prompt, {
|
|
298
|
+
systemPrompt: 'You are a senior security engineer. Analyze code for vulnerabilities. Be thorough but avoid false positives. Return valid JSON only.',
|
|
299
|
+
temperature: 0.2,
|
|
300
|
+
maxTokens: 2048,
|
|
301
|
+
});
|
|
302
|
+
if (response.data?.vulnerabilities) {
|
|
303
|
+
return response.data.vulnerabilities.map((v, i) => ({
|
|
304
|
+
id: `ai-${i + 1}`,
|
|
305
|
+
severity: normalizeSeverity(v.severity),
|
|
306
|
+
category: normalizeCategory(v.category),
|
|
307
|
+
title: v.title,
|
|
308
|
+
description: v.description,
|
|
309
|
+
lineNumber: v.lineNumber,
|
|
310
|
+
recommendation: v.recommendation,
|
|
311
|
+
cweId: v.cweId,
|
|
312
|
+
owaspCategory: v.owaspCategory,
|
|
313
|
+
}));
|
|
314
|
+
}
|
|
315
|
+
return [];
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Merge and deduplicate vulnerabilities
|
|
319
|
+
*/
|
|
320
|
+
function mergeVulnerabilities(heuristic, ai) {
|
|
321
|
+
const seen = new Set();
|
|
322
|
+
const merged = [];
|
|
323
|
+
for (const vuln of [...heuristic, ...ai]) {
|
|
324
|
+
// Create a dedup key based on category, line, and title
|
|
325
|
+
const key = `${vuln.category}-${vuln.lineNumber ?? 'none'}-${vuln.title.toLowerCase().slice(0, 30)}`;
|
|
326
|
+
if (!seen.has(key)) {
|
|
327
|
+
seen.add(key);
|
|
328
|
+
merged.push(vuln);
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
// Sort by severity
|
|
332
|
+
const severityOrder = { critical: 0, high: 1, medium: 2, low: 3, info: 4 };
|
|
333
|
+
return merged.sort((a, b) => severityOrder[a.severity] - severityOrder[b.severity]);
|
|
334
|
+
}
|
|
335
|
+
/**
|
|
336
|
+
* Calculate vulnerability summary
|
|
337
|
+
*/
|
|
338
|
+
function calculateSummary(vulnerabilities) {
|
|
339
|
+
const summary = {
|
|
340
|
+
critical: 0,
|
|
341
|
+
high: 0,
|
|
342
|
+
medium: 0,
|
|
343
|
+
low: 0,
|
|
344
|
+
info: 0,
|
|
345
|
+
total: vulnerabilities.length,
|
|
346
|
+
};
|
|
347
|
+
for (const vuln of vulnerabilities) {
|
|
348
|
+
summary[vuln.severity]++;
|
|
349
|
+
}
|
|
350
|
+
return summary;
|
|
351
|
+
}
|
|
352
|
+
/**
|
|
353
|
+
* Calculate overall risk score (0-100)
|
|
354
|
+
*/
|
|
355
|
+
function calculateRiskScore(summary) {
|
|
356
|
+
// Weighted scoring
|
|
357
|
+
const score = summary.critical * 25 +
|
|
358
|
+
summary.high * 15 +
|
|
359
|
+
summary.medium * 8 +
|
|
360
|
+
summary.low * 3 +
|
|
361
|
+
summary.info * 1;
|
|
362
|
+
// Normalize to 0-100 (capped)
|
|
363
|
+
return Math.min(100, score);
|
|
364
|
+
}
|
|
365
|
+
/**
|
|
366
|
+
* Generate actionable recommendations
|
|
367
|
+
*/
|
|
368
|
+
function generateRecommendations(vulnerabilities) {
|
|
369
|
+
const recommendations = new Set();
|
|
370
|
+
// Add critical issue recommendations first
|
|
371
|
+
for (const vuln of vulnerabilities) {
|
|
372
|
+
if (vuln.severity === 'critical' || vuln.severity === 'high') {
|
|
373
|
+
recommendations.add(vuln.recommendation);
|
|
374
|
+
}
|
|
375
|
+
}
|
|
376
|
+
// Add general best practices
|
|
377
|
+
const categories = new Set(vulnerabilities.map(v => v.category));
|
|
378
|
+
if (categories.has('secrets')) {
|
|
379
|
+
recommendations.add('Implement a secrets management solution (e.g., HashiCorp Vault, AWS Secrets Manager)');
|
|
380
|
+
}
|
|
381
|
+
if (categories.has('injection')) {
|
|
382
|
+
recommendations.add('Use parameterized queries and input validation throughout the application');
|
|
383
|
+
}
|
|
384
|
+
if (categories.has('authentication')) {
|
|
385
|
+
recommendations.add('Review authentication flow and implement multi-factor authentication');
|
|
386
|
+
}
|
|
387
|
+
if (categories.has('xss')) {
|
|
388
|
+
recommendations.add('Implement Content Security Policy (CSP) headers');
|
|
389
|
+
}
|
|
390
|
+
return Array.from(recommendations).slice(0, 10);
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* Normalize severity string
|
|
394
|
+
*/
|
|
395
|
+
function normalizeSeverity(severity) {
|
|
396
|
+
const normalized = severity.toLowerCase();
|
|
397
|
+
if (['critical', 'high', 'medium', 'low', 'info'].includes(normalized)) {
|
|
398
|
+
return normalized;
|
|
399
|
+
}
|
|
400
|
+
return 'medium';
|
|
401
|
+
}
|
|
402
|
+
/**
|
|
403
|
+
* Normalize category string
|
|
404
|
+
*/
|
|
405
|
+
function normalizeCategory(category) {
|
|
406
|
+
const normalized = category.toLowerCase().replace(/[^a-z_]/g, '_');
|
|
407
|
+
const validCategories = [
|
|
408
|
+
'injection', 'authentication', 'authorization', 'xss', 'secrets',
|
|
409
|
+
'cryptography', 'configuration', 'dependencies', 'input_validation',
|
|
410
|
+
'sensitive_data', 'other'
|
|
411
|
+
];
|
|
412
|
+
if (validCategories.includes(normalized)) {
|
|
413
|
+
return normalized;
|
|
414
|
+
}
|
|
415
|
+
return 'other';
|
|
416
|
+
}
|
|
417
|
+
//# sourceMappingURL=security.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security.js","sourceRoot":"","sources":["../../src/tools/security.ts"],"names":[],"mappings":"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"}
|