@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,276 @@
1
+ /**
2
+ * @fileoverview Interprocedural Analyzer for Cross-Function Data Flow Analysis
3
+ * @module @nahisaho/musubix-security/analyzers/sast/interprocedural-analyzer
4
+ * @trace DES-SEC2-SAST-004, REQ-SEC2-SAST-004
5
+ */
6
+ import type { Vulnerability, Severity, SourceLocation } from '../../types/vulnerability.js';
7
+ /**
8
+ * Interprocedural analysis result
9
+ */
10
+ export interface InterproceduralResult {
11
+ vulnerabilities: InterproceduralVulnerability[];
12
+ callGraph: CallGraph;
13
+ dataFlowPaths: DataFlowPath[];
14
+ analysisMetrics: AnalysisMetrics;
15
+ }
16
+ /**
17
+ * Interprocedural vulnerability
18
+ */
19
+ export interface InterproceduralVulnerability {
20
+ id: string;
21
+ type: 'taint-propagation' | 'privilege-escalation' | 'data-leakage' | 'injection';
22
+ severity: Severity;
23
+ entryPoint: SourceLocation;
24
+ sinkPoint: SourceLocation;
25
+ dataFlowPath: DataFlowPath;
26
+ description: string;
27
+ recommendation: string;
28
+ confidence: number;
29
+ }
30
+ /**
31
+ * Call graph
32
+ */
33
+ export interface CallGraph {
34
+ nodes: CallGraphNode[];
35
+ edges: CallGraphEdge[];
36
+ entryPoints: string[];
37
+ sinks: string[];
38
+ }
39
+ /**
40
+ * Call graph node
41
+ */
42
+ export interface CallGraphNode {
43
+ id: string;
44
+ name: string;
45
+ file: string;
46
+ line: number;
47
+ type: 'function' | 'method' | 'constructor' | 'callback' | 'anonymous';
48
+ isAsync: boolean;
49
+ parameters: ParameterInfo[];
50
+ returnType?: string;
51
+ modifiers: string[];
52
+ }
53
+ /**
54
+ * Call graph edge
55
+ */
56
+ export interface CallGraphEdge {
57
+ source: string;
58
+ target: string;
59
+ callSite: SourceLocation;
60
+ callType: 'direct' | 'indirect' | 'virtual' | 'callback';
61
+ arguments: ArgumentBinding[];
62
+ }
63
+ /**
64
+ * Parameter information
65
+ */
66
+ export interface ParameterInfo {
67
+ name: string;
68
+ index: number;
69
+ type?: string;
70
+ isTainted: boolean;
71
+ taintSource?: string;
72
+ }
73
+ /**
74
+ * Argument binding
75
+ */
76
+ export interface ArgumentBinding {
77
+ parameterIndex: number;
78
+ expression: string;
79
+ isTainted: boolean;
80
+ taintSource?: string;
81
+ }
82
+ /**
83
+ * Data flow path
84
+ */
85
+ export interface DataFlowPath {
86
+ id: string;
87
+ source: DataFlowNode;
88
+ sink: DataFlowNode;
89
+ intermediateNodes: DataFlowNode[];
90
+ taintType: string;
91
+ confidence: number;
92
+ isSanitized: boolean;
93
+ sanitizationPoint?: DataFlowNode;
94
+ }
95
+ /**
96
+ * Data flow node
97
+ */
98
+ export interface DataFlowNode {
99
+ id: string;
100
+ expression: string;
101
+ location: SourceLocation;
102
+ nodeType: 'source' | 'sink' | 'transform' | 'sanitizer' | 'propagator';
103
+ taintState: 'tainted' | 'sanitized' | 'unknown';
104
+ }
105
+ /**
106
+ * Analysis metrics
107
+ */
108
+ export interface AnalysisMetrics {
109
+ totalFunctions: number;
110
+ totalCallSites: number;
111
+ analysisDepth: number;
112
+ executionTime: number;
113
+ nodesVisited: number;
114
+ pathsAnalyzed: number;
115
+ }
116
+ /**
117
+ * Analysis options
118
+ */
119
+ export interface InterproceduralOptions {
120
+ /** Maximum call depth to analyze */
121
+ maxDepth?: number;
122
+ /** Analysis timeout in milliseconds */
123
+ timeout?: number;
124
+ /** Maximum nodes to visit */
125
+ maxNodes?: number;
126
+ /** Enable context-sensitive analysis */
127
+ contextSensitive?: boolean;
128
+ /** Track implicit data flows */
129
+ trackImplicitFlows?: boolean;
130
+ /** Custom source definitions */
131
+ customSources?: TaintSourceDef[];
132
+ /** Custom sink definitions */
133
+ customSinks?: TaintSinkDef[];
134
+ /** Custom sanitizer definitions */
135
+ customSanitizers?: SanitizerDef[];
136
+ }
137
+ /**
138
+ * Taint source definition
139
+ */
140
+ export interface TaintSourceDef {
141
+ pattern: RegExp;
142
+ type: string;
143
+ description: string;
144
+ }
145
+ /**
146
+ * Taint sink definition
147
+ */
148
+ export interface TaintSinkDef {
149
+ pattern: RegExp;
150
+ type: string;
151
+ vulnerabilityType: string;
152
+ severity: Severity;
153
+ }
154
+ /**
155
+ * Sanitizer definition
156
+ */
157
+ export interface SanitizerDef {
158
+ pattern: RegExp;
159
+ sanitizes: string[];
160
+ }
161
+ /**
162
+ * Interprocedural Analyzer
163
+ * @trace DES-SEC2-SAST-004
164
+ */
165
+ export declare class InterproceduralAnalyzer {
166
+ private options;
167
+ private sources;
168
+ private sinks;
169
+ private sanitizers;
170
+ private callGraph;
171
+ private visitedNodes;
172
+ private analysisStartTime;
173
+ constructor(options?: InterproceduralOptions);
174
+ /**
175
+ * Analyze code for interprocedural vulnerabilities
176
+ * @trace REQ-SEC2-SAST-004
177
+ */
178
+ analyze(code: string, filePath: string): Promise<InterproceduralResult>;
179
+ /**
180
+ * Build call graph from code
181
+ */
182
+ buildCallGraph(code: string, filePath: string): CallGraph;
183
+ /**
184
+ * Track data flow across functions
185
+ */
186
+ trackDataFlow(code: string, filePath: string): DataFlowPath[];
187
+ /**
188
+ * Detect vulnerabilities from data flow paths
189
+ */
190
+ private detectVulnerabilities;
191
+ /**
192
+ * Find taint sources in code
193
+ */
194
+ private findTaintSources;
195
+ /**
196
+ * Find taint sinks in code
197
+ */
198
+ private findTaintSinks;
199
+ /**
200
+ * Trace flow from source to sinks
201
+ */
202
+ private traceFlowToSinks;
203
+ /**
204
+ * Find intermediate nodes between source and sink
205
+ */
206
+ private findIntermediateNodes;
207
+ /**
208
+ * Find sanitization point in intermediate nodes
209
+ */
210
+ private findSanitizationPoint;
211
+ /**
212
+ * Calculate path confidence
213
+ */
214
+ private calculatePathConfidence;
215
+ /**
216
+ * Check if analysis should stop
217
+ */
218
+ private shouldStopAnalysis;
219
+ /**
220
+ * Determine node type
221
+ */
222
+ private determineNodeType;
223
+ /**
224
+ * Parse function parameters
225
+ */
226
+ private parseParameters;
227
+ /**
228
+ * Extract function modifiers
229
+ */
230
+ private extractModifiers;
231
+ /**
232
+ * Check if function is an entry point
233
+ */
234
+ private isEntryPoint;
235
+ /**
236
+ * Check if function is a sink
237
+ */
238
+ private isSinkFunction;
239
+ /**
240
+ * Extract function body
241
+ */
242
+ private extractFunctionBody;
243
+ /**
244
+ * Determine call type
245
+ */
246
+ private determineCallType;
247
+ /**
248
+ * Parse arguments at call site
249
+ */
250
+ private parseArguments;
251
+ /**
252
+ * Generate vulnerability description
253
+ */
254
+ private generateDescription;
255
+ /**
256
+ * Generate recommendation
257
+ */
258
+ private generateRecommendation;
259
+ /**
260
+ * Convert results to standard vulnerability format
261
+ */
262
+ toVulnerabilities(result: InterproceduralResult): Vulnerability[];
263
+ /**
264
+ * Get CWE IDs for vulnerability type
265
+ */
266
+ private getCWEsForType;
267
+ /**
268
+ * Get OWASP IDs for vulnerability type
269
+ */
270
+ private getOWASPForType;
271
+ }
272
+ /**
273
+ * Create interprocedural analyzer instance
274
+ */
275
+ export declare function createInterproceduralAnalyzer(options?: InterproceduralOptions): InterproceduralAnalyzer;
276
+ //# sourceMappingURL=interprocedural-analyzer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interprocedural-analyzer.d.ts","sourceRoot":"","sources":["../../../src/analyzers/sast/interprocedural-analyzer.ts"],"names":[],"mappings":"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"}