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, 依赖分析, 后端开发, 威胁情报, 安全运营中心, 开发者工具, 网络映射