@iota-big3/sdk-security
Version:
Advanced security features including zero trust, quantum-safe crypto, and ML threat detection
200 lines • 5.58 kB
TypeScript
/**
* Incident Response Manager
* Core incident management and response coordination
*/
import { EventEmitter } from 'events';
import { Action, Artifact, Evidence, ExportFormat, IncidentResponseManager as IIncidentResponseManager, Incident, IncidentFilter, IncidentReport, IncidentSeverity, IncidentStatus, NotificationTemplate, ReportType, ResponderInfo, TimelineEvent } from './types';
interface IncidentManagerConfig {
storagePath?: string;
notificationConfig?: NotificationConfig;
integrations?: IntegrationConfig;
autoEscalation?: boolean;
retentionDays?: number;
}
interface NotificationConfig {
email?: EmailConfig;
slack?: SlackConfig;
pagerDuty?: PagerDutyConfig;
teams?: TeamsConfig;
}
interface EmailConfig {
smtp: {
host: string;
port: number;
secure: boolean;
auth: {
user: string;
pass: string;
};
};
from: string;
}
interface SlackConfig {
webhookUrl: string;
channel?: string;
}
interface PagerDutyConfig {
apiKey: string;
serviceId: string;
}
interface TeamsConfig {
webhookUrl: string;
}
interface IntegrationConfig {
siem?: {
platform: string;
endpoint: string;
apiKey: string;
};
ticketing?: {
system: string;
endpoint: string;
apiKey: string;
};
}
export declare class IncidentResponseManager extends EventEmitter implements IIncidentResponseManager {
private config;
private incidents;
private activePlaybooks;
private responderTeams;
private notificationQueue;
private isInitialized;
constructor(config?: IncidentManagerConfig);
/**
* Initialize the incident response manager
*/
initialize(): Promise<void>;
/**
* Create a new incident
*/
createIncident(incidentData: Partial<Incident>): Promise<Incident>;
/**
* Update an existing incident
*/
updateIncident(id: string, updates: Partial<Incident>): Promise<Incident>;
/**
* Get incident by ID
*/
getIncident(id: string): Promise<Incident>;
/**
* List incidents with optional filtering
*/
listIncidents(filter?: IncidentFilter): Promise<Incident[]>;
/**
* Triage an incident
*/
triageIncident(id: string, severity: IncidentSeverity): Promise<void>;
/**
* Update incident status
*/
updateStatus(id: string, status: IncidentStatus): Promise<void>;
/**
* Resolve an incident
*/
resolveIncident(id: string, resolution: string): Promise<void>;
/**
* Close an incident
*/
closeIncident(id: string, report?: IncidentReport): Promise<void>;
/**
* Assign incident to responder
*/
assignIncident(id: string, responder: ResponderInfo): Promise<void>;
/**
* Add responder to team
*/
addResponder(id: string, responder: ResponderInfo): Promise<void>;
/**
* Remove responder from team
*/
removeResponder(id: string, responderId: string): Promise<void>;
/**
* Escalate incident
*/
escalateIncident(id: string, reason?: string): Promise<void>;
/**
* Add evidence
*/
addEvidence(id: string, evidence: Evidence): Promise<void>;
/**
* Add artifact
*/
addArtifact(id: string, file: File): Promise<Artifact>;
/**
* Get evidence
*/
getEvidence(id: string, evidenceId: string): Promise<Evidence>;
/**
* Add timeline event
*/
addTimelineEvent(id: string, event: TimelineEvent): Promise<void>;
/**
* Get timeline
*/
getTimeline(id: string): Promise<TimelineEvent[]>;
/**
* Execute action
*/
executeAction(id: string, action: Action): Promise<void>;
/**
* Execute playbook
*/
executePlaybook(id: string, playbookId: string): Promise<void>;
/**
* Rollback action
*/
rollbackAction(id: string, actionId: string): Promise<void>;
/**
* Notify responders
*/
notifyResponders(id: string, template: NotificationTemplate): Promise<void>;
/**
* Broadcast update
*/
broadcastUpdate(id: string, message: string): Promise<void>;
/**
* Generate report
*/
generateReport(id: string, type: ReportType): Promise<IncidentReport>;
/**
* Export incident
*/
exportIncident(id: string, format: ExportFormat): Promise<Buffer>;
/**
* Private helper methods
*/
private generateIncidentId;
private assessInitialImpact;
private autoAssignResponders;
private checkEscalationCriteria;
private performAction;
private performRollback;
private executePlaybookStep;
private evaluateConditions;
private sendIncidentNotification;
private sendEscalationNotifications;
private notifyResponder;
private sendNotification;
private processTemplate;
private calculateMetrics;
private generateSummary;
private generateExecutiveSummary;
private generateTechnicalReport;
private generateComplianceReport;
private extractLessonsLearned;
private generateRecommendations;
private calculateFileHash;
private formatFileSize;
private queueArtifactScan;
private pushToSIEM;
private loadIncidents;
private initializeNotifications;
private startBackgroundProcesses;
private processNotificationQueue;
private checkAutoEscalations;
private cleanupOldIncidents;
private exportToCSV;
private exportToHTML;
}
export {};
//# sourceMappingURL=incident-response-manager.d.ts.map