基于机器学习的网络安全拓扑可视化分析系统 —— Cluster Intelligence
**摘要**本文介绍了一款基于 Next.js D3.js 构建的网络流量安全分析可视化系统。该系统通过 **Louvain 社区发现算法**自动划分网络安全域利用 **Isolation Forest隔离森林算法**实现无监督异常检测并以力导向图形式直观呈现网络拓扑结构为安全运营中心SOC提供高效的威胁感知能力。一、项目背景与动机在当今复杂的网络环境中企业内网每天产生海量的网络流量日志。传统的日志分析方式存在以下痛点数据量大成千上万条连接记录人工审查几乎不可能关系隐蔽攻击行为往往隐藏在正常的网络通信模式中缺乏全局视角单条日志无法反映整体网络拓扑和威胁态势误报率高规则匹配方式难以应对未知的新型攻击为此我们开发了Cluster Intelligence—— 一个集数据导入、拓扑构建、社区划分、异常检测于一体的可视化安全分析平台。二、技术架构2.1 技术栈总览层级技术选型说明前端框架Next.js 16 (App Router)React 全栈框架支持 SSR/SSG可视化引擎D3.js Force Layout力导向图实现网络拓扑渲染UI 组件库shadcn/ui (Radix UI)高质量、可定制的组件库样式方案Tailwind CSS v4原子化 CSS支持暗色主题图计算Graphology Louvain网络图数据结构与社区发现异常检测Isolation Forest (自研)无监督异常检测算法语言TypeScript 5.x全类型安全的开发体验包管理器pnpm高效的依赖管理2.2 系统架构图┌─────────────────────────────────────────────────────┐ │ 用户界面层 │ │ ┌──────────┐ ┌──────────────┐ ┌───────────────┐ │ │ │ 侧边栏 │ │ 拓扑图画布 │ │ 节点详情面板 │ │ │ │ 数据导入 │ │ D3 Force │ │ 安全域/基线 │ │ │ │ 过滤控制 │ │ 力导向布局 │ │ 异常标记 │ │ │ └──────────┘ └──────────────┘ └───────────────┘ │ ├─────────────────────────────────────────────────────┤ │ 业务逻辑层 │ │ ┌─────────────┐ ┌────────────┐ ┌──────────────┐ │ │ │dataConverter│ │isolationForest│ │ mockData │ │ │ │ 日志→拓扑 │ │ 异常检测 │ │ 模拟数据生成 │ │ │ │ 社区发现 │ │ 特征提取 │ │ │ │ │ └─────────────┘ └────────────┘ └──────────────┘ │ ├─────────────────────────────────────────────────────┤ │ 数据层 │ │ ┌────────────────┐ ┌──────────────────────────┐ │ │ │ Excel (.xlsx) │ │ JSON (标准拓扑格式) │ │ │ │ 原始流量日志 │ │ nodes links metadata │ │ │ └────────────────┘ └──────────────────────────┘ │ └─────────────────────────────────────────────────────┘三、核心功能模块3.1 数据导入与转换系统支持两种数据格式的导入原始网络流量日志通常包含以下字段interface RawLog { proto: string; // 协议 (TCP/UDP) src: string; // 源 IP 地址 dst: string; // 目标 IP 地址 dport: number; // 目标端口 deviceDirection: string; // 流量方向 cdate: string; // 创建时间 sdate: string; // 开始时间 }数据转换流程原始日志 → 构建节点/边 → 图结构化 → Louvain社区检测 → Isolation Forest异常评分 → 拓扑数据关键转换逻辑 (src/lib/dataConverter.ts)1.节点统计从日志中提取每个 IP 的度数degree、入度/出度、收发字节数2.边的聚合相同源-目的对的连接聚合成一条边权重 连接次数3.角色推断根据主导端口自动识别节点角色Web服务、数据库、缓存等4.方向分析通过入度/出度比例判断节点是 Client / Server / Mixed支持直接导入预处理的拓扑数据interface TopologyData { metadata: TopologyMetadata; // 元信息 nodes: TopologyNode[]; // 节点数组 links: TopologyLink[]; // 边数组 domainNames?: Recordnumber, string; // 安全域名称映射 }3.2 Louvain 社区发现算法社区发现是本系统的核心能力之一。我们使用Louvain 算法将网络节点自动划分为若干个安全域每个域代表一组内部通信紧密的节点集合。Louvain 是一种基于模块度优化的无监督聚类算法1.初始化每个节点作为一个独立社区2.局部移动对每个节点尝试将其移到邻居节点的社区计算模块度增益选择增益最大的移动3.网络凝聚将同一社区的节点合并为一个超节点重复步骤 24.迭代直到模块度不再提升针对不同密度的网络图系统采用自适应分辨率参数// 根据图密度动态调整分辨率 let resolution 1.0; if (density 0.05) { resolution 1.5; // 稀疏图提高分辨率检测更细粒度的社区 } else if (density 0.1) { resolution 1.2; } else if (density 0.3) { resolution 0.8; // 密集图降低分辨率避免过度分割 }当 Louvain 算法产生的社区数量过少或某个社区过于庞大时50% 节点系统会自动切换到基于规则的分组策略分组依据 子网段(IP前两段) 端口角色 通信方向例如10.10.x.x-WebTier-Client和10.20.x.x-Database-Server会被分到不同的安全域。对于节点数 2 的碎片社区系统会将其合并到与其连接最紧密的大社区中保证最终结果的可解释性。3.3 Isolation Forest 异常检测异常检测是系统的另一大亮点。我们实现了完整的Isolation Forest隔离森林算法。Isolation Forest 的核心思想非常巧妙异常点更容易被孤立。具体来说1. 随机选择一个特征维度2. 在该特征的最大值和最小值之间随机选一个分割点3. 将数据分为左右子树4. 递归执行直到所有样本被隔离异常点由于稀疏且偏离主流分布往往在树的浅层就被隔离出来。$$s(x, n) 2^{-\frac{E(h(x))}{c(n)}}$$其中$h(x)$样本 $x$ 在森林中的平均路径长度$c(n)$给定样本数 $n$ 的归一化因子调和数分数范围 [0, 1]越接近 1 越可能是异常我们从每个节点提取 5 维特征用于异常检测// 特征向量设计 features [ degree, // 度中心性连接数越多越重要 inOutRatio, // 入度/出度比率流量不对称性 portCount, // 端口多样性开放端口多可能可疑 communitySize, // 所在社区大小小社区中的孤立节点更可疑 degreeInCommunity // 在社区内的相对重要性 ] export class IsolationForest { private trees: IsolationTree[] []; constructor(options: IsolationForestOptions {}) { this.nTrees options.nTrees ?? 100; // 默认 100 棵树 this.sampleSize options.sampleSize ?? 256; this.threshold options.threshold ?? 0.6; // 异常阈值 } fit(data: number[][]): void { for (let i 0; i this.nTrees; i) { const sample this.randomSample(data, this.sampleSize); const tree this.buildTree(sample); this.trees.push(tree); } } predict(data: number[][]): number[] { return data.map(point { const avgPathLength this.trees.reduce((sum, tree) sum this.pathLength(point, tree.root), 0) / this.trees.length; return Math.pow(2, -avgPathLength / this.c_n); // 异常分数 }); } }等级分数范围颜色含义Critical 0.75 红色脉冲立即排查High0.60 ~ 0.75 橙色重点关注Medium0.45 ~ 0.60 黄色建议关注Low 0.45 绿色正常范围3.4 拓扑可视化可视化部分基于D3.js Force Simulation实现力导向布局节点间的斥力 边的引力形成自然的拓扑分布社区着色不同安全域使用 12 色色板区分交互操作- 节点悬停放大 外发光增强- 点击查看详情IP、度数、流量、异常分数- 社区聚焦高亮选中社区淡化其他区域- 节点搜索定位- 边过滤按权重阈值筛选显示的连接动效设计- 异常节点红色脉冲动画2s 周期- 边过滤 opacity 渐变过渡 300ms- 社区聚焦摄像机平滑过渡3.5 安全基线管理系统内置了可配置的安全基线规则引擎const DEFAULT_BASELINE_RULES: BaselineRule[] [ { name: 异常分数过高, field: anomaly_score, operator: gt, threshold: 0.75, severity: critical }, { name: 超大发送流量, field: bytes_sent, operator: gt, threshold: 40*1024*1024, severity: medium }, { name: 连接数过高, field: degree, operator: gt, threshold: 35, severity: low }, ];用户可以自定义规则系统会实时标记违反基线的节点。四、视觉设计4.1 设计理念系统采用SOC安全运营中心风格的深色主题*深夜安全运营中心深色背景上的发光数据点如同雷达屏幕上的信号。*4.2 配色方案/* 背景 */--background: #060a14; /* 深空黑 */--panel: #0c1220; /* 面板底色 */--elevated: #141c2e; /* 浮起元素 *//* 强调色 */--primary: #00d4ff; /* 青色发光 — 主要交互 */--safe: #10b981; /* 翠绿 — 正常状态 */--warning: #f59e0b; /* 琥珀 — 警告 */--danger: #ef4444; /* 危红 — 异常/危险 */--info: #6366f1; /* 靛蓝 — 信息提示 *//* 社区色板12色循环 */#3b82f6, #ef4444, #10b981, #f59e0b, #8b5cf6, #ec4899,#06b6d4, #f97316, #84cc16, #6366f1, #14b8a6, #e11d484.3 字体规范UI 字体**Inter英文/ PingFang SC中文数据字体**JetBrains MonoIP地址、数值、代码标题**18-24px / font-weight 600正文**13-14px / font-weight 400数据标签**11-12px / monospace五、项目结构与关键文件src/├── app/│ ├── page.tsx # 主页面状态管理中心│ ├── layout.tsx # 根布局│ ├── globals.css # 全局样式 主题变量│ └── api/import/route.ts # 文件上传 API├── components/│ ├── topology-graph.tsx # ⭐ D3 拓扑图核心组件│ ├── sidebar.tsx # ⭐ 侧边栏控制面板│ └── ui/ # shadcn/ui 基础组件库├── lib/│ ├── dataConverter.ts # ⭐ 数据转换引擎社区发现异常检测│ ├── isolationForest.ts # ⭐ Isolation Forest 算法实现│ ├── types.ts # 类型定义 工具函数│ ├── mockData.ts # 模拟数据生成器│ └── utils.ts # 通用工具└── hooks/└── use-mobile.ts # 移动端响应式 Hook六、效果展示6.1 主界面系统主界面由三部分组成1.左侧控制面板数据导入、过滤控制、社区列表、基线规则配置2.中央拓扑画布D3 力导向图支持缩放、拖拽、节点交互3.顶部状态栏实时显示节点数、边数、社区数当前聚焦的安全域6.2 典型工作流① 导入 Excel 流量日志↓② 自动解析 → 构建 IP 节点和连接边↓③ Louvain 算法划分安全域如 Web层、数据库层、缓存层↓④ Isolation Forest 计算每个节点的异常分数↓⑤ 渲染拓扑图正常节点灰色、异常节点红色闪烁↓⑥ 安全分析师点击异常节点 → 查看详情 → 排查处置七、开源仓库本项目已开源至 GitHub欢迎 Star ⭐ 和 Issuehttps://github.com/HLIU5F/A# 克隆项目git clone https://github.com/HLIU5F/A.git# 安装依赖cd A pnpm install# 启动开发服务器pnpm dev# 浏览器访问 http://localhost:5000八、成果展示安全域九、总结与展望Cluster Intelligence 系统将图论算法与机器学习相结合为网络安全分析提供了一种全新的可视化思路能力技术方案效果网络拓扑构建Graphology 图结构从日志自动生成拓扑安全域划分Louvain 社区发现无监督自动分组异常检测Isolation Forest无需标注数据的检测可视化呈现D3.js 力导向图直观的交互式探索基线告警可配置规则引擎灵活的阈值管理未来规划支持实时数据流接入WebSocket / SSE引入时序分析检测异常的时间演化模式对接 SIEM 平台实现告警联动支持更多图算法PageRank、中心性指标等

相关新闻

校园讲解设备按功率选错了,声场适配才是隐形分水岭

校园讲解设备按功率选错了,声场适配才是隐形分水岭

【文章概述】之前做过几个学校的项目,都是看起来很简单但落地翻车的类型。需求一句话:参观的时候前面的人讲,后面的人听。校方立项的时候关注的都是续航、音量、覆盖范围,这些在招标参数表上能对比的东西。设备到了现场实地跑一趟…

2026/7/29 19:14:08 阅读更多 →
【AI仓储管理落地实战指南】:20年物流科技专家亲授,3大避坑法则+5个已验证ROI提升案例

【AI仓储管理落地实战指南】:20年物流科技专家亲授,3大避坑法则+5个已验证ROI提升案例

更多请点击: https://kaifayun.com 第一章:AI仓储管理落地的底层逻辑与价值锚点 AI仓储管理并非简单叠加算法模型,其本质是重构“数据—决策—执行”闭环的物理信息系统。底层逻辑根植于三个不可割裂的支柱:实时感知能力、动态优…

2026/7/29 19:13:08 阅读更多 →
深度学习10——pytorch与数学前置

深度学习10——pytorch与数学前置

1. 张量形状与广播机制 张量与形状 张量可以理解为多维数组: a torch.tensor([1, 2, 3]) # shape: [3]b torch.tensor([[1, 2, 3],[4, 5, 6] ]) # shape: [2, 3]常见形状: [3] 一维张量,包含 3 个数字 [2, 3] 二维张量&#xff…

2026/7/29 19:13:08 阅读更多 →

最新新闻

2027北京具身智能机器人技术展六大同期活动板块揭晓

2027北京具身智能机器人技术展六大同期活动板块揭晓

2027年6月26日至28日,2027北京具身智能机器人技术展落地北京亦庄,组委会正式揭晓六大同期活动完整板块,分别为开幕主论坛、新品首发路演、全球供需商贸对接会、科创投融资专场、天地一体化实景体验、亦庄产业园区参访,六大板块贯穿…

2026/7/29 19:33:25 阅读更多 →
10分钟学会ccapi:Python开发者的加密货币交易API入门教程

10分钟学会ccapi:Python开发者的加密货币交易API入门教程

10分钟学会ccapi:Python开发者的加密货币交易API入门教程 【免费下载链接】ccapi A header-only C library for interacting with crypto exchanges. Bindings for Python, Java, C#, Go, and Javascript are provided. 项目地址: https://gitcode.com/gh_mirrors…

2026/7/29 19:33:25 阅读更多 →
DefaultApp中的Outline视图:构建macOS源列表的高效方法

DefaultApp中的Outline视图:构建macOS源列表的高效方法

DefaultApp中的Outline视图:构建macOS源列表的高效方法 【免费下载链接】DefaultApp A highly-opinionated Xcode project template to build a new macOS app with. 项目地址: https://gitcode.com/gh_mirrors/de/DefaultApp DefaultApp是一个高度优化的mac…

2026/7/29 19:33:25 阅读更多 →
Aderyn用户指南:自定义检测规则、排除误报与集成CI/CD全流程

Aderyn用户指南:自定义检测规则、排除误报与集成CI/CD全流程

Aderyn用户指南:自定义检测规则、排除误报与集成CI/CD全流程 【免费下载链接】aderyn Solidity Static Analyzer that easily integrates into your editor 项目地址: https://gitcode.com/gh_mirrors/ad/aderyn Aderyn是一款强大的Solidity静态分析工具&…

2026/7/29 19:33:25 阅读更多 →
Blind Index迁移指南:从明文到加密搜索的无缝过渡

Blind Index迁移指南:从明文到加密搜索的无缝过渡

Blind Index迁移指南:从明文到加密搜索的无缝过渡 【免费下载链接】blind_index Securely search encrypted database fields 项目地址: https://gitcode.com/gh_mirrors/bl/blind_index 在数据安全日益重要的今天,如何在保护敏感信息的同时不影响…

2026/7/29 19:33:25 阅读更多 →
SmoothScroll性能优化指南:打造60fps的流畅列表体验

SmoothScroll性能优化指南:打造60fps的流畅列表体验

SmoothScroll性能优化指南:打造60fps的流畅列表体验 【免费下载链接】smooth-scroll Smooth collection scrolling 项目地址: https://gitcode.com/gh_mirrors/smoo/smooth-scroll 在移动应用开发中,列表滚动的流畅度直接影响用户体验。SmoothScr…

2026/7/29 19:32:25 阅读更多 →

日新闻

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

【RT-DETR多模态创新改进】CVPR 2025 | 独家特征融合创新改进篇 | 引入RLAB残差线性注意力模块,有效融合并强调多尺度特征,多种改进点,适合红外与可见光融合目标检测任务,有效涨点

一、本文介绍 🔥本文在RT-DETR多模态融合目标检测中引入RLAB残差线性注意力模块,可在不同模态特征交互阶段进行多次残差细化,使可见光、红外等特征在尺度、语义和空间位置上更好对齐;随后将细化特征与解码器输出拼接并生成Q、K、V,通过线性注意力自适应强化关键通道、目…

2026/7/29 0:00:23 阅读更多 →
AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础

AI编程系列02:合并知识功能,给 AI 问数和 RAG 场景打基础 在上一期「AI编程系列」中,我们学习了如何构建一个基础的 AI 问答系统,通过简单的输入输出让模型回应问题。但现实世界中的 AI 应用往往需要处理更复杂的场景:…

2026/7/29 0:00:23 阅读更多 →
AI智能体开发实战:从工具调用到企业级部署

AI智能体开发实战:从工具调用到企业级部署

1. 从被动问答到主动执行:AI Agent的范式转变过去两年,大语言模型最显著的应用形态是聊天机器人——用户提问,AI回答。但真正的生产力革命发生在2023年下半年:当AI学会主动调用工具完成任务时,生产力工具的历史被彻底改…

2026/7/29 0:00:23 阅读更多 →

周新闻

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 道路桥梁裂缝检测数据集 道路桥梁病害识别检测数据集

深度学习道路桥梁裂缝检测系统 数据集6000张 完整源码已标注数据集训练好的模型环境配置教程程序运行说明文档,可以直接使用!系统支持图片、视频、摄像头等多种方式检测裂缝,功能强大实用。 1数据集6000张 8各类别

2026/7/28 12:04:22 阅读更多 →
深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

深度学习YOLO模型如何训练 PUBG 绝地求生目标检测数据集

pubg数据集 精选原图1.42万数据 1.49万标签 无任何重复、算法增强或冗余图像! pubg绝地求生目标检测数据集 1分类:e_body,14905个标签,txt格式 共计14244张图,99%为640*640尺寸图像 适合yolo目标检测、AI训练关键词&am…

2026/7/29 14:34:28 阅读更多 →
Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex英雄目标检测数据集 深度学习框架YOLO如何训练APEX数据集

Apex检测数据集数据集详情检测类别: allies enemy tag图片总量:7247张训练集:5139张验证集:1425张测试集:683张标注状态:全部已标注,即拿即用数据格式:支持YOLO格式及其他格式&#…

2026/7/29 15:00:03 阅读更多 →

月新闻