一、本次内容
本次主要说明MySQL数据库身份鉴别a、b、c测评项相关知识点和个人理解。
二、测评项
a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;
b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施;
c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听;
三、测评项a项
a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;
3.1详解
我个人理解就是登录的用户需要进行密码登录,密码长度和内容需要符合要求,不能太过简单,需要定期更换密码。(高风险:密码为弱口令、空口令、默认口令即判定为高风险。)
3.2密码操作实施
先说一下版本,我用的是8.0.17,如图:
MySQL用户的信息,都保存在名称为“mysql”的database中,可以这样来查看:
先登录MySQL然后
show databases;
从图中可以看到database列表里面有一个mysql库,接下来我们需要进入这个库中查询数据,
use mysql;
可以 show tables; 看一下mysql库的表的信息。如图
接下来输入命令查询用户,如果按照资料上面说的命令去操作,很有可能会报错,具体需要看数据库版本,MySQL5.7以上的很大可能会报错。因为MySQL从某个版本(应该是5.7以上,实际情况未测试)开始,密码字段不是password,而是authentication_string,
所以这样查询会报错,我们只需要吧password换成authentication_string即可。命令如下:
select user,authentication_string from user;
以上结果可知无空密码用户,也就是root账户已设置密码,注意root上面三个用户为默认账户,已默认锁定。
3.3密码复杂度设置
初级测评资料上面给的命令是:show variables like ‘validate_password%’; 我们通过命令查询为空,说明没有,因为刚开始的时候就很疑惑为什么会为空,然后查询了一下资料发现,密码复杂度策略需要validate_password.dll这个插件支持,我这个版本通过show plugins查询得知默认没有安装这个插件,这里也说了因为牵扯到高风险,密码须符合复杂度要求,部分符合。
为了以后在测评过程中不尴尬,我决定设置一下复杂度策略,在mysql的配置文件my.cnf里面添加
plugin-load-add=validate_password.so
重启MySQL,登进去show plugins查看已经有了这个插件如图
接下来我们再输入查看复杂度口令策略的命令
show variables like ‘validate_password%’;
得出结果如图:
这是默认配置,
validate_password_dictionary_file:密码策略文件,策略为STRONG才需要
validate_password_length:密码最少长度
validate_password_mixed_case_count:大小写字符长度,至少1个
validate_password_number_count :数字至少1个
validate_password_special_char_count:特殊字符至少1个
四、测评项a总结
以上就是MySQL数据库系统的测评a项,这些大家找找资料什么的都很好找到,我也是一步一步摸着找过来的。
来源:freebuf.com 2020-09-15 17:11:06 by: w837163493
请登录后发表评论
注册