/** * Security Service - Pattern detection and validation * * Provides: * - Command injection detection * - XSS pattern detection * - Permission explainer * - Shell continuation validation * - OAuth token filtering * - Security pattern hooks */ export type SecurityRisk = "critical" | "high" | "medium" | "low" | "info"; export interface SecurityIssue { type: string; risk: SecurityRisk; description: string; location?: string; suggestion?: string; } export interface SecurityReport { issues: SecurityIssue[]; hasCritical: boolean; hasHigh: boolean; summary: string; } // Command injection patterns const COMMAND_INJECTION_PATTERNS = [ // Shell metacharacters { pattern: /[;&|`$]/, description: "Shell metacharacter detected" }, // Subshell execution { pattern: /\$\([^)]+\)/, description: "Subshell execution detected" }, // Backtick execution { pattern: /`[^`]+`/, description: "Backtick command execution detected" }, // Pipe chains { pattern: /\|(?!\|)/, description: "Pipe character detected" }, // Redirections { pattern: /[<>]/, description: "Redirection operator detected" }, // Newline injection { pattern: /[\n\r]/, description: "Newline character in command" }, // Null byte injection { pattern: /\x00/, description: "Null byte detected" }, // Environment variable expansion { pattern: /\$\{[^}]+\}/, description: "Environment variable expansion" }, { pattern: /\$[A-Za-z_][A-Za-z0-9_]*/, description: "Variable reference detected", }, ]; // XSS patterns const XSS_PATTERNS = [ // Script tags { pattern: /]/i, description: "Script tag detected" }, // Event handlers { pattern: /on\w+\s*=/i, description: "Event handler attribute detected" }, // JavaScript protocol { pattern: /javascript:/i, description: "JavaScript protocol detected" }, // Data URLs with script content { pattern: /data:[^,]*;base64/i, description: "Data URL with base64 encoding", }, // Expression/eval { pattern: /expression\s*\(/i, description: "CSS expression detected" }, // SVG with script { pattern: /].*?