/** * Zero-Day Hunter Agent * * Reasons about code semantics to find novel vulnerabilities pattern-based * scanners miss. A cheap heuristic pass flags security-relevant candidate files, * then Claude analyses those candidates (candidate-bounded, so cost scales with * signal, not repo size). When no ANTHROPIC_API_KEY is configured it degrades to * pure heuristics and labels the result "pattern-only" — no LLM claimed when * none ran. * * Focus areas: * - Logic Flaws: Inconsistent state handling, broken assumptions * - Authentication Bypasses: Ways to skip auth checks * - Authorization Issues: Privilege escalation paths * - Cryptographic Weaknesses: Weak algorithms, key management * - Injection Vectors: Novel injection patterns beyond OWASP * * @module agents/zero-day-hunter */ import type { Severity, Finding } from "../certification/types.js"; /** * Configuration for zero-day hunter */ export interface ZeroDayHunterConfig { /** Model id; defaults to DEFAULT_ANALYSIS_MODEL (env-overridable). */ model?: string; analysisDepth: "quick" | "standard" | "thorough"; focusAreas: ZeroDayFocusArea[]; maxFilesToAnalyze?: number; includePatterns?: string[]; excludePatterns?: string[]; } export type ZeroDayFocusArea = "auth" | "crypto" | "injection" | "logic" | "state" | "access-control" | "data-validation" | "session" | "api"; /** * Zero-day finding with AI analysis */ export interface ZeroDayFinding { id: string; title: string; description: string; severity: Severity; confidence: number; category: ZeroDayFocusArea; file: string; line: number; endLine?: number; codeSnippet: string; attackScenario: string; cweIds: string[]; recommendation: string; exploitability: "proven" | "likely" | "possible" | "theoretical"; aiReasoning: string; } /** * Result of zero-day hunting */ export interface ZeroDayHunterResult { filesAnalyzed: number; findings: ZeroDayFinding[]; analysisDepth: string; focusAreas: ZeroDayFocusArea[]; modelUsed: string; totalTokensUsed?: number; recommendations: string[]; } /** * Run zero-day hunting on a project */ export declare function runZeroDayHunter(projectPath: string, config: ZeroDayHunterConfig): Promise; /** * Convert zero-day findings to certification findings */ export declare function zeroDayToFindings(result: ZeroDayHunterResult): Finding[]; //# sourceMappingURL=zero-day-hunter.d.ts.map