/** * Lattice — Real Network Topology Mapper & Lateral Movement Analysis Engine * * Builds directed/undirected graphs from discovered assets, computes shortest * attack paths, identifies chokepoints (minimum cut), evaluates firewall/ACL * policies against topology, and generates lateral movement playbooks per * MITRE ATT&CK T1021 (Remote Services) sub-techniques. * * Capabilities: * - Graph construction from asset register (nodes=hosts, edges=reachability) * - BFS/Dijkstra shortest path between attacker entry and crown jewel * - Yen's K-shortest paths for alternative attack routes * - Minimum cut (Edmonds-Karp) for chokepoint identification * - Betweenness centrality for critical node ranking * - Firewall policy simulation: can X reach Y? * - Segment validation: are web/app/db tiers properly isolated? * - Hop-count-based lateral movement path enumeration * - ATT&CK technique mapping per hop type (SMB=T1021.002, RDP=T1021.001, etc.) * - Impact scoring per compromised node * * Governed by Compliance Policy (/compliance). */ export interface LatticeNode { id: string; hostname: string; ip: string; type: 'workstation' | 'server' | 'domain-controller' | 'database' | 'fileserver' | 'web-server' | 'load-balancer' | 'firewall' | 'router' | 'cloud-instance' | 'container' | 'iot' | 'unknown'; os: string; businessRole: string; riskTier: 'critical' | 'high' | 'medium' | 'low'; isInternetFacing: boolean; value?: number; } export interface LatticeEdge { from: string; to: string; protocol: 'smb' | 'rdp' | 'ssh' | 'winrm' | 'http' | 'https' | 'mysql' | 'postgresql' | 'mssql' | 'redis' | 'mongodb' | 'ldap' | 'kerberos' | 'dns' | 'icmp' | 'custom'; port: number; authenticated: boolean; bandwidth: 'high' | 'medium' | 'low'; latency: number; } export interface LatticeConfig { nodes: LatticeNode[]; edges: LatticeEdge[]; entryNodeId: string; targetNodeId: string; maxPaths?: number; maxHops?: number; algorithms?: ('shortest-path' | 'k-shortest' | 'min-cut' | 'betweenness' | 'segment-analysis')[]; } export interface LatticeResult { nodeCount: number; edgeCount: number; shortestPath: LateralPath | null; allPaths: LateralPath[]; minCut: { edges: { from: string; to: string; }[]; nodes: string[]; }; topCriticalNodes: { nodeId: string; centrality: number; type: string; }[]; segmentViolations: { fromZone: string; toZone: string; paths: LateralPath[]; severity: 'critical' | 'high' | 'medium'; }[]; attackCoverage: { technique: string; paths: number; description: string; }[]; } export interface LateralPath { hops: string[]; edges: LatticeEdge[]; totalLatency: number; authenticationRequired: boolean; attackTechniques: string[]; riskScore: number; } export declare function runLattice(config: LatticeConfig): LatticeResult; //# sourceMappingURL=lattice.d.ts.map