EForce11/WatchTower
GitHub: EForce11/WatchTower
一个开源、自托管的 Linux 服务器 XDR 平台,通过分布式 agent 采集安全遥测数据并进行威胁关联与实时告警。
Stars: 3 | Forks: 0
# WatchTower XDR
**企业级扩展检测与响应 — 开放、可审计、自托管。**
[](https://github.com/EForce11/WatchTower/actions/workflows/ci.yml)
[](https://github.com/EForce11/WatchTower/actions/workflows/codeql.yml)
[](https://go.dev/)
[](https://www.gnu.org/licenses/gpl-3.0)
[](https://github.com/EForce11/WatchTower/releases)
## 什么是 WatchTower XDR?
WatchTower 是一个**开源的 XDR (扩展检测与响应)** 平台,旨在实现自托管、可审计和可扩展。它从分布式 agent 收集安全遥测数据,将事件与威胁模式进行关联,并提供实时告警 —— 无需将您的数据发送给第三方。
## 架构
```
┌─────────────────────────────────────────────────────────────────┐
│ WatchTower XDR │
│ │
│ ┌──────────────┐ gRPC / mTLS ┌──────────────────────────┐ │
│ │ wt-sentry │ ◄─────────────► │ wt-core │ │
│ │ (Agent) │ Heartbeat 10s │ (Central Server) │ │
│ │ │ │ Port :50051 │ │
│ │ - Log watch │ │ - Agent registry │ │
│ │ - Pattern │ │ - Event correlation │ │
│ │ matching │ │ - Alert dispatch │ │
│ └──────────────┘ └──────────────────────────┘ │
│ │
│ ┌───────────────┐ │
│ │ wt-cli │ ← unified management interface (Phase 3+) │
│ └───────────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
有关完整的架构详情,请参阅 [docs/architecture.md](docs/architecture.md)。
## 功能
### ✅ 阶段 0 — 核心通信 (v0.2.0)
- 基于 gRPC 的 agent ↔ core 通信
- 带有健康监控的心跳机制
- 具有指数退避的自动重连
- 优雅停机处理
- 集成测试套件
### ⏳ 阶段 1 — 日志监控(进行中)
- 通过 inotify (`fsnotify`) 进行实时日志文件监控
- 安全事件模式匹配(基于 regex 的规则)
- 日志事件流式传输到 core
### 🔲 即将推出的阶段
| 阶段 | 功能 | 目标 |
|-------|---------|--------|
| 2 | TimescaleDB + Grafana 仪表盘 | v0.4.0 |
| 3 | 自动化 IP 封禁 (Turret) | v0.6.0 |
| 4 | 异常检测引擎 | v0.8.0 |
| 6 | 应用 WAF (Interceptor) | v1.0.0 |
## 快速开始
### 前置条件
| 工具 | 版本 | 用途 |
|------|---------|---------|
| Go | 1.24+ | 构建工具链 |
| protoc | 任意 | 编译 .proto 文件 |
| make | 任意 | 构建自动化 |
### 安装
```
# Clone 仓库
git clone https://github.com/EForce11/WatchTower
cd WatchTower
# 安装 Go 代码生成工具
make dev-deps
# 构建所有 binaries
make build
```
### 运行
```
# Terminal 1 — 启动 central server
make run-core
# Terminal 2 — 启动 monitoring agent
make run-sentry
# 您应该会看到每 10 秒记录一次 heartbeats
```
### 测试
```
# 运行所有单元测试和 integration tests
make test
# 仅运行 integration test
make integration-test
# 使用 race detector 运行 integration test
make integration-test-race
# 验证 Phase 0 完成
./scripts/verify-phase0.sh
```
## 项目结构
```
WatchTower/
├── cmd/
│ ├── wt-core/ # Central server (gRPC, event correlation)
│ ├── wt-sentry/ # Monitoring agent (log watcher, heartbeat)
│ └── wt-cli/ # Management CLI (Phase 3+, stub)
├── internal/
│ └── sentry/ # Agent internals (log watcher, pattern matcher)
├── pkg/
│ └── protocol/ # Protobuf definitions + generated gRPC code
├── test/
│ └── integration/ # End-to-end integration tests
├── docs/ # Architecture and deployment documentation
└── scripts/ # Developer helper scripts
```
## 开发
有关完整的架构文档,请参阅 [docs/architecture.md](docs/architecture.md)。
有关贡献指南、分支命名和提交规范,请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。
## 路线图
- [x] 阶段 0:gRPC 通信 (v0.2.0)
- [ ] 阶段 1:日志监控与模式检测
- [ ] 阶段 2:TimescaleDB 和 Grafana 仪表盘
- [ ] 阶段 3:自动化 IP 封禁 (Turret)
- [ ] 阶段 4:异常检测引擎
- [ ] 阶段 6:应用 WAF (Interceptor)
- [ ] v1.0.0:正式发布
## 安全
如果您发现安全漏洞,**请勿创建公开的 issue。**
请遵循 [SECURITY.md](SECURITY.md) 中描述的负责任的披露流程。
## 许可证
WatchTower XDR 是免费软件:您可以根据自由软件基金会发布的
[GNU General Public License v3.0](LICENSE) 条款对其进行重新分发和修改。
## 作者
**Emir Furkan Ulu**
GitHub: [@EForce11](https://github.com/EForce11)
WatchTower XDR — 您可以信任的安全,您掌控的基础设施。
标签:EVTX分析, Go, Python工具, Ruby工具, 子域名变形, 安全, 安全遥测, 日志审计, 端点检测与响应, 脱壳工具, 超时处理