UNPKG

stellar-cyber-mcp-agents

Version:

Model Context Protocol (MCP) server for Stellar Cyber security operations with specialized multi-agent analysis capabilities

216 lines 6.85 kB
import { BaseAgent } from '../core/base-agent.js'; import { AgentMetadata, AgentRegistry, AgentCommunicationChannel, AgentLogger, AgentMetrics, AgentHealth, AgentRequest, AgentContext } from '../types/agent.js'; export interface NetworkAnalysisConfig { apiUrl: string; apiToken: string; analysisTimeout?: number; maxConcurrentAnalysis?: number; enableDeepPacketAnalysis?: boolean; } export interface NetworkActivityAnalysis { id: string; caseId: string; timestamp: string; summary: { totalConnections: number; uniqueIPs: number; suspiciousConnections: number; dataTransferred: { inbound: number; outbound: number; }; protocols: Record<string, number>; riskLevel: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW'; }; findings: NetworkFinding[]; connections: NetworkConnection[]; threats: NetworkThreat[]; recommendations: string[]; visualizations: NetworkVisualization[]; } export interface NetworkFinding { id: string; type: 'suspicious_connection' | 'data_exfiltration' | 'lateral_movement' | 'c2_communication' | 'port_scan' | 'protocol_anomaly'; severity: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW'; confidence: number; description: string; evidence: NetworkEvidence[]; mitigation: string[]; ttps: { tactics: string[]; techniques: string[]; }; } export interface NetworkConnection { id: string; timestamp: string; source: NetworkEndpoint; destination: NetworkEndpoint; protocol: string; port: number; bytesTransferred: number; duration: number; flags: string[]; classification: 'benign' | 'suspicious' | 'malicious' | 'unknown'; confidence: number; details: any; } export interface NetworkEndpoint { ip: string; hostname?: string; port: number; country?: string; asn?: string; organization?: string; reputation?: { score: number; category: string; tags: string[]; }; } export interface NetworkThreat { id: string; type: string; name: string; description: string; severity: 'CRITICAL' | 'HIGH' | 'MEDIUM' | 'LOW'; indicators: string[]; connections: string[]; firstSeen: string; lastSeen: string; mitigations: string[]; } export interface NetworkEvidence { type: string; value: string; context: string; timestamp: string; source: string; } export interface NetworkVisualization { type: 'topology' | 'timeline' | 'heatmap' | 'flow'; title: string; description: string; data: any; } export interface TrafficPattern { id: string; name: string; description: string; indicators: string[]; matchCount: number; severity: string; recommendation: string; } export interface ProtocolAnalysis { protocol: string; totalConnections: number; suspiciousConnections: number; anomalies: ProtocolAnomaly[]; risks: string[]; } export interface ProtocolAnomaly { type: string; description: string; severity: string; connections: string[]; evidence: string[]; } export declare class NetworkAnalysisAgent extends BaseAgent { private config; private activeAnalyses; private analysisCache; private threatPatterns; private accessToken; private tokenExpiresAt; private refreshPromise; constructor(metadata: AgentMetadata, registry: AgentRegistry, channel: AgentCommunicationChannel, logger: AgentLogger, metrics: AgentMetrics, config: NetworkAnalysisConfig); protected onInitialize(): Promise<void>; protected onStart(): Promise<void>; protected onStop(): Promise<void>; protected onDestroy(): Promise<void>; protected onHealthCheck(): Promise<AgentHealth>; protected handleRequest(request: AgentRequest, context: AgentContext): Promise<any>; private analyzeNetworkActivity; private performNetworkAnalysis; private detectLateralMovement; private analyzeDataExfiltration; private detectC2Communication; private analyzeTrafficPatterns; private getNetworkTopology; private analyzeProtocolAnomalies; private huntNetworkThreats; private generateNetworkTimeline; private analyzeEndpointBehavior; private refreshToken; private performTokenRefresh; private getAccessToken; private makeRequest; private loadThreatPatterns; private fetchNetworkConnections; private fetchNetworkFlows; private fetchNetworkAlerts; private analyzeConnections; private detectThreats; private generateNetworkFindings; private buildNetworkVisualizations; private generateNetworkRecommendations; private calculateNetworkSummary; private calculateOverallRiskLevel; private isInternalIP; private detectSuspiciousLateralPatterns; private identifyPivotPoints; private buildMovementChains; private calculateLateralMovementConfidence; private generateLateralMovementRecommendations; private analyzeTransferPatterns; private checkDestinationReputation; private detectDataEncoding; private calculateExfiltrationRisk; private generateExfiltrationRecommendations; private analyzeC2Patterns; private detectBeaconing; private analyzeC2Protocols; private calculateC2Confidence; private generateC2Recommendations; private matchPattern; private analyzeTemporalPatterns; private analyzeVolumetricPatterns; private analyzeBehavioralPatterns; private detectPatternAnomalies; private summarizePatterns; private buildNetworkNodes; private buildNetworkEdges; private calculateNodeMetrics; private identifyCriticalNodes; private identifyNetworkClusters; private calculateAverageDegree; private calculateNetworkDensity; private detectHTTPAnomalies; private detectDNSAnomalies; private detectSSHAnomalies; private detectRDPAnomalies; private summarizeProtocolAnomalies; private generateProtocolRecommendations; private searchConnections; private applyHuntingRules; private correlateThreatIntel; private generateHuntFindings; private extractHuntIndicators; private generateHuntRecommendations; private suggestNextHuntSteps; private getConnectionSeverity; private calculateTimespan; private calculateSeverityBreakdown; private fetchEndpointConnections; private analyzeEndpointCommunication; private detectEndpointAnomalies; private profileEndpoint; private assessEndpointRisk; private generateEndpointRecommendations; private startPatternUpdates; private updateThreatPatterns; private cancelActiveAnalyses; } export declare function createNetworkAnalysisAgentMetadata(): AgentMetadata; //# sourceMappingURL=network-agent.d.ts.map