n5gus/PulseIQ
GitHub: n5gus/PulseIQ
一个聚合多个威胁情报 RSS 源、支持 IOC 查询和自动分类的安全情报中心,帮助 SOC 团队高效获取每日威胁态势。
Stars: 0 | Forks: 0
# PulseIQ
网络安全情报中心 —— 汇集来自六个 RSS 威胁情报源的头条新闻,自动对事件进行分类,绘制威胁统计图表,映射地理来源,并生成每日 Claude SOC 简报。包含 IOC 查询(AbuseIPDB + VirusTotal)以及 AlienVault OTX pulses。
## 威胁情报源(无需 API key)
1. Krebs on Security
2. BleepingComputer
3. SANS ISC
4. The Hacker News
5. Schneier on Security
6. Threatpost
## API 端点
| 端点 | 描述 |
|----------|-------------|
| `GET /api/feed` | 威胁情报源 (`?category=&source=&limit=&refresh=`) |
| `GET /api/stats` | 分类 + 来源图表数据 |
| `GET /api/briefing` | 每日 SOC 简报 (`?refresh=true`) |
| `GET /api/status` | API key 状态 + RSS 订阅数 |
| `GET /api/ioc/ip/{ip}` | AbuseIPDB 信誉(90天,判定) |
| `GET /api/ioc/hash/{hash}` | VirusTotal MD5/SHA1/SHA256 |
| `GET /api/otx/pulses` | AlienVault OTX pulses(10分钟缓存) |
| `GET /api/v1/intelligence/overview` | 仪表板捆绑包(情报源 + 统计 + 地图 + 简报) |
### 自动分类
`malware` · `phishing` · `vulnerability` · `data_breach` · `apt` · `general`
### 判定结果
`CLEAN` · `SUSPICIOUS` · `MALICIOUS` · `UNVERIFIED`
## 环境变量
```
ANTHROPIC_API_KEY= # Claude daily briefing
ABUSEIPDB_API_KEY= # IP IOC lookup
VIRUSTOTAL_API_KEY= # Hash IOC lookup
OTX_API_KEY= # OTX pulses
```
RSS 订阅源和统计数据在**无需任何 key** 的情况下即可工作。简报使用未包含 Anthropic 的模板生成。
## 快速开始
```
# Backend
cd backend
python -m venv venv
venv\Scripts\activate # Windows
pip install -r requirements.txt
.\start.ps1
# 或:uvicorn main:app --reload --port 8002
# Frontend
cd frontend
npm install
npm run dev
```
- UI: http://localhost:5173
- API 文档: http://localhost:8002/docs
## 在 Render 上部署(推荐 —— 单一 URL)
一个 Render web service 即可构建 React UI 并在**同一域名**下运行 FastAPI API。无需配置 `VITE_API_URL` 或 CORS。
### 1. 将此仓库推送到 GitHub
已位于 `https://github.com/n5gus/PulseIQ`。
### 2. 创建 Render 账户
使用 GitHub 在 [render.com](https://render.com) 注册。
### 3. 新建 Blueprint(最简单)
1. **Dashboard** → **New +** → **Blueprint**
2. 连接 **`n5gus/PulseIQ`**
3. Render 将读取 `render.yaml` 并创建 `pulseiq` web service
4. 根据提示添加**机密**环境变量(或在创建后添加):
| 变量 | 必填 | 备注 |
|----------|----------|-------|
| `ANTHROPIC_API_KEY` | 选填 | Claude 每日简报 |
| `ABUSEIPDB_API_KEY` | 选填 | IOC IP 查询 |
| `VIRUSTOTAL_API_KEY` | 选填 | Hash 查询 |
| `OTX_API_KEY` | 选填 | OTX pulses |
RSS 订阅源和统计数据在**无需任何 key** 的情况下即可工作。
5. 点击 **Apply** 并等待首次部署(约 3–5 分钟)。
### 3b. 或者:新建 Web Service(手动)
| 设置 | 值 |
|---------|--------|
| **Root Directory** | *(留空 —— 仓库根目录)* |
| **Runtime** | Python 3 |
| **Build Command** | `pip install -r backend/requirements.txt && npm ci --prefix frontend && npm run build --prefix frontend` |
| **Start Command** | `cd backend && uvicorn main:app --host 0.0.0.0 --port $PORT` |
### 4. 验证
- `https://YOUR-SERVICE.onrender.com` → PulseIQ UI
- `https://YOUR-SERVICE.onrender.com/health` → `{"status":"ok",...}`
- `https://YOUR-SERVICE.onrender.com/api/status` → API key 状态
**免费层级:**服务在闲置约 15 分钟后会进入休眠;首次访问可能需要 30–60 秒来唤醒。
### 本地与生产环境对比
| | 本地开发 | Render |
|--|-----------|--------|
| UI | `npm run dev`(端口 5173) | 由 FastAPI 从 `frontend/dist` 提供服务 |
| API | `uvicorn`(端口 8002) | 与 UI 在同一进程中 |
| API base URL | Vite 代理 | 同源 (`/api/...`) |
## 许可证
MIT
标签:AV绕过, FastAPI, IOC查询, React, Syscalls, 威胁情报, 安全运营, 开发者工具, 扫描框架, 网络安全, 自定义脚本, 逆向工具, 隐私保护