初学者等保测评2.0:mysql密码复杂度策略和登录失败处理(上) – 作者:w837163493

一、本次内容

本次主要说明MySQL数据库身份鉴别a、b、c测评项相关知识点和个人理解。

二、测评项

a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;

b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施;

c)当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听;

三、测评项a项

a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换;

3.1详解

我个人理解就是登录的用户需要进行密码登录,密码长度和内容需要符合要求,不能太过简单,需要定期更换密码。(高风险:密码为弱口令、空口令、默认口令即判定为高风险。)

3.2密码操作实施

先说一下版本,我用的是8.0.17,如图:

1600156969.png!small

MySQL用户的信息,都保存在名称为“mysql”的database中,可以这样来查看:

先登录MySQL然后

show databases;

1600156902.png!small

从图中可以看到database列表里面有一个mysql库,接下来我们需要进入这个库中查询数据,

use mysql;

1600157175.png!small

可以 show tables; 看一下mysql库的表的信息。如图

1600157563.png!small

接下来输入命令查询用户,如果按照资料上面说的命令去操作,很有可能会报错,具体需要看数据库版本,MySQL5.7以上的很大可能会报错。因为MySQL从某个版本(应该是5.7以上,实际情况未测试)开始,密码字段不是password,而是authentication_string,

1600157390.png!small

所以这样查询会报错,我们只需要吧password换成authentication_string即可。命令如下:

select user,authentication_string from user;

1600157758.png!small

以上结果可知无空密码用户,也就是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查看已经有了这个插件如图

1600159718.png!small

接下来我们再输入查看复杂度口令策略的命令

show variables like ‘validate_password%’;

得出结果如图:

1600159783.png!small

这是默认配置,

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

© 版权声明
THE END
喜欢就支持一下吧
点赞0
分享
评论 抢沙发

请登录后发表评论