主页 > 网络知识 > 等保测评2.0:MySQL安全审计

等保测评2.0:MySQL安全审计

MySQL除了自身带有的审计功能外,还存在着一些其它的审计插件。

虽然遇到这些插件的概率不高,我还是把这些插件的基本参数都列出来,到时候如果真遇到了,也不至于一头雾水。

二、测评项

a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;

b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息; 

c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等; 

d)应对审计进程进行保护,防止未经授权的中断。

三、测评项a

a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;

3.1. 自带的审计功能

在MySQL中自带了审计功能——general log,它会记录所有关于mysql的sql语句(所以会给服务器和数据库带来很大的资源占用)。

不过仅仅从测评要求的角度来说,如果开启了general log,那么是符合测评项a的。

查询的时候,可以使用log或者general关键词,这里用的是general(不过用log要好一些):

show global variables like '%general%'

 

等保测评2.0:MySQL安全审计

图中的general_log变量的值为OFF,则表示没有开启。

 

general_log_file则表示日志存储在哪,图中是存储在一个文件中。

MySQL 5.1.6版开始,可以将日志存储在表当中,这个由log_output参数进行控制,值为file,则代表存储在文件中,为table,则代表存储在gengera_log表中。

mysql> show variables like 'log_output'; +---------------+-------+ | Variable_name | Value | +---------------+-------+ | log_output | TABLE | +---------------+-------+ mysql> select * from general_log; | 2018-07-17 23:00:12 | root[root] @ localhost [] | 2 | 1132333306 | Query | select * from test.student3

也可以去看一看/etc/my.cnf文件,查看是否启用了general_log:

[mysqld] general_log = on // on为开启;off为关闭 general_log_file = /var/log/generalLog.log // 审计信息存储位置 log_timestamps = SYSTEM // 设置日志文件的输出时间为地方时

修改my.cnf文件和设置global变量的区别在于,设置global变量,则数据库重启后设置就失效了。

而修改my.cnf文件,数据库每次启动后,都会先去my.cnf读取变量的值,再传给相应的global变量。

下面其它变量也是如此。

另外要说的一点是,变量general_log的类型是bool,可以设置的值为OFF(或者0),以及ON(或者1),所以设置为ON和1是一个意思。

等保测评2.0:MySQL安全审计

 

3.2. MariaDB的Audit Plugin插件

该插件可以用于MySQL的一些版本上,比如MySQL 5.7.18。

该插件的相关变量为:

SHOW GLOBAL VARIABLES LIKE 'server_audit%'; +-------------------------------+-----------------------+ | Variable_name | Value | +-------------------------------+-----------------------+ | server_audit_events | CONNECT,QUERY,TABLE | | server_audit_excl_users | | | server_audit_file_path | server_audit.log | | server_audit_file_rotate_now | OFF | | server_audit_file_rotate_size | 1000000 | | server_audit_file_rotations | 9 | | server_audit_incl_users | | | server_audit_logging | ON | | server_audit_mode | 0 | | server_audit_output_type | file | | server_audit_query_log_limit | 1024 | | server_audit_syslog_facility | LOG_USER | | server_audit_syslog_ident | mysql-server_auditing | | server_audit_syslog_info | | | server_audit_syslog_priority | LOG_INFO | +-------------------------------+-----------------------+

解释如下:

server_audit_output_type:指定日志输出类型,可为SYSLOG或FILE server_audit_logging:启动或关闭审计 server_audit_events:指定记录事件的类型,可以用逗号分隔的多个值(connect,query,table),如果开启了查询缓存(query cache),查询直接从查询缓存返回数据,将没有table记录 server_audit_file_path:如server_audit_output_type为FILE,使用该变量设置存储日志的文件,可以指定目录,默认存放在数据目录的server_audit.log文件中 server_audit_file_rotate_size:限制日志文件的大小 server_audit_file_rotations:指定日志文件的数量,如果为0日志将从不轮转 server_audit_file_rotate_now:强制日志文件轮转 server_audit_incl_users:指定哪些用户的活动将记录,connect将不受此变量影响,该变量比server_audit_excl_users优先级高 server_audit_syslog_facility:默认为LOG_USER,指定facility server_audit_syslog_ident:设置ident,作为每个syslog记录的一部分 server_audit_syslog_info:指定的info字符串将添加到syslog记录 server_audit_syslog_priority:定义记录日志的syslogd priority server_audit_excl_users:该列表的用户行为将不记录,connect将不受该设置影响 server_audit_mode:标识版本,用于开发测试
说点什么吧
  • 全部评论(0
    还没有评论,快来抢沙发吧!