/**
* A2A Comprehensive Audit Logging and Security Monitoring System
*
* Implements enterprise-grade audit logging and security monitoring:
* - Structured audit logs with tamper-proof signatures
* - Real-time security event monitoring and alerting
* - Compliance logging (SOX, GDPR, HIPAA, PCI-DSS)
* - Log aggregation and correlation across distributed nodes
* - Threat intelligence integration and anomaly detection
* - Log retention policies and automated archival
* - Security incident response automation
* - Performance monitoring and SLA tracking
*/
///
import { EventEmitter } from "events";
export interface AuditLogEntry {
logId: string;
timestamp: Date;
eventType: "authentication" | "authorization" | "data_access" | "system_event" | "security_event" | "compliance";
severity: "info" | "warning" | "error" | "critical";
category: string;
actor: {
agentId: string;
agentType: string;
sourceIP?: string;
userAgent?: string;
sessionId?: string;
};
target: {
resource: string;
resourceType: string;
resourceId?: string;
};
action: string;
outcome: "success" | "failure" | "denied" | "error";
details: {
description: string;
metadata: Record;
errorCode?: string;
errorMessage?: string;
duration?: number;
bytesSent?: number;
bytesReceived?: number;
};
compliance: {
regulations: string[];
dataClassification: "public" | "internal" | "confidential" | "restricted";
retention: number;
tags: string[];
};
security: {
riskLevel: "low" | "medium" | "high" | "critical";
threatIndicators: string[];
correlationId?: string;
signature: string;
checksum: string;
};
context: {
requestId?: string;
traceId?: string;
spanId?: string;
environment: string;
version: string;
nodeId: string;
};
}
export interface SecurityAlert {
alertId: string;
timestamp: Date;
alertType: "intrusion_attempt" | "data_breach" | "privilege_escalation" | "anomaly_detected" | "policy_violation";
severity: "low" | "medium" | "high" | "critical";
title: string;
description: string;
source: {
agentId: string;
sourceIP?: string;
evidence: AuditLogEntry[];
};
impact: {
scope: "single_agent" | "multiple_agents" | "system_wide";
affectedResources: string[];
businessImpact: string;
};
response: {
automated: boolean;
actions: string[];
assignedTo?: string;
status: "open" | "investigating" | "mitigated" | "resolved" | "false_positive";
};
metrics: {
detectionTime: number;
responseTime?: number;
resolutionTime?: number;
};
}
export interface ComplianceReport {
reportId: string;
period: {
start: Date;
end: Date;
};
regulation: string;
summary: {
totalEvents: number;
complianceScore: number;
violations: number;
criticalIssues: number;
};
sections: {
section: string;
requirement: string;
status: "compliant" | "non_compliant" | "partial";
evidence: string[];
gaps: string[];
}[];
recommendations: string[];
generatedAt: Date;
validatedBy?: string;
}
export interface AuditConfig {
retention: {
defaultDays: number;
byCategory: Map;
archivalEnabled: boolean;
compressionEnabled: boolean;
};
monitoring: {
realTimeAlerts: boolean;
anomalyDetection: boolean;
threatIntelligence: boolean;
correlationWindow: number;
alertThresholds: Map;
};
compliance: {
enabledRegulations: string[];
autoReporting: boolean;
reportingSchedule: string;
dataClassificationRequired: boolean;
};
security: {
logIntegrity: boolean;
encryptionEnabled: boolean;
digitalSignatures: boolean;
tamperDetection: boolean;
};
performance: {
bufferSize: number;
flushInterval: number;
compressionRatio: number;
indexingEnabled: boolean;
};
distribution: {
enabled: boolean;
syncInterval: number;
nodeIds: string[];
consensusRequired: boolean;
};
}
export interface ThreatIntelligence {
indicators: {
ips: Set;
domains: Set;
hashes: Set;
patterns: Map;
};
feeds: {
name: string;
url: string;
lastUpdated: Date;
credibility: number;
}[];
rules: {
ruleId: string;
description: string;
pattern: string;
severity: string;
enabled: boolean;
}[];
}
export declare class A2AAuditLogger extends EventEmitter {
private logger;
private cache;
private config;
private auditBuffer;
private securityAlerts;
private complianceReports;
private threatIntelligence;
private anomalyDetector;
private correlationEngine;
private integrityChecker;
private metrics;
private signingKeyPair;
private encryptionKey;
private logSequence;
private nodeId;
private peerNodes;
private syncQueue;
constructor(config?: Partial);
/**
* Initialize configuration with defaults
*/
private initializeConfig;
/**
* Initialize cryptographic components
*/
private initializeCryptography;
/**
* Initialize security monitoring components
*/
private initializeSecurityMonitoring;
/**
* Log an audit event
*/
logEvent(eventType: AuditLogEntry["eventType"], category: string, actor: AuditLogEntry["actor"], target: AuditLogEntry["target"], action: string, outcome: AuditLogEntry["outcome"], details?: Partial, options?: {
severity?: AuditLogEntry["severity"];
compliance?: Partial;
context?: Partial;
}): Promise;
/**
* Create security alert
*/
createSecurityAlert(alertType: SecurityAlert["alertType"], severity: SecurityAlert["severity"], title: string, description: string, source: SecurityAlert["source"], evidence?: AuditLogEntry[]): Promise;
/**
* Generate compliance report
*/
generateComplianceReport(regulation: string, startDate: Date, endDate: Date): Promise;
/**
* Query audit logs with filters
*/
queryAuditLogs(filters: {
startDate?: Date;
endDate?: Date;
eventTypes?: string[];
severities?: string[];
actors?: string[];
targets?: string[];
outcomes?: string[];
regulations?: string[];
limit?: number;
offset?: number;
}): Promise;
/**
* Verify log integrity
*/
verifyLogIntegrity(logEntry: AuditLogEntry): Promise<{
valid: boolean;
issues: string[];
}>;
/**
* Private helper methods
*/
private determineSeverity;
private determineRegulations;
private determineRetention;
private assessRiskLevel;
private checkThreatIndicators;
private shouldFlushImmediately;
private processSecurityMonitoring;
private processComplianceMonitoring;
private signLogEntry;
private verifyLogSignature;
private calculateChecksum;
private flushBuffer;
private persistLogs;
private loadThreatIntelligence;
private startBackgroundTasks;
private cleanupExpiredLogs;
private updateThreatIntelligence;
private syncWithPeers;
private collectPerformanceMetrics;
/**
* Placeholder methods for full implementation
*/
private assessAlertScope;
private identifyAffectedResources;
private assessBusinessImpact;
private shouldAutoRespond;
private determineResponseActions;
private executeAutoResponse;
private executeAction;
private sendAlertToExternalSystems;
private analyzeCompliance;
private checkComplianceViolations;
/**
* Public API methods
*/
getMetrics(): {
logsProcessed: number;
alertsGenerated: number;
complianceViolations: number;
integrityFailures: number;
averageLogProcessingTime: number;
bufferUtilization: number;
storageUtilization: number;
indexingPerformance: number;
};
getConfig(): AuditConfig;
updateConfig(updates: Partial): Promise;
getSecurityAlerts(limit?: number): SecurityAlert[];
getComplianceReports(): ComplianceReport[];
forceFlush(): Promise;
getBufferStatus(): {
size: number;
utilization: number;
};
}
//# sourceMappingURL=a2a-audit-logger.d.ts.map