UNPKG

ssvc

Version:

TypeScript implementation of SSVC (Stakeholder-Specific Vulnerability Categorization). A prioritization framework to triage CVE vulnerabilities as an alternative or compliment to CVSS

231 lines (183 loc) 7.45 kB
# Evidence Mapping & Audit Trail System - README Section This file contains documentation that should be added to the main README.md to describe the evidence mapping and audit trail features. ## Evidence Mapping & Audit Trail System The SSVC TypeScript library includes a comprehensive evidence mapping and audit trail system designed for forensic-grade vulnerability decision tracking. This system provides complete chain of custody documentation suitable for regulatory compliance and forensic investigation. ### Key Features - **🔐 Cryptographic Integrity**: 15+ hash algorithms for evidence verification - **📋 Multiple Verification Methods**: Automated, manual, and hybrid verification support - **🗃️ Data Source Abstraction**: Priority-based resolution from SQL, API, file, and manual sources - **🔄 Transform Rules Engine**: Map raw data to methodology values with source/mapping restrictions - **📊 Complete Audit Trails**: Timeline tracking with forensic reporting - **🌐 Browser Compatible**: Uses `crypto.randomUUID()` for universal support - **📝 Export Capabilities**: JSON and custom format support ### Quick Start ```typescript import { createDecision, AuditableDecisionFactory } from 'ssvc'; // Create auditable decision with full tracking const decision = createDecision('cisa', { exploitation: 'active', automatable: 'yes', technical_impact: 'total', mission_wellbeing: 'high' }); const auditableDecision = AuditableDecisionFactory.wrapDecision( decision, 'cisa', '1.0' ); // Attach evidence with cryptographic integrity const evidence = { decisionPoint: 'exploitation', value: 'ACTIVE', verifications: [{ method: 'automated', timestamp: Date.now(), source: 'nvd-api', result: 'Active exploitation detected', evidence: { verified: true, evidenceId: crypto.randomUUID(), collectedAt: Date.now(), collectedBy: 'nvd-scanner', checksums: [{ algorithm: 'sha256', signature: 'abc123...', timestamp: Date.now(), contentId: crypto.randomUUID() }] } }] }; auditableDecision.attachEvidence('exploitation', evidence); // Evaluate with complete audit trail const outcome = auditableDecision.evaluate(); const forensicReport = auditableDecision.generateForensicReport(); console.log(`Decision: ${outcome.action}`); console.log(`Report ID: ${forensicReport.reportId}`); ``` ### Evidence Collection Evidence records include comprehensive metadata for forensic analysis: - **Unique Identifiers**: Browser-compatible UUIDs for all entities - **Timestamps**: Precise collection and verification times - **Source Attribution**: Complete provenance tracking - **Cryptographic Hashes**: Multiple algorithms (SHA-256, SHA-512, Blake2b, etc.) - **Content Preservation**: Raw data storage with integrity verification - **Chain of Custody**: Complete audit trail from collection to decision ### Data Source Integration Configure priority-based data source resolution: ```typescript import { DataSourceFactory, MethodologyConfigBuilder } from 'ssvc'; const config = new MethodologyConfigBuilder('cisa', '1.0') .decisionPoint('exploitation') .dataSource( DataSourceFactory.api( 'nvd-api', 'NVD Database', 1, // Highest priority { endpoint: 'https://services.nvd.nist.gov/rest/json/cves/2.0', method: 'GET' }, 'Official NIST vulnerability database', ['application/json'] ) ) .dataSource( DataSourceFactory.manual( 'analyst-input', 'Security Analyst Assessment', 2, // Lower priority 'Manual security analysis', ['text/plain'] ) ) .build(); ``` **Supported Data Source Types:** - **SQL**: Database queries with table/column mapping - **Document**: NoSQL/MongoDB with JSONPath extraction - **API**: HTTP endpoints with authentication - **File**: Local file system with MIME type handling - **Manual**: Human-provided input with validation ### Transform Rules Map raw data to methodology values with flexible rules: ```typescript import { TransformEngine, CommonTransforms } from 'ssvc'; const engine = new TransformEngine(); // Custom transform rules const rules = [ { sourceValue: /^(active|exploitation|exploited)$/i, targetValue: 'ACTIVE', applicableToSources: ['nvd-api'], applicableToMappings: ['exploitation'] } ]; const result = engine.transform( 'exploited', rules, 'nvd-api', 'exploitation' ); // result.value === 'ACTIVE' // Use common patterns const booleanRules = CommonTransforms.booleanToYesNo(); const severity = CommonTransforms.severityLevels(); const cvssRules = CommonTransforms.cvssToImpact(); ``` ### Forensic Reporting Generate comprehensive forensic reports for compliance: ```typescript const forensicReport = auditableDecision.generateForensicReport(); // Report includes: // - Complete decision timeline // - All evidence with checksums // - Data source resolution paths // - Transform rule applications // - Audit trail with integrity verification // - Export capabilities (JSON, custom) console.log(`Report ID: ${forensicReport.reportId}`); console.log(`Evidence Count: ${Object.keys(forensicReport.evidence).length}`); console.log(`Timeline Entries: ${forensicReport.decisionPath.length}`); ``` ### Examples The `/examples` directory contains comprehensive demonstrations: - **`evidence-mapping-demo.ts`**: Complete system demonstration - **`quick-evidence-example.ts`**: Minimal usage example - **`transform-rules-example.ts`**: Transform engine showcase - **`verification-example.js`**: End-to-end verification Run examples with: ```bash npx ts-node examples/evidence-mapping-demo.ts npx ts-node examples/quick-evidence-example.ts npx ts-node examples/transform-rules-example.ts node verification-example.js ``` ### Documentation - **[Evidence Mapping Guide](docs/evidence-mapping.md)**: Complete system documentation - **[API Reference](docs/evidence-mapping.md#api-reference)**: Detailed API documentation - **[Browser Compatibility](docs/evidence-mapping.md#browser-compatibility)**: Cross-platform usage ### Use Cases This system is designed for: - **Regulatory Compliance**: SOX, GDPR, HIPAA audit requirements - **Forensic Investigation**: Complete chain of custody documentation - **Risk Management**: Evidence-based decision justification - **Quality Assurance**: Verification of decision processes - **Automation Integration**: API-driven vulnerability management - **Incident Response**: Forensic-grade decision documentation ### Browser Compatibility The system uses modern web standards for universal compatibility: - **UUID Generation**: `crypto.randomUUID()` (no external dependencies) - **Hash Calculations**: Web Crypto API with Node.js fallbacks - **JSON Export**: Standard serialization for all platforms - **Memory Efficient**: Streaming processing for large datasets ### Security Features - **Cryptographic Integrity**: Multiple hash algorithms prevent tampering - **Immutable Audit Trail**: Timeline entries cannot be modified - **Source Verification**: Complete provenance tracking - **Access Logging**: All operations recorded with timestamps - **Export Security**: Checksums included in all exports This evidence mapping system transforms SSVC from a decision framework into a complete forensic documentation platform suitable for enterprise and regulatory environments.