Manas-salian/threat-intel-dashboard
GitHub: Manas-salian/threat-intel-dashboard
一套基于 Node.js 和 React 的威胁情报管理平台,用于聚合多源情报数据并提供可视化分析。
Stars: 0 | Forks: 0
# 威胁情报仪表板
一个用于管理、关联和分析来自多个来源的威胁情报数据的综合系统。基于 Express.js、MongoDB 和 React 构建。
## 项目结构
```
backend/
├── config/
│ └── database.js # MongoDB/Mongoose connection
├── models/
│ ├── Indicator.js # Indicator schema
│ ├── ThreatActor.js # Threat actor schema
│ ├── Campaign.js # Campaign schema
│ ├── Source.js # Data source schema
│ └── AuditLog.js # Audit log schema
├── controllers/
│ ├── indicatorController.js
│ ├── actorController.js
│ ├── analyticsController.js
│ ├── campaignController.js
│ ├── correlationController.js
│ ├── ingestController.js
│ └── sourceController.js
├── routes/
│ ├── indicators.js
│ ├── actors.js
│ ├── analytics.js
│ ├── campaigns.js
│ ├── correlations.js
│ ├── ingest.js
│ ├── sources.js
│ └── tools.js
├── services/
│ └── ingestionService.js # AlienVault, AbuseIPDB, VirusTotal ingestion
├── scripts/
│ └── seed.js # Database seed script
├── package.json
└── server.js
frontend/
├── src/
│ ├── pages/ # React page components
│ ├── services/api.js # API client
│ ├── context/ # React context (theme)
│ ├── App.jsx # Router + layout
│ └── main.jsx # Entry point
├── package.json
└── vite.config.js
```
## 前置条件
- Node.js (v18 或更高版本)
- MongoDB (v6 或更高版本)
- npm
## 安装设置 (Linux / macOS)
### 1. 启动 MongoDB
```
# 如果使用 systemd
sudo systemctl start mongod
# 或者如果使用 mongosh
mongosh
```
### 2. 安装并运行后端
```
cd backend
cp .env.example .env # Edit with your settings
npm install
node scripts/seed.js # Load sample data
npm start # Starts on http://localhost:5000
```
### 3. 安装并运行前端
```
cd frontend
npm install
npm run dev # Starts Vite dev server
```
## 安装设置 (Windows)
### 1. 安装 MongoDB
1. 从 [mongodb.com/try/download/community](https://www.mongodb.com/try/download/community) 下载 MongoDB Community Server MSI 安装程序
2. 运行安装程序 — 选择 **Complete** 设置,并勾选 **Install MongoDB as a Service**
3. 可根据提示选择安装 MongoDB Compass (GUI)
4. MongoDB 将作为 Windows 服务自动启动。验证方式:
```
# 检查服务状态
Get-Service MongoDB
# 或者如需手动启动
net start MongoDB
```
### 2. 安装并运行后端
```
cd backend
copy .env.example .env # Edit with your settings (use notepad .env)
npm install
node scripts/seed.js # Load sample data
npm start # Starts on http://localhost:5000
```
### 3. 安装并运行前端
```
cd frontend
npm install
npm run dev # Starts Vite dev server
```
## API 端点
### 指标 (Indicators)
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| GET | `/api/indicators` | 列出所有 (分页参数: `?page=1&limit=50&type=IPv4&search=...`) |
| GET | `/api/indicators/:id` | 根据 ID 获取 (包含 sources/actors/campaigns 详情) |
| POST | `/api/indicators` | 新建 |
| PUT | `/api/indicators/:id` | 更新 |
| DELETE | `/api/indicators/:id` | 删除 |
| POST | `/api/indicators/bulk` | 批量导入 |
### 威胁行为者 (Threat Actors)
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| GET | `/api/actors` | 列出所有 |
| GET | `/api/actors/:id` | 根据 ID 获取 |
| POST | `/api/actors` | 创建 |
| PUT | `/api/actors/:id` | 更新 |
| DELETE | `/api/actors/:id` | 删除 |
### 攻击活动 (Campaigns)
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| GET | `/api/campaigns` | 列出所有 |
| GET | `/api/campaigns/active` | 进行中的攻击活动 |
| GET | `/api/campaigns/severity/:severity` | 按严重程度筛选 |
| POST | `/api/campaigns` | 创建 |
| PUT | `/api/campaigns/:id` | 更新 |
| DELETE | `/api/campaigns/:id` | 删除 |
### 分析 (Analytics)
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| GET | `/api/analytics/dashboard` | 仪表板概览统计 |
| GET | `/api/analytics/indicators/timeline` | 指标趋势 |
| GET | `/api/analytics/actors/activity` | 行为者活动 |
| GET | `/api/analytics/campaigns/severity` | 严重程度分布 |
| GET | `/api/analytics/sources/reliability` | 来源可靠性 |
| GET | `/api/analytics/top-actors` | 按指标数量排名的主要行为者 |
| GET | `/api/analytics/audit-logs` | 审计日志 |
### 导入 (Ingestion)
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| POST | `/api/ingest/run` | 运行所有导入源 |
| POST | `/api/ingest/run/:source` | 运行指定来源 (`alienvault`, `abuseipdb`, `virustotal`) |
| GET | `/api/ingest/status` | 导入状态 |
### 工具 (Tools)
| 方法 | 端点 | 描述 |
|--------|----------|-------------|
| POST | `/api/tools/check` | 检查指标是否存在于数据库中 |
## 环境变量
```
MONGODB_URI=mongodb://localhost:27017/threat_intelligence
PORT=5000
NODE_ENV=development
ALIENVAULT_API_KEY=your_key_here
ABUSEIPDB_API_KEY=your_key_here
VIRUSTOTAL_API_KEY=your_key_here
MAX_INDICATORS_PER_FEED=1000
```
## 许可证
MIT License
标签:AbuseIPDB, AlienVault, Ask搜索, ESC4, Express.js, GitHub, GNU通用公共许可证, HTTP/HTTPS抓包, IOC, MITM代理, MongoDB, Mongoose, Node.js, nuclei, OSINT, React, Syscalls, TIP, VirusTotal, Vite, 威胁关联, 威胁分析, 威胁情报, 安全运营, 实时处理, 审计日志, 密码管理, 开发者工具, 态势感知, 情报看板, 情报管理, 扫描框架, 指标管理, 攻击活动分析, 攻击者追踪, 数据摄取, 网络安全, 自动化侦查工具, 自定义脚本, 隐私保护