andreicscs/HoneyWire
GitHub: andreicscs/HoneyWire
HoneyWire 是一个基于纯 Go 语言构建的超轻量级分布式高保真安全预警系统,通过部署绊线和诱饵传感器实现内网入侵的零误报实时检测与取证。
Stars: 9 | Forks: 0
[](LICENSE)
[]()
## 📋 目录
- [概述](#honeywire)
- [截图](#screenshots)
- [通用事件标准](#-the-universal-event-standard-bring-your-own-sensor)
- [功能](#features)
- [架构](#architecture)
- [快速入门指南](#-quick-start-guide)
- [安全说明](#security-notes)
- [技术栈](#tech-stack)
- [版本控制和 API 参考](#versioning-and-api-reference)
- [运维检查清单](#operational-checklist)
# HoneyWire
**HoneyWire Sentinel** 是一个轻量级的分布式高信噪比安全早期预警系统,专为内网设计。它取代了传统 SIEM 通过监控合法流量而让分析师淹没在误报中的“放大镜”模式,转而采用高保真 Tripwire(绊线)模型。将传感器精确部署在您需要的地方,例如:
- 生产环境 Tripwires:当活跃服务受到不应有的探测时发出警报。通过在不应读取的敏感文件上或不应访问的服务端口上部署传感器,您可以通过入侵者偏离“授权路径”的行为来识别他们。
- 合成诱骗:部署如 [ICMP Canary](./Sensors/official/IcmpCanary/) 或 [Network Scan Detector](./Sensors/official/NetworkScanDetector/) 等诱饵作为诱骗。由于这些传感器不提供任何合法的业务价值,因此其 100% 的流量都是可操作的情报。
一旦触发,说明有问题。设置多个触发器,您就能对入侵者的横向移动有一个清晰的认识。无需调优,没有噪音,只有即时取证。
## 截图
### 主仪表盘


## 🔌 通用事件标准(自带传感器)
[**社区传感器**](./Sensors/community/)
HoneyWire 的真正威力在于 Hub 是**完全传感器无关的**。您不仅限于随附的官方传感器。
通过遵循 **HoneyWire Event Standard V1.0**,您可以用*任何*语言(Bash、Go、Rust、Python)编写脚本来监控*任何内容*,Sentinel UI 将动态解析、语法高亮并渲染您的取证数据。
无论是**深度包检测 (DPI)** 引擎、**DNS sinkhole**、嵌入在 PDF 中的 **Canary Token**、**Email Honeypot**,还是简单的 **TCP Port Tripwire**,只需将此 JSON POST 到 Hub:
```
{
"contract_version": "1.0",
"severity": "critical",
"event_trigger": "malformed_jwt_detected",
"source": "104.28.19.12",
"target": "Auth Gateway",
"sensor_id": "core-dpi-engine",
"details": {
"protocol": "TCP",
"headers_stripped": true,
"payload_sample": [
"Authorization: Bearer eyJhbG... [TRUNCATED]",
"User-Agent: curl/7.64.1"
]
}
}
```
*Hub 的前端会自动将数组转换为语法高亮的代码块,并将原始值转换为清晰的详情标签。*
## 功能
- **Sentinel Hub UI:** 一个完全响应式的仪表盘,具有深色/浅色模式、实时的 Chart.js 威胁分布以及动态取证负载检查功能。
- **官方传感器套件:** 包括原生的 [TCP Tarpit](./Sensors/official/TcpTarpit/)、[Web Router Decoy](./Sensors/official/WebRouterDecoy/)、[File Canary (FIM)](./Sensors/official/FileCanary/)、[ICMP Canary](./Sensors/official/IcmpCanary/) 和 [Network Scan Detector](./Sensors/official/NetworkScanDetector/)。
## 架构
HoneyWire 分为三个独立的微服务:
1. `/Hub`:中央大脑。一个运行嵌入式 SQLite 数据库和 Web 仪表盘的纯 Go 二进制文件。它在 Distroless 容器内以非 root 用户身份运行,将数据安全挂载到专用卷。
2. `/Sensors`:诱饵节点。静态链接的 Go 二进制文件,监听易受攻击的端口,诱捕攻击者,并将入侵数据安全地 POST 回 Hub。
3. `/SDKs`:官方库(如 `sdk-go`),处理安全的 Hub 通信,以便社区开发者轻松构建新传感器。
## 🚀 快速入门指南
使用我们预构建的 GitHub Container 镜像部署 HoneyWire 只需不到 60 秒。无需编译。
在您的服务器上创建一个新目录,并创建两个文件:`docker-compose.yml` 和 `.env`。
### 1. `docker-compose.yml` 文件
```
version: '3.8'
services:
# 1. THE PERMISSION FIXER: Runs once to ensure the Hub can write to the data volume
permission-fixer:
image: alpine:latest
command: sh -c "chown -R 65532:65532 /data"
volumes:
- ./honeywire_data:/data
# 2. THE HUB: The central Go-based dashboard and API
hub:
image: ghcr.io/andreicscs/honeywire-hub:latest
container_name: honeywire-hub
restart: unless-stopped
ports:
- "${HW_PORT:-8080}:${HW_PORT:-8080}"
volumes:
- ./honeywire_data:/data
depends_on:
permission-fixer:
condition: service_completed_successfully
user: "65532:65532"
read_only: true
cap_drop: ["ALL"]
security_opt: ["no-new-privileges:true"]
env_file:
- .env
# 3. EXAMPLE SENSOR: The TCP Tarpit (See /Sensors for more)
tcp-tarpit:
image: ghcr.io/andreicscs/honeywire-tcptarpit:latest
container_name: hw-tcp-tarpit
restart: unless-stopped
network_mode: "host" # Required to capture true source IPs
user: "0:0" # Required to bind to low ports
# Security hardening
cap_drop: ["ALL"]
cap_add: ["NET_BIND_SERVICE"]
read_only: true
security_opt: ["no-new-privileges:true"]
env_file:
- .env
```
### 2. `.env` 配置
```
# ==========================================
# HUB CONFIGURATION
# ==========================================
# Secret key used by sensors to authenticate with the Hub
HW_HUB_KEY=change_this_to_a_secure_random_string
# Optional: Protect the Web UI (Leave blank for no password)
HW_DASHBOARD_PASSWORD=admin
# Optional: Push Notifications
HW_NTFY_URL=https://ntfy.sh/your_private_topic
# HW_GOTIFY_URL=https://gotify.example.com/message
# HW_GOTIFY_TOKEN=your_token
# ==========================================
# SENSOR EXAMPLE: TCP TARPIT
# ==========================================
# Point this to your Hub's IP and Port
HW_HUB_ENDPOINT=http://127.0.0.1:8080
HW_SENSOR_ID=tarpit-01
# Ports to monitor, behavior mode, and fake service banner
HW_DECOY_PORTS=22,2222,3306
HW_TARPIT_MODE=hold
HW_SEVERITY=high
HW_TARPIT_BANNER=SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.1\r\n
```
### 3. 启动陷阱
运行以下命令以拉取镜像并启动蜜罐:
```
docker compose up -d
```
通过 `http://localhost:8080`(或您服务器的 IP)访问仪表盘。
### 4. 测试陷阱
一旦您的容器启动,Tarpit 传感器应在 30 秒内于仪表盘的 **Fleet Health** 部分显示为 `ONLINE`。
要验证检测循环,请从另一台机器(或另一个终端)使用 `netcat` 触发诱饵:
```
# Connect to your decoy port (e.g., 2222) at localhost (or your server's IP).
nc localhost 2222
```
1. **观察诱饵:** 如果 `HW_TARPIT_MODE` 设置为 `hold` 或 `echo`,您将立即看到您的虚假服务横幅。
2. **交互:** 连接将被故意停滞(Tarpit)。输入一个字符串(例如 `admin` 或 `exploit_payload`)并按 Enter。
3. **关闭:** 按 `Ctrl+C` 终止测试连接。
4. **验证捕获:**
- 检查 HoneyWire 仪表盘;事件、您的源 IP 和负载将立即显示。
- 如果已配置,您将在移动设备上收到推送通知。
## 安全说明
* **API 密钥:** 确保您的 `HW_HUB_KEY` 足够复杂,并且在 Hub 和传感器上保持一致。Hub 将拒绝任何密钥不匹配的负载。我们最终将实现从 Hub 为每个传感器自动生成 API 密钥。
* **系统布防:** 您可以在 Hub UI 中切换“System Armed”按钮,以便在进行内网维护或漏洞扫描时暂时禁用推送通知。
* **容器加固:** HoneyWire 使用 `gcr.io/distroless/static-debian12:nonroot`。我们遵循最小权限原则,以确保如果容器被攻破,爆炸范围受到遏制。
* **分布式部署:** 强烈建议在独立的物理或虚拟机上运行 Hub 及其传感器。如果攻击者攻陷了传感器节点,他们不应立即拥有对集中式 Hub 的本地访问权限。
- ! **加密 (HTTPS):** 由于本项目正在开发中,我们**尚未**实现 HTTPS。
务必始终使用反向代理(如 Nginx、Caddy 或 Traefik)通过 HTTPS 提供 Hub Web GUI 和 API。否则,您的 `HW_HUB_KEY` 和 `HW_DASHBOARD_PASSWORD` 将面临网络嗅探的风险。
## 技术栈
* **后端:** Go 1.25、`net/http`(标准库)、SQLite(纯 Go 驱动)
* **前端:** HTML5、TailwindCSS、Alpine.js、Chart.js
* **基础设施:** Docker、Docker Compose、Distroless Linux 沙箱
## 版本控制和 API 参考
- HoneyWire 使用单一事实来源版本文件:仓库根目录下的 `VERSION`。
- 运行时版本通过环境变量覆盖公开:`HW_VERSION`(Hub + 传感器),默认值为 `VERSION`。
- `Hub` 端点:
- `GET /api/v1/version` → 返回 `{ "version": "1.0.0" }`
- API 文档文件:[📖 API.md](./Docs/API.md),包含完整的后端路由参考和示例负载。
## 运维检查清单
- [x] 为所有组件设置 `HW_HUB_KEY`。
- [x] 设置可选的 `HW_DASHBOARD_PASSWORD`。
- [x] 在 `VERSION` 中的任何版本升级或环境变量更改后,重新构建/重新部署容器。
标签:BOF, Go语言, ICMP金丝雀, LangChain, minikerberos, SIEM替代, x64dbg, 分布式传感器, 告警降噪, 威胁情报, 安全仪表盘, 安全运营, 实时遥测, 开发者工具, 扫描框架, 无依赖, 无痕部署, 日志审计, 早期预警, 横向移动检测, 欺骗防御, 生产环境布防, 程序破解, 网络扫描检测, 蜜罐, 证书利用, 诱捕技术, 请求拦截, 轻量级, 零运行时依赖, 高保真告警