安全审计
测评项:a) 应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计。
核查点:日志要素
MySQL不对特定用户执行日志收集策略,默认覆盖所有用户。仅关注登录失败(log_error)/ SQL语句执行(log_bin)是否处于开启状态。
核查命令
show variables like 'log%';
核查效果

测评项:b) 审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息。
测评方法
(1)执行“mysql>show variables like ‘log_%’”命令,查看输出的日志内容是否覆盖所有用户,并核查审计记录覆盖的内容。
(2)核查是否已使用第三方审计工具增强MySQL的日志审计功能。如果使用了第三方审计工具,则查看其审计内容是否包含事件的日期和事件、用户、事件类型、事件是否成功及其他与审计相关的信息。
操作步骤&预期结果
(1)数据库本地启用了日志审计功能,审计内容覆盖每个用户,能够记录重要的用户行为和重要安全事件。
① show variables like 'log_%';
② show global variables like '%general%';
(2)使用了第三方数据库审计产品,审计内容覆盖每个用户,能够记录重要的用户行为和重要安全事件。
测评项:c) 应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等。
测评方法
(1)访谈管理员,了解审计记录的保护方式。核查审计记录是否定期备份,了解备份策略。
(2)核查是否已严格限制用户访问审计记录的权限。
操作步骤&预期结果
(1)采用备份、转存等手段对审计记录进行保护,避免未预期的删除、修改或覆盖,数据库本地日志保存时间超过6个月。
exprie_logs_days为日志存储时间(已经通过“set global expire_logs_days = 180;”命令设置保存时间)
(2)采用第三方数据库审计产品审计记录保存时间超过6个月。
测评项:d) 应对审计进程进行保护,防止未经授权的中断。
测评方法
(1)核查是否已严格限制管理员、审计员的权限。
(2)尝试以用户身份重启实例、关闭审计功能,查看是否能成功(应为否)。
操作步骤&预期结果
(1)非审计员账户无法中断审计进程,审计进程已受到保护。
(2)非审计员账户无法对审计进程纪念性开启、关闭操作。对这类操作有日志记录。


