manuel-lazarte/Kuntur-Threat-Intelligence-Dashboard

GitHub: manuel-lazarte/Kuntur-Threat-Intelligence-Dashboard

Kuntur 是一个聚合多源情报数据的实时网络威胁情报仪表板,专注于玻利维亚地区的安全态势监控与可视化分析。

Stars: 0 | Forks: 0

# Kuntur 威胁情报仪表板 ![构建状态](https://img.shields.io/github/actions/workflow/status/yourusername/kuntur/ci.yml?branch=main) ![许可证](https://img.shields.io/badge/License-AGPL--3.0-blue.svg) ![版本](https://img.shields.io/badge/Version-2.0.0-green.svg) ![Node](https://img.shields.io/badge/Node.js-%3E%3D22.0.0-brightgreen) Kuntur 是一个**网络威胁情报仪表板**,可实时监控网络安全威胁,特别关注玻利维亚。它集成了多个威胁情报源,以提供威胁态势的完整视图,并具有用于实时监控的 Web 仪表板。 ![Kuntur 仪表板](https://raw.githubusercontent.com/manuel-lazarte/Kuntur-Threat-Intelligence-Dashboard/main/docs/images/dashboard-overview.png) ## 功能 ### 核心能力 - **10 个情报源** - 威胁情报和上下文数据源 - **实时仪表板** - 用于监控威胁的实时 Web 界面 - **并行执行** - 同时查询所有数据源以提高速度 - **稳健的错误处理** - 单个数据源故障不会中断简报 - **玻利维亚焦点** - 检测涉及玻利维亚的威胁 - **零云依赖** - 一切均在本地运行 - **结构化 JSON 输出** - 易于与其他系统集成 - **MITRE ATT&CK 映射** - 将攻击模式映射到 MITRE 技术 - **RESTful API** - 以编程方式访问情报数据 - **自动刷新** - 可配置的自动更新 ### 仪表板功能 - **实时威胁可视化** - 交互式威胁地图和时间轴 - **基于严重性的过滤** - 专注于关键和高优先级的威胁 - **攻击类型分类** - 按 MITRE ATT&CK 技术进行分类 - **地理定位分析** - 威胁的地理分布 - **数据源健康监控** - 所有情报源的实时状态 - **历史数据** - 跟踪威胁随时间的演变 ## 截图 ### 仪表板概览 ![仪表板](https://raw.githubusercontent.com/manuel-lazarte/Kuntur-Threat-Intelligence-Dashboard/main/docs/images/dashboard-overview.png) ### 威胁详情 ![威胁详情](https://raw.githubusercontent.com/manuel-lazarte/Kuntur-Threat-Intelligence-Dashboard/main/docs/images/threat-details.png) ### 攻击事件时间轴 ![时间轴](https://raw.githubusercontent.com/manuel-lazarte/Kuntur-Threat-Intelligence-Dashboard/main/docs/images/timeline.png) ## 安装 ### 前置条件 - **Node.js** >= 22.0.0 - **npm** >= 10.0.0 ### 快速开始 ``` # 克隆仓库 git clone https://github.com/yourusername/kuntur.git cd kuntur # 安装依赖 npm install # 配置 API 密钥 (可选) cp .env.example .env # 使用您的 API 密钥编辑 .env # 启动 dashboard 服务器 npm start ``` 仪表板将可通过 `http://localhost:3117` 访问 ### Docker 安装 ``` # 构建镜像 docker build -t kuntur:latest . # 运行容器 docker run -d \ --name kuntur \ -p 3117:3117 \ --env-file .env \ kuntur:latest ``` ## 配置 ### 环境变量 在项目根目录中创建一个 `.env` 文件: ``` # === 服务器配置 === PORT=3117 REFRESH_INTERVAL_MINUTES=15 # === Threat Intelligence API 密钥 === # AbuseIPDB - 在此获取密钥: https://abuseipdb.com/account/api ABUSEIPDB_API_KEY=your_key_here # GreyNoise - 在此获取密钥: https://greynoise.io/account GREYNOISE_API_KEY=your_key_here # OTX AlienVault - 在此获取密钥: https://otx.alienvault.com/api OTX_API_KEY=your_key_here # Shodan - 在此获取密钥: https://shodan.io/member/api SHODAN_API_KEY=your_key_here # Cloudflare Radar - 在此获取 token: dash.cloudflare.com/profile/api-tokens CLOUDFLARE_API_TOKEN=your_token_here # T-Pot Honeypot (可选 - 本地部署) TPOT_API_URL=http://localhost:64242 TPOT_API_KEY=your_key_here ``` ### API Key 设置指南 各提供商的详细说明:[docs/API-KEYS-SETUP.md](docs/API-KEYS-SETUP.md) | API | 免费额度 | 注册链接 | |-----|-----------|--------------| | AbuseIPDB | 每天 1,000 次请求 | [abuseipdb.com](https://abuseipdb.com) | | GreyNoise | 每周 50 次请求 | [greynoise.io](https://greynoise.io) | | OTX | 每分钟 20 次请求 | [otx.alienvault.com](https://otx.alienvault.com) | | Shodan | 每月 100 次请求 | [shodan.io](https://shodan.io) | | Cloudflare | 免费 | [dash.cloudflare.com](https://dash.cloudflare.com) | ## 使用说明 ### 启动服务器 ``` # 启动 dashboard 服务器 npm start # 带有 trace 警告的开发模式 npm run dev # 清理并重启 npm run fresh-start ``` ### CLI 命令 ``` # 运行完整的 threat intelligence 简报 npm run kuntur # 仅 threat intelligence 来源 (6 个来源) npm run kuntur:threat # 仅 contextual 来源 (4 个来源) npm run kuntur:context # 单独执行来源 npm run kuntur:demo # Demo replay (simulated data) npm run kuntur:cisa # CISA KEV vulnerabilities npm run kuntur:abuseipdb # Malicious IPs npm run kuntur:greynoise # Internet scanning IPs npm run kuntur:otx # OTX threat exchange npm run kuntur:shodan # Exposed devices npm run kuntur:tpot # T-Pot honeypot ``` ### API 端点 服务器运行后,您可以访问: | 端点 | 方法 | 描述 | |----------|--------|-------------| | `http://localhost:3117/` | GET | 仪表板 Web 界面 | | `http://localhost:3117/api/status` | GET | 系统状态和健康状况 | | `http://localhost:3117/api/briefing` | GET | 完整情报简报 | | `http://localhost:3117/api/threats` | GET | 威胁情报数据 | | `http://localhost:3117/api/context` | GET | 上下文数据 | | `http://localhost:3117/api/events` | GET | 攻击事件数据 | ### API 响应示例 ``` { "kuntur": { "version": "2.0.0", "timestamp": "2026-07-05T12:00:00Z", "totalDurationMs": 5000, "sourcesQueried": 10, "sourcesOk": 7, "sourcesConfigured": 5, "sourcesUnconfigured": 2, "sourcesFailed": 0 }, "intelligence": { "signals": [ { "severity": "critical", "title": "Critical Threats Detected", "description": "3 critical attack events detected" } ], "attack_events": { "total_events": 45, "bolivia_events": 3, "by_attack_type": { "brute_force": 12, "port_scan": 8, "malware_c2": 5 }, "by_severity": { "critical": 3, "high": 15, "medium": 20, "low": 7 } }, "context_data": { "cisa_vulnerabilities": 1631, "cisa_recent_additions": 23, "who_outbreaks": 5, "noaa_severe_alerts": 12 } } } ``` ## 情报源 ### 威胁情报源 (6) | 来源 | 描述 | API Key | 状态 | |--------|-------------|---------|--------| | **DemoReplay** | 用于演示的模拟数据 | 不需要 | ✅ 始终可用 | | **T-Pot** | Honeypot T-Pot (本地) | 可选 | ⚠️ 需要安装 | | **AbuseIPDB** | 报告的恶意 IP | 免费 | ✅ 需要 Key | | **GreyNoise** | 互联网扫描 IP | 免费 | ✅ 需要 Key | | **OTX** | 社区威胁情报 | 免费 | ✅ 需要 Key | | **Shodan** | 暴露的设备 | 免费 | ✅ 需要 Key | ### 上下文来源 (4) | 来源 | 描述 | API Key | 状态 | |--------|-------------|---------|--------| | **CISA-KEV** | 正在被利用的漏洞 | 否 | ✅ 始终可用 | | **Cloudflare-Radar** | 互联网中断和异常 | 免费 | ⚠️ 需要 Key | | **WHO** | 疾病爆发 | 否 | ✅ 始终可用 | | **NOAA/NWS** | 恶劣天气警报 (美国) | 否 | ✅ 始终可用 | ### 检测到的攻击类型 | 类型 | 描述 | MITRE ID | |------|-------------|----------| | `port_scan` | 端口扫描 | T1595 | | `brute_force` | 暴力破解攻击 | T1110 | | `malware_c2` | 恶意软件/C2 | T1071 | | `ddos` | DDoS 攻击 | T1498 | | `exploit_attempt` | 漏洞利用尝试 | T1190 | | `recon` | 侦察 | T1590 | | `exfiltration` | 数据泄露 | T1041 | | `sql_injection` | SQL 注入 | T1190 | | `web_attack` | Web 攻击 | T1190 | | `impersonation` | 冒充 | T1596 | ## 项目结构 ``` kuntur/ ├── apis/ │ ├── briefing.mjs # Main orchestrator │ ├── sources/ │ │ ├── demo-replay.mjs # Simulated data │ │ ├── cisa-kev.mjs # CISA vulnerabilities │ │ ├── abuseipdb.mjs # Malicious IPs │ │ ├── greynoise.mjs # Internet scanning IPs │ │ ├── otx.mjs # Threat exchange │ │ ├── shodan.mjs # Exposed devices │ │ ├── tpot.mjs # Honeypot │ │ ├── cloudflare-radar.mjs # Internet outages │ │ ├── who.mjs # Disease outbreaks │ │ └── noaa.mjs # Weather alerts │ └── utils/ │ ├── fetch.mjs # HTTP utilities │ └── env.mjs # Environment variables ├── dashboard/ │ ├── inject.mjs # Dashboard data injector │ ├── kuntur-synth.mjs # Kuntur synthesizer │ └── public/ # Static assets ├── docs/ │ └── API-KEYS-SETUP.md # API keys guide ├── lib/ │ └── geoip/ # GeoIP utilities ├── schemas/ │ └── attack-event.schema.json # Event schema ├── scripts/ │ └── clean.mjs # Cleanup script ├── server.mjs # Main server ├── package.json ├── .env.example # Environment template └── README.md ``` ## 开发 ### 添加新的情报源 每个数据源应该: 1. 导出一个返回结构化数据的 `briefing()` 函数 2. 干净利落地处理上游错误和速率限制 3. 在缺少 API Key 时优雅降级 4. 如果失败,不能破坏完整扫描 5. 记录所需的环境变量 6. 解释为什么它能提高信号质量 ### 数据源模板 ``` // apis/sources/your-source.mjs export async function briefing(env) { const API_KEY = env.YOUR_API_KEY; if (!API_KEY) { return { source: 'YourSource', status: 'configured: false', data: null, error: 'API key not configured' }; } try { const response = await fetch('https://api.example.com/data', { headers: { 'Authorization': `Bearer ${API_KEY}` } }); if (!response.ok) { throw new Error(`HTTP ${response.status}`); } const data = await response.json(); return { source: 'YourSource', status: 'ok', data: processData(data), timestamp: new Date().toISOString() }; } catch (error) { return { source: 'YourSource', status: 'error', data: null, error: error.message }; } } ``` ### 运行测试 ``` # 运行所有测试 npm test # 运行特定 test suite npm run test:unit npm run test:integration ``` ## 许可证 该项目基于 **GNU Affero General Public License v3.0 (AGPL-3.0)** 许可证授权。 有关完整的许可证文本,请参见 [LICENSE](LICENSE)。 ### AGPL-3.0 意味着什么 - 您可以自由使用、修改和分发本软件 - 修改部分必须在相同的许可证下开源 - 如果您将其作为网络服务运行,必须确保用户能够访问源代码 - 这确保了社区能够从改进中受益 ## 致谢 Kuntur 集成了来自多个优秀威胁情报和数据源的数据: ### 威胁情报源 - **[AbuseIPDB](https://abuseipdb.com/)** - 恶意 IP 地址数据库 - **[GreyNoise](https://greynoise.io/)** - 互联网扫描情报 - **[AlienVault OTX](https://otx.alienvault.com/)** - 开放威胁交换 - **[Shodan](https://shodan.io/)** - 互联网连接设备搜索引擎 - **[T-Pot](https://github.com/telekom-security/tpotce)** - Honeypot 工具包 - **[CISA KEV](https://www.cisa.gov/known-exploited-vulnerabilities-catalog)** - 已知被利用漏洞目录 ### 上下文来源 - **[Cloudflare Radar](https://radar.cloudflare.com/)** - 互联网流量和中断 - **[WHO](https://www.who.int/)** - 世界卫生组织数据 - **[NOAA/NWS](https://www.weather.gov/)** - 国家气象局警报 ### MITRE ATT&CK 攻击类型映射使用 **[MITRE ATT&CK](https://attack.mitre.org/)** 框架。 ### 构建技术 - **Node.js** - JavaScript runtime - **Express** - Web 框架 - **AJV** - JSON schema 验证 - **MaxMind GeoIP2** - IP 地理定位 ## 支持 - **问题**:[GitHub Issues](https://github.com/yourusername/kuntur/issues) - **讨论**:[GitHub Discussions](https://github.com/yourusername/kuntur/discussions) - **安全**:有关漏洞报告,请参见 [SECURITY.md](SECURITY.md) ## 路线图 - [ ] 用于关键威胁的 Webhook 通知 - [ ] 历史威胁分析 - [ ] 自定义威胁源集成 - [ ] 多语言仪表板支持 - [ ] 移动端仪表板视图 - [ ] 威胁关联引擎 - [ ] 基于机器学习的威胁预测 - [ ] 社区威胁共享网络 ## Star 历史 [![Star 历史图表](https://api.star-history.com/image?repos=yourusername/kuntur&type=date)](https://star-history.com/#yourusername/kuntur&Date) **用 ❤️ 为网络安全社区打造** *Kuntur - 神鹰高飞,守护您的数字领域*
标签:GNU通用公共许可证, MITM代理, Node.js, RESTful API, 后端开发, 威胁情报, 开发者工具, 提示词优化, 网络安全, 请求拦截, 隐私保护