a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计
1.
show variables like 'log_%';
查看二进制日志、慢查询日志、错误日志、操作日志是否开启
2.
show global variables like '%general%';值为OFF或0表示未开启
核查是否采取第三方工具增强MySQL日志功能。
若有,记录第三方审计工具的审计内容,
查看是否包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息
- 二进制日志
log_bin = LOG_NAME: (只读变量)只能通过修改配置文件来指定是否启用二进制日志(全局的) #my.cnf配置文件中没有log_bin的配置,表示未开启二进制日志,如果存在log_bin的配置,则表示开启了二进制日志,同时,二进制日志文件的名称将会以log_bin对应的值为文件名前缀,文件默认位置在/var/lib/mysql/下,二进制日志文件的后缀名会进行自动编号,每次日志滚动后,后缀名编号自动加1.
log_bin_basename = /var/lib/mysql/mysql-bin: 指定二进制日志的文件的基名
log_bin_index = /var/lib/mysql/mysql-bin.index:指定二进制日志文件的索引文件
binlog_format = STATEMENT|ROW|MIXED: 指定基于哪种方式进行记录 STATEMENT: 基于“语句”记录 ROW: 基于“行”记录 MIXED: 让系统自行判定该基于哪种方式记录sync_binlog = 1|0: 设定是否启动二进制日志同步功能
-->每次提交事务,会将缓存中的内存刷新到二进制日志文件中。
-->默认每个sql语句是一个事务,而且默认事务会自动提交,所以,默认的性能很差 -->此值为0时,表示当事务提交后,不会立即将内存中的binlog刷新到磁盘中;安全性最差,性能最高 -->此值为1时,表示每一次事务提交后,都会立即将内存中的二进制文件同步到磁盘中;安全性最高,性能最差 -->还能设置为N,当设置为3时,表示每3次事务提交后,将binlog从内存刷写到磁盘一次,值设置的越大,有可能丢失的日志数据越多,但性能会越好max_binlog_size = SIZE: 指定二进制日志文件的上限,超过上限会滚动,以字节为单位(默认为1G,为1073741824B)
max_binlog_cache_size = SIZE: 指定二进制日志缓存空间大小,空间被填满,会自动滚动
sql_log_off = on|off: 是否将一般的查询操作记录到二进制日志中
sql_log_bin = ON |OFF: 指定是否启用二进制日志(会话级别)
log_bin_trust_function_creators = on|off: 指定是否允许创建可能导致不安全的函数
- 慢查询日志
show global variables like '%slow%';
1 slow_query_log = OFF|ON (0|1) #开启慢查询日志
2 slow_query_log_file = LOCALHOST-SLOW.log #慢查询日志的文件路径
3 long_query_time #慢查询时长;默认是10s
4 log_slow_rate_limit #如果要记录的慢查询日志非常多的话,会按照速率来记录,默认1秒记录一个
5 log_slow_verbosity=full | query_plan #记录的详细级别
6 log_output #指定将记录到的查询保存到什么位置
- 错误日志
show variables like '%log_error%';
show variables like '%log_warnings%';
1 log_error = /var/log/mysql_error.log #指定错误日志的输出位置
2 log_warnings 为0, 表示不记录告警信息。
3 log_warnings 为1, 表示告警信息写入错误日志。
4 log_warnings 大于1, 表示各类告警信息,例如有关网络故障的信息和重新连接信息写入错误日志。(默认为2)
- 操作日志
b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息
1)执行下列语句:
mysql>show master status;查看当前日志
根据日志存放路径,查看输出的日志内容
2)核查是否采取第三方工具增强MySQL日志功能。
若有,记录第三方审计工具的审计内容,查看是否包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息
注;只要开启了审计功能,此项默认符合
c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等
询问管理员
d)应对审计进程进行保护,防止未经授权的中断
切换开放状态的账户(非root账户)进行测试,看能否中断审计、日志服务: