Halino/Wazuh-Overseerr
GitHub: Halino/Wazuh-Overseerr
为 Wazuh 提供 Overseerr/Jellyseerr/Seer 应用的认证日志解码器与安全检测规则,实现对登录失败和暴力破解事件的集中监控与告警。
Stars: 0 | Forks: 0
# 用于 Wazuh 的 Overseerr / Jellyseerr / Seer auth 解析器
**解码器** 和 **规则**,让 Wazuh 能够直接从应用自身的日志文件中获取并分析来自 **Overseerr** 及其分支 **Jellyseerr** 和 **Seer** 的 **身份验证事件**。
## 包含内容
| 文件 | 用途 |
|------|--------|
| `wazuh/decoders/overseerr_decoders.xml` | 解析 `Failed sign-in attempt` 和 `[Auth]: Successfully ...` 日志行 |
| `wazuh/rules/overseerr_rules.xml` | 成功认证、登录失败、暴力破解关联 |
| `wazuh/ossec-overseerr.conf.snippet` | `localfile`(以及 `remote`)配置示例 |
| `tests/sample_logs.txt` | 用于 `wazuh-logtest` 的示例行 |
## 日志格式
Overseerr、Jellyseerr 和 Seer 共享相同的基于 Winston 的 logger,并会写入人类可读的应用日志(默认路径为 `.../config/logs/overseerr.log`,每天轮换为 `overseerr-YYYY-MM-DD.log`)。相关的日志行如下所示:
```
[info][Auth]: Failed sign-in attempt {"ip":"","email":""}
[debug][Auth]: Successfully logged in user {"userId":}
```
提取的字段:登录失败时提取 `srcip`、`dstuser`(尝试使用的电子邮件);登录成功时提取 `seer_action`、`seer_userid`。
解码器基于**内容**:它们匹配的是消息文本,而不是 syslog 程序名,因此这些日志行在解码时**不需要**带有 `Mon DD HH:MM:SS host` 这样的 syslog 头部。对于 IPv4 映射的 IPv6 源地址,其前导的 `::ffff:` 会被去除,因此 `srcip` 将是纯粹的 IPv4 地址。
## 规则
| 规则 ID | 级别 | 检测内容 | MITRE |
|---------|-------|---------|-------|
| 110600 | 3 | 成功认证(登录 / 登出 / authenticated / signed in)— debug 级别 | — |
| 110601 | 6 | 登录失败尝试(电子邮件 + 源 IP) | T1078 |
| 110602 | 10 | 暴力破解(120 秒内同一 IP 失败 5 次) | T1110 |
规则 ID 使用专用的 **110600-110602** 区间,以避免与其他规则集发生冲突。
## 部署
```
sudo cp wazuh/decoders/overseerr_decoders.xml /var/ossec/etc/decoders/
sudo cp wazuh/rules/overseerr_rules.xml /var/ossec/etc/rules/
sudo systemctl restart wazuh-manager
```
然后,配置一个 Wazuh agent(位于 Overseerr / Jellyseerr / Seer 主机上),通过为日志目录添加 `` 来追踪(tail)应用日志 — 请参阅 `wazuh/ossec-overseerr.conf.snippet`:
```
syslog
/app/config/logs/overseerr-*.log
```
请根据您的实际安装情况调整路径(Docker 默认路径为 `/app/config/logs/`;主机挂载的配置卷则位于您挂载它的位置)。该 glob 模式会持续跟进当前按日轮换的文件。
## 测试
```
/var/ossec/bin/wazuh-logtest
```
粘贴例如以下内容:
```
2026-07-09T12:10:00.000Z [info][Auth]: Failed sign-in attempt {"ip":"203.0.113.10","email":"attacker@example.com"}
```
预期结果:decoder 为 `overseerr`,规则为 **110601**(authentication_failed,T1078),且 `srcip=203.0.113.10`,`dstuser=attacker@example.com`。
或者是一次成功的登录(需要开启 debug 级别的日志记录):
```
2026-07-09T12:00:00.000Z [debug][Auth]: Successfully logged in user {"userId":1}
```
预期结果:decoder 为 `overseerr-auth`,规则为 **110600**(authentication_success)。
请查看 `tests/sample_logs.txt` 获取完整的示例集,包括如何触发暴力破解关联(`110602`)。
## 兼容性
- Wazuh 4.x(使用 `pcre2`)。
- **Overseerr** 及其分支 **Jellyseerr** 和 **Seer** — 它们共享相同的 logger 和 `[Auth]` 消息格式,因此相同的解码器和规则适用于这三者。
## 许可证
MIT — 请参阅 [LICENSE](LICENSE)。
标签:Overseerr, Wazuh, 日志解析, 规则配置, 证书伪造, 身份认证审计