UNPKG

aimless-security

Version:

Enhanced Runtime Application Self-Protection (RASP) and API Fuzzing Engine with advanced threat detection, behavioral analysis, and intelligent response scoring for Node.js applications

157 lines 4.11 kB
export interface AimlessConfig { rasp?: RASPConfig; fuzzing?: FuzzingConfig; logging?: LoggingConfig; } export interface EndpointRule { path: string | RegExp; methods?: string[]; requireAuth?: boolean; maxThreatLevel?: 'low' | 'medium' | 'high' | 'critical'; rateLimit?: { maxRequests: number; windowMs: number; }; } export interface AccessControlConfig { mode: 'allowlist' | 'blocklist' | 'monitor'; allowedEndpoints?: EndpointRule[]; protectedEndpoints?: EndpointRule[]; blockedEndpoints?: (string | RegExp)[]; defaultAction?: 'allow' | 'block'; requireAuthHeader?: string; } export interface RASPConfig { enabled?: boolean; injectionProtection?: boolean; xssProtection?: boolean; csrfProtection?: boolean; anomalyDetection?: boolean; blockMode?: boolean; accessControl?: AccessControlConfig; trustedOrigins?: string[]; maxRequestSize?: number; rateLimiting?: { enabled: boolean; maxRequests: number; windowMs: number; dynamicThrottling?: boolean; suspiciousIPMultiplier?: number; }; customBlockMessage?: string; loadingScreen?: { enabled: boolean; message?: string; minDuration?: number; hostedUrl?: string; useHosted?: boolean; }; webhooks?: { enabled: boolean; url: string; events?: ('block' | 'threat' | 'rateLimit' | 'all')[]; includePayload?: boolean; customHeaders?: Record<string, string>; }; requestFingerprinting?: { enabled: boolean; blockAutomatedTraffic?: boolean; trustBrowserFingerprints?: boolean; }; analytics?: { enabled: boolean; retention?: number; }; } export interface FuzzingConfig { enabled?: boolean; maxPayloads?: number; timeout?: number; authBypassTests?: boolean; rateLimitTests?: boolean; graphqlIntrospection?: boolean; customPayloads?: string[]; } export interface LoggingConfig { enabled?: boolean; level?: 'debug' | 'info' | 'warn' | 'error'; logFile?: string; } export interface SecurityThreat { type: ThreatType; severity: 'low' | 'medium' | 'high' | 'critical'; description: string; payload?: string; timestamp: Date; blocked: boolean; confidence?: number; metadata?: Record<string, any>; } export declare enum ThreatType { SQL_INJECTION = "sql_injection", NOSQL_INJECTION = "nosql_injection", COMMAND_INJECTION = "command_injection", XSS = "xss", CSRF = "csrf", PATH_TRAVERSAL = "path_traversal", XXE = "xxe", SSRF = "ssrf", ANOMALOUS_BEHAVIOR = "anomalous_behavior", RATE_LIMIT_EXCEEDED = "rate_limit_exceeded", AUTH_BYPASS_ATTEMPT = "auth_bypass_attempt" } export interface FuzzingResult { endpoint: string; method: string; vulnerabilities: SecurityThreat[]; testedPayloads: number; duration: number; timestamp: Date; } export interface WebhookPayload { event: 'block' | 'threat' | 'rateLimit'; timestamp: Date; ip: string; path: string; method: string; threats?: SecurityThreat[]; payload?: any; userAgent?: string; reputation?: number; } export interface RequestFingerprint { userAgent: string; acceptLanguage?: string; acceptEncoding?: string; connection?: string; isBot: boolean; botScore: number; browserFingerprint?: string; } export interface SecurityAnalytics { totalRequests: number; threatsDetected: number; threatsBlocked: number; topAttackTypes: Array<{ type: string; count: number; }>; topAttackIPs: Array<{ ip: string; count: number; reputation: number; }>; requestsByHour: Array<{ hour: number; count: number; threats: number; }>; geographicData?: Array<{ country: string; requests: number; threats: number; }>; averageResponseTime: number; uptime: number; } //# sourceMappingURL=types.d.ts.map