manuel-lazarte/Kuntur-Threat-Intelligence-Dashboard
GitHub: manuel-lazarte/Kuntur-Threat-Intelligence-Dashboard
Kuntur 是一个聚合多源情报数据的实时网络威胁情报仪表板,专注于玻利维亚地区的安全态势监控与可视化分析。
Stars: 0 | Forks: 0
# Kuntur 威胁情报仪表板




Kuntur 是一个**网络威胁情报仪表板**,可实时监控网络安全威胁,特别关注玻利维亚。它集成了多个威胁情报源,以提供威胁态势的完整视图,并具有用于实时监控的 Web 仪表板。

## 功能
### 核心能力
- **10 个情报源** - 威胁情报和上下文数据源
- **实时仪表板** - 用于监控威胁的实时 Web 界面
- **并行执行** - 同时查询所有数据源以提高速度
- **稳健的错误处理** - 单个数据源故障不会中断简报
- **玻利维亚焦点** - 检测涉及玻利维亚的威胁
- **零云依赖** - 一切均在本地运行
- **结构化 JSON 输出** - 易于与其他系统集成
- **MITRE ATT&CK 映射** - 将攻击模式映射到 MITRE 技术
- **RESTful API** - 以编程方式访问情报数据
- **自动刷新** - 可配置的自动更新
### 仪表板功能
- **实时威胁可视化** - 交互式威胁地图和时间轴
- **基于严重性的过滤** - 专注于关键和高优先级的威胁
- **攻击类型分类** - 按 MITRE ATT&CK 技术进行分类
- **地理定位分析** - 威胁的地理分布
- **数据源健康监控** - 所有情报源的实时状态
- **历史数据** - 跟踪威胁随时间的演变
## 截图
### 仪表板概览

### 威胁详情

### 攻击事件时间轴

## 安装
### 前置条件
- **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 历史
[](https://star-history.com/#yourusername/kuntur&Date)
**用 ❤️ 为网络安全社区打造**
*Kuntur - 神鹰高飞,守护您的数字领域*
标签:GNU通用公共许可证, MITM代理, Node.js, RESTful API, 后端开发, 威胁情报, 开发者工具, 提示词优化, 网络安全, 请求拦截, 隐私保护