Halino/Wazuh-FileZilla

GitHub: Halino/Wazuh-FileZilla

为 Wazuh 提供 FileZilla Server FTP 日志的解码器和检测规则,解决日志解析、时间戳冲突及暴力破解与数据外泄检测问题。

Stars: 0 | Forks: 0

# 用于 Wazuh 的 FileZilla Server FTP 解析器 **Decoders** 和 **rules**,使 Wazuh 能够摄取和分析 **FileZilla Server** FTP 会话日志 — 身份验证、暴力破解以及文件传输/删除活动。 ## 包含内容 | 文件 | 用途 | |------|--------| | `wazuh/decoders/filezilla_decoders.xml` | 解析 FileZilla `Session N` FTP 日志行 | | `wazuh/rules/filezilla_rules.xml` | 认证、暴力破解、下载/上传/删除、批量下载外泄 | | `wazuh/ossec-filezilla.conf.snippet` | `localfile` 配置示例 | | `tests/sample_logs.txt` | 用于 `wazuh-logtest` 的示例行 | ## 日志格式 FileZilla Server 写入的每条 FTP 会话行都带有 `Session N` 标记。括号 有两种形式 — 登录前(仅 IP)和登录后(IP + 用户): ``` [FTP Session 5 203.0.113.10] USER alice [FTP Session 5 203.0.113.10] 530 Login incorrect. [FTP Session 5 203.0.113.10 alice] 230 Logged on [FTP Session 5 203.0.113.10 alice] RETR /pub/movie.mkv ``` 提取的字段:`session`、`srcip`、`dstuser`(仅限登录后)、`ftp_message`。 decoder 是**基于内容的**:它在纯文本的 `Session N` token 上进行预匹配,因此 无需任何 syslog 标头即可解码日志行。 ## 时间戳陷阱(请先阅读此部分) FileZilla Server 可能在每条日志行前加上**以 `Z` 结尾的 ISO8601 时间戳** (例如 `2026-07-09T12:00:00.123Z ...`)。带有尾部 `Z` 的时间戳**不是**有效的 RFC3164 syslog 标头,因此 Wazuh 的 syslog 预解码器会以 **"No decoder matched"** 拒绝整行, 导致 FileZilla decoder 根本无法运行。 **修复方法 — 禁用时间戳,使日志行变为无标头格式:** - **FileZilla Server > Settings > Logging** → 取消勾选 **"Include a timestamp in the log"** - 或者在配置中:设置 **`include_headers = false`** decoder 基于对 `Session N` 的预匹配(而非基于时间戳),因此无标头的 日志行可以完美匹配。 ## 规则 | 规则 ID | 级别 | 检测内容 | MITRE | |---------|-------|---------|-------| | 110200 | 0 | 分组(任何 FileZilla FTP 消息) | — | | 110201 | 5 | 登录尝试 (`USER ...`) | — | | 110202 | 6 | 登录失败 (`530`) | T1078 | | 110203 | 3 | 登录成功 (`230`) | — | | 110204 | 10 | 暴力破解(120 秒内失败 5 次,同一 IP) | T1110 | | 110205 | 3 | 文件下载 (`RETR`) | — | | 110206 | 5 | 文件上传 (`STOR` / `APPE`) | — | | 110207 | 4 | 文件删除 (`DELE` / `RMD`) | — | | 110208 | 4 | **批量下载**(600 秒内 50 次,同一 IP) — 挖取 / 数据外泄 | T1030 | 规则 ID 使用专门的 **110200-110208** 区块,以避免与其他规则集发生冲突。 ## 部署 ``` sudo cp wazuh/decoders/filezilla_decoders.xml /var/ossec/etc/decoders/ sudo cp wazuh/rules/filezilla_rules.xml /var/ossec/etc/rules/ sudo systemctl restart wazuh-manager ``` 然后使用 `localfile` 收集 FileZilla Server 日志(参见 `wazuh/ossec-filezilla.conf.snippet`) — 并记得先在 FileZilla 日志设置中 禁用 ISO8601 时间戳。 ## 测试 ``` /var/ossec/bin/wazuh-logtest ``` 粘贴,例如(无需 syslog 标头 — decoder 是基于内容的): ``` [FTP Session 5 203.0.113.10] 530 Login incorrect. ``` 预期:decoder 为 `filezilla`,规则为 **110202**(authentication_failed,T1078)。 完整集合请参见 `tests/sample_logs.txt`。 ## 兼容性 - Wazuh 4.x(使用 `pcre2`)。 - 开启文件记录的 FileZilla Server 1.x(禁用时间戳 — 见上文)。 ## 许可证 MIT — 详见 [LICENSE](LICENSE)。
标签:FileZilla, Wazuh, 云计算, 日志解析, 红队行动, 规则引擎, 证书伪造