beddel 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +297 -0
- package/dist/agents/agentRegistry.d.ts +68 -0
- package/dist/agents/agentRegistry.d.ts.map +1 -0
- package/dist/agents/agentRegistry.js +222 -0
- package/dist/agents/agentRegistry.js.map +1 -0
- package/dist/agents/formatter-agent.d.ts +10 -0
- package/dist/agents/formatter-agent.d.ts.map +1 -0
- package/dist/agents/formatter-agent.js +49 -0
- package/dist/agents/formatter-agent.js.map +1 -0
- package/dist/agents/genkit-agent.d.ts +12 -0
- package/dist/agents/genkit-agent.d.ts.map +1 -0
- package/dist/agents/genkit-agent.js +119 -0
- package/dist/agents/genkit-agent.js.map +1 -0
- package/dist/agents/i18n-messages.d.ts +17 -0
- package/dist/agents/i18n-messages.d.ts.map +1 -0
- package/dist/agents/i18n-messages.js +92 -0
- package/dist/agents/i18n-messages.js.map +1 -0
- package/dist/agents/index.d.ts +10 -0
- package/dist/agents/index.d.ts.map +1 -0
- package/dist/agents/index.js +26 -0
- package/dist/agents/index.js.map +1 -0
- package/dist/agents/pipeline.d.ts +15 -0
- package/dist/agents/pipeline.d.ts.map +1 -0
- package/dist/agents/pipeline.js +45 -0
- package/dist/agents/pipeline.js.map +1 -0
- package/dist/agents/schema-factory.d.ts +40 -0
- package/dist/agents/schema-factory.d.ts.map +1 -0
- package/dist/agents/schema-factory.js +121 -0
- package/dist/agents/schema-factory.js.map +1 -0
- package/dist/agents/translation-validators.d.ts +26 -0
- package/dist/agents/translation-validators.d.ts.map +1 -0
- package/dist/agents/translation-validators.js +77 -0
- package/dist/agents/translation-validators.js.map +1 -0
- package/dist/agents/translator-agents.d.ts +184 -0
- package/dist/agents/translator-agents.d.ts.map +1 -0
- package/dist/agents/translator-agents.js +613 -0
- package/dist/agents/translator-agents.js.map +1 -0
- package/dist/agents/types/translation.types.d.ts +100 -0
- package/dist/agents/types/translation.types.d.ts.map +1 -0
- package/dist/agents/types/translation.types.js +3 -0
- package/dist/agents/types/translation.types.js.map +1 -0
- package/dist/agents/validator-agent.d.ts +42 -0
- package/dist/agents/validator-agent.d.ts.map +1 -0
- package/dist/agents/validator-agent.js +122 -0
- package/dist/agents/validator-agent.js.map +1 -0
- package/dist/audit/auditTrail.d.ts +55 -0
- package/dist/audit/auditTrail.d.ts.map +1 -0
- package/dist/audit/auditTrail.js +93 -0
- package/dist/audit/auditTrail.js.map +1 -0
- package/dist/compliance/gdprEngine.d.ts +44 -0
- package/dist/compliance/gdprEngine.d.ts.map +1 -0
- package/dist/compliance/gdprEngine.js +178 -0
- package/dist/compliance/gdprEngine.js.map +1 -0
- package/dist/compliance/lgpdEngine.d.ts +51 -0
- package/dist/compliance/lgpdEngine.d.ts.map +1 -0
- package/dist/compliance/lgpdEngine.js +221 -0
- package/dist/compliance/lgpdEngine.js.map +1 -0
- package/dist/config.d.ts +78 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +77 -0
- package/dist/config.js.map +1 -0
- package/dist/errors.d.ts +17 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +40 -0
- package/dist/errors.js.map +1 -0
- package/dist/firebase/tenantManager.d.ts +84 -0
- package/dist/firebase/tenantManager.d.ts.map +1 -0
- package/dist/firebase/tenantManager.js +378 -0
- package/dist/firebase/tenantManager.js.map +1 -0
- package/dist/index.d.ts +36 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +118 -0
- package/dist/index.js.map +1 -0
- package/dist/integration/secure-yaml-runtime.d.ts +68 -0
- package/dist/integration/secure-yaml-runtime.d.ts.map +1 -0
- package/dist/integration/secure-yaml-runtime.js +245 -0
- package/dist/integration/secure-yaml-runtime.js.map +1 -0
- package/dist/parser/secure-yaml-parser.d.ts +62 -0
- package/dist/parser/secure-yaml-parser.d.ts.map +1 -0
- package/dist/parser/secure-yaml-parser.js +234 -0
- package/dist/parser/secure-yaml-parser.js.map +1 -0
- package/dist/performance/autoscaling.d.ts +100 -0
- package/dist/performance/autoscaling.d.ts.map +1 -0
- package/dist/performance/autoscaling.js +339 -0
- package/dist/performance/autoscaling.js.map +1 -0
- package/dist/performance/benchmark.d.ts +104 -0
- package/dist/performance/benchmark.d.ts.map +1 -0
- package/dist/performance/benchmark.js +514 -0
- package/dist/performance/benchmark.js.map +1 -0
- package/dist/performance/index.d.ts +14 -0
- package/dist/performance/index.d.ts.map +1 -0
- package/dist/performance/index.js +35 -0
- package/dist/performance/index.js.map +1 -0
- package/dist/performance/monitor.d.ts +126 -0
- package/dist/performance/monitor.d.ts.map +1 -0
- package/dist/performance/monitor.js +324 -0
- package/dist/performance/monitor.js.map +1 -0
- package/dist/performance/streaming.d.ts +82 -0
- package/dist/performance/streaming.d.ts.map +1 -0
- package/dist/performance/streaming.js +287 -0
- package/dist/performance/streaming.js.map +1 -0
- package/dist/runtime/audit.d.ts +240 -0
- package/dist/runtime/audit.d.ts.map +1 -0
- package/dist/runtime/audit.js +641 -0
- package/dist/runtime/audit.js.map +1 -0
- package/dist/runtime/declarativeAgentRuntime.d.ts +123 -0
- package/dist/runtime/declarativeAgentRuntime.d.ts.map +1 -0
- package/dist/runtime/declarativeAgentRuntime.js +576 -0
- package/dist/runtime/declarativeAgentRuntime.js.map +1 -0
- package/dist/runtime/isolatedRuntime.d.ts +119 -0
- package/dist/runtime/isolatedRuntime.d.ts.map +1 -0
- package/dist/runtime/isolatedRuntime.js +425 -0
- package/dist/runtime/isolatedRuntime.js.map +1 -0
- package/dist/runtime/schemaCompiler.d.ts +35 -0
- package/dist/runtime/schemaCompiler.d.ts.map +1 -0
- package/dist/runtime/schemaCompiler.js +151 -0
- package/dist/runtime/schemaCompiler.js.map +1 -0
- package/dist/runtime/simpleRuntime.d.ts +57 -0
- package/dist/runtime/simpleRuntime.d.ts.map +1 -0
- package/dist/runtime/simpleRuntime.js +187 -0
- package/dist/runtime/simpleRuntime.js.map +1 -0
- package/dist/security/dashboard.d.ts +89 -0
- package/dist/security/dashboard.d.ts.map +1 -0
- package/dist/security/dashboard.js +300 -0
- package/dist/security/dashboard.js.map +1 -0
- package/dist/security/hardening.d.ts +130 -0
- package/dist/security/hardening.d.ts.map +1 -0
- package/dist/security/hardening.js +414 -0
- package/dist/security/hardening.js.map +1 -0
- package/dist/security/index.d.ts +128 -0
- package/dist/security/index.d.ts.map +1 -0
- package/dist/security/index.js +353 -0
- package/dist/security/index.js.map +1 -0
- package/dist/security/monitor.d.ts +88 -0
- package/dist/security/monitor.d.ts.map +1 -0
- package/dist/security/monitor.js +356 -0
- package/dist/security/monitor.js.map +1 -0
- package/dist/security/scanner.d.ts +104 -0
- package/dist/security/scanner.d.ts.map +1 -0
- package/dist/security/scanner.js +298 -0
- package/dist/security/scanner.js.map +1 -0
- package/dist/security/score.d.ts +150 -0
- package/dist/security/score.d.ts.map +1 -0
- package/dist/security/score.js +983 -0
- package/dist/security/score.js.map +1 -0
- package/dist/security/test-security.d.ts +22 -0
- package/dist/security/test-security.d.ts.map +1 -0
- package/dist/security/test-security.js +154 -0
- package/dist/security/test-security.js.map +1 -0
- package/dist/security/threatDetector.d.ts +39 -0
- package/dist/security/threatDetector.d.ts.map +1 -0
- package/dist/security/threatDetector.js +354 -0
- package/dist/security/threatDetector.js.map +1 -0
- package/dist/security/validation.d.ts +69 -0
- package/dist/security/validation.d.ts.map +1 -0
- package/dist/security/validation.js +286 -0
- package/dist/security/validation.js.map +1 -0
- package/dist/server/api/clientsRoute.d.ts +9 -0
- package/dist/server/api/clientsRoute.d.ts.map +1 -0
- package/dist/server/api/clientsRoute.js +71 -0
- package/dist/server/api/clientsRoute.js.map +1 -0
- package/dist/server/api/endpointsRoute.d.ts +8 -0
- package/dist/server/api/endpointsRoute.d.ts.map +1 -0
- package/dist/server/api/endpointsRoute.js +76 -0
- package/dist/server/api/endpointsRoute.js.map +1 -0
- package/dist/server/api/graphql.d.ts +9 -0
- package/dist/server/api/graphql.d.ts.map +1 -0
- package/dist/server/api/graphql.js +180 -0
- package/dist/server/api/graphql.js.map +1 -0
- package/dist/server/errors.d.ts +19 -0
- package/dist/server/errors.d.ts.map +1 -0
- package/dist/server/errors.js +42 -0
- package/dist/server/errors.js.map +1 -0
- package/dist/server/index.d.ts +7 -0
- package/dist/server/index.d.ts.map +1 -0
- package/dist/server/index.js +24 -0
- package/dist/server/index.js.map +1 -0
- package/dist/server/kvStore.d.ts +27 -0
- package/dist/server/kvStore.d.ts.map +1 -0
- package/dist/server/kvStore.js +128 -0
- package/dist/server/kvStore.js.map +1 -0
- package/dist/server/runtimeSecurity.d.ts +28 -0
- package/dist/server/runtimeSecurity.d.ts.map +1 -0
- package/dist/server/runtimeSecurity.js +85 -0
- package/dist/server/runtimeSecurity.js.map +1 -0
- package/dist/server/types.d.ts +53 -0
- package/dist/server/types.d.ts.map +1 -0
- package/dist/server/types.js +8 -0
- package/dist/server/types.js.map +1 -0
- package/dist/types/executionContext.d.ts +16 -0
- package/dist/types/executionContext.d.ts.map +1 -0
- package/dist/types/executionContext.js +3 -0
- package/dist/types/executionContext.js.map +1 -0
- package/package.json +77 -0
- package/src/agents/agentRegistry.ts +272 -0
- package/src/agents/image-agent.yaml +86 -0
- package/src/agents/joker-agent.yaml +47 -0
- package/src/agents/translator-agent.yaml +80 -0
- package/src/audit/auditTrail.ts +134 -0
- package/src/compliance/gdprEngine.ts +209 -0
- package/src/compliance/lgpdEngine.ts +268 -0
- package/src/config.ts +179 -0
- package/src/errors.ts +35 -0
- package/src/firebase/tenantManager.ts +443 -0
- package/src/index.ts +125 -0
- package/src/integration/secure-yaml-runtime.ts +341 -0
- package/src/parser/secure-yaml-parser.ts +273 -0
- package/src/performance/autoscaling.ts +495 -0
- package/src/performance/benchmark.ts +644 -0
- package/src/performance/index.ts +34 -0
- package/src/performance/monitor.ts +469 -0
- package/src/performance/streaming.ts +317 -0
- package/src/runtime/audit.ts +907 -0
- package/src/runtime/declarativeAgentRuntime.ts +836 -0
- package/src/runtime/isolatedRuntime.ts +572 -0
- package/src/runtime/schemaCompiler.ts +228 -0
- package/src/runtime/simpleRuntime.ts +201 -0
- package/src/security/dashboard.ts +462 -0
- package/src/security/hardening.ts +560 -0
- package/src/security/index.ts +439 -0
- package/src/security/monitor.ts +490 -0
- package/src/security/scanner.ts +368 -0
- package/src/security/score.ts +1138 -0
- package/src/security/threatDetector.ts +481 -0
- package/src/security/validation.ts +365 -0
- package/src/server/api/clientsRoute.ts +92 -0
- package/src/server/api/endpointsRoute.ts +97 -0
- package/src/server/api/graphql.ts +249 -0
- package/src/server/errors.ts +38 -0
- package/src/server/index.ts +6 -0
- package/src/server/kvStore.ts +152 -0
- package/src/server/runtimeSecurity.ts +102 -0
- package/src/server/types.ts +60 -0
- package/src/types/executionContext.ts +16 -0
- package/tools/seed.ts +365 -0
- package/tools/test-endpoints.ts +174 -0
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Security hardening utilities for YAML parsing
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.SecurityHardening = void 0;
|
|
7
|
+
exports.createSecurityHardening = createSecurityHardening;
|
|
8
|
+
const DEFAULT_HARDENING_OPTIONS = {
|
|
9
|
+
maxCircularReferences: 0,
|
|
10
|
+
validateStructureIntegrity: true,
|
|
11
|
+
enableContentInspection: true,
|
|
12
|
+
logSecurityEvents: true,
|
|
13
|
+
maxNestingDepth: 1000,
|
|
14
|
+
enableCircularReferenceDetection: true,
|
|
15
|
+
detectAndBlock: true,
|
|
16
|
+
sanitizeOnFailure: true,
|
|
17
|
+
validationPolicy: 'moderate'
|
|
18
|
+
};
|
|
19
|
+
class SecurityHardening {
|
|
20
|
+
constructor(options = {}) {
|
|
21
|
+
this.events = [];
|
|
22
|
+
this.passes = 0;
|
|
23
|
+
this.fails = 0;
|
|
24
|
+
this.warnings = 0;
|
|
25
|
+
this.options = { ...DEFAULT_HARDENING_OPTIONS, ...options };
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Executa hardening completo em um objeto
|
|
29
|
+
*/
|
|
30
|
+
harden(obj) {
|
|
31
|
+
this.resetStatistics();
|
|
32
|
+
let result = obj;
|
|
33
|
+
let secure = true;
|
|
34
|
+
// 1. Detecção de referências circulares
|
|
35
|
+
if (this.options.enableCircularReferenceDetection) {
|
|
36
|
+
try {
|
|
37
|
+
this.detectCircularReferences(result);
|
|
38
|
+
}
|
|
39
|
+
catch (error) {
|
|
40
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
41
|
+
if (this.options.detectAndBlock) {
|
|
42
|
+
throw new Error(`Referência circular detectada: ${errorMessage}`);
|
|
43
|
+
}
|
|
44
|
+
this.fails++;
|
|
45
|
+
secure = false;
|
|
46
|
+
if (this.options.logSecurityEvents) {
|
|
47
|
+
this.addSecurityEvent('circular_reference', 'root', 'high', errorMessage);
|
|
48
|
+
}
|
|
49
|
+
if (this.options.sanitizeOnFailure) {
|
|
50
|
+
result = this.sanitizeObject(result);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
// 2. Validação de integridade estrutural
|
|
55
|
+
if (this.options.validateStructureIntegrity) {
|
|
56
|
+
try {
|
|
57
|
+
this.validateObjectStructure(result);
|
|
58
|
+
this.passes++;
|
|
59
|
+
}
|
|
60
|
+
catch (error) {
|
|
61
|
+
this.fails++;
|
|
62
|
+
secure = false;
|
|
63
|
+
if (this.options.logSecurityEvents) {
|
|
64
|
+
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
65
|
+
this.addSecurityEvent('invalid_structure', 'root', 'medium', errorMessage);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
// 3. Inspeção de conteúdo
|
|
70
|
+
if (this.options.enableContentInspection) {
|
|
71
|
+
const contentResult = this.inspectContent(result);
|
|
72
|
+
if (contentResult.warnings > 0) {
|
|
73
|
+
this.warnings += contentResult.warnings;
|
|
74
|
+
if (this.options.logSecurityEvents) {
|
|
75
|
+
contentResult.issues.forEach((issue) => {
|
|
76
|
+
this.addSecurityEvent('content_inspection_warning', issue.path, this.mapSeverity(issue.severity), `${issue.type} detectado`);
|
|
77
|
+
});
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return {
|
|
82
|
+
result,
|
|
83
|
+
secure,
|
|
84
|
+
stats: this.getStatistics()
|
|
85
|
+
};
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Detecta referências circulares no objeto
|
|
89
|
+
*/
|
|
90
|
+
detectCircularReferences(obj, visited = new WeakSet(), path = 'root') {
|
|
91
|
+
if (typeof obj !== 'object' || obj === null) {
|
|
92
|
+
return;
|
|
93
|
+
}
|
|
94
|
+
if (visited.has(obj)) {
|
|
95
|
+
throw new Error(`Referência circular detectada em ${path}`);
|
|
96
|
+
}
|
|
97
|
+
// Verifica limite de profundidade
|
|
98
|
+
const depth = path.split('.').length;
|
|
99
|
+
if (depth > this.options.maxNestingDepth) {
|
|
100
|
+
this.addSecurityEvent('deep_nesting', path, 'medium', `Profundidade máxima de ${this.options.maxNestingDepth} excedida`);
|
|
101
|
+
}
|
|
102
|
+
visited.add(obj);
|
|
103
|
+
try {
|
|
104
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
105
|
+
if (typeof value === 'object' && value !== null) {
|
|
106
|
+
// Simplificar para evitar problemas com WeakSet
|
|
107
|
+
this.detectCircularReferences(value, new WeakSet(), `${path}.${key}`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
finally {
|
|
112
|
+
visited.delete(obj);
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* Valida a integridade estrutural do objeto
|
|
117
|
+
*/
|
|
118
|
+
validateObjectStructure(obj) {
|
|
119
|
+
if (typeof obj !== 'object' || obj === null) {
|
|
120
|
+
return true;
|
|
121
|
+
}
|
|
122
|
+
return this.isValidStructure(obj, '', 0);
|
|
123
|
+
}
|
|
124
|
+
isValidStructure(obj, path, depth) {
|
|
125
|
+
// Verifica limite de profundidade
|
|
126
|
+
if (depth > this.options.maxNestingDepth) {
|
|
127
|
+
this.addSecurityEvent('deep_nesting', path, 'medium', `Profundidade máxima de ${this.options.maxNestingDepth} atingida`);
|
|
128
|
+
return false;
|
|
129
|
+
}
|
|
130
|
+
// Verifica tipos válidos
|
|
131
|
+
if (!this.isAllowedType(obj)) {
|
|
132
|
+
this.addSecurityEvent('invalid_structure', path, 'medium', `Tipo inválido ${typeof obj} detectado no caminho ${path}`);
|
|
133
|
+
return false;
|
|
134
|
+
}
|
|
135
|
+
// Valida objetos aninhados
|
|
136
|
+
if (typeof obj === 'object' && obj !== null) {
|
|
137
|
+
if (Array.isArray(obj)) {
|
|
138
|
+
for (let i = 0; i < obj.length; i++) {
|
|
139
|
+
if (!this.isValidStructure(obj[i], `${path}[${i}]`, depth + 1)) {
|
|
140
|
+
return false;
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
else {
|
|
145
|
+
for (const [key, value] of Object.entries(obj)) {
|
|
146
|
+
const keyPath = path ? `${path}.${key}` : key;
|
|
147
|
+
if (!this.isValidStructure(value, keyPath, depth + 1)) {
|
|
148
|
+
return false;
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
return true;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Verifica se um tipo é permitido
|
|
157
|
+
*/
|
|
158
|
+
isAllowedType(obj) {
|
|
159
|
+
const type = typeof obj;
|
|
160
|
+
if (obj === null)
|
|
161
|
+
return true;
|
|
162
|
+
if (type === 'boolean')
|
|
163
|
+
return true;
|
|
164
|
+
if (type === 'number')
|
|
165
|
+
return true;
|
|
166
|
+
if (type === 'string')
|
|
167
|
+
return true;
|
|
168
|
+
if (Array.isArray(obj))
|
|
169
|
+
return true;
|
|
170
|
+
return false;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Inspeciona o conteúdo para padrões perigosos
|
|
174
|
+
*/
|
|
175
|
+
inspectContent(obj) {
|
|
176
|
+
const issues = [];
|
|
177
|
+
let warnings = 0;
|
|
178
|
+
const deepInspect = (current, path = 'root') => {
|
|
179
|
+
if (typeof current === 'string') {
|
|
180
|
+
// Padrões de vulnerabilidade
|
|
181
|
+
const vulnerabilityPatterns = [
|
|
182
|
+
{
|
|
183
|
+
pattern: /<script[^>]*>/i,
|
|
184
|
+
type: 'XSS',
|
|
185
|
+
severity: 'high',
|
|
186
|
+
description: 'Possível tentativa de XSS via script tag'
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
pattern: /javascript:/i,
|
|
190
|
+
type: 'URL_INJECTION',
|
|
191
|
+
severity: 'high',
|
|
192
|
+
description: 'Possível inject javascript: URL'
|
|
193
|
+
},
|
|
194
|
+
{
|
|
195
|
+
pattern: /\$\{.*\}/,
|
|
196
|
+
type: 'TEMPLATE_INJECTION',
|
|
197
|
+
severity: 'medium',
|
|
198
|
+
description: 'Possível template string injection'
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
pattern: /on\w+\s*=/i,
|
|
202
|
+
type: 'EVENT_HANDLER',
|
|
203
|
+
severity: 'medium',
|
|
204
|
+
description: 'Possível event handler injection'
|
|
205
|
+
},
|
|
206
|
+
{
|
|
207
|
+
pattern: /eval\s*\(/i,
|
|
208
|
+
type: 'CODE_EXECUTION',
|
|
209
|
+
severity: 'high',
|
|
210
|
+
description: 'Possível code execution via eval'
|
|
211
|
+
},
|
|
212
|
+
{
|
|
213
|
+
pattern: /(password|api_key|secret|token)\s*[:=]\s*["']?[\w\-]+["']?/i,
|
|
214
|
+
type: 'CREDENTIAL_LEAK',
|
|
215
|
+
severity: 'medium',
|
|
216
|
+
description: 'Possível exposição de credenciais'
|
|
217
|
+
}
|
|
218
|
+
];
|
|
219
|
+
for (const rule of vulnerabilityPatterns) {
|
|
220
|
+
if (rule.pattern.test(current)) {
|
|
221
|
+
issues.push({
|
|
222
|
+
path,
|
|
223
|
+
type: rule.type,
|
|
224
|
+
severity: rule.severity,
|
|
225
|
+
description: rule.description,
|
|
226
|
+
pattern: rule.pattern.source
|
|
227
|
+
});
|
|
228
|
+
warnings++;
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
// Recursivamente inspeciona objetos aninhados
|
|
233
|
+
if (typeof current === 'object' && current !== null) {
|
|
234
|
+
if (Array.isArray(current)) {
|
|
235
|
+
current.forEach((item, index) => {
|
|
236
|
+
deepInspect(item, `${path}[${index}]`);
|
|
237
|
+
});
|
|
238
|
+
}
|
|
239
|
+
else {
|
|
240
|
+
for (const [key, value] of Object.entries(current)) {
|
|
241
|
+
deepInspect(value, `${path}.${key}`);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
};
|
|
246
|
+
deepInspect(obj);
|
|
247
|
+
return { issues, warnings };
|
|
248
|
+
}
|
|
249
|
+
/**
|
|
250
|
+
* Sanitiza um objeto remover conteúdo potencialmente perigoso
|
|
251
|
+
*/
|
|
252
|
+
sanitizeObject(obj) {
|
|
253
|
+
if (typeof obj !== 'object' || obj === null) {
|
|
254
|
+
return obj;
|
|
255
|
+
}
|
|
256
|
+
const visited = new WeakSet();
|
|
257
|
+
const sanitize = (current) => {
|
|
258
|
+
if (typeof current !== 'object' || current === null) {
|
|
259
|
+
return this.sanitizeString(typeof current === 'string' ? current : '');
|
|
260
|
+
}
|
|
261
|
+
if (visited.has(current)) {
|
|
262
|
+
throw new Error('Referência circular detectada durante a sanitização');
|
|
263
|
+
}
|
|
264
|
+
visited.add(current);
|
|
265
|
+
// Sanitização baseada em tipo
|
|
266
|
+
if (Array.isArray(current)) {
|
|
267
|
+
const sanitized = [];
|
|
268
|
+
for (const item of current) {
|
|
269
|
+
const sanitizedItem = sanitize(item);
|
|
270
|
+
if (sanitizedItem !== undefined) {
|
|
271
|
+
sanitized.push(sanitizedItem);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
visited.delete(current);
|
|
275
|
+
return sanitized;
|
|
276
|
+
}
|
|
277
|
+
const sanitized = {};
|
|
278
|
+
for (const [key, value] of Object.entries(current)) {
|
|
279
|
+
const sanitizedKey = this.sanitizeString(key);
|
|
280
|
+
const sanitizedValue = sanitize(value);
|
|
281
|
+
if (sanitizedValue !== undefined) {
|
|
282
|
+
sanitized[sanitizedKey] = sanitizedValue;
|
|
283
|
+
}
|
|
284
|
+
}
|
|
285
|
+
visited.delete(current);
|
|
286
|
+
return sanitized;
|
|
287
|
+
};
|
|
288
|
+
return sanitize(obj);
|
|
289
|
+
}
|
|
290
|
+
/**
|
|
291
|
+
* Sanitiza strings removendo conteúdo perigoso
|
|
292
|
+
*/
|
|
293
|
+
sanitizeString(str) {
|
|
294
|
+
if (!str || typeof str !== 'string') {
|
|
295
|
+
return '';
|
|
296
|
+
}
|
|
297
|
+
// Remove scripts e conteúdo HTML/JavaScript
|
|
298
|
+
let sanitized = str
|
|
299
|
+
.replace(/<script[^>]*>.*?<\/script>/gi, '')
|
|
300
|
+
.replace(/javascript:/gi, '')
|
|
301
|
+
.replace(/on\w+\s*=/gi, '')
|
|
302
|
+
.replace(/eval\s*\(/gi, '')
|
|
303
|
+
.replace(/expression\s*\(/gi, '');
|
|
304
|
+
// Limita tamanho da string
|
|
305
|
+
return sanitized.length > 100000 ? sanitized.substring(0, 100000) + '[truncated]' : sanitized;
|
|
306
|
+
}
|
|
307
|
+
/**
|
|
308
|
+
* Adiciona um evento de segurança
|
|
309
|
+
*/
|
|
310
|
+
addSecurityEvent(type, path, severity, message, details) {
|
|
311
|
+
this.events.push({
|
|
312
|
+
timestamp: Date.now(),
|
|
313
|
+
type,
|
|
314
|
+
path,
|
|
315
|
+
severity,
|
|
316
|
+
message,
|
|
317
|
+
details
|
|
318
|
+
});
|
|
319
|
+
// Limita número de eventos para evitar vazamento de memória
|
|
320
|
+
if (this.events.length > 1000) {
|
|
321
|
+
this.events = this.events.slice(-500);
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Obtém estatísticas do hardening
|
|
326
|
+
*/
|
|
327
|
+
getStatistics() {
|
|
328
|
+
const now = Date.now();
|
|
329
|
+
const recentEvents = this.events.filter(e => now - e.timestamp < 30000); // Últimos 30 segundos
|
|
330
|
+
return {
|
|
331
|
+
totalEvents: this.events.length,
|
|
332
|
+
recentEvents: recentEvents.length,
|
|
333
|
+
passes: this.passes,
|
|
334
|
+
fails: this.fails,
|
|
335
|
+
warnings: this.warnings,
|
|
336
|
+
securityScore: this.calculateSecurityScore(),
|
|
337
|
+
eventsByType: this.groupEventsByType(),
|
|
338
|
+
recentAlerts: this.getRecentAlerts()
|
|
339
|
+
};
|
|
340
|
+
}
|
|
341
|
+
/**
|
|
342
|
+
* Calcula o score de segurança (0-100)
|
|
343
|
+
*/
|
|
344
|
+
calculateSecurityScore() {
|
|
345
|
+
if (this.events.length === 0) {
|
|
346
|
+
return 100;
|
|
347
|
+
}
|
|
348
|
+
const total = this.passes + this.fails;
|
|
349
|
+
if (total === 0) {
|
|
350
|
+
return 50; // Nenhum teste executado
|
|
351
|
+
}
|
|
352
|
+
const successRate = this.passes / total;
|
|
353
|
+
const penalty = this.warnings * 0.5; // Penaliza por warnings
|
|
354
|
+
return Math.max(0, Math.min(100, (successRate * 100) - penalty));
|
|
355
|
+
}
|
|
356
|
+
/**
|
|
357
|
+
* Agrupa eventos por tipo
|
|
358
|
+
*/
|
|
359
|
+
groupEventsByType() {
|
|
360
|
+
const counts = {};
|
|
361
|
+
this.events.forEach(event => {
|
|
362
|
+
counts[event.type] = (counts[event.type] || 0) + 1;
|
|
363
|
+
});
|
|
364
|
+
return counts;
|
|
365
|
+
}
|
|
366
|
+
/**
|
|
367
|
+
* Obtém alertas recentes
|
|
368
|
+
*/
|
|
369
|
+
getRecentAlerts() {
|
|
370
|
+
const now = Date.now();
|
|
371
|
+
return this.events
|
|
372
|
+
.filter(e => now - e.timestamp < 60000 && // Último minuto
|
|
373
|
+
(e.severity === 'high' || e.severity === 'critical'))
|
|
374
|
+
.slice(-10); // Últimos 10 alertas
|
|
375
|
+
}
|
|
376
|
+
/**
|
|
377
|
+
* Mapeia severidade para uso de eventos
|
|
378
|
+
*/
|
|
379
|
+
mapSeverity(severity) {
|
|
380
|
+
if (severity === 'high' || severity === 'critical')
|
|
381
|
+
return 'high';
|
|
382
|
+
if (severity === 'medium')
|
|
383
|
+
return 'medium';
|
|
384
|
+
return 'low';
|
|
385
|
+
}
|
|
386
|
+
/**
|
|
387
|
+
* Reinicia as estatísticas
|
|
388
|
+
*/
|
|
389
|
+
resetStatistics() {
|
|
390
|
+
this.passes = 0;
|
|
391
|
+
this.fails = 0;
|
|
392
|
+
this.warnings = 0;
|
|
393
|
+
}
|
|
394
|
+
/**
|
|
395
|
+
* Executa limpeza e validação final
|
|
396
|
+
*/
|
|
397
|
+
cleanup() {
|
|
398
|
+
// Remove eventos antigos (máx 24 horas)
|
|
399
|
+
const cutoff = Date.now() - (24 * 60 * 60 * 1000);
|
|
400
|
+
this.events = this.events.filter(e => e.timestamp > cutoff);
|
|
401
|
+
// Limita número de eventos
|
|
402
|
+
if (this.events.length > 10000) {
|
|
403
|
+
this.events = this.events.slice(-5000);
|
|
404
|
+
}
|
|
405
|
+
}
|
|
406
|
+
}
|
|
407
|
+
exports.SecurityHardening = SecurityHardening;
|
|
408
|
+
/**
|
|
409
|
+
* Função auxiliar para criar instância de hardening
|
|
410
|
+
*/
|
|
411
|
+
function createSecurityHardening(options = {}) {
|
|
412
|
+
return new SecurityHardening(options);
|
|
413
|
+
}
|
|
414
|
+
//# sourceMappingURL=hardening.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hardening.js","sourceRoot":"","sources":["../../src/security/hardening.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Beddel Security Module - Advanced Security Monitoring System v2025
|
|
3
|
+
*
|
|
4
|
+
* Complete security monitoring solution with real-time threat detection,
|
|
5
|
+
* ML-based anomaly analysis, and automated incident response.
|
|
6
|
+
*/
|
|
7
|
+
export type { AlertLevel, SecurityEvent, ThreatAnalysis } from "./monitor";
|
|
8
|
+
export { SecurityMonitor, securityMonitor } from "./monitor";
|
|
9
|
+
export { ThreatDetectionEngine, AnomalyDetector, ThreatMLModel, } from "./threatDetector";
|
|
10
|
+
export type { DashboardConfig, SecurityMetric } from "./dashboard";
|
|
11
|
+
export { SecurityDashboard, securityDashboard } from "./dashboard";
|
|
12
|
+
/**
|
|
13
|
+
* Security Manager - Main security system coordinator
|
|
14
|
+
*/
|
|
15
|
+
export declare class SecurityManager {
|
|
16
|
+
private monitor;
|
|
17
|
+
private dashboard;
|
|
18
|
+
private isInitialized;
|
|
19
|
+
constructor();
|
|
20
|
+
/**
|
|
21
|
+
* Initialize the complete security system
|
|
22
|
+
*/
|
|
23
|
+
initialize(): void;
|
|
24
|
+
/**
|
|
25
|
+
* Set up event listeners for security events
|
|
26
|
+
*/
|
|
27
|
+
private setupEventListeners;
|
|
28
|
+
/**
|
|
29
|
+
* Monitor security operations
|
|
30
|
+
*/
|
|
31
|
+
monitorSecurity(tenantId: string, operation: string, metadata?: any): Promise<any>;
|
|
32
|
+
/**
|
|
33
|
+
* Auto-respond to threats
|
|
34
|
+
*/
|
|
35
|
+
private autoRespondToThreat;
|
|
36
|
+
/**
|
|
37
|
+
* Handle security alerts
|
|
38
|
+
*/
|
|
39
|
+
private handleSecurityAlert;
|
|
40
|
+
/**
|
|
41
|
+
* Assess risk level
|
|
42
|
+
*/
|
|
43
|
+
private assessRiskLevel;
|
|
44
|
+
/**
|
|
45
|
+
* Generate incident response
|
|
46
|
+
*/
|
|
47
|
+
private generateIncidentResponse;
|
|
48
|
+
/**
|
|
49
|
+
** Get current dashboard data
|
|
50
|
+
*/
|
|
51
|
+
getDashboardData(): any;
|
|
52
|
+
/**
|
|
53
|
+
* Get security metrics
|
|
54
|
+
*/
|
|
55
|
+
getSecurityMetrics(): any[];
|
|
56
|
+
/**
|
|
57
|
+
* Export security report
|
|
58
|
+
*/
|
|
59
|
+
exportSecurityReport(): string;
|
|
60
|
+
/**
|
|
61
|
+
* Get monitoring status
|
|
62
|
+
*/
|
|
63
|
+
getMonitoringStatus(): {
|
|
64
|
+
active: boolean;
|
|
65
|
+
eventsProcessed: number;
|
|
66
|
+
};
|
|
67
|
+
/**
|
|
68
|
+
* Get threat statistics
|
|
69
|
+
*/
|
|
70
|
+
getThreatStatistics(): any;
|
|
71
|
+
/**
|
|
72
|
+
* Get real-time security updates
|
|
73
|
+
*/
|
|
74
|
+
getRealTimeUpdates(): any;
|
|
75
|
+
/**
|
|
76
|
+
* Stop the security system
|
|
77
|
+
*/
|
|
78
|
+
stop(): void;
|
|
79
|
+
/**
|
|
80
|
+
* Schedule health check
|
|
81
|
+
*/
|
|
82
|
+
private scheduleHealthCheck;
|
|
83
|
+
/**
|
|
84
|
+
* Perform health check
|
|
85
|
+
*/
|
|
86
|
+
private performHealthCheck;
|
|
87
|
+
/**
|
|
88
|
+
* Stop health check
|
|
89
|
+
*/
|
|
90
|
+
private stopHealthCheck;
|
|
91
|
+
}
|
|
92
|
+
export declare const securityManager: SecurityManager;
|
|
93
|
+
/**
|
|
94
|
+
* Initialize security system globally
|
|
95
|
+
*/
|
|
96
|
+
export declare function initializeSecuritySystem(): void;
|
|
97
|
+
/**
|
|
98
|
+
* Monitor security operation
|
|
99
|
+
*/
|
|
100
|
+
export declare function monitorSecurity(tenantId: string, operation: string, metadata?: any): Promise<any>;
|
|
101
|
+
/**
|
|
102
|
+
* Get security dashboard data
|
|
103
|
+
*/
|
|
104
|
+
export declare function getSecurityDashboard(): any;
|
|
105
|
+
/**
|
|
106
|
+
* Export security report
|
|
107
|
+
*/
|
|
108
|
+
export declare function exportSecurityReport(): string;
|
|
109
|
+
/**
|
|
110
|
+
* Stop security system
|
|
111
|
+
*/
|
|
112
|
+
export declare function stopSecuritySystem(): void;
|
|
113
|
+
export interface SecuritySystemStatus {
|
|
114
|
+
active: boolean;
|
|
115
|
+
securityScore: number;
|
|
116
|
+
eventsProcessed: number;
|
|
117
|
+
threatDetectionRate: number;
|
|
118
|
+
lastUpdate: Date;
|
|
119
|
+
}
|
|
120
|
+
export interface SecurityIncident {
|
|
121
|
+
id: string;
|
|
122
|
+
tenantId: string;
|
|
123
|
+
riskScore: number;
|
|
124
|
+
alertLevel: string;
|
|
125
|
+
timestamp: Date;
|
|
126
|
+
status: "new" | "in_progress" | "resolved" | "escalated";
|
|
127
|
+
}
|
|
128
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/security/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,WAAW,CAAC;AAC3E,OAAO,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAC7D,OAAO,EACL,qBAAqB,EACrB,eAAe,EACf,aAAa,GACd,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AACnE,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAMnE;;GAEG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,SAAS,CAAoB;IACrC,OAAO,CAAC,aAAa,CAAkB;;IAOvC;;OAEG;IACI,UAAU,IAAI,IAAI;IA2BzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAkC3B;;OAEG;IACU,eAAe,CAC1B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,GAAQ,GACjB,OAAO,CAAC,GAAG,CAAC;IAwBf;;OAEG;YACW,mBAAmB;IAmCjC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAuB3B;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;YACW,wBAAwB;IAwCtC;;OAEG;IACI,gBAAgB,IAAI,GAAG;IAI9B;;OAEG;IACI,kBAAkB,IAAI,GAAG,EAAE;IAIlC;;OAEG;IACI,oBAAoB,IAAI,MAAM;IAqBrC;;OAEG;IACI,mBAAmB,IAAI;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,eAAe,EAAE,MAAM,CAAA;KAAE;IAO1E;;OAEG;IACI,mBAAmB,IAAI,GAAG;IAIjC;;OAEG;IACI,kBAAkB,IAAI,GAAG;IAQhC;;OAEG;IACI,IAAI,IAAI,IAAI;IAcnB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAO3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAuB1B;;OAEG;IACH,OAAO,CAAC,eAAe;CAIxB;AAGD,eAAO,MAAM,eAAe,iBAAwB,CAAC;AAErD;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,IAAI,CAE/C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,MAAM,EACjB,QAAQ,GAAE,GAAQ,GACjB,OAAO,CAAC,GAAG,CAAC,CAEd;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,GAAG,CAE1C;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,IAAI,CAEzC;AAGD,MAAM,WAAW,oBAAoB;IACnC,MAAM,EAAE,OAAO,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,UAAU,EAAE,IAAI,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,IAAI,CAAC;IAChB,MAAM,EAAE,KAAK,GAAG,aAAa,GAAG,UAAU,GAAG,WAAW,CAAC;CAC1D"}
|