1chunghu/honeypot-threat-dashboard
GitHub: 1chunghu/honeypot-threat-dashboard
将 T-Pot 蜜罐的 Elasticsearch 聚合数据转化为零攻击面的纯静态 SVG 威胁情报仪表盘,兼顾公开分享与安全隔离。
Stars: 0 | Forks: 0
# honeypot-threat-dashboard
一个用于 [T-Pot](https://github.com/telekom-security/tpotce) 蜜罐部署的静态威胁情报仪表盘生成器。
它将真实的攻击流量(在 Elasticsearch 中聚合)转化为一个独立、无依赖的纯 SVG 图表 HTML 页面:包括来源国家/地区、目标服务/端口、僵尸网络凭据字典以及 SIP/VoIP 攻击时间线。
## 为什么是静态的
该仪表盘是一个**时间点快照**,而不是实时查询。生成器从 Elasticsearch 提取一次聚合数据,对其进行去标识化处理(仅包含国家/端口/凭据的**数量统计——绝不包含攻击者 IP**),并将这些数字固化到静态 SVG 中。这意味着:
- **零攻击面** — 没有实时 API,没有暴露的 Elasticsearch,没有任何可供注入的入口。
- **即时加载** — 无运行时查询,无 JS 图表库,无外部请求。
- **保持蜜罐隔离** — 公开页面永远无法触及分析后端。
## 工作原理
```
T-Pot honeypots ──► Elasticsearch ──► (manual ES aggregation)
│
▼
gen_projects.py + projects.template.html
│
▼
static index.html
```
该模板使用了一套**标记系统**:数据块被包裹在 `…` 注释中。生成器只会替换标记*之间*的内容——所有周围的 CSS、布局和动画都保持不变,并且标记会从最终输出中剔除。这意味着你可以自由地对页面设计进行手动微调,并重新运行生成器,而不会破坏你所做的更改。
## 用法
1. 在你的 T-Pot 主机上运行 Elasticsearch 聚合(查询语句记录在 `gen_projects.py` 的末尾)。
2. 使用新的数据和 `WINDOW` 日期更新 `gen_projects.py` 顶部附近的 `=== DATA ===` 代码块。
3. 生成:
python3 gen_projects.py # 写入 index.html
4. 将生成的 `index.html` 部署到你的 Web 根目录。
无依赖 — 仅需 Python 3 标准库。
## 文件
| 文件 | 用途 |
|------|---------|
| `gen_projects.py` | 数据转 SVG 图表生成器;底部包含 ES 查询参考 |
| `projects.template.html` | 带有标记的 HTML 模板(终端美学风格) |
## 伦理与去标识化
发布的图表仅包含**汇总统计数据**——国家/地区名称、端口号和凭据字典频率。绝不包含任何攻击者 IP 或个人身份信息。这些蜜罐是故意暴露的诱饵系统,与任何生产服务隔离,且不保存任何真实数据。
## 许可证
[MIT](LICENSE)
由 [Odysec](https://odysec.org) 维护 — 针对 Linux 服务器和容器环境的入侵评估。
标签:Elasticsearch, 后端开发, 多模态安全, 威胁情报, 安全运营, 开发者工具, 扫描框架, 蜜罐, 证书利用, 静态仪表盘