mysql审计的示例分析

开发技术 作者:小新 2024-04-03 09:45:01
这篇文章给大家分享的是有关mysql审计的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。mysql审计插件audit审计插件的�...

这篇文章给大家分享的是有关mysql审计的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

mysql审计插件

audit审计插件的二进制包下载地址:
到https://bintray.com/mcafee/mysql-audit-plugin/release网站下载5.6对应的二进制包
名字为audit-plugin-mysql-5.6-1.1.2-694-linux-x86_64.zip查看MySQL插件目录:
mysql> show global variables like 'plugin_dir';
+---------------+------------------------------+
| Variable_name | Value                        |
+---------------+------------------------------+
| plugin_dir    | /usr/local/mysql/lib/plugin/ |
+---------------+------------------------------+
1 row in set (0.00 sec)mysql> quit
Bye解压缩并cp libaudit_plugin.so到MySQL对应的插件目录:
# cd /root
# unzip audit-plugin-mysql-5.6-1.1.2-694-linux-x86_64.zip
Archive:  audit-plugin-mysql-5.6-1.1.2-694-linux-x86_64.zip
   creating: audit-plugin-mysql-5.6-1.1.2-694/
   creating: audit-plugin-mysql-5.6-1.1.2-694/lib/
  inflating: audit-plugin-mysql-5.6-1.1.2-694/lib/libaudit_plugin.so
  inflating: audit-plugin-mysql-5.6-1.1.2-694/COPYING
  inflating: audit-plugin-mysql-5.6-1.1.2-694/THIRDPARTY.txt
  inflating: audit-plugin-mysql-5.6-1.1.2-694/README.txt
   creating: audit-plugin-mysql-5.6-1.1.2-694/utils/
  inflating: audit-plugin-mysql-5.6-1.1.2-694/utils/offset-extract.sh# cd /root/audit-plugin-mysql-5.6-1.1.2-694/lib# cp libaudit_plugin.so  /usr/local/mysql/lib/plugin/
#cd /usr/local/mysql/lib/plugin/
# chmod +x libaudit_plugin.so编辑/etc/my.cnf,添加如下内容:
plugin-load=AUDIT=libaudit_plugin.so# service mysqld restart
Shutting down MySQL.....                                   [  OK  ]
Starting MySQL.....                                        [  OK  ]或者用命令安装plugin:
mysql>INSTALL PLUGIN AUDIT SONAME 'libaudit_plugin.so';查看安装的plugin:
mysql> show plugins;
+----------------------------+----------+--------------------+--------------------+---------+
| Name                       | Status   | Type               | Library            | License |
+----------------------------+----------+--------------------+--------------------+---------+
| binlog                     | ACTIVE   | STORAGE ENGINE     | NULL               | GPL     |
| mysql_native_password      | ACTIVE   | AUTHENTICATION     | NULL               | GPL     |
| mysql_old_password         | ACTIVE   | AUTHENTICATION     | NULL               | GPL     |
| sha256_password            | ACTIVE   | AUTHENTICATION     | NULL               | GPL     |
| MyISAM                     | ACTIVE   | STORAGE ENGINE     | NULL               | GPL     |
| MRG_MYISAM                 | ACTIVE   | STORAGE ENGINE     | NULL               | GPL     |
| MEMORY                     | ACTIVE   | STORAGE ENGINE     | NULL               | GPL     |
| CSV                        | ACTIVE   | STORAGE ENGINE     | NULL               | GPL     |
| BLACKHOLE                  | ACTIVE   | STORAGE ENGINE     | NULL               | GPL     |
| InnoDB                     | ACTIVE   | STORAGE ENGINE     | NULL               | GPL     |
| INNODB_TRX                 | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_LOCKS               | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_LOCK_WAITS          | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_CMP                 | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_CMP_RESET           | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_CMPMEM              | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_CMPMEM_RESET        | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_CMP_PER_INDEX       | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_CMP_PER_INDEX_RESET | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_BUFFER_PAGE         | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_BUFFER_PAGE_LRU     | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_BUFFER_POOL_STATS   | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_METRICS             | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_FT_DEFAULT_STOPWORD | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_FT_DELETED          | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_FT_BEING_DELETED    | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_FT_CONFIG           | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_FT_INDEX_CACHE      | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_FT_INDEX_TABLE      | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_SYS_TABLES          | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_SYS_TABLESTATS      | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_SYS_INDEXES         | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_SYS_COLUMNS         | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_SYS_FIELDS          | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_SYS_FOREIGN         | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_SYS_FOREIGN_COLS    | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_SYS_TABLESPACES     | ACTIVE   | INFORMATION SCHEMA | NULL               | GPL     |
| INNODB_SYS_DATAFILES       | ACTIVE   | INFORMATION SCHEMA | NULL  

mysql审计的示例分析offset-extract.txt

            | GPL     |
| PERFORMANCE_SCHEMA         | ACTIVE   | STORAGE ENGINE     | NULL               | GPL     |
| FEDERATED                  | DISABLED | STORAGE ENGINE     | NULL               | GPL     |
| ARCHIVE                    | ACTIVE   | STORAGE ENGINE     | NULL               | GPL     |
| partition                  | ACTIVE   | STORAGE ENGINE     | NULL               | GPL     |
| AUDIT                      | ACTIVE   | AUDIT              | libaudit_plugin.so | GPL     |
+----------------------------+----------+--------------------+--------------------+---------+
43 rows in set (0.00 sec)可以看到最后一行有AUDIT libaudit_plugin.so的字样,说明安装成功.

mysql> SHOW GLOBAL VARIABLES LIKE 'audit%';
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Variable_name                   | Value                                                                                                                                                                                                                                                                                                                                                                                       |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| audit_before_after              | after                                                                                                                                                                                                                                                                                                                                                                                       |
| audit_checksum                  |                                                                                                                                                                                                                                                                                                                                                                                             |
| audit_client_capabilities       | OFF                                                                                                                                                                                                                                                                                                                                                                                         |
| audit_delay_cmds                |                                                                                                                                                                                                                                                                                                                                                                                             |
| audit_delay_ms                  | 0                                                                                                                                                                                                                                                                                                                                                                                           |
| audit_force_record_logins       | OFF                                                                                                                                                                                                                                                                                                                                                                                         |
| audit_header_msg                | ON                                                                                                                                                                                                                                                                                                                                                                                          |
| audit_json_file                 | OFF                                                                                                                                                                                                                                                                                                                                                                                         |
| audit_json_file_bufsize         | 1                                                                                                                                                                                                                                                                                                                                                                                           |
| audit_json_file_flush           | OFF                                                                                                                                                                                                                                                                                                                                                                                         |
| audit_json_file_retry           | 60                                                                                                                                                                                                                                                                                                                                                                                          |
| audit_json_file_sync            | 0                                                                                                                                                                                                                                                                                                                                                                                           |
| audit_json_log_file             | mysql-audit.json                                                                                                                                                                                                                                                                                                                                                                            |
| audit_json_socket               | OFF                                                                                                                                                                                                                                                                                                                                                                                         |
| audit_json_socket_name          | /var/run/db-audit/mysql.audit__usr_local_mysql_data_3306                                                                                                                                                                                                                                                                                                                                    |
| audit_json_socket_retry         | 10                                                                                                                                                                                                                                                                                                                                                                                          |
| audit_offsets                   |                                                                                                                                                                                                                                                                                                                                                                                             |
| audit_offsets_by_version        | ON                                                                                                                                                                                                                                                                                                                                                                                          |
| audit_password_masking_cmds     | CREATE_USER,GRANT,SET_OPTION,SLAVE_START,CREATE_SERVER,ALTER_SERVER,CHANGE_MASTER,UPDATE                                                                                                                                                                                                                                                                                                    |
| audit_password_masking_regex    | identified(?:/\\*.*?\\*/|\\s)*?by(?:/\\*.*?\\*/|\\s)*?(?:password)?(?:/\\*.*?\\*/|\\s)*?['|"](?.*?)(?<!--\\\\)['|"]|password(?:/\\*.*?\\*/|\\s)*?\\((?:/\\*.*?\\*/|\\s)*?['|"](?.*?)(?<!--\\\\)['|"](?:/\\*.*?\\*/|\\s)*?\\)|password(?:/\\*.*?\\*/|\\s)*?(?:for(?:/\\*.*?\\*/|\\s)*?\\S+?)?(?:/\\*.*?\\*/|\\s)*?=(?:/\\*.*?\\*/|\\s)*?['|"](?.*?)(?<!--\\\\)['|"]|password(?:/\\*.*?\\*/|\\s)*?['|"](?.*?)(?<!--\\\\)['|"] |<br --&gt="" |="" audit_record_cmds=""  ="" || audit_record_objs               |                                                                                                                                                                                                                                                                                                                                                                                             |
| audit_sess_connect_attrs        | ON                                                                                                                                                                                                                                                                                                                                                                                          |
| audit_socket_creds              | ON                                                                                                                                                                                                                                                                                                                                                                                          |
| audit_uninstall_plugin          | OFF                                                                                                                                                                                                                                                                                                                                                                                         |
| audit_validate_checksum         | ON                                                                                                                                                                                                                                                                                                                                                                                          |
| audit_validate_offsets_extended | ON                                                                                                                                                                                                                                                                                                                                                                                          |
| audit_whitelist_cmds            | BEGIN,COMMIT,PING                                                                                                                                                                                                                                                                                                                                                                           |
| audit_whitelist_users           |                                                                                                                                                                                                                                                                                                                                                                                             |
+---------------------------------+---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
29 rows in set (0.00 sec)

audit记录的命令,默认为记录所有命令
 
  可以设置为任意dml、dcl、ddl的组合
 
  如:audit_record_cmds=select,insert,delete,update

audit_record_objs
 
   audit记录操作的对象,默认为记录所有对象,
 
   可以用SET GLOBAL audit_record_objs=NULL设置为默认
 
   也可以指定为下面的格式
 
   audit_record_objs=,test.*,mysql.*,information_schema.*测试如下:
查看是否开启audit功能:
mysql> show variables like 'audit_json_file';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| audit_json_file | OFF   |
+-----------------+-------+
1 row in set (0.00 sec)开启audit功能:
mysql> set global audit_json_file=on;
Query OK, 0 rows affected (0.00 sec)mysql> show variables like 'audit_json_file';
+-----------------+-------+
| Variable_name   | Value |
+-----------------+-------+
| audit_json_file | ON    |
+-----------------+-------+
1 row in set (0.00 sec)

审计test库的所有对象:
mysql> SET GLOBAL audit_record_objs='test.*';
Query OK, 0 rows affected (0.00 sec)审计test库的insert,update和delete操作:
mysql> set global audit_record_cmds='insert,delete,update';
Query OK, 0 rows affected (0.00 sec)查看记录文件的路径和名称信息:
mysql> show variables like 'audit_json_log_file';
+---------------------+------------------+
| Variable_name       | Value            |
+---------------------+------------------+
| audit_json_log_file | mysql-audit.json |
+---------------------+------------------+
1 row in set (0.00 sec)

文件路径如下:
mysql> system find / -name mysql-audit.json
/usr/local/mysql/data/mysql-audit.json
对test库下的person表做insert,update和delete测试:

mysql> insert into person values('5','liuyb','29');
Query OK, 1 row affected (0.03 sec)mysql> update person set age='55' where name='dsf';
Query OK, 2 rows affected (0.04 sec)
Rows matched: 2  Changed: 2  Warnings: 0mysql> delete from person where name='cf';
Query OK, 1 row affected (0.03 sec)

mysql> select * from person;
+----+----------+------+
| id | name     | age  |
+----+----------+------+
| 2  | dsf      |   55 |
| 3  | dsf      |   55 |
| 4  | chenfeng |   38 |
| 5  | liuyb    |   29 |
+----+----------+------+
4 rows in set (0.00 sec)打开/usr/local/mysql/data/mysql-audit.json文件查看审计数据:
[root@localhost lib]# cat /usr/local/mysql/data/mysql-audit.json
{"msg-type":"header","date":"1494389691599","audit-version":"1.1.2-694","audit-protocol-version":"1.0","hostname":"localhost","mysql-version":"5.6.27-log","mysql-program":"/usr/local/mysql/bin/mysqld","mysql-socket":"/tmp/mysql.sock","mysql-port":"3306","server_pid":"41506"}
{"msg-type":"activity","date":"1494389798201","thread-id":"6","query-id":"53","user":"root","priv_user":"root","ip":"","host":"localhost","connect_attrs":{"_os":"Linux","_client_name":"libmysql","_pid":"41662","_client_version":"5.6.27","_platform":"x86_64","program_name":"mysql"},"rows":"1","cmd":"insert","objects":[{"db":"test","name":"person","obj_type":"TABLE"}],"query":"insert into person values('5','liuyb','29')"}
{"msg-type":"activity","date":"1494389835611","thread-id":"6","query-id":"55","user":"root","priv_user":"root","ip":"","host":"localhost","connect_attrs":{"_os":"Linux","_client_name":"libmysql","_pid":"41662","_client_version":"5.6.27","_platform":"x86_64","program_name":"mysql"},"rows":"2","cmd":"update","objects":[{"db":"test","name":"person","obj_type":"TABLE"}],"query":"update person set age='55' where name='dsf'"}
{"msg-type":"activity","date":"1494390005360","thread-id":"6","query-id":"60","user":"root","priv_user":"root","ip":"","host":"localhost","connect_attrs":{"_os":"Linux","_client_name":"libmysql","_pid":"41662","_client_version":"5.6.27","_platform":"x86_64","program_name":"mysql"},"rows":"1","cmd":"delete","objects":[{"db":"test","name":"person","obj_type":"TABLE"}],"query":"delete from person where name='cf'"}可以看到审计结果里有对test库person表的操作记录(insert,update和delete),至此,audit插件安装成功.

ps:比较重要的地方。。。。

Offset Extraction指定,目前macfee audit plugin还没有提供统一的API的,所以要手动提取offset

1)  下载官方脚本 :https://raw.github.com/mcafee/mysql-audit/master/offset-extract/offset-extract.sh

2) chmod u+x offset-extract.sh

3) ./offset-extract.sh /usr/local/mysql/bin/mysqld

[root@10_5_12_15 audit-plugin-mysql-5.5]# ./offset-extract.sh  /usr/local/mysql/bin/mysqld
//offsets for: /usr/local/mysql/bin/mysqld (5.5.21-rel25.1-log)
{"5.5.21-rel25.1","a877e71dd4ddc965390714ae8be2e540", 6456, 6504, 4064, 4504, 104, 2576},

上面的6456, 6504, 4064, 4504, 104, 2576数字要添加到/etc/my.cnf的 [mysqld]下

4、配置和验证

1)在/etc/my.cnf中的[mysqld]下添加下面两行

#Audit Plugin#
plugin-load=AUDIT=libaudit_plugin.so
audit_offsets=6456, 6504, 4064, 4504, 104, 2576

感谢各位的阅读!关于“mysql审计的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

原创声明
本站部分文章基于互联网的整理,我们会把真正“有用/优质”的文章整理提供给各位开发者。本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
本文链接:http://www.jiecseo.com/news/show_4792.html
mysql