UNPKG

pompelmi

Version:

RFI-safe file uploads for Node.js — Express/Koa/Next.js middleware with deep ZIP inspection, MIME/size checks, and optional YARA scanning.

130 lines (129 loc) 4.2 kB
/** * Hybrid Taint Analysis Integration * * Complete integration package for dynamic taint tracking and hybrid orchestration * with existing Pompelmi decompilation engines and HIPAA compliance. */ import type { TaintConfig, TaintAnalysisResult, HybridConfig, HybridAnalysisResult, AnalysisEngine } from '../types/taint-tracking'; import type { TaintPolicy } from './taint-policies'; import type { DecompilationScanner, DecompilationResult } from '../types/decompilation'; /** * Enhanced analysis result combining all engines */ export interface EnhancedAnalysisResult { /** Analysis session ID */ sessionId: string; /** Overall success status */ success: boolean; /** Total analysis time */ totalTime: number; /** Static analysis results */ static?: { binaryNinja?: DecompilationResult; ghidra?: DecompilationResult; }; /** Dynamic taint analysis results */ taint?: TaintAnalysisResult; /** Hybrid orchestration results */ hybrid?: HybridAnalysisResult; /** Policy used for analysis */ policy?: TaintPolicy; /** Security assessment */ security: { riskScore: number; vulnerabilities: Array<{ type: string; severity: 'low' | 'medium' | 'high' | 'critical'; confidence: number; description: string; evidence: any; mitigations: string[]; }>; recommendations: string[]; }; /** Compliance assessment */ compliance?: { hipaaCompliant: boolean; issues: Array<{ type: string; severity: 'info' | 'warning' | 'critical'; description: string; remediation: string; }>; auditTrail: any[]; }; /** Performance metrics */ performance: { enginesUsed: AnalysisEngine[]; totalInstructions: number; memoryPeak: number; cpuTime: number; }; } /** * Main integration class for hybrid taint analysis */ export declare class HybridTaintAnalyzer { private orchestrator; private policyManager; private taintEngine; private registeredEngines; constructor(); /** * Initialize the analyzer with registered engines */ initialize(engines: { binaryNinja?: DecompilationScanner; ghidra?: DecompilationScanner; }): Promise<void>; /** * Perform comprehensive analysis using specified policy */ analyze(data: Uint8Array, policyName?: string, options?: { enabledEngines?: AnalysisEngine[]; customConfig?: Partial<HybridConfig>; includeCompliance?: boolean; }): Promise<EnhancedAnalysisResult>; /** * Get available analysis policies */ getAvailablePolicies(): TaintPolicy[]; /** * Get policies by use case */ getPoliciesByUseCase(useCase: 'malware' | 'vulnerability' | 'compliance' | 'forensics' | 'general'): TaintPolicy[]; /** * Register a custom analysis policy */ registerPolicy(policy: TaintPolicy): void; /** * Perform quick taint analysis without full orchestration */ quickTaintAnalysis(data: Uint8Array, config?: Partial<TaintConfig>): Promise<TaintAnalysisResult>; /** * Check if data contains taint at specific location */ checkTaint(address: string): Promise<boolean>; /** * Add custom taint source for analysis */ addTaintSource(address: string, source: string, metadata?: any): Promise<void>; private registerEngine; private createEngineCapabilities; private createHybridConfig; private mergeConfigs; private processResults; private extractStaticResults; private calculateSecurityAssessment; private calculateComplianceAssessment; private calculatePerformanceMetrics; private generateSecurityRecommendations; private generateAuditTrail; private getDefaultTaintConfig; private generateSessionId; private createFailureResult; } export declare function analyzeWithTaint(data: Uint8Array, engines: { binaryNinja?: DecompilationScanner; ghidra?: DecompilationScanner; }, policy?: string): Promise<EnhancedAnalysisResult>;