mikipuita/live-tracker-cyber

GitHub: mikipuita/live-tracker-cyber

一个实时威胁情报仪表板项目,整合 NVD 漏洞库和 AbuseIPDB 恶意 IP 数据,通过 WebSocket 实时推送并可视化展示安全威胁态势。

Stars: 1 | Forks: 0

# 实时网络威胁情报仪表板 一个实时网络安全威胁情报平台,聚合并可视化来自权威安全数据库的实时威胁数据。该系统通过 WebSocket 将威胁情报流式传输到带有图表和实时推送的交互式仪表板。 ## 功能特性 - 通过 WebSocket 流式传输的实时威胁推送 - 来自 NVD(国家漏洞数据库)的 CVE 追踪 - 来自 AbuseIPDB 的恶意 IP 监控(需配置 API key) - 基于严重程度的视图(低、中、高、严重)和威胁类型图表 (Chart.js) - 生成场景中包含基于国家的地理坐标提示 - 交互式仪表板:实时列表 plus **威胁可视化**(饼图和条形图) ## 仓库结构 ``` live-tracker-cyber/ ├── README.md # This file └── my-project/ ├── start-local.sh # One command: API + dashboard (dev) ├── backend/ # FastAPI + WebSocket (Python) │ ├── main.py │ ├── requirements.txt │ └── .env.example └── frontend/ # Next.js 15 (React, TypeScript, Tailwind) └── ... ``` ## 技术栈 **后端:** Python, FastAPI, WebSocket (requires `uvicorn[standard]` / `websockets`), httpx, python-dotenv **前端:** Next.js, React, TypeScript, Tailwind CSS, Chart.js, react-chartjs-2 **数据来源:** NVD API, AbuseIPDB API ## 前置条件 - 推荐使用 **Python 3.10+**(3.8+ 可能可用) - **Node.js 18+** 和 npm(用于 Next.js 15) - **AbuseIPDB API key**(本地演示可选;若未提供,后端将使用回退/模拟样式的威胁数据) - **NVD API key**(可选;可提升速率限制) ## 快速开始 (克隆) ``` git clone https://github.com/mikipuita/live-tracker-cyber.git cd live-tracker-cyber ``` ## 本地运行 (单终端) 在 `my-project/` 目录下: ``` chmod +x start-local.sh # first time only ./start-local.sh ``` - API: **http://127.0.0.1:9000** - 仪表板: **http://127.0.0.1:3000** 使用 **Ctrl+C** 停止(将停止前端并清理 API 进程)。 ## 本地运行 (双终端) ### 后端 ``` cd my-project/backend python3 -m venv venv source venv/bin/activate # Windows: venv\Scripts\activate pip install -r requirements.txt cp .env.example .env # add keys if you have them python main.py ``` 后端监听 **http://0.0.0.0:9000**(在浏览器中使用 **http://localhost:9000** 进行健康检查)。 **WebSockets:** 安装时必须包含 `uvicorn[standard]`(参见 `requirements.txt`)。若缺少此项,`/ws/threats` 将无法正确升级。 ### 前端 ``` cd my-project/frontend npm install npm run dev ``` 打开 **http://127.0.0.1:3000**(开发脚本绑定到此主机,以便 Next.js 不会调用 `os.networkInterfaces()`,这在某些 Node/OS 设置上可能会崩溃)。 ### 生产环境构建 (前端) ``` cd my-project/frontend npm run build npm start ``` ## 环境变量 创建 **`my-project/backend/.env`**(参见同目录下的 **`.env.example`**): | 变量 | 必需 | 说明 | |----------|----------|--------| | `ABUSEIPDB_API_KEY` | 否 | 如果省略,恶意 IP 列表将保持为空;推送仍可使用 CVE + 回退数据工作 | | `NVD_API_KEY` | 否 | 可选;有助于提升 NVD 速率限制 | **获取密钥** - AbuseIPDB: https://www.abuseipdb.com/register - NVD: https://nvd.nist.gov/developers/request-an-api-key ## API 端点 - `ws://localhost:9000/ws/threats`: 实时威胁推送 (WebSocket) - `GET /`: 健康检查和缓存计数 - `GET /api/cves`: 缓存的 CVE 样本 - `GET /api/malicious-ips`: 缓存的 IP 样本 ## 工作原理 后端从 NVD 刷新 CVE 数据,并(如果已配置)从 AbuseIPDB 获取黑名单数据。威胁对象每隔几秒通过 WebSocket 流式传输。Next.js UI 显示来自同一数据流的实时表格和图表。 ## 故障排除 **“无法访问此网站” / 仪表板从未加载 / `npm run dev` 崩溃** - 开发服务器必须正在运行(在 `frontend` 目录下执行 `./start-local.sh` 或 `npm run dev`)。如果端口 **3000** 上没有任何监听,浏览器将显示错误页面。 - 如果 **`npm run dev` 以 `uv_interface_addresses` / `Unknown system error` 退出**,请按照编写的方式使用项目脚本(它传递了 **`--hostname 127.0.0.1`**)或运行: `npx next dev --hostname 127.0.0.1 --port 3000` - 如果端口 **3000 已被占用**,Next.js 会选择另一个端口(例如 **3001**);请阅读终端中显示 **“Local:”** 的那一行并打开该 URL,或者停止占用 3000 的其他进程。 **WebSocket 失败 / 实时推送为空** - 确认后端正在端口 **9000** 上运行。 - 确认依赖项:`pip install -r requirements.txt`(包含 WebSocket 支持)。 - 检查浏览器控制台的连接错误。 **恶意 IP 始终为空** - 在 `my-project/backend/.env` 中设置 `ABUSEIPDB_API_KEY` 并重启 API。 **前端出现 `Module not found`** - 在 **`my-project/frontend`** 内运行 `npm install`。图表需要 `chart.js` 和 `react-chartjs-2`(已在 `package.json` 中列出)。 ## 部署说明 此应用需要一个用于 WebSocket 的 **长期运行的 Python 进程**,以及一个 **Next.js** 生产服务器(或者如果你进行了重构,可以使用静态导出)。典型的设置是使用带有 HTTPS 和反向代理的 **VPS 或云虚拟机**,或者将 **API**(例如 Render/Fly.io)与 **前端**(例如 Vercel)分离,并使用 `wss://` 指向你的 API 主机。 ## 致谢 数据来源: - NVD (National Vulnerability Database) - AbuseIPDB Community - 后端逻辑中的 MITRE ATT&CK 风格分类映射 **免责声明:** 这是一个教育项目。请勿将其作为生产安全决策的唯一来源。 ## 许可证 尚未指定。 ## 贡献与 GitHub 默认远程地址是主项目仓库。如果你没有写入权限,请在 GitHub 上 **fork** 该仓库,将你的 fork 添加为 `origin`,并使用你的分支打开一个 **pull request**。 ``` # Fork 到 YOUR_USER/live-tracker-cyber 后的示例 git remote set-url origin https://github.com/YOUR_USER/live-tracker-cyber.git git push -u origin main ``` ## 作者 - **Miguel Sanchez:** 后端和实时威胁情报 - **Rishi Alva:** 数据可视化和分析(仪表板图表,前端集成)
标签:AbuseIPDB, AV绕过, Chart.js, FastAPI, HTTP/HTTPS抓包, NVD, Python, React, SecOps, Syscalls, Tailwind CSS, TypeScript, WebSocket, 云安全架构, 仪表盘, 依赖分析, 威胁情报, 安全插件, 安全运营, 开发者工具, 态势感知, 恶意IP检测, 扫描框架, 无后门, 网络安全, 自动化攻击, 逆向工具, 隐私保护