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, 自动化攻击, 自然语言查询, 隐私保护, 驱动开发, 高级持续性威胁