@nahisaho/musubix-security 1.8.0 → 1.8.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/README.md +27 -0
  2. package/dist/analyzers/ai/index.d.ts +6 -0
  3. package/dist/analyzers/ai/index.d.ts.map +1 -0
  4. package/dist/analyzers/ai/index.js +6 -0
  5. package/dist/analyzers/ai/index.js.map +1 -0
  6. package/dist/analyzers/ai/prompt-injection-detector.d.ts +152 -0
  7. package/dist/analyzers/ai/prompt-injection-detector.d.ts.map +1 -0
  8. package/dist/analyzers/ai/prompt-injection-detector.js +468 -0
  9. package/dist/analyzers/ai/prompt-injection-detector.js.map +1 -0
  10. package/dist/analyzers/api/api-security-analyzer.d.ts +263 -0
  11. package/dist/analyzers/api/api-security-analyzer.d.ts.map +1 -0
  12. package/dist/analyzers/api/api-security-analyzer.js +581 -0
  13. package/dist/analyzers/api/api-security-analyzer.js.map +1 -0
  14. package/dist/analyzers/compliance/compliance-checker.d.ts +201 -0
  15. package/dist/analyzers/compliance/compliance-checker.d.ts.map +1 -0
  16. package/dist/analyzers/compliance/compliance-checker.js +772 -0
  17. package/dist/analyzers/compliance/compliance-checker.js.map +1 -0
  18. package/dist/analyzers/container/image-scanner.d.ts +163 -0
  19. package/dist/analyzers/container/image-scanner.d.ts.map +1 -0
  20. package/dist/analyzers/container/image-scanner.js +459 -0
  21. package/dist/analyzers/container/image-scanner.js.map +1 -0
  22. package/dist/analyzers/container/index.d.ts +6 -0
  23. package/dist/analyzers/container/index.d.ts.map +1 -0
  24. package/dist/analyzers/container/index.js +6 -0
  25. package/dist/analyzers/container/index.js.map +1 -0
  26. package/dist/analyzers/dashboard/security-dashboard.d.ts +286 -0
  27. package/dist/analyzers/dashboard/security-dashboard.d.ts.map +1 -0
  28. package/dist/analyzers/dashboard/security-dashboard.js +796 -0
  29. package/dist/analyzers/dashboard/security-dashboard.js.map +1 -0
  30. package/dist/analyzers/iac/iac-checker.d.ts +124 -0
  31. package/dist/analyzers/iac/iac-checker.d.ts.map +1 -0
  32. package/dist/analyzers/iac/iac-checker.js +755 -0
  33. package/dist/analyzers/iac/iac-checker.js.map +1 -0
  34. package/dist/analyzers/iac/index.d.ts +6 -0
  35. package/dist/analyzers/iac/index.d.ts.map +1 -0
  36. package/dist/analyzers/iac/index.js +6 -0
  37. package/dist/analyzers/iac/index.js.map +1 -0
  38. package/dist/analyzers/index.d.ts +9 -0
  39. package/dist/analyzers/index.d.ts.map +1 -0
  40. package/dist/analyzers/index.js +13 -0
  41. package/dist/analyzers/index.js.map +1 -0
  42. package/dist/analyzers/monitor/realtime-monitor.d.ts +216 -0
  43. package/dist/analyzers/monitor/realtime-monitor.d.ts.map +1 -0
  44. package/dist/analyzers/monitor/realtime-monitor.js +601 -0
  45. package/dist/analyzers/monitor/realtime-monitor.js.map +1 -0
  46. package/dist/analyzers/sast/index.d.ts +7 -0
  47. package/dist/analyzers/sast/index.d.ts.map +1 -0
  48. package/dist/analyzers/sast/index.js +7 -0
  49. package/dist/analyzers/sast/index.js.map +1 -0
  50. package/dist/analyzers/sast/interprocedural-analyzer.d.ts +276 -0
  51. package/dist/analyzers/sast/interprocedural-analyzer.d.ts.map +1 -0
  52. package/dist/analyzers/sast/interprocedural-analyzer.js +635 -0
  53. package/dist/analyzers/sast/interprocedural-analyzer.js.map +1 -0
  54. package/dist/analyzers/sast/zero-day-detector.d.ts +183 -0
  55. package/dist/analyzers/sast/zero-day-detector.d.ts.map +1 -0
  56. package/dist/analyzers/sast/zero-day-detector.js +593 -0
  57. package/dist/analyzers/sast/zero-day-detector.js.map +1 -0
  58. package/dist/analyzers/sca/dependency-scanner.d.ts +275 -0
  59. package/dist/analyzers/sca/dependency-scanner.d.ts.map +1 -0
  60. package/dist/analyzers/sca/dependency-scanner.js +642 -0
  61. package/dist/analyzers/sca/dependency-scanner.js.map +1 -0
  62. package/dist/core/index.d.ts +8 -0
  63. package/dist/core/index.d.ts.map +1 -0
  64. package/dist/core/index.js +10 -0
  65. package/dist/core/index.js.map +1 -0
  66. package/dist/core/pipeline-manager.d.ts +105 -0
  67. package/dist/core/pipeline-manager.d.ts.map +1 -0
  68. package/dist/core/pipeline-manager.js +449 -0
  69. package/dist/core/pipeline-manager.js.map +1 -0
  70. package/dist/core/result-aggregator.d.ts +96 -0
  71. package/dist/core/result-aggregator.d.ts.map +1 -0
  72. package/dist/core/result-aggregator.js +462 -0
  73. package/dist/core/result-aggregator.js.map +1 -0
  74. package/dist/index.d.ts +15 -0
  75. package/dist/index.d.ts.map +1 -1
  76. package/dist/index.js +68 -0
  77. package/dist/index.js.map +1 -1
  78. package/dist/integrations/ci-integration.d.ts +227 -0
  79. package/dist/integrations/ci-integration.d.ts.map +1 -0
  80. package/dist/integrations/ci-integration.js +472 -0
  81. package/dist/integrations/ci-integration.js.map +1 -0
  82. package/dist/integrations/git-hooks.d.ts +155 -0
  83. package/dist/integrations/git-hooks.d.ts.map +1 -0
  84. package/dist/integrations/git-hooks.js +425 -0
  85. package/dist/integrations/git-hooks.js.map +1 -0
  86. package/dist/integrations/index.d.ts +9 -0
  87. package/dist/integrations/index.d.ts.map +1 -0
  88. package/dist/integrations/index.js +9 -0
  89. package/dist/integrations/index.js.map +1 -0
  90. package/dist/integrations/report-aggregator.d.ts +250 -0
  91. package/dist/integrations/report-aggregator.d.ts.map +1 -0
  92. package/dist/integrations/report-aggregator.js +488 -0
  93. package/dist/integrations/report-aggregator.js.map +1 -0
  94. package/dist/integrations/vscode-integration.d.ts +245 -0
  95. package/dist/integrations/vscode-integration.d.ts.map +1 -0
  96. package/dist/integrations/vscode-integration.js +449 -0
  97. package/dist/integrations/vscode-integration.js.map +1 -0
  98. package/dist/intelligence/attack-pattern-matcher.d.ts +217 -0
  99. package/dist/intelligence/attack-pattern-matcher.d.ts.map +1 -0
  100. package/dist/intelligence/attack-pattern-matcher.js +887 -0
  101. package/dist/intelligence/attack-pattern-matcher.js.map +1 -0
  102. package/dist/intelligence/index.d.ts +12 -0
  103. package/dist/intelligence/index.d.ts.map +1 -0
  104. package/dist/intelligence/index.js +18 -0
  105. package/dist/intelligence/index.js.map +1 -0
  106. package/dist/intelligence/neuro-symbolic-core.d.ts +88 -0
  107. package/dist/intelligence/neuro-symbolic-core.d.ts.map +1 -0
  108. package/dist/intelligence/neuro-symbolic-core.js +403 -0
  109. package/dist/intelligence/neuro-symbolic-core.js.map +1 -0
  110. package/dist/intelligence/predictive-analyzer.d.ts +317 -0
  111. package/dist/intelligence/predictive-analyzer.d.ts.map +1 -0
  112. package/dist/intelligence/predictive-analyzer.js +714 -0
  113. package/dist/intelligence/predictive-analyzer.js.map +1 -0
  114. package/dist/intelligence/risk-scorer.d.ts +333 -0
  115. package/dist/intelligence/risk-scorer.d.ts.map +1 -0
  116. package/dist/intelligence/risk-scorer.js +824 -0
  117. package/dist/intelligence/risk-scorer.js.map +1 -0
  118. package/dist/intelligence/security-analytics.d.ts +349 -0
  119. package/dist/intelligence/security-analytics.d.ts.map +1 -0
  120. package/dist/intelligence/security-analytics.js +813 -0
  121. package/dist/intelligence/security-analytics.js.map +1 -0
  122. package/dist/intelligence/threat-intelligence.d.ts +288 -0
  123. package/dist/intelligence/threat-intelligence.d.ts.map +1 -0
  124. package/dist/intelligence/threat-intelligence.js +639 -0
  125. package/dist/intelligence/threat-intelligence.js.map +1 -0
  126. package/dist/policy/index.d.ts +6 -0
  127. package/dist/policy/index.d.ts.map +1 -0
  128. package/dist/policy/index.js +6 -0
  129. package/dist/policy/index.js.map +1 -0
  130. package/dist/policy/policy-engine.d.ts +254 -0
  131. package/dist/policy/policy-engine.d.ts.map +1 -0
  132. package/dist/policy/policy-engine.js +651 -0
  133. package/dist/policy/policy-engine.js.map +1 -0
  134. package/dist/remediation/auto-fixer.d.ts +179 -0
  135. package/dist/remediation/auto-fixer.d.ts.map +1 -0
  136. package/dist/remediation/auto-fixer.js +540 -0
  137. package/dist/remediation/auto-fixer.js.map +1 -0
  138. package/dist/remediation/fix-validator.d.ts +195 -0
  139. package/dist/remediation/fix-validator.d.ts.map +1 -0
  140. package/dist/remediation/fix-validator.js +462 -0
  141. package/dist/remediation/fix-validator.js.map +1 -0
  142. package/dist/remediation/index.d.ts +10 -0
  143. package/dist/remediation/index.d.ts.map +1 -0
  144. package/dist/remediation/index.js +15 -0
  145. package/dist/remediation/index.js.map +1 -0
  146. package/dist/remediation/patch-generator.d.ts +203 -0
  147. package/dist/remediation/patch-generator.d.ts.map +1 -0
  148. package/dist/remediation/patch-generator.js +533 -0
  149. package/dist/remediation/patch-generator.js.map +1 -0
  150. package/dist/remediation/remediation-planner.d.ts +262 -0
  151. package/dist/remediation/remediation-planner.d.ts.map +1 -0
  152. package/dist/remediation/remediation-planner.js +531 -0
  153. package/dist/remediation/remediation-planner.js.map +1 -0
  154. package/dist/remediation/secure-code-transformer.d.ts +222 -0
  155. package/dist/remediation/secure-code-transformer.d.ts.map +1 -0
  156. package/dist/remediation/secure-code-transformer.js +625 -0
  157. package/dist/remediation/secure-code-transformer.js.map +1 -0
  158. package/dist/types/fix.d.ts +3 -1
  159. package/dist/types/fix.d.ts.map +1 -1
  160. package/dist/types/index.d.ts +6 -0
  161. package/dist/types/index.d.ts.map +1 -1
  162. package/dist/types/index.js +1 -0
  163. package/dist/types/index.js.map +1 -1
  164. package/dist/types/interprocedural.d.ts +203 -0
  165. package/dist/types/interprocedural.d.ts.map +1 -0
  166. package/dist/types/interprocedural.js +7 -0
  167. package/dist/types/interprocedural.js.map +1 -0
  168. package/dist/types/neuro-symbolic.d.ts +179 -0
  169. package/dist/types/neuro-symbolic.d.ts.map +1 -0
  170. package/dist/types/neuro-symbolic.js +7 -0
  171. package/dist/types/neuro-symbolic.js.map +1 -0
  172. package/dist/types/pipeline.d.ts +173 -0
  173. package/dist/types/pipeline.d.ts.map +1 -0
  174. package/dist/types/pipeline.js +7 -0
  175. package/dist/types/pipeline.js.map +1 -0
  176. package/dist/types/result.d.ts +134 -0
  177. package/dist/types/result.d.ts.map +1 -0
  178. package/dist/types/result.js +25 -0
  179. package/dist/types/result.js.map +1 -0
  180. package/dist/types/vulnerability.d.ts +2 -2
  181. package/dist/types/vulnerability.d.ts.map +1 -1
  182. package/dist/types/zero-day.d.ts +146 -0
  183. package/dist/types/zero-day.d.ts.map +1 -0
  184. package/dist/types/zero-day.js +7 -0
  185. package/dist/types/zero-day.js.map +1 -0
  186. package/package.json +2 -2
@@ -0,0 +1,601 @@
1
+ /**
2
+ * @fileoverview Realtime Security Monitor - File watching with continuous scanning
3
+ * @module @nahisaho/musubix-security/analyzers/monitor/realtime-monitor
4
+ * @trace DES-SEC3-MON-001, REQ-SEC3-MON-001
5
+ */
6
+ import { EventEmitter } from 'node:events';
7
+ import * as fs from 'node:fs';
8
+ import * as path from 'node:path';
9
+ /**
10
+ * Default patterns
11
+ */
12
+ const DEFAULT_INCLUDE_PATTERNS = [
13
+ '**/*.ts',
14
+ '**/*.tsx',
15
+ '**/*.js',
16
+ '**/*.jsx',
17
+ '**/*.py',
18
+ '**/*.java',
19
+ '**/*.cs',
20
+ '**/*.go',
21
+ '**/*.rb',
22
+ '**/*.php',
23
+ '**/*.yml',
24
+ '**/*.yaml',
25
+ '**/*.json',
26
+ '**/*.tf',
27
+ '**/*.hcl',
28
+ ];
29
+ const DEFAULT_EXCLUDE_PATTERNS = [
30
+ '**/node_modules/**',
31
+ '**/.git/**',
32
+ '**/dist/**',
33
+ '**/build/**',
34
+ '**/coverage/**',
35
+ '**/*.min.js',
36
+ '**/*.map',
37
+ '**/vendor/**',
38
+ '**/__pycache__/**',
39
+ '**/target/**',
40
+ ];
41
+ /**
42
+ * Severity order for filtering
43
+ */
44
+ const SEVERITY_ORDER = {
45
+ critical: 4,
46
+ high: 3,
47
+ medium: 2,
48
+ low: 1,
49
+ info: 0,
50
+ };
51
+ /**
52
+ * Realtime Security Monitor
53
+ * @trace DES-SEC3-MON-001
54
+ */
55
+ export class RealtimeMonitor extends EventEmitter {
56
+ config;
57
+ state;
58
+ watchers = [];
59
+ scanQueue = [];
60
+ debounceTimers = new Map();
61
+ tracker;
62
+ isProcessing = false;
63
+ constructor(config) {
64
+ super();
65
+ this.config = {
66
+ watchPaths: config.watchPaths,
67
+ includePatterns: config.includePatterns ?? DEFAULT_INCLUDE_PATTERNS,
68
+ excludePatterns: config.excludePatterns ?? DEFAULT_EXCLUDE_PATTERNS,
69
+ debounceMs: config.debounceMs ?? 500,
70
+ recursive: config.recursive ?? true,
71
+ maxFileSize: config.maxFileSize ?? 1024 * 1024, // 1MB
72
+ scanners: config.scanners ?? [],
73
+ minSeverity: config.minSeverity ?? 'low',
74
+ verbose: config.verbose ?? false,
75
+ };
76
+ this.state = {
77
+ isRunning: false,
78
+ filesWatched: 0,
79
+ scanCount: 0,
80
+ vulnerabilityCount: 0,
81
+ errorCount: 0,
82
+ };
83
+ this.tracker = {
84
+ vulnerabilities: new Map(),
85
+ lastScan: new Map(),
86
+ };
87
+ }
88
+ /**
89
+ * Start monitoring
90
+ * @trace REQ-SEC3-MON-001
91
+ */
92
+ async start() {
93
+ if (this.state.isRunning) {
94
+ throw new Error('Monitor is already running');
95
+ }
96
+ this.state.isRunning = true;
97
+ this.state.startTime = new Date();
98
+ this.state.filesWatched = 0;
99
+ // Setup watchers for each path
100
+ for (const watchPath of this.config.watchPaths) {
101
+ await this.setupWatcher(watchPath);
102
+ }
103
+ this.emitEvent('start', { message: `Started monitoring ${this.state.filesWatched} files` });
104
+ // Process initial scan of existing files
105
+ await this.performInitialScan();
106
+ }
107
+ /**
108
+ * Stop monitoring
109
+ */
110
+ async stop() {
111
+ if (!this.state.isRunning) {
112
+ return;
113
+ }
114
+ // Clear all timers
115
+ for (const timer of this.debounceTimers.values()) {
116
+ clearTimeout(timer);
117
+ }
118
+ this.debounceTimers.clear();
119
+ // Close all watchers
120
+ for (const watcher of this.watchers) {
121
+ watcher.close();
122
+ }
123
+ this.watchers = [];
124
+ this.state.isRunning = false;
125
+ this.emitEvent('stop', { message: 'Stopped monitoring' });
126
+ }
127
+ /**
128
+ * Get current state
129
+ */
130
+ getState() {
131
+ return { ...this.state };
132
+ }
133
+ /**
134
+ * Get current vulnerabilities
135
+ */
136
+ getCurrentVulnerabilities() {
137
+ return new Map(this.tracker.vulnerabilities);
138
+ }
139
+ /**
140
+ * Get all vulnerabilities as flat array
141
+ */
142
+ getAllVulnerabilities() {
143
+ const all = [];
144
+ for (const vulns of this.tracker.vulnerabilities.values()) {
145
+ all.push(...vulns);
146
+ }
147
+ return all;
148
+ }
149
+ /**
150
+ * Add scanner function
151
+ */
152
+ addScanner(scanner) {
153
+ this.config.scanners.push(scanner);
154
+ }
155
+ /**
156
+ * Remove scanner function
157
+ */
158
+ removeScanner(scanner) {
159
+ const index = this.config.scanners.indexOf(scanner);
160
+ if (index !== -1) {
161
+ this.config.scanners.splice(index, 1);
162
+ }
163
+ }
164
+ /**
165
+ * Force scan a specific file
166
+ */
167
+ async scanFile(filePath) {
168
+ const absolutePath = path.resolve(filePath);
169
+ if (!fs.existsSync(absolutePath)) {
170
+ throw new Error(`File not found: ${absolutePath}`);
171
+ }
172
+ return this.performScan(absolutePath);
173
+ }
174
+ /**
175
+ * Setup watcher for a directory
176
+ */
177
+ async setupWatcher(watchPath) {
178
+ const absolutePath = path.resolve(watchPath);
179
+ if (!fs.existsSync(absolutePath)) {
180
+ this.log(`Path does not exist: ${absolutePath}`);
181
+ return;
182
+ }
183
+ const stats = fs.statSync(absolutePath);
184
+ if (stats.isFile()) {
185
+ this.watchFile(absolutePath);
186
+ }
187
+ else if (stats.isDirectory()) {
188
+ await this.watchDirectory(absolutePath);
189
+ }
190
+ }
191
+ /**
192
+ * Watch a single file
193
+ */
194
+ watchFile(filePath) {
195
+ try {
196
+ const watcher = fs.watch(filePath, { persistent: true }, (eventType) => {
197
+ if (eventType === 'change') {
198
+ this.handleFileChange(filePath, 'change');
199
+ }
200
+ });
201
+ this.watchers.push(watcher);
202
+ this.state.filesWatched++;
203
+ }
204
+ catch (error) {
205
+ this.handleError(error, `Failed to watch file: ${filePath}`);
206
+ }
207
+ }
208
+ /**
209
+ * Watch a directory recursively
210
+ */
211
+ async watchDirectory(dirPath) {
212
+ try {
213
+ const watcher = fs.watch(dirPath, { recursive: this.config.recursive, persistent: true }, (eventType, filename) => {
214
+ if (!filename)
215
+ return;
216
+ const fullPath = path.join(dirPath, filename);
217
+ // Check if file matches patterns
218
+ if (!this.shouldProcessFile(fullPath))
219
+ return;
220
+ if (eventType === 'change' || eventType === 'rename') {
221
+ // Check if file exists (rename could be delete)
222
+ if (fs.existsSync(fullPath)) {
223
+ const stats = fs.statSync(fullPath);
224
+ if (stats.isFile()) {
225
+ this.handleFileChange(fullPath, eventType === 'rename' ? 'add' : 'change');
226
+ }
227
+ }
228
+ else {
229
+ this.handleFileRemove(fullPath);
230
+ }
231
+ }
232
+ });
233
+ this.watchers.push(watcher);
234
+ // Count files in directory
235
+ await this.countFiles(dirPath);
236
+ }
237
+ catch (error) {
238
+ this.handleError(error, `Failed to watch directory: ${dirPath}`);
239
+ }
240
+ }
241
+ /**
242
+ * Count files in directory
243
+ */
244
+ async countFiles(dirPath) {
245
+ const entries = fs.readdirSync(dirPath, { withFileTypes: true });
246
+ for (const entry of entries) {
247
+ const fullPath = path.join(dirPath, entry.name);
248
+ if (entry.isDirectory() && this.config.recursive) {
249
+ // Skip excluded directories
250
+ if (!this.isExcluded(fullPath)) {
251
+ await this.countFiles(fullPath);
252
+ }
253
+ }
254
+ else if (entry.isFile() && this.shouldProcessFile(fullPath)) {
255
+ this.state.filesWatched++;
256
+ }
257
+ }
258
+ }
259
+ /**
260
+ * Handle file change event
261
+ */
262
+ handleFileChange(filePath, changeType) {
263
+ // Clear existing debounce timer
264
+ const existingTimer = this.debounceTimers.get(filePath);
265
+ if (existingTimer) {
266
+ clearTimeout(existingTimer);
267
+ }
268
+ // Set new debounce timer
269
+ const timer = setTimeout(() => {
270
+ this.debounceTimers.delete(filePath);
271
+ this.queueScan(filePath, changeType);
272
+ }, this.config.debounceMs);
273
+ this.debounceTimers.set(filePath, timer);
274
+ this.emitEvent(changeType === 'add' ? 'file-add' : 'file-change', { file: filePath });
275
+ }
276
+ /**
277
+ * Handle file removal
278
+ */
279
+ handleFileRemove(filePath) {
280
+ // Clear debounce timer if exists
281
+ const timer = this.debounceTimers.get(filePath);
282
+ if (timer) {
283
+ clearTimeout(timer);
284
+ this.debounceTimers.delete(filePath);
285
+ }
286
+ // Check for resolved vulnerabilities
287
+ const previousVulns = this.tracker.vulnerabilities.get(filePath) ?? [];
288
+ if (previousVulns.length > 0) {
289
+ this.tracker.vulnerabilities.delete(filePath);
290
+ this.state.vulnerabilityCount -= previousVulns.length;
291
+ for (const vuln of previousVulns) {
292
+ this.emitEvent('vulnerability-resolved', { vulnerability: vuln, file: filePath });
293
+ }
294
+ }
295
+ this.tracker.lastScan.delete(filePath);
296
+ this.emitEvent('file-remove', { file: filePath });
297
+ }
298
+ /**
299
+ * Queue file for scanning
300
+ */
301
+ queueScan(filePath, changeType) {
302
+ this.scanQueue.push({
303
+ filePath,
304
+ changeType,
305
+ timestamp: new Date(),
306
+ });
307
+ this.processQueue();
308
+ }
309
+ /**
310
+ * Process scan queue
311
+ */
312
+ async processQueue() {
313
+ if (this.isProcessing || this.scanQueue.length === 0) {
314
+ return;
315
+ }
316
+ this.isProcessing = true;
317
+ while (this.scanQueue.length > 0) {
318
+ const item = this.scanQueue.shift();
319
+ try {
320
+ await this.performScan(item.filePath);
321
+ }
322
+ catch (error) {
323
+ this.handleError(error, `Scan failed: ${item.filePath}`);
324
+ }
325
+ }
326
+ this.isProcessing = false;
327
+ }
328
+ /**
329
+ * Perform scan on a file
330
+ */
331
+ async performScan(filePath) {
332
+ // Check file size
333
+ const stats = fs.statSync(filePath);
334
+ if (stats.size > this.config.maxFileSize) {
335
+ this.log(`Skipping large file: ${filePath} (${stats.size} bytes)`);
336
+ return [];
337
+ }
338
+ const content = fs.readFileSync(filePath, 'utf-8');
339
+ this.emitEvent('scan-start', { file: filePath });
340
+ this.state.scanCount++;
341
+ const allVulns = [];
342
+ // Run all scanners
343
+ for (const scanner of this.config.scanners) {
344
+ try {
345
+ const vulns = await scanner(filePath, content);
346
+ allVulns.push(...vulns);
347
+ }
348
+ catch (error) {
349
+ this.handleError(error, `Scanner failed on: ${filePath}`);
350
+ }
351
+ }
352
+ // Filter by severity
353
+ const filteredVulns = allVulns.filter(v => SEVERITY_ORDER[v.severity] >= SEVERITY_ORDER[this.config.minSeverity]);
354
+ // Track vulnerability changes
355
+ const previousVulns = this.tracker.vulnerabilities.get(filePath) ?? [];
356
+ const previousIds = new Set(previousVulns.map(v => v.id));
357
+ const currentIds = new Set(filteredVulns.map(v => v.id));
358
+ // Detect new vulnerabilities
359
+ for (const vuln of filteredVulns) {
360
+ if (!previousIds.has(vuln.id)) {
361
+ this.state.vulnerabilityCount++;
362
+ this.emitEvent('vulnerability-found', { vulnerability: vuln, file: filePath });
363
+ }
364
+ }
365
+ // Detect resolved vulnerabilities
366
+ for (const vuln of previousVulns) {
367
+ if (!currentIds.has(vuln.id)) {
368
+ this.state.vulnerabilityCount--;
369
+ this.emitEvent('vulnerability-resolved', { vulnerability: vuln, file: filePath });
370
+ }
371
+ }
372
+ // Update tracker
373
+ this.tracker.vulnerabilities.set(filePath, filteredVulns);
374
+ this.tracker.lastScan.set(filePath, new Date());
375
+ this.state.lastScanTime = new Date();
376
+ this.emitEvent('scan-complete', {
377
+ file: filePath,
378
+ scanResult: {
379
+ scannedAt: new Date(),
380
+ filesScanned: 1,
381
+ vulnerabilities: filteredVulns,
382
+ errors: [],
383
+ summary: {
384
+ critical: filteredVulns.filter(v => v.severity === 'critical').length,
385
+ high: filteredVulns.filter(v => v.severity === 'high').length,
386
+ medium: filteredVulns.filter(v => v.severity === 'medium').length,
387
+ low: filteredVulns.filter(v => v.severity === 'low').length,
388
+ info: filteredVulns.filter(v => v.severity === 'info').length,
389
+ total: filteredVulns.length,
390
+ },
391
+ },
392
+ });
393
+ return filteredVulns;
394
+ }
395
+ /**
396
+ * Perform initial scan of all files
397
+ */
398
+ async performInitialScan() {
399
+ for (const watchPath of this.config.watchPaths) {
400
+ await this.scanDirectory(watchPath);
401
+ }
402
+ }
403
+ /**
404
+ * Scan directory recursively
405
+ */
406
+ async scanDirectory(dirPath) {
407
+ const absolutePath = path.resolve(dirPath);
408
+ if (!fs.existsSync(absolutePath))
409
+ return;
410
+ const stats = fs.statSync(absolutePath);
411
+ if (stats.isFile() && this.shouldProcessFile(absolutePath)) {
412
+ this.queueScan(absolutePath, 'add');
413
+ return;
414
+ }
415
+ if (!stats.isDirectory())
416
+ return;
417
+ const entries = fs.readdirSync(absolutePath, { withFileTypes: true });
418
+ for (const entry of entries) {
419
+ const fullPath = path.join(absolutePath, entry.name);
420
+ if (entry.isDirectory() && this.config.recursive && !this.isExcluded(fullPath)) {
421
+ await this.scanDirectory(fullPath);
422
+ }
423
+ else if (entry.isFile() && this.shouldProcessFile(fullPath)) {
424
+ this.queueScan(fullPath, 'add');
425
+ }
426
+ }
427
+ }
428
+ /**
429
+ * Check if file should be processed
430
+ */
431
+ shouldProcessFile(filePath) {
432
+ if (this.isExcluded(filePath))
433
+ return false;
434
+ return this.isIncluded(filePath);
435
+ }
436
+ /**
437
+ * Check if file is excluded
438
+ */
439
+ isExcluded(filePath) {
440
+ return this.config.excludePatterns.some(pattern => this.matchGlob(filePath, pattern));
441
+ }
442
+ /**
443
+ * Check if file is included
444
+ */
445
+ isIncluded(filePath) {
446
+ return this.config.includePatterns.some(pattern => this.matchGlob(filePath, pattern));
447
+ }
448
+ /**
449
+ * Simple glob matching
450
+ */
451
+ matchGlob(filePath, pattern) {
452
+ // Convert glob to regex
453
+ const regexPattern = pattern
454
+ .replace(/\*\*/g, '___DOUBLESTAR___')
455
+ .replace(/\*/g, '[^/]*')
456
+ .replace(/___DOUBLESTAR___/g, '.*')
457
+ .replace(/\?/g, '.')
458
+ .replace(/\./g, '\\.');
459
+ const regex = new RegExp(`(^|/)${regexPattern}$`);
460
+ return regex.test(filePath);
461
+ }
462
+ /**
463
+ * Emit monitor event
464
+ */
465
+ emitEvent(type, data) {
466
+ const event = {
467
+ type,
468
+ timestamp: new Date(),
469
+ ...data,
470
+ };
471
+ this.emit(type, event);
472
+ this.emit('event', event);
473
+ }
474
+ /**
475
+ * Handle error
476
+ */
477
+ handleError(error, message) {
478
+ this.state.errorCount++;
479
+ this.emitEvent('error', { error, message });
480
+ this.log(`Error: ${message} - ${error.message}`);
481
+ }
482
+ /**
483
+ * Log message (if verbose)
484
+ */
485
+ log(message) {
486
+ if (this.config.verbose) {
487
+ console.log(`[RealtimeMonitor] ${message}`);
488
+ }
489
+ }
490
+ }
491
+ /**
492
+ * Create realtime monitor instance
493
+ */
494
+ export function createRealtimeMonitor(config) {
495
+ return new RealtimeMonitor(config);
496
+ }
497
+ /**
498
+ * Create monitor with common security scanners
499
+ */
500
+ export async function createSecurityMonitor(watchPaths, options = {}) {
501
+ const monitor = new RealtimeMonitor({
502
+ watchPaths,
503
+ ...options,
504
+ });
505
+ // Add basic pattern-based scanner for common vulnerabilities
506
+ monitor.addScanner(createPatternScanner());
507
+ return monitor;
508
+ }
509
+ /**
510
+ * Create a simple pattern-based scanner
511
+ */
512
+ function createPatternScanner() {
513
+ const patterns = [
514
+ {
515
+ pattern: /eval\s*\(/gi,
516
+ type: 'code-injection',
517
+ severity: 'high',
518
+ message: 'Use of eval() is dangerous and can lead to code injection',
519
+ cwe: ['CWE-94'],
520
+ },
521
+ {
522
+ pattern: /new\s+Function\s*\(/gi,
523
+ type: 'code-injection',
524
+ severity: 'high',
525
+ message: 'Dynamic Function construction can lead to code injection',
526
+ cwe: ['CWE-94'],
527
+ },
528
+ {
529
+ pattern: /innerHTML\s*=/gi,
530
+ type: 'xss',
531
+ severity: 'medium',
532
+ message: 'Setting innerHTML directly can lead to XSS vulnerabilities',
533
+ cwe: ['CWE-79'],
534
+ },
535
+ {
536
+ pattern: /(password|secret|api[_-]?key|token)\s*[=:]\s*['"][^'"]+['"]/gi,
537
+ type: 'hardcoded-secret',
538
+ severity: 'high',
539
+ message: 'Potential hardcoded secret or credential',
540
+ cwe: ['CWE-798'],
541
+ },
542
+ {
543
+ pattern: /https?:\/\/[^\s'"]+\?.*=(process\.env|config)/gi,
544
+ type: 'ssrf',
545
+ severity: 'medium',
546
+ message: 'Potential Server-Side Request Forgery (SSRF) vulnerability',
547
+ cwe: ['CWE-918'],
548
+ },
549
+ {
550
+ pattern: /exec\s*\(\s*[`'"].*\$\{/gi,
551
+ type: 'command-injection',
552
+ severity: 'critical',
553
+ message: 'Potential command injection via string interpolation',
554
+ cwe: ['CWE-78'],
555
+ },
556
+ {
557
+ pattern: /document\.write\s*\(/gi,
558
+ type: 'xss',
559
+ severity: 'medium',
560
+ message: 'document.write can introduce XSS vulnerabilities',
561
+ cwe: ['CWE-79'],
562
+ },
563
+ ];
564
+ return async (filePath, content) => {
565
+ const vulnerabilities = [];
566
+ const lines = content.split('\n');
567
+ for (const { pattern, type, severity, message, cwe } of patterns) {
568
+ let match;
569
+ pattern.lastIndex = 0;
570
+ while ((match = pattern.exec(content)) !== null) {
571
+ // Find line number
572
+ const beforeMatch = content.substring(0, match.index);
573
+ const lineNumber = beforeMatch.split('\n').length;
574
+ const line = lines[lineNumber - 1] ?? '';
575
+ const column = match.index - beforeMatch.lastIndexOf('\n') - 1;
576
+ vulnerabilities.push({
577
+ id: `${type}-${filePath}-${lineNumber}-${column}`,
578
+ type: type,
579
+ severity,
580
+ cwes: cwe,
581
+ owasp: [],
582
+ location: {
583
+ file: filePath,
584
+ startLine: lineNumber,
585
+ endLine: lineNumber,
586
+ startColumn: column,
587
+ endColumn: column + match[0].length,
588
+ },
589
+ description: message,
590
+ recommendation: `Review and fix the ${type} issue at line ${lineNumber}`,
591
+ confidence: 0.7,
592
+ ruleId: `PATTERN-${type.toUpperCase()}`,
593
+ codeSnippet: line.trim(),
594
+ detectedAt: new Date(),
595
+ });
596
+ }
597
+ }
598
+ return vulnerabilities;
599
+ };
600
+ }
601
+ //# sourceMappingURL=realtime-monitor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"realtime-monitor.js","sourceRoot":"","sources":["../../../src/analyzers/monitor/realtime-monitor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview SAST Analyzers exports
3
+ * @module @nahisaho/musubix-security/analyzers/sast
4
+ */
5
+ export { ZeroDayDetector, createZeroDayDetector, type ZeroDayResult, type ZeroDayVulnerability, type PatternDeviation, type PatternContext, type RiskAssessment, type ZeroDayOptions, type CodePattern, type PatternSignature, } from './zero-day-detector.js';
6
+ export { InterproceduralAnalyzer, createInterproceduralAnalyzer, type InterproceduralResult, type InterproceduralVulnerability, type CallGraph, type CallGraphNode, type CallGraphEdge, type ParameterInfo, type ArgumentBinding, type DataFlowPath, type DataFlowNode, type AnalysisMetrics, type InterproceduralOptions, type TaintSourceDef, type TaintSinkDef, type SanitizerDef, } from './interprocedural-analyzer.js';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/analyzers/sast/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,gBAAgB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,uBAAuB,EACvB,6BAA6B,EAC7B,KAAK,qBAAqB,EAC1B,KAAK,4BAA4B,EACjC,KAAK,SAAS,EACd,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,aAAa,EAClB,KAAK,eAAe,EACpB,KAAK,YAAY,EACjB,KAAK,YAAY,EACjB,KAAK,eAAe,EACpB,KAAK,sBAAsB,EAC3B,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,YAAY,GAClB,MAAM,+BAA+B,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @fileoverview SAST Analyzers exports
3
+ * @module @nahisaho/musubix-security/analyzers/sast
4
+ */
5
+ export { ZeroDayDetector, createZeroDayDetector, } from './zero-day-detector.js';
6
+ export { InterproceduralAnalyzer, createInterproceduralAnalyzer, } from './interprocedural-analyzer.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/analyzers/sast/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,eAAe,EACf,qBAAqB,GAStB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EACL,uBAAuB,EACvB,6BAA6B,GAe9B,MAAM,+BAA+B,CAAC"}