/** * Agentic QE v3 - Security Auditor Service * Provides comprehensive security audit functionality */ import { Result } from '../../../shared/types/index.js'; import type { MemoryBackend } from '../../../kernel/interfaces.js'; import type { FilePath } from '../../../shared/value-objects/index.js'; import type { IDependencySecurityService, DependencyScanResult, PackageSecurityInfo, UpgradeRecommendation, Vulnerability, DependencyInfo, SecretScanResult, SecurityAuditOptions, SecurityAuditReport } from '../interfaces.js'; export interface ISecurityAuditorService extends IDependencySecurityService { /** * Run comprehensive security audit */ runAudit(options: SecurityAuditOptions): Promise>; /** * Scan for secrets/credentials in code */ scanSecrets(files: FilePath[]): Promise>; /** * Get security posture summary */ getSecurityPosture(): Promise>; /** * Triage vulnerabilities by priority */ triageVulnerabilities(vulnerabilities: Vulnerability[]): Promise>; } export interface SecurityPostureSummary { overallScore: number; trend: 'improving' | 'stable' | 'declining'; criticalIssues: number; highIssues: number; openVulnerabilities: number; resolvedLastWeek: number; averageResolutionTime: number; lastAuditDate: Date; recommendations: string[]; } export interface TriagedVulnerabilities { immediate: Vulnerability[]; shortTerm: Vulnerability[]; mediumTerm: Vulnerability[]; longTerm: Vulnerability[]; accepted: Vulnerability[]; } export interface SecurityAuditorConfig { secretPatterns: RegExp[]; excludePatterns: string[]; maxFileSizeKb: number; enableHistoricalAnalysis: boolean; riskThreshold: number; } export declare class SecurityAuditorService implements ISecurityAuditorService { private readonly memory; private readonly config; constructor(memory: MemoryBackend, config?: Partial); /** * Scan dependencies for vulnerabilities */ scanDependencies(manifestPath: FilePath): Promise>; /** * Check specific package for security issues */ checkPackage(name: string, version: string, ecosystem: DependencyInfo['ecosystem']): Promise>; /** * Get upgrade recommendations for vulnerabilities */ getUpgradeRecommendations(vulnerabilities: Vulnerability[]): Promise>; /** * Run comprehensive security audit */ runAudit(options: SecurityAuditOptions): Promise>; /** * Scan for secrets in code */ scanSecrets(files: FilePath[]): Promise>; /** * Get security posture summary */ getSecurityPosture(): Promise>; /** * Triage vulnerabilities by priority */ triageVulnerabilities(vulnerabilities: Vulnerability[]): Promise>; private detectEcosystem; private parseDependencies; /** * Clean version specifier to extract actual version */ private cleanVersionSpec; private checkDependencyVulnerabilities; /** * Map internal ecosystem to OSV ecosystem name */ private mapToOSVEcosystem; /** * Map OSV vulnerability to our Vulnerability type */ private mapOSVVulnerability; /** * Map OSV severity to our severity levels */ private mapOSVSeverity; /** * Extract fixed version from OSV vulnerability data */ private extractFixedVersion; /** * Categorize vulnerability based on OSV data */ private categorizeVulnerability; private checkOutdated; private queryVulnerabilityDatabase; private getLatestVersion; private checkDeprecation; private determineUpdateType; private hasBreakingChanges; private createDependencySummary; private shouldExclude; private scanFileForSecrets; /** * Calculate Shannon entropy of a string */ private calculateEntropy; /** * Create a masked snippet for display */ private createMaskedSnippet; /** * Validate if a detected secret is likely valid (basic validation) */ private validateSecret; /** * Perform SAST scan using AST-based analysis for JavaScript/TypeScript * Scans for common vulnerability patterns: XSS, SQL injection, command injection, path traversal */ private performSASTScan; /** * Perform DAST scan using HTTP requests to test for vulnerabilities * Tests for common web vulnerabilities: XSS, SQL injection, security headers, etc. */ private performDASTScan; /** * Perform dependency scan using OSV API */ private performDependencyScan; /** * Perform secret scan on source files */ private performSecretScan; /** * Find source files in a directory (recursively) */ private findSourceFiles; private calculateOverallRisk; private calculateScanRisk; private generateRecommendations; private getRecentAudits; private countBySeverity; private countOpenVulnerabilities; private calculateTrend; private calculatePostureScore; private generatePostureRecommendations; /** * Count vulnerabilities resolved in the last week * Calculates by comparing consecutive audit reports */ private countResolvedLastWeek; /** * Calculate average resolution time from historical audit data */ private calculateAverageResolutionTime; private determinePriorityBucket; } //# sourceMappingURL=security-auditor.d.ts.map