/** * CVE/NVD API 연동 모듈 * * NVD (National Vulnerability Database) API를 통해 CVE 정보를 조회합니다. * Rate limiting과 캐싱을 적용하여 효율적으로 동작합니다. * * @author zerry */ import NodeCache from 'node-cache'; /** * CVE 상세 정보 */ export interface CVEInfo { id: string; description: string; publishedDate: string; lastModifiedDate: string; cvssV3Score?: number; cvssV3Severity?: string; cvssV2Score?: number; cvssV2Severity?: string; references: string[]; cweIds: string[]; } /** * CVE 조회 클라이언트 */ export declare class CVELookupClient { private static readonly NVD_API_BASE; private static readonly CACHE_TTL; private static readonly RATE_LIMIT_DELAY; private cache; private lastRequestTime; constructor(); /** * CVE ID로 상세 정보 조회 */ lookupCVE(cveId: string): Promise; /** * 여러 CVE를 일괄 조회 */ lookupMultipleCVEs(cveIds: string[]): Promise>; /** * Rate limit 준수 */ private respectRateLimit; /** * NVD API 응답을 CVEInfo로 파싱 */ private parseCVEData; /** * 캐시 통계 */ getCacheStats(): { keys: number; stats: NodeCache.Stats; }; /** * 캐시 초기화 */ clearCache(): void; } /** * 싱글톤 인스턴스 */ export declare const cveLookupClient: CVELookupClient;