一、介绍

MySQL社区版没有自带的审计功能或插件,对于等级保护当中对数据库管理的要求的就存在一定的不满足情况的,抛开条条框框不说数据库的日志是值得研究的,通过收集数据库的日志到企业SOC平台便于安全事件的溯源与故障分析,配合目前的UEBA技术能够轻松发现很多恶意事件。

根据等级保护内容第四章“数据库管理系统安全技术要求”中 第四节“数据库安全审计”中明确提出数据库管理系统的安全审计应:

  1. 建立独立的安全审计系统;
  2. 定义与数据库安全相关的审计事件;
  3. 设置专门的安全审计员;
  4. 设置专门用于存储数据库系统审计数据的安全审计库;
  5. 提供适用于数据库系统的安全审计设置、分析和查阅的工具。

通俗来说,查询mysql修改、插入、删除操作记录时,通常使用binlog解析数据获取,但是binlog无法直接查看,这时使用日志审计插件就显得十分方便。

二、插件下载

插件源码地址:https://github.com/mcafee/mysql-audit
百度网盘地址:链接:https://pan.baidu.com/s/1CZtzuoSRGlx3pU4Gpm1qLQ
提取码:nym7
--来自百度网盘超级会员V5的分享

三、插件安装

我的mysql数据库版本为8.0.18,所以以安装mysql8的插件为例。
image.png

1.解压插件复制到mysql lib库插件目录下:

unzip audit-plugin-mysql-8.0-1.1.10-980-linux-x86_64.zip
cd audit-plugin-mysql-8.0-1.1.10-980-linux-x86_64/lib

2.mysql中查看mysql插件目录:

SHOW GLOBAL VARIABLES LIKE 'plugin_dir';

image.png

3.复制libaudit_plugin.so到mysql插件目录下:

cp libaudit_plugin.so  /usr/local/mysql/lib/plugin/
chmod +x libaudit_plugin.so
chown mysql:mysql libaudit_plugin.so

4.mysql命令行安装libaudit_plugin.so:

install plugin audit soname 'libaudit_plugin.so';

5.开启审计功能:

set global audit_json_file=1;

6.修改mysql配置文件my.cnf:

audit_record_cmds='insert,delete,update,create,drop,alter,grant,truncate'
audit_json_file=on       #保证mysql重启后自动启动插件
plugin-load=AUDIT=libaudit_plugin.so   #防止删除了插件,重启后又会加载
audit_json_log_file=/usr/local/data/mysql/mysql_audit.json  #日志路径

7.查看mysql插件:

show plugins;

image.png

8.查看审计插件版本:

show global status like 'AUDIT_version';

image.png

Q.E.D.