allsafe-ar/heimdall-community

GitHub: allsafe-ar/heimdall-community

Heimdall Community 是一个开源 Web 蜜罐监控平台,通过仿真诱饵页面捕获并对入侵尝试进行实时威胁分析与可视化。

Stars: 2 | Forks: 1

[![Español](https://img.shields.io/badge/lang-es-blue)](README.es.md)
Heimdall Logo # Heimdall Community - Web Honeypot 监控器 **实时 Web Honeypot 平台 - 免费开源** *由 [AllSafe Security Solutions](https://www.allsafe.com.ar) 提供支持* ![Node.js](https://img.shields.io/badge/Node.js-20+-339933?style=flat-square&logo=node.js&logoColor=white) ![React](https://img.shields.io/badge/React-18-61DAFB?style=flat-square&logo=react&logoColor=black) ![MySQL](https://img.shields.io/badge/MySQL-8.0+-4479A1?style=flat-square&logo=mysql&logoColor=white) ![License](https://img.shields.io/badge/License-AGPL--3.0-blue?style=flat-square) ![Version](https://img.shields.io/badge/Version-Community-blue?style=flat-square) [![Website](https://img.shields.io/badge/Website-allsafe.com.ar%2Fen%2Fheimdall--community-f5a623?style=for-the-badge&labelColor=1e324d)](https://allsafe.com.ar/en/heimdall-community/)
Heimdall Community 是一个免费、开源的 Web Honeypot 平台,配备实时仪表盘。它部署虚假服务(登录门户、管理面板、API)来记录每一次交互——包括暴力破解尝试、扫描器、机器人和人工入侵者——同时对合法流量保持完全不可见。 ## 什么是 Heimdall Community? Heimdall Community 让您的蓝队全面掌握谁在探测您的基础设施: - **4 个 honeypot 模板** - WordPress、cPanel、CorpNet Portal、Microsoft - **HTTP & HTTPS 诱饵** - 端口 80 和 443,支持自签名证书 - **威胁评分** - 每个事件都会获得风险分类:BRUTE / SCAN / BOT / RECON / HUMAN - **实时仪表盘** - 通过 WebSocket 提供实时事件流,支持暂停/恢复且不丢失事件 - **IP 列表** - 汇总展示攻击 IP 的视图,包含命中次数和地理位置 - **事件历史** - 支持按类型筛选的分页表格 - **统计信息** - 总事件数、独立 IP 数、顶级攻击者、按类型划分的攻击明细 - **基于角色的访问控制** - `admin` / `viewer` - **用户管理** - 创建、编辑、启用/禁用用户 - **TOTP 2FA** - RFC 6238,通过二维码设置 - **深色 / 浅色 / 系统主题** ## 社区版 vs 专业版 | 功能 | Community | Pro | |---|:---:|:---:| | HTTP & HTTPS 诱饵 (端口 80 / 443) | ✅ | ✅ | | 实时 WebSocket 仪表盘 | ✅ | ✅ | | 威胁评分 (BRUTE / SCAN / BOT / RECON / HUMAN) | ✅ | ✅ | | 事件历史、统计信息 & IP 地理定位 | ✅ | ✅ | | TOTP 2FA + 账户锁定 | ✅ | ✅ | | 深色 / 浅色 / 系统主题 | ✅ | ✅ | | Honeypot 模板 | 4 | 8+ | | 自定义模板构建器 (Logo / 颜色 / 标签 / 文本) | ❌ | ✅ | | TCP 陷阱端口 (nmap / masscan / zgrab 检测) | ❌ | ✅ | | PORTSCAN 分类 | ❌ | ✅ | | IP 分析器 (单 IP 攻击时间线 & 威胁等级) | ❌ | ✅ | | 审计日志 | ❌ | ✅ | | 自定义品牌 (组织 Logo) | ❌ | ✅ | | 角色 | `admin` / `viewer` | `admin` / `analista` / `auditor` / `viewer` | ## 截图
**实时仪表盘**
Real-time Dashboard

**事件历史**
Event Table

**攻击者 IP 档案**
Attacker IP Profile
## 安装说明 ### 选项 A - 安装脚本(推荐用于 Linux 服务器) ``` git clone https://github.com/allsafe-ar/heimdall-community.git cd heimdall-community chmod +x install.sh && sudo ./install.sh ``` 已在 Ubuntu 22.04 / 24.04 和 Debian 12 上测试。 ### 选项 B - Docker ``` git clone https://github.com/allsafe-ar/heimdall-community.git cd heimdall-community cp .env.example .env # 编辑 .env:设置 DB_PASSWORD、DB_ROOT_PASSWORD 和 JWT_SECRET(openssl rand -hex 32) docker compose up -d ``` ### 选项 C - 手动安装 ``` # Backend cd backend npm install cp .env.example .env # 编辑 .env:DB 凭证 + 强 JWT_SECRET(至少 32 个字符) npm start # port 3005 # Frontend cd frontend npm install npm run build # Production build → dist/ ``` 默认凭据(首次运行):`admin` / `admin123` - **请立即修改**。 ## 架构 ``` heimdall-community/ ├── backend/ │ ├── server.js # Single-file backend - honeypot engine + REST API + WebSocket │ ├── templates/ # HTML decoy pages served as honeypots │ └── .env.example └── frontend/ └── src/ ├── pages/ # Dashboard, Events, IPs, Users, My Account ├── components/ # StatsBar, TerminalCard, EventTable, IpListView, ... └── lib/ # socket, api, cookies ``` ### 后端 - 单文件 Express 服务器 (`server.js`) - MySQL 8.0+ - 首次启动时自动创建表 - JWT 认证(12小时过期)、TOTP 2FA、账户锁定 - WebSocket (Socket.IO) 用于实时事件流 - Honeypot 引擎:捕获 IP、User-Agent、路径、方法、Body - 并分配威胁评分 - 速率限制:5次登录失败 → 锁定15分钟;每个 IP 限制为 300 请求/15分钟 ### 前端 - React 18 + Vite + TypeScript - shadcn/ui 组件 + Tailwind CSS v4 - 实时事件流在内存中最多保留 2000 个事件 - 暂停/恢复实时事件流且不会丢失事件(内部缓冲区) ## Honeypot 模板 | 模板 | 模拟内容 | |----------|-----------| | `generic` | CorpNet Portal - 企业员工登录 | | `wordpress` | WordPress wp-admin 登录 | | `cpanel` | cPanel 虚拟主机管理面板 | | `microsoft` | Microsoft 账户登录 | 活动模板可直接在仪表盘中切换,无需重启。 ## 威胁分类 | 类型 | 描述 | |------|-------------| | `BRUTE` | 反复登录尝试 - 凭证填充或暴力破解 | | `SCAN` | 路径枚举 / 漏洞扫描 | | `BOT` | 自动化机器人 - 抓取或探测 | | `RECON` | 侦察 - 信息收集 | | `HUMAN` | 疑似人工交互 | ## 角色 | 角色 | 权限 | |------|-------------| | `admin` | 完全访问权限 - 用户、设置、所有事件 | | `viewer` | 仪表盘 - 仅查看事件和统计信息 | ## 安全与认证 Honeypot 诱饵端点是故意开放的——这正是它的核心目的——但**仪表盘和管理 API 已被严格锁定**,采用了与 AllSafe 商业套件相同的安全加固基线: - **JWT** — 12小时过期,在修改密码或禁用用户时通过 `token_version` 吊销 - **TOTP 2FA** — RFC 6238,通过二维码设置 - **账户锁定** — 5次尝试失败 → 锁定15分钟,**持久化到数据库中**(重启后依然有效) - **bcrypt** 密码哈希(每用户独立盐值) - **安全响应头** (Helmet) + **HTTP 速率限制** — API 限制为 300 请求/15分钟,认证端点限制为 10/15分钟 - **基于角色的访问控制** — `admin` / `viewer` - **100% 参数化 SQL** — 无字符串拼接查询,无注入攻击向量 (OWASP Top 10 2021) - **快速失败启动** — 如果缺少 `JWT_SECRET`、为默认值或过短,后端将拒绝启动 - **CORS** 锁定到配置的来源(不使用通配符) ## 路线图 - SSH honeypot(端口 22,cowrie 风格)并记录命令日志 - 交互式 Telnet 模拟 Shell - 当评分超过阈值时发送邮件 / Webhook 告警 - 导出 CSV / JSON 事件 - 攻击地理位置热力图 - 通过 iptables 自动将 IP 加入黑名单 ## 作者 由 **Eduardo Emiliano Alaniz** ([@h4wkby73](https://github.com/h4wkby73)) 创建 [AllSafe Security Solutions](https://www.allsafe.com.ar) ## 商标声明 “AllSafe”、“AllSafe Security Solutions”、“Heimdall” 以及所有相关 Logo 均为 AllSafe Security Solutions 的商标。涵盖本软件的 AGPL-3.0 许可证并未授予使用这些名称或 Logo 的任何权利。未经 AllSafe Security Solutions 事先书面许可,您不得使用它们来标识、认可或推广基于本软件派生的产品。 ## 许可证 GNU Affero General Public License v3.0 - 详见 [LICENSE](LICENSE) 文件。 如果您修改并将 Heimdall Community 作为服务部署,您必须在相同的许可证下公开您的修改内容。 ## 安全 发现漏洞?请私下报告 - 详见 [SECURITY.md](SECURITY.md)。
AllSafe Security Solutions 提供支持
标签:GNU通用公共许可证, MITM代理, Node.js, React, Syscalls, Web安全, 威胁情报, 安全, 密码管理, 开发者工具, 自定义脚本, 蓝队分析, 蜜罐, 证书利用, 请求拦截, 超时处理