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, 日志解析, 规则配置, 证书伪造, 身份认证审计