chenleiv/signal-forge

GitHub: chenleiv/signal-forge

一个基于 Angular 19 和 FastAPI 构建的实时安全运营中心(SOC)仪表板,提供动态攻击地图、威胁情报分析和 AI 驱动的威胁摘要等模拟能力。

Stars: 0 | Forks: 0

# SignalForge 一个使用 Angular 19 和 FastAPI 构建的实时安全运营中心 (SOC) 仪表板。通过动态攻击地图、分析图表、事件管理和 AI 驱动的威胁分析来模拟实时威胁情报。 ## 功能 - **实时 SOC 流** — 通过 WebSocket 提供的实时威胁事件推送,带有严重程度颜色编码 - **分析仪表板** — 严重程度分布、攻击类型、每分钟事件趋势以及主要攻击 IP (Apache ECharts) - **威胁地图** — 动态 D3.js 世界地图,实时显示攻击源 → 目标连线 - **威胁情报** — IP 索引,带有分屏详情面板、MITRE ATT&CK 标签、事件时间线以及 AbuseIPDB 丰富化信息 - **AI 分析** — 由 Groq (Llama 3.1) 生成的针对特定 IP 的威胁摘要,内嵌显示在详情面板中 - **事件** — 自动生成的事件日志,带有分屏详情、状态跟踪以及分析师分配功能 - **警报** — 实时警报推送,带有严重程度过滤器(严重 / 高 / 中 / 低)和消除功能 - **命令控制台** — 终端面板(使用 `` ` `` 切换),支持命令:`help`、`status`、`block ip`、`unblock ip`、`scan` - **身份验证** — JWT 登录,8 小时会话,通过 localStorage 持久化,包含演示访问权限 - **设置** — 可配置的 WebSocket URL、重连延迟、缓冲区大小、警报阈值以及分析师资料 ## 技术栈 | 层级 | 技术 | |-------|-----------| | 前端 | Angular 19, standalone components, Signals API | | 图表 | 通过 ngx-echarts 集成的 Apache ECharts | | 地图 | D3.js v7 + topojson-client | | 后端 | FastAPI, WebSockets, uvicorn | | AI | Groq API — Llama 3.1 8B Instant | | 威胁情报 | AbuseIPDB API (IP 信誉丰富化) | | 认证 | 通过 python-jose 实现的 JWT | | 样式 | SCSS,企业级深色主题 | ## 项目结构 ``` signalforge/ ├── backend/ │ ├── main.py # FastAPI — WebSocket, REST, auth, AI, command endpoints │ └── requirements.txt └── frontend/ └── src/app/ ├── core/ │ ├── services/ # ThreatStore, Threats, Settings, Auth │ └── guards/ # Auth guard (canActivate) ├── shared/ │ └── models/ # TypeScript interfaces ├── layout/ # AppLayout shell — sidebar, topbar, command console └── features/ ├── dashboard/ # Live stream, ECharts panels, critical alerts ├── threat-map/ # D3 animated world map ├── threats/ # IP intelligence — split view (table + detail panel) ├── alerts/ # Live alert feed with filters ├── incidents/ # Incident management — split view (table + detail panel) ├── command-console/ # Terminal overlay ├── login/ # JWT login page └── settings/ # App configuration ``` ## 快速开始 ### 前置条件 - Node.js 18+ - Python 3.9+ - Angular CLI (`npm install -g @angular/cli`) ### 后端 ``` cd backend python3 -m venv venv source venv/bin/activate pip install -r requirements.txt # 可选:为增强和 AI 功能设置 API keys export GROQ_API_KEY=your_key export ABUSEIPDB_API_KEY=your_key python3 -m uvicorn main:app --reload ``` 后端运行在 `http://localhost:8000`。API 文档位于 `http://localhost:8000/docs`。 ### 前端 ``` cd frontend npm install ng serve ``` 应用运行在 `http://localhost:4200`。 **演示凭据:** `analyst` / `threatwatcher` — 或者在登录页面点击 **Try Demo**。 ## API 接口 | 方法 | 路径 | 描述 | |--------|------|-------------| | POST | `/auth/login` | JWT 认证 | | WS | `/ws/threats` | 实时威胁事件流 | | GET | `/api/stats` | 汇总的图表数据 | | GET | `/api/incidents` | 事件列表 | | GET | `/api/ip/{ip}/history` | 特定 IP 的事件历史 + AbuseIPDB 丰富化信息 | | GET | `/api/ip/{ip}/ai-summary` | AI 生成的威胁摘要 (Groq) | | POST | `/api/command` | 命令控制台执行 | | GET | `/health` | 健康检查 | ## 架构 ``` Browser └── Angular 19 (port 4200) ├── WebSocket → ws://localhost:8000/ws/threats (live events) └── HTTP → /api/*, /auth/* (stats, incidents, AI, auth) FastAPI (port 8000) ├── WebSocket handler → generates ~1 threat/sec, writes to in-memory store ├── POST /auth/login → issues 8-hour JWT ├── GET /api/stats → aggregates ip_store into chart data ├── GET /api/incidents → last 50 auto-generated incidents ├── GET /api/ip/{ip}/history → per-IP events + AbuseIPDB enrichment ├── GET /api/ip/{ip}/ai-summary → Groq Llama 3.1 threat summary (cached) └── POST /api/command → executes console commands (block/unblock/scan/status) ``` 前端使用中心的 `ThreatStoreService` (Angular signals) 作为所有 HTTP 调用和缓存状态的唯一事实来源。WebSocket 事件被推送到 store 中,所有组件响应 signal 的变化,无需直接的组件间通信。 ## AI 辅助工程 .claude/ agents/ ├── frontend-architect ├── backend-architect ├── security-auditor └── quality-gatekeeper commands/ ├── feature ├── debug └── ship ## 工作流 该工作流引入了专门的工程代理,负责架构、安全和质量验证。 ### 工程代理 - 前端架构师 审查 Angular 架构、Signals 用法、RxJS 模式和性能考量。 - 后端架构师 审查 FastAPI 结构、API 边界、验证和服务设计。 - 安全审计员 执行应用安全审查,包括身份验证、授权、JWT 处理、XSS 风险和密钥暴露。 - 质量把关员 通过类型检查、Lint、测试和构建验证来验证生产就绪状态。 ### 开发流程 功能遵循结构化的生命周期: 计划 → 实现 → 架构审查 → 安全审查 → 质量验证 在发布之前,更改需通过: - 架构验证 - 安全审查 - TypeScript 检查 - ESLint - 自动化测试 - 生产构建验证
标签:Angular, AV绕过, FastAPI, Grype, WebSocket, 依赖分析, 后端开发, 威胁情报, 安全运营中心, 开发者工具, 网络映射