SamFrieman/sigintx
GitHub: SamFrieman/sigintx
SIGINTX 是一个实时信号情报仪表板,通过聚合 148 路安全与 AI 新闻并以 3D 地图与 AI 分析员进行关联与查询,帮助团队快速识别与追踪威胁。
Stars: 0 | Forks: 0
# SIGINTX — 网络情报平台
### v4.0.0 · MIT 许可证 · 无需付费 API · 100% 开源
一个实时信号情报仪表板,整合来自 **148 个 RSS 源** 的实时数据,涵盖安全、科技、加密、政治和 AI 领域,每 1–2 分钟提供一篇新文章。追踪威胁行为体、相关联的活动战役、在 3D 地球仪上映射全球攻击,并可通过内置的 AI 分析员进行查询,支持 Ollama、Groq 或 OpenRouter。
**[在线演示](https://sigintx.vercel.app)** · **[在 Render + Vercel 上部署](#deploy-to-render--vercel-free)**
## 截图
## 技术栈
| 层级 | 技术 | 用途 |
|---|---|---|
| **前端** | React 18 + TypeScript 5 | 组件 UI |
| **前端** | Vite 5 | 开发服务器 + 生产构建打包器 |
| **前端** | Tailwind CSS 3 | 实用优先样式搭配自定义设计令牌 |
| **前端** | Framer Motion 11 | 动画与过渡效果 |
| **前端** | React Flow | 相关关系图渲染 |
| **前端** | react-globe.gl | 3D WebGL 交互式威胁地图 |
| **前端** | Lucide React | 图标系统 |
| **后端** | Python 3.12 + FastAPI | REST API + WebSocket 服务器 |
| **后端** | SQLAlchemy 2.0(异步) | ORM — 开发环境使用 SQLite,生产环境使用 PostgreSQL |
| **后端** | APScheduler | 后台数据收集(3 分钟 RSS 周期) |
| **后端** | httpx + feedparser | 异步 HTTP 与 RSS/Atom 解析 |
| **后端** | BeautifulSoup4 | HTML 摘要提取 |
| **AI** | Ollama | 本地大语言模型推理(自动管理) |
| **AI** | Groq API | 免费层级云端后备 |
| **AI** | OpenRouter | 按需使用多模型后备 |
| **生产** | PostgreSQL 16 | 生产数据库 |
| **生产** | Redis 7 | 发布/订阅 + Celery 任务代理 |
| **生产** | Celery 5 | 分布式任务队列 |
| **生产** | Nginx | 反向代理 + 静态资源服务 + 安全头 |
| **部署** | Render | 后端托管(免费层级) |
| **部署** | Vercel | 前端托管(免费层级) |
| **部署** | Docker Compose | 自托管替代方案 |
## 功能
### 8 面板仪表板
| 标签页 | 描述 |
|---|---|
| **仪表板** | 实时统计卡片、分割的新闻 + 活动动态、DEFCON 网络威胁等级指示器 |
| **新闻动态** | 148 个来源的实时动态 — 按类别(安全 / 科技 / 加密 / 政治 / AI)、严重性、全文搜索过滤,支持每条 AI 分析 |
| **威胁行为体** | 按国家过滤的行为体档案,附 MITRE ATT&CK 技术标签与别名扩展 |
| **战役** | 按行为体分组的战役时间线 + AI 辅助的隐藏战役发现(基于未标注情报) |
| **关联分析** | AI 生成威胁图谱(行为体 → 战役 → 技术 → 新闻),带动画连线与时间窗口选择器 |
| **威胁地图** | 3D WebGL 地球仪 — 菱形节点表示威胁行为体来源,圆形节点表示攻击目标;点击任意节点查看完整事件详情 |
| **AI 分析员** | 多轮威胁分析聊天,支持模型选择、实时响应流式输出、快速提示库、带数据库工具调用的代理模式、威胁简报生成器与威胁变化分析 |
| **设置** | 持久化配置 — AI 提供商、Webhook 告警、观察列表、RSS 源、Ollama 模型管理 |
### 智能情报管道
每条摄入内容均经过以下增强流程:
1. **严重性分类** — 关键词评分 → `CRITICAL / HIGH / MEDIUM / INFO`
2. **标签提取** — 17 个类别:`ransomware`、`zero-day`、`APT`、`supply-chain`、`DDoS`、`cloud`、`phishing`、`data-breach`、`critical-infra`、`windows`、`linux`、`network`、`patch`、`CISA`、`malware`、`exploitation`、`vulnerability`
3. **威胁行为体检测** — 20 多个群体(含别名扩展,如 APT28/Fancy Bear、APT29/Cozy Bear、Lazarus、Volt Typhoon、LockBit、ALPHV/BlackCat、Cl0p 等)
4. **CVE 提取** — 正则匹配 `CVE-YYYY-NNNNN`,覆盖标题与摘要
5. **语义去重** — 标题哈希去重(去除停用词、排序 Token、SHA-1),防止同一新闻因来源不同而被重复计数
### AI 能力
- **流式聊天** — 多轮分析员,支持实时工具调用查询新闻与行为体数据库
- **模型选择器** — 每轮对话可独立选择任意已拉取的 Ollama 模型
- **完整 Markdown 渲染** — 表格、粗体、斜体、代码块、引用块均正确渲染
- **威胁简报** — 按需生成结构化简报,便于团队分发
- **AI 关联图谱** — LLM 生成结构化节点/边图谱,支持 JSON 模式输出与三阶段回退解析器
- **隐藏战役发现** — 扫描未标注新闻中的协同攻击模式,输出置信度评级、技术、指标与支撑证据
- **提供者链** — Ollama(本地自动管理)→ Groq → OpenRouter → 通用 OpenAI 兼容端点;任一提供者不可用时自动回退
### 会话日志
所有后端活动记录至:
- `logs/sigintx.log` — 滚动日志文件(最大 10 MB,保留 5 份备份)
- 内存环形缓冲区(最近 2,000 条记录)— 可通过 `GET /api/v1/logs` 访问
- SSE 实时流 — `GET /api/v1/logs/stream` 实时推送新记录
每条 HTTP 请求均记录方法、路径、状态码与延迟(毫秒)。
## 数据来源
| 来源 | 数据 | 刷新频率 | API 密钥 |
|---|---|---|---|
| NVD 2.0 API | CVE + CVSS 评分 | 每 2 小时 | 否 |
| CISA KEV | 已利用 CVE 目录 | 每 6 小时 | 否 |
| FIRST EPSS | 漏洞利用概率 | 随 CVE 同步获取 | 否 |
| MITRE ATT&CK | 威胁行为体档案与技术 | 启动时加载 | 否 |
| AlienVault OTX | 威胁脉冲 + IOC | 每 30 分钟 | 可选 |
| Abuse.ch MalwareBazaar | 恶意哈希 | 每 30 分钟 | 否 |
| Abuse.ch URLhaus | 恶意 URL | 每 30 分钟 | 否 |
| Abuse.ch ThreatFox | 带置信度评分的 IOC | 每 30 分钟 | 否 |
| RansomWatch | 勒索软件受害者动态 | 每 10 分钟 | 否 |
| **148 RSS 源** | 安全 / 科技 / 加密 / 政治 / AI | 每 3 分钟 | 否 |
### RSS 覆盖范围(148 源 · 约每 1–2 分钟 1 篇文章)
| 类别 | 数量 | 代表性来源 |
|---|---|---|
| **安全** | 31 | BleepingComputer、Krebs on Security、The Hacker News、SecurityWeek、Dark Reading、CISA、Talos、Unit 42、Securelist、WeLiveSecurity、CrowdStrike、CyberScoop、The Record 等 |
| **科技** | 31 | Ars Technica、The Verge、TechCrunch、Wired、MIT Tech Review、IEEE Spectrum、CNET、Slashdot、9to5Google、Tom's Hardware、The Next Web、TechRadar 等 |
| **加密** | 25 | CoinDesk、CoinTelegraph、Decrypt、The Block、Blockworks、Bitcoin Magazine、CryptoSlate、BeInCrypto、The Defiant 等 || **政治** | 31 | Reuters、BBC World、AP News、Al Jazeera、Foreign Policy、Defense One、Lawfare、Brookings、War on the Rocks、The Intercept 等 |
| **AI** | 27 | VentureBeat AI、TechCrunch AI、Hugging Face 博客、OpenAI 博客、Google DeepMind、The Batch、The Decoder、MIT News AI、NVIDIA 博客、Google AI 博客 等 |
## 本地运行
### 前置条件
- Python 3.11+
- Node.js 20+
- Git
- [Ollama](https://ollama.com) — 可选,启用本地 AI 推理
### 1 — 克隆仓库
```
git clone https://github.com/YOUR_USERNAME/sigintx
cd sigintx
```
### 2A — 统一启动器(推荐)
同时启动后端与前端服务,并将所有输出重定向至 `logs/`。
**Windows(PowerShell):**
```
.\start.bat
```
**macOS / Linux:**
```
chmod +x start.sh && ./start.sh
```
### 2B — 手动启动(双终端)
**终端 1 — 后端:**
```
cd backend
python -m venv venv
.\venv\Scripts\Activate.ps1 # Windows PowerShell
# source venv/bin/activate # macOS / Linux
pip install -r requirements.txt
uvicorn main:app --reload --port 8000
```
**终端 2 — 前端:**
```
cd frontend
npm install
npm run dev
```
打开 `http://localhost:5173` — Vite 开发服务器会自动将 `/api` 与 `/ws` 代理至后端。
首次启动时,后端将:
- 创建 SQLite 数据库
- 从 MITRE ATT&CK 种子威胁行为体
- 加载全部 148 个 RSS 源
- 立即启动后台采集
- 自动下载并启动 Ollama(若已安装),使用 `llama3.2:3b` 模型
## 部署到 Render + Vercel(完全免费)
最快将 SIGINTX 公网运行且零成本的方式。
### 架构
```
Browser → Vercel (React frontend)
↓ VITE_API_URL
Render (FastAPI backend)
↓
Render PostgreSQL + Redis
```
### 步骤 1 — 推送到 GitHub
```
cd sigintx
# 在首次提交前删除本地数据库和日志
Remove-Item -Force backend\sigintx.db, backend\sigintx.db-shm, backend\sigintx.db-wal -ErrorAction SilentlyContinue
Remove-Item -Recurse -Force logs -ErrorAction SilentlyContinue
git init
git branch -M main
git add .
git status # verify no .db / .env / venv files appear
git commit -m "Initial commit"
git remote add origin https://github.com/YOUR_USERNAME/sigintx.git
git push -u origin main
```
### 步骤 2 — 在 Render 上部署后端
1. 访问 [render.com](https://render.com) → **New → Blueprint**
2. 连接你的 GitHub 仓库 — Render 会自动识别 `render.yaml` 并创建 API 服务、PostgreSQL 与 Redis
3. 等待首次部署完成(约 3 分钟)
4. 复制后端地址:`https://sigintx-api.onrender.com`
### 步骤 3 — 在 Vercel 上部署前端
1. 访问 [vercel.com](https://vercel.com) → **New Project** → 导入你的仓库
2. 设置 **Root Directory** 为 `frontend`
3. 添加以下环境变量:
| 变量 | 值 |
|---|---|
| `VITE_API_URL` | `https://sigintx-api.onrender.com` |
| `VITE_AUTH_DISABLED` | `true` |
4. 部署 — Vercel 会自动识别 Vite 并运行 `npm run build`
### 步骤 4 — 在 Render 上更新 CORS
在 **Render Dashboard → sigintx-api → Environment** 中,将 `ALLOWED_ORIGINS` 更新为你的 Vercel 域名。
Render 会自动重启服务。
## 使用 Docker Compose 自托管
适用于在自有 Linux 服务器或 VPS 上运行。
```
# 1. 复制环境模板并填写您的值
cp .env.example .env
# 编辑 .env — 至少设置 POSTGRES_PASSWORD、REDIS_PASSWORD、JWT_SECRET
# 2. 生成 JWT 密钥
openssl rand -hex 32
# 3. 启动所有服务
docker compose up -d --build
# 4. 查看日志
docker compose logs -f api
```
| 服务 | 暴露端口 | 描述 |
|---|---|---|
| `postgres` | 仅内部 | PostgreSQL 16 |
| `redis` | 仅内部 | 缓存 + Celery 代理 |
| `api` | 仅内部(通过 nginx) | FastAPI 后端 + WebSocket |
| `worker` | — | Celery 异步工作进程 |
| `beat` | — | Celery Beat 调度器 |
| `frontend` | `80` | Nginx:React 应用 + API 代理 + 安全头 |
所有密钥均从 `.env` 读取 — 完整变量列表请参考 `.env.example`。
## API 参考
### 核心数据
```
GET /api/v1/health Server health + version
GET /api/v1/stats Aggregate counts
GET /api/v1/news?limit=50&severity=HIGH Filtered + searchable news feed
GET /api/v1/actors?country=Russia Threat actor profiles
GET /api/v1/campaigns?days_back=30 Campaign timelines
GET /api/v1/iocs IOC database
GET /api/v1/threat-level DEFCON-style threat level (1–5)
GET /api/v1/source-health RSS + collector status
GET /api/v1/cves?in_kev=true&min_cvss=7 CVE explorer
```
### 采集
```
POST /api/v1/collect/rss Trigger RSS collection
POST /api/v1/collect/ransomwatch Trigger RansomWatch fetch
POST /api/v1/analyze SSE stream — single-item AI analysis
```
### 关联分析与战役
```
GET /api/v1/correlation/ai?hours_back=48 AI correlation graph (cached 10 min)
POST /api/v1/campaigns/ai-discover AI hidden campaign discovery
```
### AI 分析员
```
GET /api/v1/ai/status LLM provider chain + available models
POST /api/v1/ai/chat SSE streaming analyst chat
POST /api/v1/ai/agent/chat SSE agentic mode (DB tool calls)
POST /api/v1/ai/briefing/stream SSE streaming briefing
GET /api/v1/ai/briefing Latest stored briefing
GET /api/v1/ai/delta Threat delta (current vs baseline)
GET /api/v1/ai/chat/history Persistent chat history
DELETE /api/v1/ai/chat/history/{session_id} Clear session
```
### Ollama 管理
```
GET /api/v1/ollama/models Pulled model list
POST /api/v1/ollama/pull Pull a new model (SSE progress)
DELETE /api/v1/ollama/models/{name} Delete a model
```
### 设置、RSS 源与观察列表
```
GET /api/v1/settings All persisted settings
POST /api/v1/settings Update a setting
GET /api/v1/feeds RSS feed list + enabled status
POST /api/v1/feeds Add a custom RSS feed
DELETE /api/v1/feeds/{id} Remove a feed
POST /api/v1/feeds/reset Reset to defaults
GET /api/v1/watchlists Keyword watchlist entries
POST /api/v1/watchlists Add entry
DELETE /api/v1/watchlists/{id} Remove entry
```
### 日志
```
GET /api/v1/logs?limit=200&level=INFO Recent log ring buffer
GET /api/v1/logs/stream SSE live log tail
WS /ws Live push (new items, alerts)
```
## 项目结构
```
sigintx/
├── .env.example # Environment variable template — copy to .env
├── .gitignore
├── render.yaml # Render Blueprint — auto-creates API + DB + Redis
├── docker-compose.yml # Self-hosted alternative
├── start.sh # Dev launcher — macOS/Linux
├── start.bat # Dev launcher — Windows
│
├── backend/
│ ├── main.py # FastAPI app, all routes, WebSocket, lifespan
│ ├── database.py # SQLAlchemy async models
│ ├── auth.py # JWT auth (disabled by default for demo)
│ ├── enrichment.py # Severity, tags, actor detection, CVE extraction
│ ├── correlate.py # CVE↔actor co-occurrence, campaign engine, webhooks
│ ├── agents.py # AI analyst prompt, tool dispatch, context builder
│ ├── llm.py # Multi-provider LLM client (Ollama→Groq→OpenRouter)
│ ├── session_logger.py # Ring buffer + rotating file + HTTP middleware
│ ├── ollama_manager.py # Automatic Ollama install/serve/pull lifecycle
│ ├── rules_engine.py # Alert rule evaluation
│ ├── scheduler.py # APScheduler (dev) / Celery Beat (prod)
│ ├── requirements.txt # Pinned dependencies
│ ├── Dockerfile
│ └── collectors/
│ ├── rss_collector.py # 148 RSS feeds, semantic dedup, 3-min cycle
│ ├── cve_collector.py # NVD 2.0 + CISA KEV + EPSS
│ ├── mitre_collector.py # MITRE ATT&CK STIX → ThreatActor seed
│ ├── abusech_collector.py # MalwareBazaar + URLhaus + ThreatFox
│ ├── otx_collector.py # AlienVault OTX pulses
│ └── ransomwatch_collector.py
│
└── frontend/
├── vercel.json # Vercel SPA routing
├── Dockerfile # Multi-stage build (builder → nginx)
├── nginx.conf # Security headers + proxy + gzip + asset caching
└── src/
├── App.tsx # Root layout, 8-tab navigation, WebSocket
├── vite-env.d.ts # VITE_API_URL / VITE_AUTH_DISABLED type declarations
├── types/index.ts # TypeScript interfaces
├── hooks/
│ ├── useApi.ts # Fetch hook — env-aware base URL, abort, polling
│ └── useWebSocket.ts # Auto-reconnecting WebSocket with heartbeat
└── components/
├── StatusBar.tsx # Top bar: logo, stats, threat level
├── NewsFeed.tsx # Live feed — 5 category tabs, search, filters
├── ThreatActors.tsx # Actor cards with MITRE technique chips
├── CampaignTimeline.tsx # Campaign timelines + AI discovery
├── CorrelationGraph.tsx # AI-generated React Flow graph
├── ThreatMap.tsx # 3D WebGL globe — interactive nodes + panels
├── AiAnalyst.tsx # Streaming chat, model selector, briefing
├── DefconIndicator.tsx # Animated 5-bar threat level widget
├── Settings.tsx # Persistent settings panel
├── ModelManager.tsx # Ollama model management UI
├── AlertRules.tsx # Alert rule editor
├── Watchlists.tsx # Keyword watchlist manager
├── ConferenceCalendar.tsx# Security conference calendar
├── IocExplorer.tsx # IOC browser
└── ActivityPanel.tsx # Recent activity feed
```
## 设计系统
SIGINTX 采用三层令牌架构(原始 → 语义 → 组件)。
**严重性调色板:**
| 级别 | 颜色 | 触发条件 |
|---|---|---|
| `CRITICAL` | `#ff2255` | 零日漏洞、KEV 列入、活跃勒索软件、CVSS ≥ 9 |
| `HIGH` | `#ffaa00` | APT 活动、规模化利用、CVSS ≥ 7 |
| `MEDIUM` | `#00d4ff` | 新 CVE、公告、CVSS ≥ 4 |
| `INFO` | `#00ff88` | 研究、补丁、一般新闻 |
**类别调色板:**
| 类别 | 颜色 |
|---|---|
| 安全 | `#ff4444` |
| 科技 | `#00d4ff` |
| 加密 | `#f7931a` |
| 政治 | `#a855f7` |
| AI | `#22d3a5` |
**威胁地图节点颜色:**
| 来源国家 | 颜色 |
|---|---|
| 俄罗斯 | `#ff4444` |
| 中国 | `#ff6600` |
| 朝鲜 | `#aa44ff` |
| 伊朗 | `#00d4ff` |
**字体:** Orbitron(展示)· Rajdhani(标题)· Share Tech Mono(标签)· IBM Plex Mono(代码)
**效果:** CRT 扫描线叠加、暗角、点阵背景、发光边框、行为体来源节点的钻石脉冲光效
## 更新日志
### v4.0.0 — 2026-04-14
- `ADDED` **AI 新闻类别** — 新增 27 个订阅源:OpenAI 博客、Google DeepMind、Hugging Face 博客、The Batch、The Decoder、MIT News AI、NVIDIA 博客、Google AI 博客、Meta AI 博客、VentureBeat AI 等
- `ADDED` **总计 148 个 RSS 源**(原为 63)— 新增 85 个来源,覆盖全类别;文章流入约每 1–2 分钟一篇
- `ADDED` **Render + Vercel 部署** — `render.yaml` 蓝图实现一键 Render 部署;`frontend/vercel.json` 支持 Vercel 单页应用路由
- `ADDED` **`VITE_API_URL`** 环境变量 — 前端 API 与 WebSocket 调用在构建时指向任意后端源
- `ADDED` **`VITE_AUTH_DISABLED`** 环境变量 — 前端在公开演示部署时可跳过登录页
- `ADDED` **`vite-env.d.ts`** — 为 `VITE_API_URL` 与 `VITE_AUTH_DISABLED` 提供类型定义
- `ADDED` **`.env.example`** — 完整的环境变量模板文档
- `ADDED` **`.gitignore`** — 项目根目录忽略文件,覆盖 `.env`、`*.db`、`venv/`、`node_modules/`、`logs/`
- `SECURITY` `AUTH_DISABLED` 默认值改为 `false` — 认证默认开启;如需本地开发请显式设置 `AUTH_DISABLED=true`
- `SECURITY` JWT 密钥启动时强制校验,未设置将直接报错,不再使用弱默认值
- `SECURITY` CORS 严格限定为 `ALLOWED_ORIGINS` 环境变量(不再允许 `["*"]`)
- `SECURITY` 首次启动自动生成管理员密码(`secrets.token_urlsafe(20)`)并打印到终端,可通过 `ADMIN_PASSWORD=` 覆盖
- `SECURITY` 所有密钥从 `-compose.yml` 移除,改用 `${VAR:?error}` 强制声明
- `SECURITY` nginx 新增安全头:`X-Frame-Options`、`X-Content-Type-Options`、`X-XSS-Protection`、`Referrer-Policy`、`Permissions-Policy`、`Content-Security-Policy`
- `IMPROVED` RSS 单源条目上限由 30 提升至 50;采集周期由 5 分钟收紧至 3 分钟
- `IMPROVED` `requirements.txt` 完全锁定版本(统一使用 `==`)以确保可重复构建
- `FIXED` 标签页切换黑屏 — 移除 `AnimatePresence` / `motion.div` 包裹层,避免快速点击导致透明度残留
- `FIXED` AI Markdown 渲染 — 完全重写 `MarkdownText` 组件,表格、粗体、斜体、代码块、引用块等均正确渲染
- `FIXED` 健康端点版本号更新为 `3.5.0` — 与实际应用版本一致
### v3.6.0 — 2026-04-14
- `ADDED` `session_logger.py` — 滚动日志文件 + 内存环形缓冲区 + `GET /api/v1/logs` + SSE 流
- `ADDED` `RequestLoggingMiddleware` — 记录每个 HTTP 请求的方法、路径、状态码与延迟
- `ADDED` `start.sh` / `start.bat` — 统一启动脚本,同时启动后端与前端并将输出重定向至 `logs/`
- `ADDED` AI 分析员模型选择器 — `AUTO` 与各模型按钮;选定模型在 POST 请求体中传递
- `FIXED` 威胁地图菱形节点方形描边 Bug — `@keyframes diamond-pulse` 保留 `rotate(45deg)`
- `IMPROVED` 威胁地图行为体来源节点 — 显示国家标签,点击阻止冒泡
- `IMPROVED` 威胁地图攻击目标节点 — 显示城市标签,外圈标记 CRITICAL 目标
### v3.5.0 — 2026-04-13
- `FIXED` 关联图谱 HTTP 500 — 启用 JSON 模式与三阶段回退解析器
- `FIXED` 失效 RSS 源 — 启动时批量更新数据库正确标记过期条目
- `FIXED` AI 活动缓存按 `days_back` 独立 — 不同时间窗口缓存分离
- `IMPROVED` 威胁地图 — 夜间地球纹理、弧线加粗、节点放大、光效增强
- `IMPROVED` AI 分析员 — `loadStatus()` 限流至 60 秒,避免 Ollama 轮询拥塞
### v3.4.0 — 2026-04-12
- `ADDED` `POST /api/v1/campaigns/ai-discover` — LLM 辅助隐藏战役发现
- `ADDED` AI 发现标签页
- `FIXED` AI 状态端点 — 30 秒服务端 TTL
### v3.3.0 — 2026-04-10
- `FIXED` 战役标签页不可点击 — 修复 `AnimatePresence` 模式问题
- `FIXED` 关联图谱单行布局 — 使用大小写不敏感的节点 ID 查找
- `REPLACED` Dagre 布局 → 自定义按类型分组的行布局
### v3.2.0 — 2026-04-09
- `ADDED` 多提供者 LLM 链 — Ollama → Groq → OpenRouter → 通用端点
- `ADDED` Ollama 自动管理器 — 安装、启动、首次启动时拉取模型
- `ADDED` AI 分析员 v2 — 流式聊天、代理模式、简报生成器
- `ADDED` 认证层 — JWT 登录,`AUTH_DISABLED` 可绕过
- `ADDED` 告警规则引擎与 DefconIndicator 组件
- `REPLACED` Cobe 地球仪 → react-globe.gl
### v1.3.0 — 2026-04-06
- `ADDED` `correlate.py` — CVE ↔ 行为体共现 + 战役时间线 + Webhook 告警
- `ADDED` 设置标签页与数据库持久化配置
- `ADDED` MITRE ATT&CK 技术点击展开详情
### v1.2.0 — 2026-04-04
- `ADDED` React Flow 相关图谱
- `ADDED` Abuse.ch 采集器(MalwareBazaar、URLhaus、ThreatFox)
- `ADDED` AlienVault OTX、RansomWatch、SQLite FTS5 全文检索
### v1.1.0 — 2026-04-01
- `ARCH` FastAPI + SQLite + APScheduler + WebSocket 后端
- `ADDED` NVD 2.0、CISA KEV、FIRST EPSS、MITRE ATT&CK 采集器
- `ADDED` 增强引擎:严重性、标签、行为体检测、CVE 提取
- `DESIGN` SIGINTX 终端设计系统
### v1.0.0 — 2026-03-31
- 初始架构与设计系统
## 许可证
MIT — 自由使用、修改与分发。详情参见 [LICENSE](LICENSE)。
标签:148 RSS源, 3D地球可视化, AI分析, AI风险缓解, APScheduler, AV绕过, BeautifulSoup, Celery, DLL 劫持, FastAPI, Framer Motion, LLM评估, MIT License, Nginx, Ollama, OpenRouter, PostgreSQL, Python后端, React Flow, react-globe.gl, React前端, Redis, Render部署, RSS聚合, RSS解析, SEO, SQLite, Tailwind CSS, TypeScript, Vercel部署, Vite, Websocket, 信号情报, 全球攻击地图, 关键词, 大语言模型, 威胁关联, 威胁情报, 威胁追踪, 安全插件, 开发者工具, 异步HTTP, 搜索引擎查询, 数据聚合, 新闻聚合, 本地AI, 每1-2分钟更新, 测试用例, 网络安全, 自动化攻击, 请求拦截, 逆向工具, 隐私保护, 零付费API