Halino/Wazuh-MariaDB

GitHub: Halino/Wazuh-MariaDB

为 Wazuh 提供 MariaDB/MySQL 错误日志的自定义检测规则,覆盖访问拒绝、暴力破解、连接中断和崩溃损坏等数据库安全与完整性事件。

Stars: 0 | Forks: 0

# Wazuh 的 MariaDB 规则 用于让 Wazuh 检测 **MariaDB / MySQL**(`mariadbd`)错误日志中身份验证攻击和完整性问题的**规则**。 ## 包含内容 | 文件 | 用途 | |------|---------| | `wazuh/rules/mariadb_rules.xml` | 拒绝访问、暴力破解、中断的连接、崩溃/损坏 | | `wazuh/ossec-mariadb.conf.snippet` | `localfile` 配置示例(journald 和文件) | | `tests/sample_logs.txt` | 用于 `wazuh-logtest` 的示例日志行 | ## 解码器 本仓库未提供自定义解码器。Wazuh 的默认规则集已经包含了一个 `mariadb` 解码器,它可以匹配来自 `program_name` **`mariadbd`** 的日志行,并从 `Access denied for user ''@''` 消息中提取诸如 `dstuser` 和 `srcip` 等字段。下面的规则只需通过 `mariadb` 来引用它 —— 因此无需将任何内容复制到 `/var/ossec/etc/decoders/` 中。 ## 规则 | 规则 ID | 级别 | 检测内容 | MITRE | |---------|-------|---------|-------| | 110400 | 6 | 用户访问拒绝(登录被拒绝) | T1078 | | 110401 | 10 | 暴力破解(120 秒内 6 次拒绝,同一 IP) | T1110 | | 110402 | 4 | 中断的连接(审计 / 故障排查) | — | | 110403 | 11 | **崩溃 / 损坏**(信号、表崩溃、InnoDB 损坏) | T1485 | 规则 ID 使用专用的 **110400-110403** 区块,以避免与其他规则集发生冲突。 - **110400** 会在出现 `Access denied for user ...` 时触发。这些行仅在 MariaDB 在 **`log_warnings >= 2`** 配置下运行时才会输出(参见[部署](#deployment))。 - **110401** 将来自**相同源 IP** 的重复 `110400` 事件关联为暴力破解警报。 - **110402** 是用于记录断开连接(超时、`max_allowed_packet`、未能正常关闭的客户端)的低级别审计追踪。 - **110403** 标记服务器崩溃和磁盘损坏 —— 包括服务器故障、崩溃漏洞利用尝试或破坏性活动。 ## 部署 规则位于 **manager** 上: ``` sudo cp wazuh/rules/mariadb_rules.xml /var/ossec/etc/rules/ sudo systemctl restart wazuh-manager ``` 然后在 MariaDB 主机上收集 `mariadbd` 日志。在现代 systemd 发行版上,MariaDB 通常将日志记录到 **journald** 而不是文件中 —— 因此有两种路径。 ### 路径 A - journald(现代发行版的默认方式) 在 agent 上读取 journal(参见 `wazuh/ossec-mariadb.conf.snippet`): ``` journald journald ^(mariadb|mysqld|mysql)\.service$ ``` ### 路径 B - 专用错误日志文件 或者,配置 MariaDB 将日志记录到文件中。在 `/etc/mysql/mariadb.conf.d/50-server.cnf`(或 `/etc/my.cnf.d/server.cnf`)中: ``` [mariadbd] log_error = /var/log/mysql/error.log log_warnings = 2 # REQUIRED so "Access denied" lines are emitted ``` 重启 MariaDB,然后使用 **syslog** 日志格式读取文件,以便预解码器能提取出 `program_name = mariadbd`: ``` syslog /var/log/mysql/error.log ``` ## 测试 ``` /var/ossec/bin/wazuh-logtest ``` 例如,粘贴: ``` Jul 9 12:00:00 db mariadbd[1234]: [Warning] Access denied for user 'app'@'203.0.113.10' (using password: YES) ``` 预期结果:解码器为 `mariadb`,规则 **110400**(authentication_failed,T1078)。 完整集合请参见 `tests/sample_logs.txt`。 ## 兼容性 - Wazuh 4.x(使用 `pcre2`;journald 读取器需要 Wazuh 4.4+)。 - MariaDB 10.x / 11.x 以及 MySQL 5.7 / 8.x(任何其 `mariadbd`/`mysqld` 错误日志能被默认 `mariadb` 解码器解析的版本)。 ## 许可证 MIT — 参见 [LICENSE](LICENSE)。
标签:MariaDB, PB级数据处理, Wazuh, 云计算, 安全运维, 数据库监控, 规则引擎