@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,639 @@
1
+ /**
2
+ * @fileoverview Threat Intelligence Integration
3
+ * @module @nahisaho/musubix-security/intelligence/threat-intelligence
4
+ *
5
+ * Provides threat intelligence feed integration, IOC matching,
6
+ * and threat context enrichment for vulnerability findings.
7
+ */
8
+ // ============================================================================
9
+ // Built-in IOC Patterns
10
+ // ============================================================================
11
+ const BUILTIN_IOC_PATTERNS = [
12
+ // Known malicious patterns in code
13
+ {
14
+ id: 'IOC-CRYPTO-MINER-001',
15
+ type: 'malware-signature',
16
+ value: 'coinhive.min.js',
17
+ severity: 'high',
18
+ confidence: 'confirmed',
19
+ firstSeen: new Date('2017-09-01'),
20
+ lastSeen: new Date(),
21
+ source: 'builtin',
22
+ tags: ['cryptominer', 'malware', 'javascript'],
23
+ threatActors: [],
24
+ campaigns: ['Cryptojacking'],
25
+ techniques: ['T1496'],
26
+ description: 'Coinhive cryptocurrency miner script',
27
+ metadata: {},
28
+ },
29
+ {
30
+ id: 'IOC-WEBSHELL-001',
31
+ type: 'malware-signature',
32
+ value: 'c99shell',
33
+ severity: 'critical',
34
+ confidence: 'confirmed',
35
+ firstSeen: new Date('2010-01-01'),
36
+ lastSeen: new Date(),
37
+ source: 'builtin',
38
+ tags: ['webshell', 'backdoor', 'php'],
39
+ threatActors: [],
40
+ campaigns: [],
41
+ techniques: ['T1505.003'],
42
+ description: 'C99 PHP webshell',
43
+ metadata: {},
44
+ },
45
+ {
46
+ id: 'IOC-WEBSHELL-002',
47
+ type: 'malware-signature',
48
+ value: 'r57shell',
49
+ severity: 'critical',
50
+ confidence: 'confirmed',
51
+ firstSeen: new Date('2008-01-01'),
52
+ lastSeen: new Date(),
53
+ source: 'builtin',
54
+ tags: ['webshell', 'backdoor', 'php'],
55
+ threatActors: [],
56
+ campaigns: [],
57
+ techniques: ['T1505.003'],
58
+ description: 'R57 PHP webshell',
59
+ metadata: {},
60
+ },
61
+ {
62
+ id: 'IOC-MALICIOUS-IP-PATTERN-001',
63
+ type: 'attack-pattern',
64
+ value: '0\\.0\\.0\\.0|127\\.0\\.0\\.1.*bind',
65
+ severity: 'medium',
66
+ confidence: 'medium',
67
+ firstSeen: new Date('2020-01-01'),
68
+ lastSeen: new Date(),
69
+ source: 'builtin',
70
+ tags: ['bind-shell', 'reverse-shell'],
71
+ threatActors: [],
72
+ campaigns: [],
73
+ techniques: ['T1059'],
74
+ description: 'Potential bind shell pattern',
75
+ metadata: { isRegex: true },
76
+ },
77
+ {
78
+ id: 'IOC-EXFIL-001',
79
+ type: 'attack-pattern',
80
+ value: 'base64.*\\|.*curl|wget.*base64',
81
+ severity: 'high',
82
+ confidence: 'medium',
83
+ firstSeen: new Date('2019-01-01'),
84
+ lastSeen: new Date(),
85
+ source: 'builtin',
86
+ tags: ['data-exfiltration', 'encoding'],
87
+ threatActors: [],
88
+ campaigns: [],
89
+ techniques: ['T1041', 'T1132'],
90
+ description: 'Base64 encoded data exfiltration pattern',
91
+ metadata: { isRegex: true },
92
+ },
93
+ ];
94
+ // Known malicious domains (sample)
95
+ const MALICIOUS_DOMAINS = [
96
+ 'evil.com',
97
+ 'malware.net',
98
+ 'phishing-site.com',
99
+ 'cryptominer.xyz',
100
+ ];
101
+ // Known vulnerable CVEs with active exploits
102
+ const ACTIVELY_EXPLOITED_CVES = new Set([
103
+ 'CVE-2021-44228', // Log4Shell
104
+ 'CVE-2021-26855', // ProxyLogon
105
+ 'CVE-2021-34527', // PrintNightmare
106
+ 'CVE-2021-27065', // Exchange
107
+ 'CVE-2020-1472', // Zerologon
108
+ 'CVE-2019-19781', // Citrix ADC
109
+ 'CVE-2019-11510', // Pulse Secure
110
+ 'CVE-2018-13379', // FortiOS
111
+ 'CVE-2017-11882', // Equation Editor
112
+ 'CVE-2017-0144', // EternalBlue
113
+ ]);
114
+ // ============================================================================
115
+ // ThreatIntelligence Class
116
+ // ============================================================================
117
+ /**
118
+ * Threat Intelligence service for IOC matching and threat enrichment
119
+ */
120
+ export class ThreatIntelligence {
121
+ options;
122
+ feeds = new Map();
123
+ iocCache = new Map();
124
+ lastUpdate = new Date(0);
125
+ updateTimer;
126
+ constructor(options = {}) {
127
+ this.options = {
128
+ feeds: options.feeds ?? [],
129
+ cacheTTL: options.cacheTTL ?? 60,
130
+ autoUpdate: options.autoUpdate ?? false,
131
+ updateInterval: options.updateInterval ?? 60,
132
+ matchThreshold: options.matchThreshold ?? 0.7,
133
+ enableCVEEnrichment: options.enableCVEEnrichment ?? true,
134
+ enableMitreMapping: options.enableMitreMapping ?? true,
135
+ };
136
+ // Load built-in IOCs
137
+ this.loadBuiltinIOCs();
138
+ // Load configured feeds
139
+ for (const feed of this.options.feeds) {
140
+ this.feeds.set(feed.id, feed);
141
+ }
142
+ // Start auto-update if enabled
143
+ if (this.options.autoUpdate) {
144
+ this.startAutoUpdate();
145
+ }
146
+ }
147
+ /**
148
+ * Load built-in IOCs
149
+ */
150
+ loadBuiltinIOCs() {
151
+ for (const ioc of BUILTIN_IOC_PATTERNS) {
152
+ this.iocCache.set(ioc.id, ioc);
153
+ }
154
+ // Add malicious domains
155
+ for (const domain of MALICIOUS_DOMAINS) {
156
+ const ioc = {
157
+ id: `IOC-DOMAIN-${domain.replace(/\./g, '-').toUpperCase()}`,
158
+ type: 'domain',
159
+ value: domain,
160
+ severity: 'high',
161
+ confidence: 'high',
162
+ firstSeen: new Date('2020-01-01'),
163
+ lastSeen: new Date(),
164
+ source: 'builtin',
165
+ tags: ['malicious', 'domain'],
166
+ threatActors: [],
167
+ campaigns: [],
168
+ techniques: [],
169
+ metadata: {},
170
+ };
171
+ this.iocCache.set(ioc.id, ioc);
172
+ }
173
+ }
174
+ /**
175
+ * Start auto-update timer
176
+ */
177
+ startAutoUpdate() {
178
+ this.updateTimer = setInterval(() => this.updateFeeds(), this.options.updateInterval * 60 * 1000);
179
+ }
180
+ /**
181
+ * Stop auto-update timer
182
+ */
183
+ stopAutoUpdate() {
184
+ if (this.updateTimer) {
185
+ clearInterval(this.updateTimer);
186
+ this.updateTimer = undefined;
187
+ }
188
+ }
189
+ /**
190
+ * Add a threat feed
191
+ */
192
+ addFeed(feed) {
193
+ this.feeds.set(feed.id, feed);
194
+ }
195
+ /**
196
+ * Remove a threat feed
197
+ */
198
+ removeFeed(feedId) {
199
+ return this.feeds.delete(feedId);
200
+ }
201
+ /**
202
+ * Get all configured feeds
203
+ */
204
+ getFeeds() {
205
+ return Array.from(this.feeds.values());
206
+ }
207
+ /**
208
+ * Update all feeds
209
+ */
210
+ async updateFeeds() {
211
+ let updated = 0;
212
+ let failed = 0;
213
+ for (const feed of this.feeds.values()) {
214
+ if (!feed.enabled)
215
+ continue;
216
+ try {
217
+ await this.updateFeed(feed);
218
+ updated++;
219
+ }
220
+ catch {
221
+ failed++;
222
+ }
223
+ }
224
+ this.lastUpdate = new Date();
225
+ return { updated, failed };
226
+ }
227
+ /**
228
+ * Update a single feed
229
+ */
230
+ async updateFeed(feed) {
231
+ // In a real implementation, this would fetch from the feed URL
232
+ // For now, we simulate the update
233
+ feed.lastUpdated = new Date();
234
+ }
235
+ /**
236
+ * Add an IOC
237
+ */
238
+ addIOC(ioc) {
239
+ this.iocCache.set(ioc.id, ioc);
240
+ }
241
+ /**
242
+ * Get an IOC by ID
243
+ */
244
+ getIOC(id) {
245
+ return this.iocCache.get(id);
246
+ }
247
+ /**
248
+ * Get all IOCs
249
+ */
250
+ getAllIOCs() {
251
+ return Array.from(this.iocCache.values());
252
+ }
253
+ /**
254
+ * Get IOCs by type
255
+ */
256
+ getIOCsByType(type) {
257
+ return this.getAllIOCs().filter(ioc => ioc.type === type);
258
+ }
259
+ /**
260
+ * Search IOCs
261
+ */
262
+ searchIOCs(query) {
263
+ const lowerQuery = query.toLowerCase();
264
+ return this.getAllIOCs().filter(ioc => ioc.value.toLowerCase().includes(lowerQuery) ||
265
+ ioc.tags.some(tag => tag.toLowerCase().includes(lowerQuery)) ||
266
+ ioc.description?.toLowerCase().includes(lowerQuery));
267
+ }
268
+ /**
269
+ * Match code against IOCs
270
+ */
271
+ matchCode(code, filePath) {
272
+ const matches = [];
273
+ const lines = code.split('\n');
274
+ for (const ioc of this.iocCache.values()) {
275
+ // Skip expired IOCs
276
+ if (ioc.expiresAt && ioc.expiresAt < new Date())
277
+ continue;
278
+ const isRegex = ioc.metadata.isRegex === true;
279
+ for (let lineNum = 0; lineNum < lines.length; lineNum++) {
280
+ const line = lines[lineNum];
281
+ let matched = false;
282
+ let matchType = 'exact';
283
+ let confidence = 1.0;
284
+ if (isRegex) {
285
+ try {
286
+ const regex = new RegExp(ioc.value, 'i');
287
+ matched = regex.test(line);
288
+ matchType = 'pattern';
289
+ confidence = 0.8;
290
+ }
291
+ catch {
292
+ // Invalid regex, skip
293
+ continue;
294
+ }
295
+ }
296
+ else if (ioc.type === 'domain') {
297
+ // Domain matching
298
+ matched = line.toLowerCase().includes(ioc.value.toLowerCase());
299
+ matchType = 'partial';
300
+ confidence = 0.9;
301
+ }
302
+ else {
303
+ // Exact match
304
+ matched = line.includes(ioc.value);
305
+ matchType = 'exact';
306
+ confidence = 1.0;
307
+ }
308
+ if (matched && confidence >= this.options.matchThreshold) {
309
+ matches.push({
310
+ id: `MATCH-${Date.now()}-${Math.random().toString(36).substr(2, 9)}`,
311
+ ioc,
312
+ context: {
313
+ location: {
314
+ file: filePath,
315
+ startLine: lineNum + 1,
316
+ endLine: lineNum + 1,
317
+ startColumn: 0,
318
+ endColumn: line.length,
319
+ },
320
+ codeSnippet: line.trim(),
321
+ matchType,
322
+ confidence,
323
+ },
324
+ matchedAt: new Date(),
325
+ recommendations: this.generateRecommendations(ioc),
326
+ });
327
+ }
328
+ }
329
+ }
330
+ return matches;
331
+ }
332
+ /**
333
+ * Generate recommendations for an IOC match
334
+ */
335
+ generateRecommendations(ioc) {
336
+ const recommendations = [];
337
+ switch (ioc.type) {
338
+ case 'malware-signature':
339
+ recommendations.push('Remove or quarantine the affected file immediately');
340
+ recommendations.push('Scan the entire codebase for related signatures');
341
+ recommendations.push('Review recent commits for the introduction point');
342
+ break;
343
+ case 'domain':
344
+ recommendations.push('Block the domain at network level');
345
+ recommendations.push('Remove all references to this domain');
346
+ recommendations.push('Check for data exfiltration attempts');
347
+ break;
348
+ case 'attack-pattern':
349
+ recommendations.push('Review the code for malicious intent');
350
+ recommendations.push('Check if this is a false positive');
351
+ recommendations.push('Implement input validation if user-controlled');
352
+ break;
353
+ case 'cve':
354
+ recommendations.push('Update the affected dependency');
355
+ recommendations.push('Apply available patches');
356
+ recommendations.push('Implement compensating controls if patch unavailable');
357
+ break;
358
+ default:
359
+ recommendations.push('Investigate the finding');
360
+ recommendations.push('Consult security team');
361
+ }
362
+ if (ioc.severity === 'critical') {
363
+ recommendations.unshift('CRITICAL: Immediate action required');
364
+ }
365
+ return recommendations;
366
+ }
367
+ /**
368
+ * Enrich vulnerability with threat context
369
+ */
370
+ enrichVulnerability(vulnerability) {
371
+ const threats = [];
372
+ let riskMultiplier = 1.0;
373
+ let activelyExploited = false;
374
+ const exploitKits = [];
375
+ const targetedIndustries = [];
376
+ const geographicTargets = [];
377
+ // Check for CVE references
378
+ if (this.options.enableCVEEnrichment) {
379
+ for (const cwe of vulnerability.cwes) {
380
+ // Check if any related CVE is actively exploited
381
+ // In a real implementation, this would query a CVE database
382
+ const relatedCVEs = this.getRelatedCVEs(cwe);
383
+ for (const cve of relatedCVEs) {
384
+ if (ACTIVELY_EXPLOITED_CVES.has(cve)) {
385
+ activelyExploited = true;
386
+ riskMultiplier = Math.max(riskMultiplier, 2.0);
387
+ exploitKits.push('Public exploit available');
388
+ }
389
+ }
390
+ }
391
+ }
392
+ // Map to MITRE ATT&CK
393
+ if (this.options.enableMitreMapping) {
394
+ const techniques = this.mapToMitre(vulnerability.type);
395
+ if (techniques.length > 0) {
396
+ threats.push({
397
+ id: `THREAT-${vulnerability.id}`,
398
+ name: `${vulnerability.type} attack vector`,
399
+ type: 'unknown',
400
+ cves: [],
401
+ mitreTechniques: techniques,
402
+ confidence: 'medium',
403
+ });
404
+ }
405
+ }
406
+ // Adjust risk based on severity
407
+ if (vulnerability.severity === 'critical') {
408
+ riskMultiplier *= 1.5;
409
+ }
410
+ else if (vulnerability.severity === 'high') {
411
+ riskMultiplier *= 1.25;
412
+ }
413
+ // Check IOC matches in the vulnerability location
414
+ const iocMatches = this.iocCache.size > 0;
415
+ if (iocMatches && vulnerability.codeSnippet) {
416
+ const matches = this.matchCode(vulnerability.codeSnippet, vulnerability.location.file);
417
+ if (matches.length > 0) {
418
+ riskMultiplier *= 1.5;
419
+ for (const match of matches) {
420
+ threats.push({
421
+ id: match.id,
422
+ name: match.ioc.description || match.ioc.value,
423
+ type: 'unknown',
424
+ cves: [],
425
+ mitreTechniques: match.ioc.techniques,
426
+ confidence: match.context.confidence >= 0.9 ? 'high' : 'medium',
427
+ });
428
+ }
429
+ }
430
+ }
431
+ // Determine urgency
432
+ let urgency;
433
+ if (activelyExploited || vulnerability.severity === 'critical') {
434
+ urgency = 'immediate';
435
+ }
436
+ else if (vulnerability.severity === 'high' || riskMultiplier > 1.5) {
437
+ urgency = 'high';
438
+ }
439
+ else if (vulnerability.severity === 'medium') {
440
+ urgency = 'medium';
441
+ }
442
+ else {
443
+ urgency = 'low';
444
+ }
445
+ return {
446
+ vulnerabilityId: vulnerability.id,
447
+ threats,
448
+ riskMultiplier,
449
+ activelyExploited,
450
+ exploitKits,
451
+ targetedIndustries,
452
+ geographicTargets,
453
+ urgency,
454
+ };
455
+ }
456
+ /**
457
+ * Get related CVEs for a CWE
458
+ */
459
+ getRelatedCVEs(cwe) {
460
+ // In a real implementation, this would query a CVE database
461
+ // For now, return sample data based on common CWE-CVE mappings
462
+ const cweCveMap = {
463
+ 'CWE-79': ['CVE-2021-41773', 'CVE-2020-11022'], // XSS
464
+ 'CWE-89': ['CVE-2021-27065', 'CVE-2019-2725'], // SQL Injection
465
+ 'CWE-94': ['CVE-2021-44228', 'CVE-2021-45046'], // Code Injection (Log4j)
466
+ 'CWE-22': ['CVE-2021-41773', 'CVE-2021-42013'], // Path Traversal
467
+ 'CWE-287': ['CVE-2021-26855', 'CVE-2020-1472'], // Auth Bypass
468
+ };
469
+ return cweCveMap[cwe] || [];
470
+ }
471
+ /**
472
+ * Map vulnerability type to MITRE ATT&CK techniques
473
+ */
474
+ mapToMitre(vulnerabilityType) {
475
+ const mitreMap = {
476
+ 'xss': ['T1059.007', 'T1185'], // JavaScript, Browser Session Hijacking
477
+ 'sql-injection': ['T1190', 'T1505'], // Exploit Public-Facing App, Server Software
478
+ 'command-injection': ['T1059', 'T1203'], // Command Execution
479
+ 'path-traversal': ['T1083', 'T1005'], // File Discovery, Data from Local System
480
+ 'ssrf': ['T1090', 'T1071'], // Proxy, Application Layer Protocol
481
+ 'xxe': ['T1005', 'T1083'], // Data from Local System
482
+ 'deserialization': ['T1059', 'T1055'], // Command Execution, Process Injection
483
+ 'hardcoded-secret': ['T1552.001', 'T1078'], // Credentials in Files, Valid Accounts
484
+ 'weak-crypto': ['T1600', 'T1040'], // Weaken Encryption, Network Sniffing
485
+ 'insecure-auth': ['T1078', 'T1110'], // Valid Accounts, Brute Force
486
+ };
487
+ return mitreMap[vulnerabilityType] || [];
488
+ }
489
+ /**
490
+ * Check if a CVE is actively exploited
491
+ */
492
+ isActivelyExploited(cve) {
493
+ return ACTIVELY_EXPLOITED_CVES.has(cve);
494
+ }
495
+ /**
496
+ * Get threat statistics
497
+ */
498
+ getStatistics() {
499
+ const byType = {};
500
+ const bySeverity = {};
501
+ for (const ioc of this.iocCache.values()) {
502
+ byType[ioc.type] = (byType[ioc.type] || 0) + 1;
503
+ bySeverity[ioc.severity] = (bySeverity[ioc.severity] || 0) + 1;
504
+ }
505
+ return {
506
+ totalIOCs: this.iocCache.size,
507
+ byType,
508
+ bySeverity,
509
+ feedsActive: Array.from(this.feeds.values()).filter(f => f.enabled).length,
510
+ lastUpdate: this.lastUpdate,
511
+ };
512
+ }
513
+ /**
514
+ * Export IOCs
515
+ */
516
+ exportIOCs(format) {
517
+ const iocs = this.getAllIOCs();
518
+ switch (format) {
519
+ case 'json':
520
+ return JSON.stringify(iocs, null, 2);
521
+ case 'csv': {
522
+ const headers = ['id', 'type', 'value', 'severity', 'confidence', 'source', 'tags'];
523
+ const rows = iocs.map(ioc => [
524
+ ioc.id,
525
+ ioc.type,
526
+ ioc.value,
527
+ ioc.severity,
528
+ ioc.confidence,
529
+ ioc.source,
530
+ ioc.tags.join(';'),
531
+ ]);
532
+ return [headers.join(','), ...rows.map(r => r.join(','))].join('\n');
533
+ }
534
+ case 'stix': {
535
+ // Simplified STIX 2.1 format
536
+ const stixBundle = {
537
+ type: 'bundle',
538
+ id: `bundle--${Date.now()}`,
539
+ objects: iocs.map(ioc => ({
540
+ type: 'indicator',
541
+ id: `indicator--${ioc.id}`,
542
+ created: ioc.firstSeen.toISOString(),
543
+ modified: ioc.lastSeen.toISOString(),
544
+ name: ioc.description || ioc.value,
545
+ pattern: `[${ioc.type}:value = '${ioc.value}']`,
546
+ pattern_type: 'stix',
547
+ valid_from: ioc.firstSeen.toISOString(),
548
+ labels: ioc.tags,
549
+ })),
550
+ };
551
+ return JSON.stringify(stixBundle, null, 2);
552
+ }
553
+ default:
554
+ return JSON.stringify(iocs, null, 2);
555
+ }
556
+ }
557
+ /**
558
+ * Import IOCs
559
+ */
560
+ importIOCs(data, format) {
561
+ let imported = 0;
562
+ try {
563
+ if (format === 'json') {
564
+ const iocs = JSON.parse(data);
565
+ for (const ioc of iocs) {
566
+ if (ioc.id && ioc.type && ioc.value) {
567
+ this.iocCache.set(ioc.id, {
568
+ ...ioc,
569
+ firstSeen: new Date(ioc.firstSeen),
570
+ lastSeen: new Date(ioc.lastSeen),
571
+ expiresAt: ioc.expiresAt ? new Date(ioc.expiresAt) : undefined,
572
+ });
573
+ imported++;
574
+ }
575
+ }
576
+ }
577
+ else if (format === 'csv') {
578
+ const lines = data.split('\n');
579
+ const headers = lines[0].split(',');
580
+ for (let i = 1; i < lines.length; i++) {
581
+ const values = lines[i].split(',');
582
+ if (values.length >= headers.length) {
583
+ const ioc = {
584
+ id: values[0],
585
+ type: values[1],
586
+ value: values[2],
587
+ severity: (values[3] || 'unknown'),
588
+ confidence: (values[4] || 'unknown'),
589
+ source: values[5] || 'import',
590
+ tags: values[6]?.split(';') || [],
591
+ firstSeen: new Date(),
592
+ lastSeen: new Date(),
593
+ threatActors: [],
594
+ campaigns: [],
595
+ techniques: [],
596
+ metadata: {},
597
+ };
598
+ this.iocCache.set(ioc.id, ioc);
599
+ imported++;
600
+ }
601
+ }
602
+ }
603
+ }
604
+ catch {
605
+ // Import failed
606
+ }
607
+ return imported;
608
+ }
609
+ }
610
+ // ============================================================================
611
+ // Factory Functions
612
+ // ============================================================================
613
+ /**
614
+ * Create a ThreatIntelligence instance
615
+ */
616
+ export function createThreatIntelligence(options) {
617
+ return new ThreatIntelligence(options);
618
+ }
619
+ /**
620
+ * Quick IOC check
621
+ */
622
+ export function quickIOCCheck(code, filePath) {
623
+ const ti = createThreatIntelligence();
624
+ return ti.matchCode(code, filePath);
625
+ }
626
+ /**
627
+ * Quick vulnerability enrichment
628
+ */
629
+ export function enrichWithThreatIntel(vulnerability) {
630
+ const ti = createThreatIntelligence();
631
+ return ti.enrichVulnerability(vulnerability);
632
+ }
633
+ /**
634
+ * Check if CVE is actively exploited
635
+ */
636
+ export function isCVEActivelyExploited(cve) {
637
+ return ACTIVELY_EXPLOITED_CVES.has(cve);
638
+ }
639
+ //# sourceMappingURL=threat-intelligence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"threat-intelligence.js","sourceRoot":"","sources":["../../src/intelligence/threat-intelligence.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * @fileoverview Policy module exports
3
+ * @module @nahisaho/musubix-security/policy
4
+ */
5
+ export * from './policy-engine.js';
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/policy/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,oBAAoB,CAAC"}