赞
踩
测评方法:
select user,host,password from mysql.user;
// 输出用户列表,查者是否存在相同用户名
select * from mysql.user where length(password)=0 or password is null;
// 输出结果是否为空
show variables like 'validate_password%';
注:MySQL过低版本不能进行密码复杂度配置,则关注当前口令复杂度策略,有些MySQL数据库password字段无效,需要替换为authentication_string
validate_password_check_user_name
:OFFvalidate_password_dictionary_file
: 字典文件validate_password_length
:8 密码长度validate_password_mixed_case_count
:1 大小写validate_password_number_count
:1 密码中数据长度validate_password_policy
:1 or MEDIUMvalidate_password_special_char_count
:1 特殊字符user
表中 password_last_changed
字段;MySQL5.6.6开始,
user
表多了一个password_expired
字段,默认为N
,设置为Y
后,则通过定时器任务等方式来改密码;
从5.7.4版本开始,MySQL多了一个全局变量default_password_lifetime
,可执行
select global variables like 'default_password_lifetime';
查看,并且user
表增加了两个字段:password_lifetime
、password_last_changed
,可执行:
select user,host,password,password_last_changed,password_expired from mysql.user;
查看。对于default_password_lifetime
和password_lifetime
而言,值为0则代表有效期为永远,单位为天。
测评方法:
show variables like '%max_connect_errors%';
// 查看max_connect_errors = 100;
show variables like '%timeout%';
//返回值Wait_timeout=28800(秒)。
select plugin_name,plugin_status from information_schema.plugins where plugin_name like 'connection%';
相关参数如下:(事件毫秒)
connection_control_failed_connections_threshold
:3
connection_control_min_connection_delay
:1000
connection_control_max_connection_delay
:108000
前三次失败没延迟,第四次失败1000毫秒延迟,第五次2000直到最大延迟108000
注:MYSQL数据库要配置登录失败处理功能需要安装插件,默认是无此功能,不符合
测评方法:
询问核查通过什么管理工具连接数据库,查询此连接工具是否具备远程连接加密措施
注;MySQL自己支持使用ssl协议对连接进行加密,相关参数有have_openssl
、have_ssl
,执行
show global variables like '%ssl%';
为YES则代表数据库支持SSL连接。
如果某连接使用了SSL,使用status可以查看到,使用SSL需要运行mysql_ssl_rsa_setup
测评方法:
询问并核查是否采用双因子登录数据库,且其中一种属于密码技术
注:通常情况下都是用户名+口令,且数据库层面实现双因子登录比较困难,目前好像只有用户名+口令+Ukey可以实现
测评方法:
执行语句
select user,host from mysql.user
询问数据库管理员各个账户的作用与权限,输出结果是否与实际人员相符
注:此项基本上时默认符合,因为至少有个root用户存在
测评方法:
查看root账户是否重命名和修改默认口令
注:默认账户root可以修改,若因为业务原因不方便修改,则应该使用强口令
测评方法:
查看user表再访谈管理员表中用户与现实是否做到一一对应,且无共用,多余,过期的账户
测评方法:
select Host,User,File_priv,Shutdown_priv,grant_priv from user;
查看各管理员账户权限设置是否与实际情况对应
注:此项至少要包括系统管理员和审计管理员才能算符合
测评方法:
mysql>selcec * from mysql.user\G //检查用户权限列表
mysql>selcec * from mysql.db\G //检查数据库权限列表
mysql>selcec * from mysql.tables_priv\G //检查用户表权限列表
输出的权限列是是否与管理员制定的访问控制策略及规则一致
注:通常情况下是由系统管理员来配置策略,基本上算默认符合
测评方法:
此项主要检查访问的主体和客体是什么级别的
注:通常情况下数据库层面主体为用户及,客体为数据库表级
测评方法:
show variables like 'log_%';
// 查看二进制日志、慢查询日志、错误日志、操作日志是否开启
show global variables like '%general%';
//值为OFF或0表示未开启
测评方法:
mysql>show master status; //查看当前日志
根据日志存放路径,查看输出的日志内容
注:只要开启了审计功能,此项默认符合
测评方法:
询问管理员是否对审计记录保护并定期备份,备份在哪里,并且日志记录保存时间是否大于6个月
测评方法:
切换开放状态的账户(非root账户)进行测试,看能否中断审计、日志服务:
测评方法:
数据库未涉及可信技术的使用,故不适用
测评方法:
若数据库只涉及鉴别信息,则按照身份鉴别c项来写,其他数据绝大多数情况考虑不适用由应用层面负责
测评方法:
如果数据保密性满足要求则完整性也满足要求,可以根据数据保密性b)来写
测评方法:
数据库只涉及了身份鉴别,看身份鉴别c项
测评方法:
主要查看鉴别信息根据数据库采用了什么加密方式,至于其他重要数据根据现场查看情况来定
测评方法:
主要询问管理员是否对数据库进行本地备份,并且是否做过恢复性测试
测评方法:
主要询问管理员是否做了异地实时备份,具体备份在哪里,保存时间
注:此项要注意实时,往往业主做了异地备份,但不是实时,也只能算部分符合
测评方法:
询问管理员是否对数据库采用热冗余方式部署
注:需要注意一定要是重要数据存在的数据库,可根据现场具体情况和业务判断
测评方法:
mysql数据库自身能够保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除
测评方法:
mysql数据库自身能够保证存有敏感数据的存储空间被释放或重新分配前得到完全清除
测评方法:
数据库不涉及对个人信息的采集,此项在应用层面进行判定
测评方法:
数据库不涉及对个人信息的采集,此项在应用层面进行判定
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。