@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,6 @@
1
+ /**
2
+ * @fileoverview Policy module exports
3
+ * @module @nahisaho/musubix-security/policy
4
+ */
5
+ export * from './policy-engine.js';
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/policy/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,cAAc,oBAAoB,CAAC"}
@@ -0,0 +1,254 @@
1
+ /**
2
+ * @fileoverview Security Policy Engine
3
+ * @module @nahisaho/musubix-security/policy/policy-engine
4
+ *
5
+ * Provides customizable security policy definition, evaluation,
6
+ * and enforcement capabilities.
7
+ */
8
+ import type { ScanResult, Vulnerability, Severity } from '../types/index.js';
9
+ /**
10
+ * Policy rule operator
11
+ */
12
+ export type PolicyOperator = 'equals' | 'not_equals' | 'greater_than' | 'less_than' | 'greater_than_or_equals' | 'less_than_or_equals' | 'contains' | 'not_contains' | 'matches' | 'exists' | 'not_exists';
13
+ /**
14
+ * Policy rule target
15
+ */
16
+ export type PolicyTarget = 'severity' | 'rule' | 'owasp' | 'cwe' | 'file' | 'message' | 'count.critical' | 'count.high' | 'count.medium' | 'count.low' | 'count.total' | 'score';
17
+ /**
18
+ * Policy action
19
+ */
20
+ export type PolicyAction = 'fail' | 'warn' | 'info' | 'ignore' | 'require_review';
21
+ /**
22
+ * Policy rule condition
23
+ */
24
+ export interface PolicyCondition {
25
+ /** Target field to evaluate */
26
+ target: PolicyTarget;
27
+ /** Operator for comparison */
28
+ operator: PolicyOperator;
29
+ /** Value to compare against */
30
+ value: string | number | string[];
31
+ }
32
+ /**
33
+ * Policy rule
34
+ */
35
+ export interface PolicyRule {
36
+ /** Rule ID */
37
+ id: string;
38
+ /** Rule name */
39
+ name: string;
40
+ /** Rule description */
41
+ description?: string;
42
+ /** Conditions (all must match - AND logic) */
43
+ conditions: PolicyCondition[];
44
+ /** Action to take when rule matches */
45
+ action: PolicyAction;
46
+ /** Priority (higher = evaluated first) */
47
+ priority?: number;
48
+ /** Whether rule is enabled */
49
+ enabled?: boolean;
50
+ /** Tags for categorization */
51
+ tags?: string[];
52
+ /** Custom metadata */
53
+ metadata?: Record<string, unknown>;
54
+ }
55
+ /**
56
+ * Security policy
57
+ */
58
+ export interface SecurityPolicy {
59
+ /** Policy name */
60
+ name: string;
61
+ /** Policy version */
62
+ version: string;
63
+ /** Policy description */
64
+ description?: string;
65
+ /** Base policies to extend */
66
+ extends?: string[];
67
+ /** Policy rules */
68
+ rules: PolicyRule[];
69
+ /** Global settings */
70
+ settings?: PolicySettings;
71
+ /** Custom metadata */
72
+ metadata?: Record<string, unknown>;
73
+ }
74
+ /**
75
+ * Policy settings
76
+ */
77
+ export interface PolicySettings {
78
+ /** Default action when no rules match */
79
+ defaultAction?: PolicyAction;
80
+ /** Stop evaluating after first match */
81
+ stopOnFirstMatch?: boolean;
82
+ /** Enable strict mode (fail on unknown rules) */
83
+ strictMode?: boolean;
84
+ /** Allowed severities (others are ignored) */
85
+ allowedSeverities?: Severity[];
86
+ /** Blocked file patterns */
87
+ blockedPatterns?: string[];
88
+ /** Required compliance standards */
89
+ requiredCompliance?: string[];
90
+ }
91
+ /**
92
+ * Policy evaluation result
93
+ */
94
+ export interface PolicyEvaluationResult {
95
+ /** Policy name */
96
+ policyName: string;
97
+ /** Policy version */
98
+ policyVersion: string;
99
+ /** Overall pass/fail */
100
+ passed: boolean;
101
+ /** Final action */
102
+ action: PolicyAction;
103
+ /** Rules that matched */
104
+ matchedRules: PolicyRuleMatch[];
105
+ /** Rules that were evaluated */
106
+ evaluatedRules: number;
107
+ /** Evaluation time in ms */
108
+ evaluationTime: number;
109
+ /** Summary by action */
110
+ summary: PolicyEvaluationSummary;
111
+ /** Recommendations */
112
+ recommendations: string[];
113
+ }
114
+ /**
115
+ * Policy rule match
116
+ */
117
+ export interface PolicyRuleMatch {
118
+ /** Rule that matched */
119
+ rule: PolicyRule;
120
+ /** Vulnerabilities that triggered the match */
121
+ triggeredBy: Vulnerability[];
122
+ /** Conditions that matched */
123
+ matchedConditions: PolicyCondition[];
124
+ /** Action from rule */
125
+ action: PolicyAction;
126
+ }
127
+ /**
128
+ * Policy evaluation summary
129
+ */
130
+ export interface PolicyEvaluationSummary {
131
+ /** Count by action */
132
+ byAction: Record<PolicyAction, number>;
133
+ /** Count of failures */
134
+ failures: number;
135
+ /** Count of warnings */
136
+ warnings: number;
137
+ /** Count of reviews required */
138
+ reviewsRequired: number;
139
+ }
140
+ /**
141
+ * Policy validation result
142
+ */
143
+ export interface PolicyValidationResult {
144
+ /** Whether policy is valid */
145
+ valid: boolean;
146
+ /** Validation errors */
147
+ errors: PolicyValidationError[];
148
+ /** Validation warnings */
149
+ warnings: PolicyValidationWarning[];
150
+ }
151
+ /**
152
+ * Policy validation error
153
+ */
154
+ export interface PolicyValidationError {
155
+ /** Error code */
156
+ code: string;
157
+ /** Error message */
158
+ message: string;
159
+ /** Path to problematic element */
160
+ path?: string;
161
+ }
162
+ /**
163
+ * Policy validation warning
164
+ */
165
+ export interface PolicyValidationWarning {
166
+ /** Warning code */
167
+ code: string;
168
+ /** Warning message */
169
+ message: string;
170
+ /** Path to element */
171
+ path?: string;
172
+ }
173
+ /**
174
+ * Policy engine options
175
+ */
176
+ export interface PolicyEngineOptions {
177
+ /** Built-in policies to load */
178
+ builtInPolicies?: ('default' | 'strict' | 'minimal' | 'enterprise')[];
179
+ /** Custom policies */
180
+ customPolicies?: SecurityPolicy[];
181
+ /** Enable caching */
182
+ enableCache?: boolean;
183
+ }
184
+ /**
185
+ * Security Policy Engine
186
+ *
187
+ * @example
188
+ * ```typescript
189
+ * const engine = createPolicyEngine({
190
+ * builtInPolicies: ['default'],
191
+ * });
192
+ *
193
+ * const result = engine.evaluate('default', scanResult);
194
+ * if (!result.passed) {
195
+ * console.log('Policy violations:', result.matchedRules);
196
+ * }
197
+ * ```
198
+ */
199
+ export declare class PolicyEngine {
200
+ private policies;
201
+ private options;
202
+ constructor(options?: PolicyEngineOptions);
203
+ /**
204
+ * Evaluate scan result against a policy
205
+ */
206
+ evaluate(policyName: string, scanResult: ScanResult): PolicyEvaluationResult;
207
+ /**
208
+ * Validate a policy definition
209
+ */
210
+ validatePolicy(policy: SecurityPolicy): PolicyValidationResult;
211
+ /**
212
+ * Register a custom policy
213
+ */
214
+ registerPolicy(policy: SecurityPolicy): void;
215
+ /**
216
+ * Get a policy by name
217
+ */
218
+ getPolicy(name: string): SecurityPolicy | undefined;
219
+ /**
220
+ * List all available policies
221
+ */
222
+ listPolicies(): string[];
223
+ /**
224
+ * Get built-in policy by name
225
+ */
226
+ getBuiltInPolicy(name: string): SecurityPolicy | undefined;
227
+ /**
228
+ * Create policy from YAML string
229
+ */
230
+ parsePolicy(yamlContent: string): SecurityPolicy;
231
+ /**
232
+ * Export policy to YAML
233
+ */
234
+ exportPolicy(policyName: string): string;
235
+ private resolvePolicy;
236
+ private evaluateRule;
237
+ private evaluateCondition;
238
+ private compareValues;
239
+ private compareStringValues;
240
+ private calculateSummary;
241
+ private determineFinalAction;
242
+ private generateRecommendations;
243
+ private isValidTarget;
244
+ private isValidOperator;
245
+ }
246
+ /**
247
+ * Create a policy engine
248
+ */
249
+ export declare function createPolicyEngine(options?: PolicyEngineOptions): PolicyEngine;
250
+ /**
251
+ * Get a built-in policy
252
+ */
253
+ export declare function getBuiltInPolicy(name: 'default' | 'strict' | 'minimal' | 'enterprise'): SecurityPolicy;
254
+ //# sourceMappingURL=policy-engine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy-engine.d.ts","sourceRoot":"","sources":["../../src/policy/policy-engine.ts"],"names":[],"mappings":"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"}