基于MySQL服务器安全性需求,我们需要部署一套安全审计机制,以便当服务器出现用户活跃访问数据库、用户修改表结构、大批量数据修改等等危险操作时,我们可以进行实时的监控,报警。对于事后问题处理,有据可查。
在MySQL5.5之前,MySQL本身缺少一套的对服务器操作的审计机制,对于非法或者危险的操作、错误捕捉、登录审计尚不能很好的支持。当出现drop了一个表或者不慎不带where的删除表数据等危险操作时,应该被明确的记录下来。
在MySQL5.5里,添加了额外的流程来对这些我们所关心的地方进行事件捕获;然后将捕获到的事件传递给Audit Plugin;而Audit Plugin所要做的,就是对这些事件进行判别,并做必要的反应,比如记录到log或发送一个报警。
Audit Plugin基本工作流程:
Audit Plugin内部实现:
sql/sql_audit.cc 该文件定义了audit插件的接口函数;
sql/sql_audit.h 该文件申明函数,并定义了函数mysql_audit_general_log,在触发audit时,首先调用的就是该函数;
audit_null.c 模版程序,给出了最基础的audit插件所需要定义的接口,程序audit_null.c中包括了两个必备头文件mysql/plugin.h,mysql/plugin_audit.h。
新增加的审计插件,其实现思想是在内核代码的不同位置增加相应的接口函数,具体实现在sql_audit.cc和sql_audit.h文件。在/plugin/audit_null/文件夹下的样本程序文件audit_null.c(对该文件进行编译之后生成so文件即是我们所需的插件,MySQL5.5.23模版so文件为adt_null.so),插件名字为NULL_AUDIT。
在模板程序audit_null.c 的基础上,我们编辑了符合自己业务需求的程序,主要对audit_null_notify函数进行了相应更改,能够实现通过配置文件读取条件,对来自指定用户和访问IP的数据库操作情况进行记录,包括操作时间、用户名、操作语句记录、影响行数。
配置文件形式如下:
[log]
file = /var/lib/mysql/my_audit.log
[audit1]
user = un_
[audit2]
user = us_
[audit3]
user = uapp_
ip = 192.168.XX
用sysbench工具对审计插件进行性能测试后发现,当安装了自定义审计插件后,如果完全没有需要审计的内容,则几乎没有性能损失,约为0.1%;如果所有的操作都需要进行记录,则性能会下降30%左右,这些性能损失应该主要来自于IO消耗。
后一种场景的测试信息如下:
测试服务器 |
vms00XXX (5.5.21) |
硬件配置 |
CPU 2核 内存 4G |
表数据量 |
100万 |
并发线程数 |
200 |
测试时间 |
10分钟*3 |
测试帐号 |
符合审计条件 |
queries performed |
未使用插件 |
使用插件 |
降幅 |
read |
1876910 |
1287524 |
31.40% |
write |
670325 |
459830 |
31.40% |
other |
268130 |
183932 |
31.40% |
total |
2815365 |
1931286 |
31.40% |
transactions |
134065 (223.37 per sec.) |
91966 (153.23 per sec.) |
31.40% |
deadlocks |
0 (0.00 per sec.) |
0 (0.00 per sec.) |
31.40% |
read/write requests |
2547235 (4244.01 per sec.) |
1747354 (2911.32 per sec.) |
31.40% |
other operations |
268130 (446.74 per sec.) |
183932 (306.45 per sec.) |
31.40% |
相关推荐
mysql 5.7安全审计插件 Linux X86-X64通用...audit-plugin-mysql-5.7-1.1.7 for Linux 等保开启审计插件,貌似官网找不到,发出来共享. 缺点:日志信息比较大,对性能影响大。 优点:对每一时刻每一用户的操作都有记录。
mysql 5.7社区版安全审计插件 audit-plugin-mys mysql5.7社区版安全审计 安全审计插件 mysql审计插件 审计插件
日志安全审计插件,原官网已经无法下载 mysql 5.7社区版安全审计插件audit-plugin-mysql-5.7-1.1.7-921-linux-x86_64.zip mysql 5.7社区版安全审计插件audit-plugin-mysql-5.7-1.1.7-921-linux-x86_64.zip mysql 5.7...
MySQL审计工具AuditPlugin安装使用手册,方便使用MYSQL的DBA部署审计
mysql 5.7社区版安全审计插件audit-plugin-mysql-5.7-1.1.7-921-linux-x86_64.zip
mysql 开启审计插件
mysql8.0审计插件Mcafee安装详解
mysql_windows_audit_plugin mysql_windows_audit_plugin是 MySQL 服务器的审计插件,它将连接和断开连接事件记录到 Windows 事件日志。 此插件仅在 MySQL Server 安装在 Microsoft Windows 操作系统中时有效。 按照...
audit-plugin-mysql-5.7-1.1.7-921-linux-x86_64
mysql5.7 审计插件及安装步骤 参考:https://www.modb.pro/db/88152
基本上,MariaDB Audit Plugin的目的是记录服务器的活动。对于每个客户端会话,它记录谁连接到服务器(即用户名和主机),执行了哪些查询,访问了哪些表以及更改了服务器变量。此信息存储在循环日志文件中,或者可以...
mysql8.0审计日志插件mariaDb安装失败记录 记录安装过程,失败原因
高级教程MySQL性能优化实战。MySQL体系架构,MySQL设计优化,MySQL系统优化,MySQL配置优化,MySQL语句优化
mysql-5.7.24安装包以及详细教程,亲测有效,绝对有效。
Linux下离线部署mysql,office2013版本,向下会出现版本兼容问题-----------------------------------------------------------------------------------------------------------------
mysql 审计插件,下载下来放到plugin目录下就可以直接用
Windows Build Audit 是多个应用程序的项目,用于从计算机获取已安装的软件、硬件和系统信息并将其呈现在报告中。 旨在易于在大型网络上安装、使用和维护。
审核机器人 审核网站的性能,最佳做法,可访问性,SEO,PWA和安全性的漫游器。 您可以对其进行设置,使其仅在某些类别上运行,并且仅根据指定的未满足要求使PR失败。 更多信息即将推出。 执照 ...
mariadb-5.5.68-linux-x86_64.tar.gz md5sun: 8082e4e06fcbc798c5353384ba15883b mariadb-5.5.68-linux-x86_64/lib/plugin中有server_audit.so,可用与MySQL数据库审计。
Audit Trail 157 WP-CMS Post Control 158 Guest Blogger 159 Adding a new article import 160 Subscribe to Author Posts Feed 161 Author Advertising 162 Setting up Author Advertising widget 163 The ...