CyberCoder-IITM/AegisView-SOC

GitHub: CyberCoder-IITM/AegisView-SOC

全栈式自主安全运营中心仪表板,结合实时网络数据包分析、AI 驱动的威胁归因与 MITRE ATT&CK 映射,为安全分析师提供一站式可视化威胁检测与事件响应能力。

Stars: 0 | Forks: 0

# AegisView 实时 SOC 网络异常检测与合规性仪表板 —— 为需要即时洞察一切的安全分析师而打造。 ## 它是什么 AegisView 是一个全栈安全运营中心 (SOC) 仪表板,它接收实时网络数据包,使用统计 z-score 分析检测异常,将威胁归因到 MITRE ATT&CK 阶段,并在一个极具视觉冲击力的界面中呈现可操作的情报。一个自主 AI agent 在后台持续运行,分析每一个数据包并生成由 Gemini 驱动的威胁报告。 ## 功能特性 ### 实时检测 - **实时数据包流** —— 滚动显示最近 100 个数据包,包含源/目标 IP、协议、端口、标志位、国家/地区及异常高亮显示 - **威胁等级仪表** —— 动态分数 (0–100),具备 SAFE / ELEVATED / HIGH / CRITICAL (安全/升高/高/严重) 阈值 - **Z-Score 异常图表** —— 包含统计偏差带的时间序列图,以及带有趋势方向 (RISING / FALLING / STABLE) 的 12 步机器学习预测 - **协议分布** —— TCP / UDP / ICMP 及其他流量比例的实时饼图 - **实时状态栏** —— 每秒数据包数、运行时间、活跃威胁计数和风险评分每 2 秒更新一次 ### AI 与情报 - **SOC Agent 面板** —— 自主 agent 按可配置周期运行,分析所有数据包并生成带有 MITRE 战术归因的结构化威胁情报 - **AI 洞察** —— Gemini 2.5 Flash 为每个异常生成有依据的 3 句话分析师报告;绝不凭空捏造数据包数据中不存在的事实 - **自然语言查询引擎** —— 提出简单的英语问题(例如,“哪个 IP 发送的流量最多?”),并从实时捕获窗口中获得精确、基于数据的答案 - **暗网关联** —— 每个被标记的 IP 都会实时与 Emerging Threats、Feodo Tracker C2 和 URLhaus Malware 威胁情报源进行交叉比对 ### 可视化 - **地球仪地图** —— 带有从源国家/地区到目标的动态威胁弧线的 3D 旋转地球仪;包含 17 个精确的陆地多边形 - **实时网络拓扑图** —— 基于实时数据包数据构建的力导向图;节点根据威胁状态着色(TOR 节点为红色,外部节点为橙色,内部节点为青色);支持拖拽,可按协议和方向进行过滤 - **端口/时间热力图** —— 显示按小时和目标端口分布的流量密度的 30×20 矩阵 - **设备雷达** —— 对捕获窗口中出现的每个 IP 进行行为分析,标记偏离其学习基线的设备 ### 威胁归因 - **MITRE ATT&CK 杀伤链** —— 由 SOC agent 填充的动态 5 阶段进度条 (Reconnaissance → Initial Access → Execution → Lateral Movement → Exfiltration) - **Sigma 规则生成器** —— 为每个标记的威胁自动生成 Sigma YAML 格式的检测规则;支持一键复制、Splunk/Kibana 导出链接和 YAML 下载 - **合规性面板** —— NIST 800-53 和 ISO 27001 规则检查,包含违规详情和 PDF 报告导出 ### 会话与事件管理 - **会话时间轴清洗器** —— 固定在底部的工具栏,允许分析师回溯到当前会话中的任意时间点,并重放该精确时刻的仪表板状态 - **事件管理器** —— 创建、跟踪和共享事件;每个事件都链接到一个冻结的快照,并拥有自己的可共享 URL (`/incident/:id`) - **取证完整性链** —— 每个数据包都会被附加到一个防篡改的 SHA-256 区块链中;可按需验证链状态 (INTACT / COMPROMISED) - **作战室模式** —— 全屏指挥覆盖层,整合了所有关键指标,适用于重大事件响应 (`W` 键) ### 可靠性与生活质量 - **攻击模拟器** —— 注入逼真的流量模式 (SYN Flood、Port Scan、Telnet sweep、RDP brute force、Data Exfil) 以训练分析师或测试检测规则 - **系统健康监控器** —— 所有 6 个内部子系统的实时状态;降级的组件会直接显示在页面头部 - **成就系统** —— 当分析师探索各项功能时可解锁的里程碑 - **沉浸式引导** —— 首次访问时的动态功能导览,可跳过 - **键盘快捷键** —— `W` 作战室,`R` 触发 AI 分析,`C` 验证完整性链,`E` 导出报告,`?` 快捷键图例 - **错误隔离** —— 每个面板都包裹在 ErrorBoundary 中;单个组件的崩溃永远不会导致整个仪表板瘫痪 ## 技术栈 | 层级 | 技术 | |---|---| | 前端 | React 19, Vite 7, Tailwind CSS v4, Recharts, Wouter | | UI 组件 | Radix UI primitives (shadcn/ui) | | 数据获取 | TanStack Query v5 与生成的 React hooks (Orval) | | 后端 | Express 5, TypeScript, Pino 结构化日志 | | AI | 通过 `@google/genai` 使用 Google Gemini 2.5 Flash | | API 契约 | OpenAPI 3.1 规范 → Zod schemas + React Query hooks (代码生成) | | Monorepo | pnpm workspaces | ## 项目布局 ``` / ├── artifacts/ │ ├── aegisview/ # React + Vite frontend (served at /) │ └── api-server/ # Express 5 API (served at /api) ├── lib/ │ ├── api-spec/ # OpenAPI spec + codegen config (Orval) │ ├── api-client-react/ # Generated React Query hooks │ └── api-zod/ # Generated Zod validation schemas └── scripts/ # Shared utility scripts ``` ## API 接口 所有路由均位于 `/api` 下。所有响应均为 JSON 格式。 | 方法 | 路径 | 描述 | |---|---|---| | GET | `/healthz` | 健康检查 | | GET | `/packets` | 最近捕获的 100 个数据包 | | GET | `/threats` | 当前标记的异常 | | GET | `/threat-level` | 综合风险评分及标签 | | GET | `/stats/live` | PPS (每秒数据包数)、运行时间、威胁计数、风险评分 | | GET | `/stats/anomaly-timeline` | 60 个点的 z-score 时间序列 | | GET | `/stats/protocol-breakdown` | 按协议划分的流量分布 | | GET | `/forecast` | 12 步威胁预测及趋势方向 | | GET | `/analytics/heatmap` | 30×20 端口/时间流量矩阵 | | GET | `/geo/threats` | 带有经纬度用于地球仪展示的威胁 IP | | GET | `/compliance/report` | NIST/ISO 规则检查和违规情况 | | GET | `/mitre/killchain` | 5 阶段 ATT&CK 归因 | | GET | `/baseline/status` | 行为基线模式及偏差 | | GET | `/devices` | 每个_IP 的行为分析 | | GET | `/sigma/rules` | 自动生成的 Sigma YAML 规则 | | GET | `/agent/status` | SOC agent 运行状态及周期计数 | | GET | `/agent/cycles` | 最近的 agent 周期结果 | | GET | `/chain/status` | 完整性链长度及 INTACT/COMPROMISED (完整/受损) 状态 | | GET | `/chain/latest` | 最近 10 条区块链记录 | | GET | `/replay/timeline` | 完整的会话时间轴 | | GET | `/replay/snapshots` | 已保存的快照列表 | | GET | `/replay/snapshot/:id` | 包含数据包样本的快照详情 | | GET | `/incidents` | 所有事件 | | GET | `/incidents/:id` | 单个事件 | | POST | `/incidents/create` | 从快照创建事件 | | GET | `/intel/darkweb/summary` | 威胁情报源关联摘要 | | GET | `/health/detailed` | 各子系统健康状态 (6 个组件) | | POST | `/ai/analyze` | 针对单个异常的 Gemini 报告 | | POST | `/query` | 针对实时数据的自然语言查询 | | POST | `/simulate/:type` | 注入攻击流量 (syn_flood, port_scan, telnet, rdp_brute, exfil) | | POST | `/simulate/stop` | 停止正在进行的模拟 | ## 开始使用 ``` # 安装 dependencies pnpm install # 运行 API server pnpm --filter @workspace/api-server run dev # 运行 frontend pnpm --filter @workspace/aegisview run dev ``` 在 Replit 环境中,这两个服务通过配置好的 workflows 自动连接。共享的反向代理将 `/api/*` 路由到 API 服务器,将其他所有内容路由到前端。 要在更改 OpenAPI 规范后重新生成 API 客户端: ``` pnpm --filter @workspace/api-spec run codegen ``` 要对所有内容进行类型检查: ``` pnpm run typecheck ``` ## 环境变量 | 变量 | 必需 | 描述 | |---|---|---| | `PORT` | 是 | 每个服务的端口(由 workflow 配置设置) | | `BASE_PATH` | 是 | URL 基础路径前缀(由 workflow 配置设置) | | `SESSION_SECRET` | 是 | 用于 session 签名的密钥 | | `AI_INTEGRATIONS_GEMINI_BASE_URL` | 是 | Gemini API 代理基础 URL | | `AI_INTEGRATIONS_GEMINI_API_KEY` | 是 | Gemini API 密钥 | ## 架构说明 **契约优先 API** —— `lib/api-spec` 中的 OpenAPI 规范是唯一的真实来源。Zod schemas 和 React Query hooks 都是根据它生成的;服务器会根据 Zod schemas 验证输入和输出,而前端从不手动编写 fetch 调用。 **结构化日志** —— API 服务器全程使用 Pino。路由处理器通过 `req.log` 进行日志记录;非请求相关的代码使用单例 `logger`。服务器代码中绝不使用 `console.log`。 **错误隔离** —— 每个仪表板面板都包裹在 React `ErrorBoundary` 中。一个面板中的 canvas 渲染错误或不良的 API 响应结构只会显示一个包含重试按钮的局部错误卡片;仪表板的其余部分将继续正常运行。 **完整性链** —— 每个流经系统的网络数据包都会被追加到内存中的 SHA-256 区块链中。可以随时通过 `GET /api/chain/status` 和 Forensic Integrity Chain 面板验证该链的状态。
标签:3D地球, AegisView, AI安全, APT归因, C2服务器追踪, Chat Copilot, CISA项目, Cloudflare, DLL 劫持, Gemini, ICMP, IP 地址批量处理, MITRE ATT&CK, PE 加载器, TCP协议分析, UDP协议分析, Z-Score异常检测, 人工智能, 大语言模型, 威胁情报, 威胁狩猎自动化, 威胁等级评估, 安全事件管理, 安全仪表盘, 安全合规, 实时网络监控, 开发者工具, 恶意IP检测, 恶意软件关联, 时序分析, 暗网情报, 机器学习预测, 用户模式Hook绕过, 网络代理, 网络信息收集, 网络威胁情报, 网络安全, 网络安全监控, 网络异常检测, 网络遥测, 自主安全运营中心, 自动化SOC, 自动化攻击, 自然语言查询, 隐私保护, 驱动开发, 高级持续性威胁