erosolar-cli 1.7.331 → 1.7.332
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 +24 -148
- package/dist/bin/erosolar.js +5 -21
- package/dist/bin/erosolar.js.map +1 -1
- package/dist/capabilities/agentSpawningCapability.d.ts.map +1 -1
- package/dist/capabilities/agentSpawningCapability.js +56 -31
- package/dist/capabilities/agentSpawningCapability.js.map +1 -1
- package/dist/contracts/agent-schemas.json +0 -15
- package/dist/contracts/tools.schema.json +0 -9
- package/dist/core/agent.d.ts +2 -2
- package/dist/core/agent.d.ts.map +1 -1
- package/dist/core/agent.js.map +1 -1
- package/dist/core/customCommands.d.ts +1 -0
- package/dist/core/customCommands.d.ts.map +1 -1
- package/dist/core/customCommands.js +3 -0
- package/dist/core/customCommands.js.map +1 -1
- package/dist/core/hooks.d.ts +113 -0
- package/dist/core/hooks.d.ts.map +1 -0
- package/dist/core/hooks.js +267 -0
- package/dist/core/hooks.js.map +1 -0
- package/dist/core/metricsTracker.d.ts +122 -0
- package/dist/core/metricsTracker.d.ts.map +1 -0
- package/dist/{alpha-zero → core}/metricsTracker.js +2 -5
- package/dist/core/metricsTracker.js.map +1 -0
- package/dist/core/securityAssessment.d.ts +91 -0
- package/dist/core/securityAssessment.d.ts.map +1 -0
- package/dist/core/securityAssessment.js +580 -0
- package/dist/core/securityAssessment.js.map +1 -0
- package/dist/core/toolPreconditions.d.ts.map +1 -1
- package/dist/core/toolPreconditions.js +0 -14
- package/dist/core/toolPreconditions.js.map +1 -1
- package/dist/core/toolRuntime.d.ts +22 -1
- package/dist/core/toolRuntime.d.ts.map +1 -1
- package/dist/core/toolRuntime.js +0 -5
- package/dist/core/toolRuntime.js.map +1 -1
- package/dist/core/toolValidation.d.ts.map +1 -1
- package/dist/core/toolValidation.js +14 -3
- package/dist/core/toolValidation.js.map +1 -1
- package/dist/core/validationRunner.d.ts +1 -3
- package/dist/core/validationRunner.d.ts.map +1 -1
- package/dist/core/validationRunner.js.map +1 -1
- package/dist/core/verification.d.ts +137 -0
- package/dist/core/verification.d.ts.map +1 -0
- package/dist/core/verification.js +323 -0
- package/dist/core/verification.js.map +1 -0
- package/dist/headless/headlessApp.d.ts.map +1 -1
- package/dist/headless/headlessApp.js +21 -0
- package/dist/headless/headlessApp.js.map +1 -1
- package/dist/mcp/sseClient.d.ts.map +1 -1
- package/dist/mcp/sseClient.js +9 -18
- package/dist/mcp/sseClient.js.map +1 -1
- package/dist/plugins/tools/build/buildPlugin.d.ts +0 -6
- package/dist/plugins/tools/build/buildPlugin.d.ts.map +1 -1
- package/dist/plugins/tools/build/buildPlugin.js +4 -10
- package/dist/plugins/tools/build/buildPlugin.js.map +1 -1
- package/dist/plugins/tools/nodeDefaults.d.ts.map +1 -1
- package/dist/plugins/tools/nodeDefaults.js +0 -2
- package/dist/plugins/tools/nodeDefaults.js.map +1 -1
- package/dist/runtime/agentSession.d.ts +2 -2
- package/dist/runtime/agentSession.d.ts.map +1 -1
- package/dist/runtime/agentSession.js +2 -2
- package/dist/runtime/agentSession.js.map +1 -1
- package/dist/shell/interactiveShell.d.ts +16 -7
- package/dist/shell/interactiveShell.d.ts.map +1 -1
- package/dist/shell/interactiveShell.js +235 -166
- package/dist/shell/interactiveShell.js.map +1 -1
- package/dist/shell/shellApp.d.ts +2 -0
- package/dist/shell/shellApp.d.ts.map +1 -1
- package/dist/shell/shellApp.js +40 -9
- package/dist/shell/shellApp.js.map +1 -1
- package/dist/shell/systemPrompt.d.ts.map +1 -1
- package/dist/shell/systemPrompt.js +1 -4
- package/dist/shell/systemPrompt.js.map +1 -1
- package/dist/shell/terminalInput.d.ts +149 -117
- package/dist/shell/terminalInput.d.ts.map +1 -1
- package/dist/shell/terminalInput.js +677 -517
- package/dist/shell/terminalInput.js.map +1 -1
- package/dist/shell/terminalInputAdapter.d.ts +79 -20
- package/dist/shell/terminalInputAdapter.d.ts.map +1 -1
- package/dist/shell/terminalInputAdapter.js +99 -30
- package/dist/shell/terminalInputAdapter.js.map +1 -1
- package/dist/subagents/agentConfig.d.ts +27 -0
- package/dist/subagents/agentConfig.d.ts.map +1 -0
- package/dist/subagents/agentConfig.js +89 -0
- package/dist/subagents/agentConfig.js.map +1 -0
- package/dist/subagents/agentRegistry.d.ts +33 -0
- package/dist/subagents/agentRegistry.d.ts.map +1 -0
- package/dist/subagents/agentRegistry.js +162 -0
- package/dist/subagents/agentRegistry.js.map +1 -0
- package/dist/subagents/taskRunner.d.ts +7 -1
- package/dist/subagents/taskRunner.d.ts.map +1 -1
- package/dist/subagents/taskRunner.js +180 -47
- package/dist/subagents/taskRunner.js.map +1 -1
- package/dist/ui/ShellUIAdapter.d.ts.map +1 -1
- package/dist/ui/ShellUIAdapter.js +13 -12
- package/dist/ui/ShellUIAdapter.js.map +1 -1
- package/dist/ui/display.d.ts +24 -45
- package/dist/ui/display.d.ts.map +1 -1
- package/dist/ui/display.js +140 -259
- package/dist/ui/display.js.map +1 -1
- package/dist/ui/theme.d.ts.map +1 -1
- package/dist/ui/theme.js +6 -8
- package/dist/ui/theme.js.map +1 -1
- package/dist/ui/toolDisplay.d.ts +0 -158
- package/dist/ui/toolDisplay.d.ts.map +1 -1
- package/dist/ui/toolDisplay.js +0 -348
- package/dist/ui/toolDisplay.js.map +1 -1
- package/dist/ui/unified/layout.d.ts +1 -0
- package/dist/ui/unified/layout.d.ts.map +1 -1
- package/dist/ui/unified/layout.js +15 -25
- package/dist/ui/unified/layout.js.map +1 -1
- package/dist/utils/frontmatter.d.ts +10 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +78 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/package.json +4 -4
- package/dist/alpha-zero/agentWrapper.d.ts +0 -84
- package/dist/alpha-zero/agentWrapper.d.ts.map +0 -1
- package/dist/alpha-zero/agentWrapper.js +0 -171
- package/dist/alpha-zero/agentWrapper.js.map +0 -1
- package/dist/alpha-zero/codeEvaluator.d.ts +0 -25
- package/dist/alpha-zero/codeEvaluator.d.ts.map +0 -1
- package/dist/alpha-zero/codeEvaluator.js +0 -273
- package/dist/alpha-zero/codeEvaluator.js.map +0 -1
- package/dist/alpha-zero/competitiveRunner.d.ts +0 -66
- package/dist/alpha-zero/competitiveRunner.d.ts.map +0 -1
- package/dist/alpha-zero/competitiveRunner.js +0 -224
- package/dist/alpha-zero/competitiveRunner.js.map +0 -1
- package/dist/alpha-zero/index.d.ts +0 -67
- package/dist/alpha-zero/index.d.ts.map +0 -1
- package/dist/alpha-zero/index.js +0 -99
- package/dist/alpha-zero/index.js.map +0 -1
- package/dist/alpha-zero/introspection.d.ts +0 -128
- package/dist/alpha-zero/introspection.d.ts.map +0 -1
- package/dist/alpha-zero/introspection.js +0 -300
- package/dist/alpha-zero/introspection.js.map +0 -1
- package/dist/alpha-zero/metricsTracker.d.ts +0 -71
- package/dist/alpha-zero/metricsTracker.d.ts.map +0 -1
- package/dist/alpha-zero/metricsTracker.js.map +0 -1
- package/dist/alpha-zero/security/core.d.ts +0 -125
- package/dist/alpha-zero/security/core.d.ts.map +0 -1
- package/dist/alpha-zero/security/core.js +0 -271
- package/dist/alpha-zero/security/core.js.map +0 -1
- package/dist/alpha-zero/security/google.d.ts +0 -125
- package/dist/alpha-zero/security/google.d.ts.map +0 -1
- package/dist/alpha-zero/security/google.js +0 -311
- package/dist/alpha-zero/security/google.js.map +0 -1
- package/dist/alpha-zero/security/googleLoader.d.ts +0 -17
- package/dist/alpha-zero/security/googleLoader.d.ts.map +0 -1
- package/dist/alpha-zero/security/googleLoader.js +0 -41
- package/dist/alpha-zero/security/googleLoader.js.map +0 -1
- package/dist/alpha-zero/security/index.d.ts +0 -29
- package/dist/alpha-zero/security/index.d.ts.map +0 -1
- package/dist/alpha-zero/security/index.js +0 -32
- package/dist/alpha-zero/security/index.js.map +0 -1
- package/dist/alpha-zero/security/simulation.d.ts +0 -124
- package/dist/alpha-zero/security/simulation.d.ts.map +0 -1
- package/dist/alpha-zero/security/simulation.js +0 -277
- package/dist/alpha-zero/security/simulation.js.map +0 -1
- package/dist/alpha-zero/selfModification.d.ts +0 -109
- package/dist/alpha-zero/selfModification.d.ts.map +0 -1
- package/dist/alpha-zero/selfModification.js +0 -233
- package/dist/alpha-zero/selfModification.js.map +0 -1
- package/dist/alpha-zero/types.d.ts +0 -170
- package/dist/alpha-zero/types.d.ts.map +0 -1
- package/dist/alpha-zero/types.js +0 -31
- package/dist/alpha-zero/types.js.map +0 -1
- package/dist/capabilities/securityTestingCapability.d.ts +0 -13
- package/dist/capabilities/securityTestingCapability.d.ts.map +0 -1
- package/dist/capabilities/securityTestingCapability.js +0 -25
- package/dist/capabilities/securityTestingCapability.js.map +0 -1
- package/dist/core/aiFlowOptimizer.d.ts +0 -26
- package/dist/core/aiFlowOptimizer.d.ts.map +0 -1
- package/dist/core/aiFlowOptimizer.js +0 -31
- package/dist/core/aiFlowOptimizer.js.map +0 -1
- package/dist/core/aiOptimizationEngine.d.ts +0 -158
- package/dist/core/aiOptimizationEngine.d.ts.map +0 -1
- package/dist/core/aiOptimizationEngine.js +0 -428
- package/dist/core/aiOptimizationEngine.js.map +0 -1
- package/dist/core/aiOptimizationIntegration.d.ts +0 -93
- package/dist/core/aiOptimizationIntegration.d.ts.map +0 -1
- package/dist/core/aiOptimizationIntegration.js +0 -250
- package/dist/core/aiOptimizationIntegration.js.map +0 -1
- package/dist/core/enhancedErrorRecovery.d.ts +0 -100
- package/dist/core/enhancedErrorRecovery.d.ts.map +0 -1
- package/dist/core/enhancedErrorRecovery.js +0 -345
- package/dist/core/enhancedErrorRecovery.js.map +0 -1
- package/dist/core/hooksSystem.d.ts +0 -65
- package/dist/core/hooksSystem.d.ts.map +0 -1
- package/dist/core/hooksSystem.js +0 -273
- package/dist/core/hooksSystem.js.map +0 -1
- package/dist/core/memorySystem.d.ts +0 -48
- package/dist/core/memorySystem.d.ts.map +0 -1
- package/dist/core/memorySystem.js +0 -271
- package/dist/core/memorySystem.js.map +0 -1
- package/dist/core/unified/errors.d.ts +0 -189
- package/dist/core/unified/errors.d.ts.map +0 -1
- package/dist/core/unified/errors.js +0 -497
- package/dist/core/unified/errors.js.map +0 -1
- package/dist/core/unified/index.d.ts +0 -19
- package/dist/core/unified/index.d.ts.map +0 -1
- package/dist/core/unified/index.js +0 -68
- package/dist/core/unified/index.js.map +0 -1
- package/dist/core/unified/schema.d.ts +0 -101
- package/dist/core/unified/schema.d.ts.map +0 -1
- package/dist/core/unified/schema.js +0 -350
- package/dist/core/unified/schema.js.map +0 -1
- package/dist/core/unified/toolRuntime.d.ts +0 -179
- package/dist/core/unified/toolRuntime.d.ts.map +0 -1
- package/dist/core/unified/toolRuntime.js +0 -517
- package/dist/core/unified/toolRuntime.js.map +0 -1
- package/dist/core/unified/tools.d.ts +0 -127
- package/dist/core/unified/tools.d.ts.map +0 -1
- package/dist/core/unified/tools.js +0 -1333
- package/dist/core/unified/tools.js.map +0 -1
- package/dist/core/unified/types.d.ts +0 -352
- package/dist/core/unified/types.d.ts.map +0 -1
- package/dist/core/unified/types.js +0 -12
- package/dist/core/unified/types.js.map +0 -1
- package/dist/core/unified/version.d.ts +0 -209
- package/dist/core/unified/version.d.ts.map +0 -1
- package/dist/core/unified/version.js +0 -454
- package/dist/core/unified/version.js.map +0 -1
- package/dist/plugins/tools/security/securityPlugin.d.ts +0 -3
- package/dist/plugins/tools/security/securityPlugin.d.ts.map +0 -1
- package/dist/plugins/tools/security/securityPlugin.js +0 -12
- package/dist/plugins/tools/security/securityPlugin.js.map +0 -1
- package/dist/security/active-stack-security.d.ts +0 -112
- package/dist/security/active-stack-security.d.ts.map +0 -1
- package/dist/security/active-stack-security.js +0 -296
- package/dist/security/active-stack-security.js.map +0 -1
- package/dist/security/advanced-persistence-research.d.ts +0 -92
- package/dist/security/advanced-persistence-research.d.ts.map +0 -1
- package/dist/security/advanced-persistence-research.js +0 -195
- package/dist/security/advanced-persistence-research.js.map +0 -1
- package/dist/security/advanced-targeting.d.ts +0 -119
- package/dist/security/advanced-targeting.d.ts.map +0 -1
- package/dist/security/advanced-targeting.js +0 -233
- package/dist/security/advanced-targeting.js.map +0 -1
- package/dist/security/assessment/vulnerabilityAssessment.d.ts +0 -104
- package/dist/security/assessment/vulnerabilityAssessment.d.ts.map +0 -1
- package/dist/security/assessment/vulnerabilityAssessment.js +0 -315
- package/dist/security/assessment/vulnerabilityAssessment.js.map +0 -1
- package/dist/security/authorization/securityAuthorization.d.ts +0 -88
- package/dist/security/authorization/securityAuthorization.d.ts.map +0 -1
- package/dist/security/authorization/securityAuthorization.js +0 -172
- package/dist/security/authorization/securityAuthorization.js.map +0 -1
- package/dist/security/comprehensive-targeting.d.ts +0 -85
- package/dist/security/comprehensive-targeting.d.ts.map +0 -1
- package/dist/security/comprehensive-targeting.js +0 -438
- package/dist/security/comprehensive-targeting.js.map +0 -1
- package/dist/security/global-security-integration.d.ts +0 -91
- package/dist/security/global-security-integration.d.ts.map +0 -1
- package/dist/security/global-security-integration.js +0 -218
- package/dist/security/global-security-integration.js.map +0 -1
- package/dist/security/index.d.ts +0 -38
- package/dist/security/index.d.ts.map +0 -1
- package/dist/security/index.js +0 -47
- package/dist/security/index.js.map +0 -1
- package/dist/security/persistence-analyzer.d.ts +0 -56
- package/dist/security/persistence-analyzer.d.ts.map +0 -1
- package/dist/security/persistence-analyzer.js +0 -187
- package/dist/security/persistence-analyzer.js.map +0 -1
- package/dist/security/persistence-cli.d.ts +0 -36
- package/dist/security/persistence-cli.d.ts.map +0 -1
- package/dist/security/persistence-cli.js +0 -160
- package/dist/security/persistence-cli.js.map +0 -1
- package/dist/security/persistence-research.d.ts +0 -92
- package/dist/security/persistence-research.d.ts.map +0 -1
- package/dist/security/persistence-research.js +0 -364
- package/dist/security/persistence-research.js.map +0 -1
- package/dist/security/research/persistenceResearch.d.ts +0 -97
- package/dist/security/research/persistenceResearch.d.ts.map +0 -1
- package/dist/security/research/persistenceResearch.js +0 -282
- package/dist/security/research/persistenceResearch.js.map +0 -1
- package/dist/security/security-integration.d.ts +0 -74
- package/dist/security/security-integration.d.ts.map +0 -1
- package/dist/security/security-integration.js +0 -137
- package/dist/security/security-integration.js.map +0 -1
- package/dist/security/security-testing-framework.d.ts +0 -112
- package/dist/security/security-testing-framework.d.ts.map +0 -1
- package/dist/security/security-testing-framework.js +0 -364
- package/dist/security/security-testing-framework.js.map +0 -1
- package/dist/security/simulation/attackSimulation.d.ts +0 -93
- package/dist/security/simulation/attackSimulation.d.ts.map +0 -1
- package/dist/security/simulation/attackSimulation.js +0 -341
- package/dist/security/simulation/attackSimulation.js.map +0 -1
- package/dist/security/strategic-operations.d.ts +0 -100
- package/dist/security/strategic-operations.d.ts.map +0 -1
- package/dist/security/strategic-operations.js +0 -276
- package/dist/security/strategic-operations.js.map +0 -1
- package/dist/security/tool-security-wrapper.d.ts +0 -58
- package/dist/security/tool-security-wrapper.d.ts.map +0 -1
- package/dist/security/tool-security-wrapper.js +0 -156
- package/dist/security/tool-security-wrapper.js.map +0 -1
- package/dist/shell/claudeCodeStreamHandler.d.ts +0 -145
- package/dist/shell/claudeCodeStreamHandler.d.ts.map +0 -1
- package/dist/shell/claudeCodeStreamHandler.js +0 -322
- package/dist/shell/claudeCodeStreamHandler.js.map +0 -1
- package/dist/shell/inputQueueManager.d.ts +0 -144
- package/dist/shell/inputQueueManager.d.ts.map +0 -1
- package/dist/shell/inputQueueManager.js +0 -290
- package/dist/shell/inputQueueManager.js.map +0 -1
- package/dist/shell/metricsTracker.d.ts +0 -60
- package/dist/shell/metricsTracker.d.ts.map +0 -1
- package/dist/shell/metricsTracker.js +0 -119
- package/dist/shell/metricsTracker.js.map +0 -1
- package/dist/shell/streamingOutputManager.d.ts +0 -115
- package/dist/shell/streamingOutputManager.d.ts.map +0 -1
- package/dist/shell/streamingOutputManager.js +0 -225
- package/dist/shell/streamingOutputManager.js.map +0 -1
- package/dist/tools/securityTools.d.ts +0 -22
- package/dist/tools/securityTools.d.ts.map +0 -1
- package/dist/tools/securityTools.js +0 -448
- package/dist/tools/securityTools.js.map +0 -1
- package/dist/ui/persistentPrompt.d.ts +0 -50
- package/dist/ui/persistentPrompt.d.ts.map +0 -1
- package/dist/ui/persistentPrompt.js +0 -92
- package/dist/ui/persistentPrompt.js.map +0 -1
- package/dist/ui/terminalUISchema.d.ts +0 -195
- package/dist/ui/terminalUISchema.d.ts.map +0 -1
- package/dist/ui/terminalUISchema.js +0 -113
- package/dist/ui/terminalUISchema.js.map +0 -1
- package/scripts/deploy-security-capabilities.js +0 -178
|
@@ -1,97 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Persistence Research Engine
|
|
3
|
-
*
|
|
4
|
-
* Comprehensive analysis of persistence mechanisms across different platforms
|
|
5
|
-
* for legitimate security research and testing.
|
|
6
|
-
*
|
|
7
|
-
* This engine provides:
|
|
8
|
-
* - Multi-platform persistence technique analysis
|
|
9
|
-
* - Stealth and complexity assessment
|
|
10
|
-
* - Detection method generation
|
|
11
|
-
* - Countermeasure recommendations
|
|
12
|
-
*
|
|
13
|
-
* LEGAL NOTICE:
|
|
14
|
-
* For authorized security research, penetration testing, and red team exercises only.
|
|
15
|
-
*/
|
|
16
|
-
export interface PersistenceAnalysisRequest {
|
|
17
|
-
platform: string;
|
|
18
|
-
stealthLevel?: number;
|
|
19
|
-
includeDetection?: boolean;
|
|
20
|
-
}
|
|
21
|
-
export interface PersistenceAnalysisResult {
|
|
22
|
-
platform: string;
|
|
23
|
-
stealthLevel: number;
|
|
24
|
-
includeDetection: boolean;
|
|
25
|
-
techniques: PersistenceTechnique[];
|
|
26
|
-
summary: {
|
|
27
|
-
totalTechniques: number;
|
|
28
|
-
averageStealth: number;
|
|
29
|
-
riskLevel: string;
|
|
30
|
-
};
|
|
31
|
-
}
|
|
32
|
-
export interface PersistenceTechnique {
|
|
33
|
-
id: string;
|
|
34
|
-
name: string;
|
|
35
|
-
platform: string;
|
|
36
|
-
stealth: number;
|
|
37
|
-
complexity: 'low' | 'medium' | 'high' | 'advanced';
|
|
38
|
-
detectionDifficulty: 'easy' | 'medium' | 'hard' | 'very-hard';
|
|
39
|
-
mitreIds: string[];
|
|
40
|
-
description: string;
|
|
41
|
-
implementation: string[];
|
|
42
|
-
detectionMethods: string[];
|
|
43
|
-
countermeasures: string[];
|
|
44
|
-
indicators: string[];
|
|
45
|
-
tools: string[];
|
|
46
|
-
}
|
|
47
|
-
export interface DetectionGenerationRequest {
|
|
48
|
-
techniqueId: string;
|
|
49
|
-
platform?: string;
|
|
50
|
-
}
|
|
51
|
-
export interface DetectionGenerationResult {
|
|
52
|
-
techniqueId: string;
|
|
53
|
-
platform?: string;
|
|
54
|
-
detectionMethods: string[];
|
|
55
|
-
indicators: string[];
|
|
56
|
-
monitoringRecommendations: string[];
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Persistence Research Engine
|
|
60
|
-
*/
|
|
61
|
-
export declare class PersistenceResearchEngine {
|
|
62
|
-
private techniques;
|
|
63
|
-
constructor();
|
|
64
|
-
/**
|
|
65
|
-
* Analyze persistence techniques for a specific platform
|
|
66
|
-
*/
|
|
67
|
-
analyzePersistence(request: PersistenceAnalysisRequest): Promise<PersistenceAnalysisResult>;
|
|
68
|
-
/**
|
|
69
|
-
* Generate detection methods for a specific persistence technique
|
|
70
|
-
*/
|
|
71
|
-
generateDetectionMethods(request: DetectionGenerationRequest): Promise<DetectionGenerationResult>;
|
|
72
|
-
/**
|
|
73
|
-
* Get all available platforms
|
|
74
|
-
*/
|
|
75
|
-
getAvailablePlatforms(): string[];
|
|
76
|
-
/**
|
|
77
|
-
* Get technique by ID
|
|
78
|
-
*/
|
|
79
|
-
getTechnique(techniqueId: string): PersistenceTechnique | undefined;
|
|
80
|
-
/**
|
|
81
|
-
* Calculate risk level based on techniques
|
|
82
|
-
*/
|
|
83
|
-
private calculateRiskLevel;
|
|
84
|
-
/**
|
|
85
|
-
* Generate monitoring recommendations
|
|
86
|
-
*/
|
|
87
|
-
private generateMonitoringRecommendations;
|
|
88
|
-
/**
|
|
89
|
-
* Initialize persistence techniques database
|
|
90
|
-
*/
|
|
91
|
-
private initializeTechniques;
|
|
92
|
-
/**
|
|
93
|
-
* Add technique to database
|
|
94
|
-
*/
|
|
95
|
-
private addTechnique;
|
|
96
|
-
}
|
|
97
|
-
//# sourceMappingURL=persistenceResearch.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"persistenceResearch.d.ts","sourceRoot":"","sources":["../../../src/security/research/persistenceResearch.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,MAAM,WAAW,0BAA0B;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,UAAU,EAAE,oBAAoB,EAAE,CAAC;IACnC,OAAO,EAAE;QACP,eAAe,EAAE,MAAM,CAAC;QACxB,cAAc,EAAE,MAAM,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;KACnB,CAAC;CACH;AAED,MAAM,WAAW,oBAAoB;IACnC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACnD,mBAAmB,EAAE,MAAM,GAAG,QAAQ,GAAG,MAAM,GAAG,WAAW,CAAC;IAC9D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,EAAE,CAAC;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,MAAM,WAAW,0BAA0B;IACzC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,yBAAyB;IACxC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,yBAAyB,EAAE,MAAM,EAAE,CAAC;CACrC;AAED;;GAEG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,UAAU,CAAoC;;IAOtD;;OAEG;IACG,kBAAkB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAwBjG;;OAEG;IACG,wBAAwB,CAAC,OAAO,EAAE,0BAA0B,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAgBvG;;OAEG;IACH,qBAAqB,IAAI,MAAM,EAAE;IAQjC;;OAEG;IACH,YAAY,CAAC,WAAW,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAInE;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAc1B;;OAEG;IACH,OAAO,CAAC,iCAAiC;IAoCzC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAuK5B;;OAEG;IACH,OAAO,CAAC,YAAY;CAGrB"}
|
|
@@ -1,282 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Persistence Research Engine
|
|
3
|
-
*
|
|
4
|
-
* Comprehensive analysis of persistence mechanisms across different platforms
|
|
5
|
-
* for legitimate security research and testing.
|
|
6
|
-
*
|
|
7
|
-
* This engine provides:
|
|
8
|
-
* - Multi-platform persistence technique analysis
|
|
9
|
-
* - Stealth and complexity assessment
|
|
10
|
-
* - Detection method generation
|
|
11
|
-
* - Countermeasure recommendations
|
|
12
|
-
*
|
|
13
|
-
* LEGAL NOTICE:
|
|
14
|
-
* For authorized security research, penetration testing, and red team exercises only.
|
|
15
|
-
*/
|
|
16
|
-
/**
|
|
17
|
-
* Persistence Research Engine
|
|
18
|
-
*/
|
|
19
|
-
export class PersistenceResearchEngine {
|
|
20
|
-
techniques;
|
|
21
|
-
constructor() {
|
|
22
|
-
this.techniques = new Map();
|
|
23
|
-
this.initializeTechniques();
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Analyze persistence techniques for a specific platform
|
|
27
|
-
*/
|
|
28
|
-
async analyzePersistence(request) {
|
|
29
|
-
const filteredTechniques = Array.from(this.techniques.values())
|
|
30
|
-
.filter(tech => tech.platform === request.platform || request.platform === 'multi-platform')
|
|
31
|
-
.filter(tech => tech.stealth >= (request.stealthLevel || 1));
|
|
32
|
-
const averageStealth = filteredTechniques.length > 0
|
|
33
|
-
? filteredTechniques.reduce((sum, tech) => sum + tech.stealth, 0) / filteredTechniques.length
|
|
34
|
-
: 0;
|
|
35
|
-
const riskLevel = this.calculateRiskLevel(filteredTechniques);
|
|
36
|
-
return {
|
|
37
|
-
platform: request.platform,
|
|
38
|
-
stealthLevel: request.stealthLevel || 1,
|
|
39
|
-
includeDetection: request.includeDetection || false,
|
|
40
|
-
techniques: filteredTechniques,
|
|
41
|
-
summary: {
|
|
42
|
-
totalTechniques: filteredTechniques.length,
|
|
43
|
-
averageStealth,
|
|
44
|
-
riskLevel
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
/**
|
|
49
|
-
* Generate detection methods for a specific persistence technique
|
|
50
|
-
*/
|
|
51
|
-
async generateDetectionMethods(request) {
|
|
52
|
-
const technique = this.techniques.get(request.techniqueId);
|
|
53
|
-
if (!technique) {
|
|
54
|
-
throw new Error(`Persistence technique not found: ${request.techniqueId}`);
|
|
55
|
-
}
|
|
56
|
-
return {
|
|
57
|
-
techniqueId: request.techniqueId,
|
|
58
|
-
platform: request.platform,
|
|
59
|
-
detectionMethods: technique.detectionMethods,
|
|
60
|
-
indicators: technique.indicators,
|
|
61
|
-
monitoringRecommendations: this.generateMonitoringRecommendations(technique)
|
|
62
|
-
};
|
|
63
|
-
}
|
|
64
|
-
/**
|
|
65
|
-
* Get all available platforms
|
|
66
|
-
*/
|
|
67
|
-
getAvailablePlatforms() {
|
|
68
|
-
const platforms = new Set();
|
|
69
|
-
for (const technique of this.techniques.values()) {
|
|
70
|
-
platforms.add(technique.platform);
|
|
71
|
-
}
|
|
72
|
-
return Array.from(platforms);
|
|
73
|
-
}
|
|
74
|
-
/**
|
|
75
|
-
* Get technique by ID
|
|
76
|
-
*/
|
|
77
|
-
getTechnique(techniqueId) {
|
|
78
|
-
return this.techniques.get(techniqueId);
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Calculate risk level based on techniques
|
|
82
|
-
*/
|
|
83
|
-
calculateRiskLevel(techniques) {
|
|
84
|
-
if (techniques.length === 0)
|
|
85
|
-
return 'low';
|
|
86
|
-
const highRiskCount = techniques.filter(t => t.stealth >= 4 || t.detectionDifficulty === 'very-hard').length;
|
|
87
|
-
const riskRatio = highRiskCount / techniques.length;
|
|
88
|
-
if (riskRatio >= 0.5)
|
|
89
|
-
return 'high';
|
|
90
|
-
if (riskRatio >= 0.2)
|
|
91
|
-
return 'medium';
|
|
92
|
-
return 'low';
|
|
93
|
-
}
|
|
94
|
-
/**
|
|
95
|
-
* Generate monitoring recommendations
|
|
96
|
-
*/
|
|
97
|
-
generateMonitoringRecommendations(technique) {
|
|
98
|
-
const recommendations = [];
|
|
99
|
-
if (technique.platform.includes('windows')) {
|
|
100
|
-
recommendations.push('Enable Windows Event Log monitoring', 'Monitor registry changes', 'Track service creation and modifications');
|
|
101
|
-
}
|
|
102
|
-
if (technique.platform.includes('aws') || technique.platform.includes('azure') || technique.platform.includes('gcp')) {
|
|
103
|
-
recommendations.push('Enable cloud audit logging', 'Monitor IAM role and policy changes', 'Track API key creation and usage');
|
|
104
|
-
}
|
|
105
|
-
if (technique.platform.includes('kubernetes') || technique.platform.includes('docker')) {
|
|
106
|
-
recommendations.push('Monitor container deployments', 'Track image registry changes', 'Audit cluster configuration modifications');
|
|
107
|
-
}
|
|
108
|
-
recommendations.push('Implement behavioral analytics', 'Enable real-time alerting', 'Conduct regular security assessments');
|
|
109
|
-
return recommendations;
|
|
110
|
-
}
|
|
111
|
-
/**
|
|
112
|
-
* Initialize persistence techniques database
|
|
113
|
-
*/
|
|
114
|
-
initializeTechniques() {
|
|
115
|
-
// Windows persistence techniques
|
|
116
|
-
this.addTechnique({
|
|
117
|
-
id: 'win-registry-run',
|
|
118
|
-
name: 'Registry Run Keys',
|
|
119
|
-
platform: 'windows',
|
|
120
|
-
stealth: 3,
|
|
121
|
-
complexity: 'medium',
|
|
122
|
-
detectionDifficulty: 'medium',
|
|
123
|
-
mitreIds: ['T1547.001'],
|
|
124
|
-
description: 'Malware adds entries to registry run keys to execute on system startup',
|
|
125
|
-
implementation: [
|
|
126
|
-
'Add entry to HKEY_CURRENT_USER\\Software\\Microsoft\\Windows\\CurrentVersion\\Run',
|
|
127
|
-
'Add entry to HKEY_LOCAL_MACHINE\\Software\\Microsoft\\Windows\\CurrentVersion\\Run',
|
|
128
|
-
'Use registry run once keys for single execution'
|
|
129
|
-
],
|
|
130
|
-
detectionMethods: [
|
|
131
|
-
'Monitor registry changes in run keys',
|
|
132
|
-
'Check for suspicious executable paths',
|
|
133
|
-
'Analyze registry modification events'
|
|
134
|
-
],
|
|
135
|
-
countermeasures: [
|
|
136
|
-
'Remove suspicious registry entries',
|
|
137
|
-
'Implement application whitelisting',
|
|
138
|
-
'Monitor registry modifications'
|
|
139
|
-
],
|
|
140
|
-
indicators: [
|
|
141
|
-
'Unexpected registry modifications',
|
|
142
|
-
'Suspicious executable paths in run keys',
|
|
143
|
-
'Registry modification events from unusual processes'
|
|
144
|
-
],
|
|
145
|
-
tools: ['Regedit', 'Autoruns', 'Sysinternals Suite']
|
|
146
|
-
});
|
|
147
|
-
this.addTechnique({
|
|
148
|
-
id: 'win-scheduled-tasks',
|
|
149
|
-
name: 'Scheduled Tasks',
|
|
150
|
-
platform: 'windows',
|
|
151
|
-
stealth: 2,
|
|
152
|
-
complexity: 'low',
|
|
153
|
-
detectionDifficulty: 'easy',
|
|
154
|
-
mitreIds: ['T1053.005'],
|
|
155
|
-
description: 'Creates scheduled tasks to execute malicious code at specific times or events',
|
|
156
|
-
implementation: [
|
|
157
|
-
'Create scheduled task using schtasks command',
|
|
158
|
-
'Use Task Scheduler GUI',
|
|
159
|
-
'Create tasks with specific triggers and actions'
|
|
160
|
-
],
|
|
161
|
-
detectionMethods: [
|
|
162
|
-
'Review scheduled tasks using schtasks',
|
|
163
|
-
'Monitor Task Scheduler service events',
|
|
164
|
-
'Check for tasks with suspicious actions'
|
|
165
|
-
],
|
|
166
|
-
countermeasures: [
|
|
167
|
-
'Delete malicious scheduled tasks',
|
|
168
|
-
'Monitor Task Scheduler service',
|
|
169
|
-
'Implement application whitelisting'
|
|
170
|
-
],
|
|
171
|
-
indicators: [
|
|
172
|
-
'New scheduled task creations',
|
|
173
|
-
'Tasks with suspicious executable paths',
|
|
174
|
-
'Unusual task triggers or actions'
|
|
175
|
-
],
|
|
176
|
-
tools: ['Schtasks', 'Task Scheduler', 'PowerShell']
|
|
177
|
-
});
|
|
178
|
-
// Cloud persistence techniques
|
|
179
|
-
this.addTechnique({
|
|
180
|
-
id: 'aws-iam-backdoor',
|
|
181
|
-
name: 'AWS IAM Role Backdoor',
|
|
182
|
-
platform: 'aws',
|
|
183
|
-
stealth: 4,
|
|
184
|
-
complexity: 'high',
|
|
185
|
-
detectionDifficulty: 'hard',
|
|
186
|
-
mitreIds: ['T1078.004'],
|
|
187
|
-
description: 'Creates or modifies IAM roles with external entity trust for persistence',
|
|
188
|
-
implementation: [
|
|
189
|
-
'Create IAM role with external IDP trust',
|
|
190
|
-
'Modify existing role trust policy',
|
|
191
|
-
'Add cross-account access with broad permissions'
|
|
192
|
-
],
|
|
193
|
-
detectionMethods: [
|
|
194
|
-
'Monitor CloudTrail for role modifications',
|
|
195
|
-
'Analyze IAM role trust policies',
|
|
196
|
-
'Check for external entity trusts'
|
|
197
|
-
],
|
|
198
|
-
countermeasures: [
|
|
199
|
-
'Implement least privilege for IAM roles',
|
|
200
|
-
'Monitor for external trust modifications',
|
|
201
|
-
'Use AWS Organizations SCPs'
|
|
202
|
-
],
|
|
203
|
-
indicators: [
|
|
204
|
-
'IAM role policy modifications',
|
|
205
|
-
'New external identity provider trusts',
|
|
206
|
-
'Cross-account role assumptions'
|
|
207
|
-
],
|
|
208
|
-
tools: ['AWS CLI', 'Pacu', 'CloudSploit']
|
|
209
|
-
});
|
|
210
|
-
this.addTechnique({
|
|
211
|
-
id: 'azure-app-backdoor',
|
|
212
|
-
name: 'Azure AD Application Backdoor',
|
|
213
|
-
platform: 'azure',
|
|
214
|
-
stealth: 4,
|
|
215
|
-
complexity: 'medium',
|
|
216
|
-
detectionDifficulty: 'hard',
|
|
217
|
-
mitreIds: ['T1098.001'],
|
|
218
|
-
description: 'Registers malicious Azure AD application with high privilege permissions',
|
|
219
|
-
implementation: [
|
|
220
|
-
'Register new Azure AD application',
|
|
221
|
-
'Grant high privilege permissions',
|
|
222
|
-
'Create application secret or certificate'
|
|
223
|
-
],
|
|
224
|
-
detectionMethods: [
|
|
225
|
-
'Monitor Azure AD audit logs for app registrations',
|
|
226
|
-
'Check for applications with high privilege permissions',
|
|
227
|
-
'Analyze application consent grants'
|
|
228
|
-
],
|
|
229
|
-
countermeasures: [
|
|
230
|
-
'Implement application governance policies',
|
|
231
|
-
'Require admin consent for high privilege apps',
|
|
232
|
-
'Regular review of registered applications'
|
|
233
|
-
],
|
|
234
|
-
indicators: [
|
|
235
|
-
'New application registrations with high privileges',
|
|
236
|
-
'Application consent grants',
|
|
237
|
-
'Application secret/certificate creation'
|
|
238
|
-
],
|
|
239
|
-
tools: ['Azure PowerShell', 'Microsoft Graph API', 'Stormspotter']
|
|
240
|
-
});
|
|
241
|
-
// Container persistence techniques
|
|
242
|
-
this.addTechnique({
|
|
243
|
-
id: 'k8s-daemonset',
|
|
244
|
-
name: 'Kubernetes Malicious DaemonSet',
|
|
245
|
-
platform: 'kubernetes',
|
|
246
|
-
stealth: 4,
|
|
247
|
-
complexity: 'high',
|
|
248
|
-
detectionDifficulty: 'hard',
|
|
249
|
-
mitreIds: ['T1053.003'],
|
|
250
|
-
description: 'Deploys malicious DaemonSet that runs on every cluster node',
|
|
251
|
-
implementation: [
|
|
252
|
-
'Create DaemonSet with privileged container',
|
|
253
|
-
'Mount host directories for persistence',
|
|
254
|
-
'Use sidecar containers for covert communication'
|
|
255
|
-
],
|
|
256
|
-
detectionMethods: [
|
|
257
|
-
'Monitor for DaemonSet creations/modifications',
|
|
258
|
-
'Check for privileged container deployments',
|
|
259
|
-
'Analyze container security contexts'
|
|
260
|
-
],
|
|
261
|
-
countermeasures: [
|
|
262
|
-
'Implement Pod Security Standards',
|
|
263
|
-
'Use admission controllers (OPA Gatekeeper)',
|
|
264
|
-
'Monitor for privileged container deployments'
|
|
265
|
-
],
|
|
266
|
-
indicators: [
|
|
267
|
-
'New DaemonSet deployments',
|
|
268
|
-
'Containers with privileged security context',
|
|
269
|
-
'Host path mounts in containers'
|
|
270
|
-
],
|
|
271
|
-
tools: ['kubectl', 'kubeaudit', 'kube-hunter']
|
|
272
|
-
});
|
|
273
|
-
// Add more techniques as needed...
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* Add technique to database
|
|
277
|
-
*/
|
|
278
|
-
addTechnique(technique) {
|
|
279
|
-
this.techniques.set(technique.id, technique);
|
|
280
|
-
}
|
|
281
|
-
}
|
|
282
|
-
//# sourceMappingURL=persistenceResearch.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"persistenceResearch.js","sourceRoot":"","sources":["../../../src/security/research/persistenceResearch.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,74 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Security Integration Module
|
|
3
|
-
*
|
|
4
|
-
* Integrates active stack security with the existing Erosolar CLI tool runtime.
|
|
5
|
-
* Provides hooks for security validation and monitoring.
|
|
6
|
-
*
|
|
7
|
-
* @license MIT
|
|
8
|
-
* @author Bo Shang
|
|
9
|
-
*/
|
|
10
|
-
import { type ToolSecurityWrapper } from './tool-security-wrapper.js';
|
|
11
|
-
import { type SecurityEvent } from './active-stack-security.js';
|
|
12
|
-
export interface SecurityIntegrationConfig {
|
|
13
|
-
/** Enable security validation */
|
|
14
|
-
enabled: boolean;
|
|
15
|
-
/** Log security events */
|
|
16
|
-
logging: boolean;
|
|
17
|
-
/** Block unauthorized operations */
|
|
18
|
-
blockUnauthorized: boolean;
|
|
19
|
-
/** Security event handlers */
|
|
20
|
-
eventHandlers?: {
|
|
21
|
-
onSecurityEvent?: (event: SecurityEvent) => void;
|
|
22
|
-
onBlockedOperation?: (event: SecurityEvent) => void;
|
|
23
|
-
};
|
|
24
|
-
}
|
|
25
|
-
export declare class SecurityIntegration {
|
|
26
|
-
private config;
|
|
27
|
-
private secureToolRuntime;
|
|
28
|
-
constructor(config: SecurityIntegrationConfig);
|
|
29
|
-
/**
|
|
30
|
-
* Initialize security integration
|
|
31
|
-
*/
|
|
32
|
-
initialize(): void;
|
|
33
|
-
/**
|
|
34
|
-
* Get secure tool runtime
|
|
35
|
-
*/
|
|
36
|
-
getSecureToolRuntime(): ToolSecurityWrapper | null;
|
|
37
|
-
/**
|
|
38
|
-
* Execute tool with security validation
|
|
39
|
-
*/
|
|
40
|
-
executeTool(toolName: string, args: Record<string, unknown>): Promise<unknown>;
|
|
41
|
-
/**
|
|
42
|
-
* Get security status
|
|
43
|
-
*/
|
|
44
|
-
getSecurityStatus(): {
|
|
45
|
-
enabled: boolean;
|
|
46
|
-
logging: boolean;
|
|
47
|
-
blockedOperations: number;
|
|
48
|
-
lastEvent: SecurityEvent | null;
|
|
49
|
-
summary: {
|
|
50
|
-
totalEvents: number;
|
|
51
|
-
criticalEvents: number;
|
|
52
|
-
highEvents: number;
|
|
53
|
-
mediumEvents: number;
|
|
54
|
-
};
|
|
55
|
-
};
|
|
56
|
-
/**
|
|
57
|
-
* Clear security log
|
|
58
|
-
*/
|
|
59
|
-
clearSecurityLog(): void;
|
|
60
|
-
/**
|
|
61
|
-
* Generate security report
|
|
62
|
-
*/
|
|
63
|
-
generateSecurityReport(): string;
|
|
64
|
-
private setupEventHandlers;
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Global security integration instance
|
|
68
|
-
*/
|
|
69
|
-
export declare const securityIntegration: SecurityIntegration;
|
|
70
|
-
/**
|
|
71
|
-
* Initialize security integration
|
|
72
|
-
*/
|
|
73
|
-
export declare function initializeSecurityIntegration(): void;
|
|
74
|
-
//# sourceMappingURL=security-integration.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"security-integration.d.ts","sourceRoot":"","sources":["../../src/security/security-integration.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAC/F,OAAO,EAAuB,KAAK,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAErF,MAAM,WAAW,yBAAyB;IACxC,iCAAiC;IACjC,OAAO,EAAE,OAAO,CAAC;IACjB,0BAA0B;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,oCAAoC;IACpC,iBAAiB,EAAE,OAAO,CAAC;IAC3B,8BAA8B;IAC9B,aAAa,CAAC,EAAE;QACd,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;QACjD,kBAAkB,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;KACrD,CAAC;CACH;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,iBAAiB,CAAoC;gBAEjD,MAAM,EAAE,yBAAyB;IAI7C;;OAEG;IACH,UAAU,IAAI,IAAI;IAelB;;OAEG;IACH,oBAAoB,IAAI,mBAAmB,GAAG,IAAI;IAIlD;;OAEG;IACG,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAQpF;;OAEG;IACH,iBAAiB;;;;;;;;;;;;IAgBjB;;OAEG;IACH,gBAAgB,IAAI,IAAI;IAIxB;;OAEG;IACH,sBAAsB,IAAI,MAAM;IA2ChC,OAAO,CAAC,kBAAkB;CAQ3B;AAED;;GAEG;AACH,eAAO,MAAM,mBAAmB,qBAI9B,CAAC;AAEH;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,IAAI,CAEpD"}
|
|
@@ -1,137 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Security Integration Module
|
|
3
|
-
*
|
|
4
|
-
* Integrates active stack security with the existing Erosolar CLI tool runtime.
|
|
5
|
-
* Provides hooks for security validation and monitoring.
|
|
6
|
-
*
|
|
7
|
-
* @license MIT
|
|
8
|
-
* @author Bo Shang
|
|
9
|
-
*/
|
|
10
|
-
import { createSecureToolRuntime } from './tool-security-wrapper.js';
|
|
11
|
-
import { activeStackSecurity } from './active-stack-security.js';
|
|
12
|
-
export class SecurityIntegration {
|
|
13
|
-
config;
|
|
14
|
-
secureToolRuntime = null;
|
|
15
|
-
constructor(config) {
|
|
16
|
-
this.config = config;
|
|
17
|
-
}
|
|
18
|
-
/**
|
|
19
|
-
* Initialize security integration
|
|
20
|
-
*/
|
|
21
|
-
initialize() {
|
|
22
|
-
if (!this.config.enabled) {
|
|
23
|
-
return;
|
|
24
|
-
}
|
|
25
|
-
this.secureToolRuntime = createSecureToolRuntime();
|
|
26
|
-
// Set up security event handlers
|
|
27
|
-
if (this.config.eventHandlers) {
|
|
28
|
-
this.setupEventHandlers();
|
|
29
|
-
}
|
|
30
|
-
console.log('🔒 Security Integration: Active Stack Security enabled');
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* Get secure tool runtime
|
|
34
|
-
*/
|
|
35
|
-
getSecureToolRuntime() {
|
|
36
|
-
return this.secureToolRuntime;
|
|
37
|
-
}
|
|
38
|
-
/**
|
|
39
|
-
* Execute tool with security validation
|
|
40
|
-
*/
|
|
41
|
-
async executeTool(toolName, args) {
|
|
42
|
-
if (!this.secureToolRuntime) {
|
|
43
|
-
throw new Error('Security integration not initialized');
|
|
44
|
-
}
|
|
45
|
-
return await this.secureToolRuntime.executeTool(toolName, args);
|
|
46
|
-
}
|
|
47
|
-
/**
|
|
48
|
-
* Get security status
|
|
49
|
-
*/
|
|
50
|
-
getSecurityStatus() {
|
|
51
|
-
const securityLog = activeStackSecurity.getSecurityLog();
|
|
52
|
-
return {
|
|
53
|
-
enabled: this.config.enabled,
|
|
54
|
-
logging: this.config.logging,
|
|
55
|
-
blockedOperations: securityLog.length,
|
|
56
|
-
lastEvent: securityLog[securityLog.length - 1] || null,
|
|
57
|
-
summary: {
|
|
58
|
-
totalEvents: securityLog.length,
|
|
59
|
-
criticalEvents: securityLog.filter(e => e.severity === 'critical').length,
|
|
60
|
-
highEvents: securityLog.filter(e => e.severity === 'high').length,
|
|
61
|
-
mediumEvents: securityLog.filter(e => e.severity === 'medium').length,
|
|
62
|
-
}
|
|
63
|
-
};
|
|
64
|
-
}
|
|
65
|
-
/**
|
|
66
|
-
* Clear security log
|
|
67
|
-
*/
|
|
68
|
-
clearSecurityLog() {
|
|
69
|
-
activeStackSecurity.clearSecurityLog();
|
|
70
|
-
}
|
|
71
|
-
/**
|
|
72
|
-
* Generate security report
|
|
73
|
-
*/
|
|
74
|
-
generateSecurityReport() {
|
|
75
|
-
const status = this.getSecurityStatus();
|
|
76
|
-
const report = [
|
|
77
|
-
'🔒 Erosolar CLI Security Report',
|
|
78
|
-
'================================',
|
|
79
|
-
`Status: ${status.enabled ? 'ENABLED' : 'DISABLED'}`,
|
|
80
|
-
`Security Logging: ${status.logging ? 'ENABLED' : 'DISABLED'}`,
|
|
81
|
-
`Blocked Operations: ${status.blockedOperations}`,
|
|
82
|
-
'',
|
|
83
|
-
'📊 Security Events Summary:',
|
|
84
|
-
` Total Events: ${status.summary.totalEvents}`,
|
|
85
|
-
` Critical: ${status.summary.criticalEvents}`,
|
|
86
|
-
` High: ${status.summary.highEvents}`,
|
|
87
|
-
` Medium: ${status.summary.mediumEvents}`,
|
|
88
|
-
'',
|
|
89
|
-
'🔒 Active Stack Security Rules:',
|
|
90
|
-
' - File operations restricted to current workspace',
|
|
91
|
-
' - System file access blocked',
|
|
92
|
-
' - Dangerous commands blocked',
|
|
93
|
-
' - Unauthorized networking blocked',
|
|
94
|
-
' - Suspicious patterns detected and logged',
|
|
95
|
-
'',
|
|
96
|
-
'📋 Scope Validation:',
|
|
97
|
-
' - Current working directory only',
|
|
98
|
-
' - No external file system access',
|
|
99
|
-
' - No system directory access',
|
|
100
|
-
' - No privileged operations',
|
|
101
|
-
];
|
|
102
|
-
if (status.lastEvent) {
|
|
103
|
-
report.push('', '📝 Last Security Event:');
|
|
104
|
-
report.push(` Type: ${status.lastEvent.type}`);
|
|
105
|
-
report.push(` Severity: ${status.lastEvent.severity}`);
|
|
106
|
-
report.push(` Operation: ${status.lastEvent.operation}`);
|
|
107
|
-
report.push(` Reason: ${status.lastEvent.reason}`);
|
|
108
|
-
if (status.lastEvent.filePath) {
|
|
109
|
-
report.push(` File: ${status.lastEvent.filePath}`);
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
return report.join('\n');
|
|
113
|
-
}
|
|
114
|
-
setupEventHandlers() {
|
|
115
|
-
// This would be called when security events occur
|
|
116
|
-
// For now, we'll just log to console if logging is enabled
|
|
117
|
-
if (this.config.logging) {
|
|
118
|
-
// We could implement real event handlers here
|
|
119
|
-
// Currently, events are logged directly in the security modules
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
}
|
|
123
|
-
/**
|
|
124
|
-
* Global security integration instance
|
|
125
|
-
*/
|
|
126
|
-
export const securityIntegration = new SecurityIntegration({
|
|
127
|
-
enabled: true,
|
|
128
|
-
logging: true,
|
|
129
|
-
blockUnauthorized: true,
|
|
130
|
-
});
|
|
131
|
-
/**
|
|
132
|
-
* Initialize security integration
|
|
133
|
-
*/
|
|
134
|
-
export function initializeSecurityIntegration() {
|
|
135
|
-
securityIntegration.initialize();
|
|
136
|
-
}
|
|
137
|
-
//# sourceMappingURL=security-integration.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"security-integration.js","sourceRoot":"","sources":["../../src/security/security-integration.ts"],"names":[],"mappings":"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"}
|