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, 威胁关联, 威胁分析, 威胁情报, 安全运营, 实时处理, 审计日志, 密码管理, 开发者工具, 态势感知, 情报看板, 情报管理, 扫描框架, 指标管理, 攻击活动分析, 攻击者追踪, 数据摄取, 网络安全, 自动化侦查工具, 自定义脚本, 隐私保护