trojanhorse-js
Version:
A comprehensive JavaScript library for fetching, managing, and analyzing global threat intelligence from multiple open-source feeds and security news sources. Unlike its mythological namesake, this Trojan protects your digital fortress.
63 lines • 2.34 kB
TypeScript
/// <reference types="node" />
import { EventEmitter } from 'events';
import { AxiosInstance } from 'axios';
export interface SIEMConfig {
type: 'splunk' | 'qradar' | 'elastic' | 'sentinel' | 'generic';
endpoint: string;
apiKey?: string;
username?: string;
password?: string;
timeout?: number;
retries?: number;
batchSize?: number;
flushInterval?: number;
}
export interface SIEMEvent {
timestamp: Date;
source: string;
eventType: 'threat_detected' | 'indicator_added' | 'alert_generated';
severity: 'low' | 'medium' | 'high' | 'critical';
data: any;
metadata?: Record<string, any>;
}
declare abstract class BaseSIEMConnector extends EventEmitter {
protected config: SIEMConfig;
protected httpClient: AxiosInstance;
protected eventQueue: SIEMEvent[];
constructor(config: SIEMConfig);
private setupAuthentication;
private setupInterceptors;
abstract sendEvent(event: SIEMEvent): Promise<void>;
abstract formatEvent(event: SIEMEvent): any;
abstract validateConnection(): Promise<boolean>;
sendEvents(events: SIEMEvent[]): Promise<void>;
queueEvent(event: SIEMEvent): void;
flushQueue(): Promise<void>;
getQueueSize(): number;
}
declare class SplunkConnector extends BaseSIEMConnector {
sendEvent(event: SIEMEvent): Promise<void>;
formatEvent(event: SIEMEvent): any;
validateConnection(): Promise<boolean>;
}
declare class QRadarConnector extends BaseSIEMConnector {
sendEvent(event: SIEMEvent): Promise<void>;
formatEvent(event: SIEMEvent): any;
private mapSeverity;
validateConnection(): Promise<boolean>;
}
declare class ElasticConnector extends BaseSIEMConnector {
sendEvent(event: SIEMEvent): Promise<void>;
formatEvent(event: SIEMEvent): any;
validateConnection(): Promise<boolean>;
}
declare class SIEMManager extends EventEmitter {
private connectors;
addConnector(name: string, config: SIEMConfig): void;
sendEvent(event: SIEMEvent, connectorNames?: string[]): Promise<void>;
validateConnections(): Promise<Record<string, boolean>>;
getConnector(name: string): BaseSIEMConnector | undefined;
listConnectors(): string[];
}
export { BaseSIEMConnector, SplunkConnector, QRadarConnector, ElasticConnector, SIEMManager };
//# sourceMappingURL=SIEMConnector.d.ts.map