FirdausYudha/DeusWatch
GitHub: FirdausYudha/DeusWatch
DeusWatch 是一个自托管的多合一开源安全平台,通过一条 Docker Compose 命令启动 SIEM、IDS/IPS、SOAR、CTI 富化和 LLM 分析等安全监控与响应功能。
Stars: 1 | Forks: 0
# DEUSWATCH
**多合一、开源、自托管安全平台。**
SIEM · IDS/IPS · 轻量级 SOAR · CTI enrichment · 基于 LLM 的分析 —— 集成于一个轻量级、模块化的系统中。
[](LICENSE)
[]()
[]()
[]()
[功能](#features) · [集成](#integrations) · [快速开始](#quick-start) · [文档](#documentation) · [支持 ♥](#support)
## 什么是 DeusWatch?
DeusWatch 将安全检测和响应整合在一个软件包中,你只需运行一条
`docker compose up` 命令即可启动。它默认对初学者非常友好,同时也为
SOC 专业人员提供了完全可定制的选项。
核心原则:**不要重复造轮子。** 我们建立在成熟的标准之上(Sigma 规则、
CrowdSec bouncer 协议、PostgreSQL、NATS),并专注于集成层和
任何单一供应商都无法打包在一起的用户体验。
## 功能
**收集 → 检测 → 富化 → 决策 → 响应**,每一步都配有人性化的 UI。
- **采集** — 轻量级的 Go agent 通过 mTLS 传输日志(Linux/Windows);网关将它们标准化为 NATS JetStream 上的通用事件 schema。
- **检测** — [Sigma](https://github.com/SigmaHQ/sigma) 规则,支持单事件和聚合/关联(例如 SSH 暴力破解 = 来自单个 IP 的 N 次失败)。规则由 **数据库支持,并完全通过 UI 管理**(类似 Wazuh 风格):浏览、编辑、切换、添加或删除 —— 内置规则在首次启动时导入,自定义规则在保存时验证。告警会自动打上 **MITRE ATT&CK** 技术/战术标签。
- **富化** — 使用 CTI(AbuseIPDB、AlienVault OTX)和 GeoIP 对源 IP 进行评分;在检测到高可信度威胁时,严重级别会自动升级。可选的 **LLM 分析**(与提供商无关:Claude、Ollama 或任何兼容 OpenAI 的 endpoint)支持 AI 报告摘要(按需 + 定时),并可选择对每次告警进行分诊。
- **响应 (SOAR)** — 一个**渐进式封禁**引擎:累犯者将沿着可配置的时长阶梯逐步加重处罚(例如 `10m → 30m → 1h → 24h → 永久`),所有这些都可在 UI 中编辑。支持**自动封禁**(无需人工审批)、**观察窗口**、**IP 白名单**(受信任的 IP 永远不会被封禁)、针对单个违规者的**去重**(每个 IP 仅保留一个打开的操作),以及带有批量消除功能的**单 IP 响应视图**。通过 nftables(agent 端)、MikroTik 或 CrowdSec LAPI 执行。
- **可视化** — 可定制的拖放式仪表盘(统计数据、严重程度、热门 IP/规则、MITRE、攻击源地图、填补空白的日程表),配有精确的**日历 + 时间范围选择器**,以及自动化报告。
- **运维** — 具有细粒度权限的 RBAC、TOTP 2FA、仅追加的审计日志、工单系统(Tier-2 升级)、通知(Telegram / 电子邮件 / webhook,带有可通过 UI 配置的严重程度阈值 + 定时报告推送)、向外部分发工具进行 JSON **webhook 导出**、**配置文件导入/导出**(将一台服务器的设置克隆到另一台),以及全面的 **i18n**。
### 路线图
| 阶段 | 范围 | 状态 |
|---|---|---|
| **阶段 1** | Linux agent、mTLS 采集、网关 + 标准化、NATS、Postgres+TimescaleDB、Sigma 检测 + 自动 MITRE 标签、API + RBAC + 审计日志、基础 Web UI | ✅ |
| **阶段 2** | Windows agent、CTI 富化(AbuseIPDB/OTX/GeoIP)、响应引擎(nftables/Mikrotik/CrowdSec LAPI)、TOTP 2FA、通知(Telegram/电子邮件/webhook) | ✅ |
| **阶段 3** | LLM worker(Claude/启发式)、自动化报告、社区黑名单 | ✅ |
| **阶段 4** | 管理/UX 优化、全面 i18n、UI 管理的检测规则、可配置的渐进式封禁(自动封禁 + IP 白名单 + 去重)、单 IP 响应视图、仪表盘时间范围选择器 + 可搜索的事件/告警 | ✅ |
| **阶段 5** | FIM + 文件哈希信誉(CIRCL/VirusTotal)、基于已知恶意哈希的端点文件隔离/删除、撤销时 agent 自卸载、开源/自托管 LLM(Ollama)、AI 报告摘要(按需 + 定时)、**JSON webhook 导出,配置文件导入/导出,UI 告警阈值 + 定时向 Telegram/电子邮件推送报告** | ✅ |
| 阶段 6 | Windows 检测规则、规则/集成市场、Helm chart | 计划中 |
### 各平台检测覆盖率
检测流水线(日志解析 → Sigma 规则 → 富化 → 渐进式封禁)在
**Linux 上已实现端到端验证**。其他平台可以收集和发送日志,但其事件
解析 + 检测规则仍在开发中。
| 平台 | 日志收集 | 检测(解析 + 规则) | 端到端验证 |
|---|---|---|---|
| **Linux** (sshd / journald) | ✅ | ✅ SSH 暴力破解、无效用户、root 登录、sudo、FIM + 恶意哈希 | ✅ 已测试 |
| **Windows** (Event Log: Security/System) | ✅ 发送事件 | 🚧 4625/RDP-SMB 暴力破解解析 + 规则开发中 | ❌ 尚未测试 |
## 架构
```
Agent (Go) ──mTLS──> Ingest Gateway ──> NATS JetStream ──> Worker (detect/enrich/respond/llm)
│
PostgreSQL 16 + TimescaleDB
│
API Server (Go) ──> Web UI (React + Vite)
```
完整的设计细节:请参阅 [DeusWatch.md](DeusWatch.md)。
## 集成
连接器可以从 UI 中的**集成**菜单进行添加和配置(密钥在
静态存储时加密且只写)。目前可用的有:
| 类型 | 集成 | 作用 |
|---|---|---|
| 🛡️ 防火墙 | **nftables (agent 端)** | 端点自动拦截:agent 将活动的黑名单添加到本地 nftables 集合中,并丢弃匹配的流量。 |
| 🛡️ 防火墙 | **MikroTik RouterOS** | 通过 REST API 将被拦截的 IP 推送到 RouterOS 地址列表中。 |
| 🛡️ Bouncer | **CrowdSec LAPI** | 通过 `cscli` 创建/移除封禁决策,交由 CrowdSec bouncer 执行。 |
| 🔎 CTI | **AbuseIPDB** | 使用滥用置信度评分为源 IP 进行富化。 |
| 🔎 CTI | **AlienVault OTX** | 使用威胁情报脉冲数为源 IP 进行富化。 |
| 🔔 通知 | **Telegram · 电子邮件 (SMTP) · Webhook** | 实时告警(严重程度阈值在 UI 中设置)+ **定时报告推送**。频道凭证通过环境变量提供 —— 请参阅 [docs/notifications.md](docs/notifications.md)。 |
| 📤 导出 | **Webhook (JSON)** | 一键将事件/告警或报告 POST 到外部分发工具(SIEM、n8n、Zapier、自定义工具)。 |
| 🤖 LLM | **Claude · Ollama · 兼容 OpenAI** | AI 报告摘要(按需 + 定时);可选的每次告警分诊。与提供商无关;可通过 Ollama 免费且离线运行。 |
威胁情报还包括 **GeoIP**(攻击源地图)和可选的 **社区黑名单**。
## 快速开始
一条命令即可启动整个技术栈(数据库、NATS、证书生成、API、网关、worker、Web UI):
```
git clone https://github.com/FirdausYudha/DeusWatch.git
cd DeusWatch
docker compose -f deploy/docker-compose.yml up -d --build
```
- **Web UI:** http://localhost:5173 · **API:** http://localhost:8080
- **默认登录账号:** `admin` / `thewatcher` (通过 `ADMIN_PASSWORD` 更改,或在首次登录后在 **Users**/**Settings** 中更改)
- 自助注册**默认处于禁用状态**(由管理员在 UI 中创建用户);设置 `REGISTRATION_ENABLED=1` 可允许从登录页面注册具有 viewer 角色的账号。
## 部署 agent
在 UI 中转到 **Agents → + Add agent**,选择操作系统(Linux / Windows),将 **Manager host** 设置为
agent 可以访问到的地址(对于跨主机部署,填写局域网 IP,例如 `192.168.1.10:8080`),然后复制
生成的一行命令。它会下载 agent,使用一次性 token 注册,安装
自动启动服务,并建立连接 —— 例如在 Linux 上:
```
curl -fsSL http://标签:C2, EVTX分析, IDS/IPS, SOAR, x64dbg, 威胁情报, 安全运营平台, 开发者工具, 日志审计, 测试用例, 请求拦截