marez8505/threat-intel-dashboard

GitHub: marez8505/threat-intel-dashboard

一款基于React+Express的SOC风格威胁情报富化仪表板,聚合VirusTotal、AbuseIPDB和ip-api.com免费API对IOC进行快速信誉查询。

Stars: 0 | Forks: 0

# 🛡️ 威胁情报仪表板 一个深色主题的 SOC 风格 Web 应用程序,用于针对多个免费威胁情报来源对入侵指标(IOC)进行丰富分析。为 **Devpost 规范驱动开发黑客松 2026** 构建。 ![Threat Intel Dashboard](https://img.shields.io/badge/built%20with-spec--driven%20development-blue) ![Stack](https://img.shields.io/badge/stack-React%20%2B%20Express%20%2B%20SQLite-informational) ![License](https://img.shields.io/badge/license-MIT-green) ## 功能说明 将以下任何内容粘贴到搜索栏中,即可在几秒钟内获取丰富的威胁情报: - **IP 地址** — 地理位置、ISP、滥用报告、AV 引擎检测结果 - **域名** — VirusTotal 信誉和检测率 - **文件哈希** — MD5、SHA1、SHA256 — 来自 VirusTotal 的 70+ AV 引擎结果 **数据来源:** | 来源 | 提供内容 | 需要认证 | |---|---|---| | [VirusTotal](https://www.virustotal.com) | AV 引擎检测(70+ 引擎) | 免费 API 密钥 | | [AbuseIPDB](https://www.abuseipdb.com) | 滥用置信度分数、报告历史 | 免费 API 密钥 | | [ip-api.com](https://ip-api.com) | 地理位置、ISP、ASN | 无需认证 | ## 快速开始 ### 前置条件 - Node.js 18+ - Git ### 1. 克隆仓库 ``` git clone https://github.com/marez8505/threat-intel-dashboard.git cd threat-intel-dashboard ``` ### 2. 配置 API 密钥 ``` cp backend/.env.example backend/.env ``` 编辑 `backend/.env` 并添加您的免费 API 密钥: - **VirusTotal**:在 https://www.virustotal.com/gui/my-apikey 获取免费密钥 - **AbuseIPDB**:在 https://www.abuseipdb.com/account/api 获取免费密钥 ### 3. 启动后端 ``` cd backend npm install npm start ``` 后端运行在 **http://localhost:3001** ### 4. 启动前端(新终端) ``` cd frontend npm install npm run dev ``` 前端运行在 **http://localhost:5173** ### 5. 打开应用 在浏览器中访问 [http://localhost:5173](http://localhost:5173)。 ## 功能特性 - **IOC 自动检测** — 自动识别 IPv4、域名、MD5、SHA1、SHA256 - **24 小时缓存** — 对相同 IOC 的重复查询从 SQLite 提供,节省 API 配额 - **威胁评分** — 0–100 综合评分,附带明确判定:安全 / 可疑 / 恶意 - **查询历史** — 本地存储最近 50 条丰富记录,点击任意一条可重新加载完整结果 - **导出** — 将所有历史记录下载为 CSV 或 JSON,用于事件报告 - **优雅降级** — 如果某个来源失败或未配置,其他来源仍可正常显示 - **深色 SOC 主题** — 为低光环境下的分析师设计 ## 项目结构 ``` threat-intel-dashboard/ ├── docs/ # Spec-driven planning artifacts (Devpost requirement) │ ├── scope.md # What we're building and what's explicitly out of scope │ ├── requirements.md # User stories and acceptance criteria │ ├── technical-spec.md # Architecture decisions and API design │ └── build-checklist.md # Step-by-step build tracking ├── backend/ # Node.js + Express REST API │ ├── server.js │ ├── db.js # SQLite initialization │ ├── routes/ # enrich, history, export │ ├── services/ # VirusTotal, AbuseIPDB, Geolocation wrappers │ └── utils/ # IOC type detection ├── frontend/ # React + Vite + Tailwind │ └── src/ │ ├── App.jsx │ ├── components/ # SearchBar, ResultCard, HistoryPanel, etc. │ └── api/ # Axios client └── README.md ``` ## API 端点 | 方法 | 端点 | 描述 | |---|---|---| | `POST` | `/api/enrich` | 提交 IOC 进行丰富分析 | | `GET` | `/api/history` | 获取最近 50 条查询 | | `GET` | `/api/history/:id` | 获取特定查询的完整结果 | | `DELETE` | `/api/history` | 清除所有历史记录 | | `GET` | `/api/export/csv` | 将历史记录下载为 CSV | | `GET` | `/api/export/json` | 将历史记录下载为 JSON | | `GET` | `/api/health` | 检查服务器和 API 密钥状态 | ## 学习心得(Devpost 提交说明) 本项目采用**规范驱动开发**构建——这是一种在构建前与 AI 规划工作流程,产生真实工件而非仅仅通过提示词完成开发。 **流程:** 1. **先定范围** — 定义应用的功能,以及更重要的是,不做的功能 2. **需求即用户故事** — 在编写代码前编写验收标准 3. **技术规范先行** — 选择技术栈、设计 API 契约、定义数据库架构 4. **构建清单** — 将每个文件视为复选框项目,而非临时步骤 **与"随意开发"相比的变化:** - 零重写。每个组件在编码前都有清晰的接口定义。 - 优雅降级行为(各来源独立失败)是在规范中设计的,而非在调试中发现。 - 缓存策略来自规范的速率限制部分,而非事后想法。 ## 为...而构建 [Devpost 规范驱动开发黑客松 2026](https://devpost.com) ## 许可证 MIT — 自由使用,自由修改,但请勿将其用于转售威胁情报服务。 ## 作者 Edward Marez — 奥斯汀社区学院网络安全学生,未来的 DFIR 分析师。 GitHub:[@marez8505](https://github.com/marez8505)
标签:AbuseIPDB, API集成, APT防御, Ask搜索, Express, IOC分析, IP情报, MITM代理, React, SQLite, Syscalls, VirusTotal, 可观测性, 哈希分析, 域名查询, 威胁情报, 安全运营, 开发者工具, 扫描框架, 网络安全, 自定义脚本, 隐私保护, 黑暗主题