身份鉴别
身份鉴别A:应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换。
测评方法:
1)执行mysql -u root -p命令,查看是否提示输入口令鉴别用户身份。
mysql -u root -p
2)查询user表,应不存在相同的用户名。
mysql> SELECT user,host FROM mysql.user;
+---------------+-----------+
| user | host |
+---------------+-----------+
| mysql.session | localhost |
| mysql.sys | localhost | =====> 不存在相同的用户名
| root | localhost |
+---------------+-----------+
3 rows in set (0.00 sec)
3)查看口令复杂度配置信息:
SHOW VARIABLES LIKE 'validate%';
+--------------------------------------+-------+
| Variable_name | Value |
+--------------------------------------+-------+
| validate_password_check_user_name | OFF |
| validate_password_dictionary_file | |密码策略文件,策略为STRONG才需要
| validate_password_length | 3 |密码最少长度
| validate_password_mixed_case_count | 0 |大小写字符长度
| validate_password_number_count | 0 |数字最少个数
| validate_password_policy | LOW |修改口令策略
| validate_password_special_char_count | 1 |特殊字符最少个数
+--------------------------------------+-------+
7 rows in set (0.00 sec)
身份鉴别B:应检查数据库系统,查看是否已配置了鉴别失败处理功能,并设置了非法登录次数的限制值,对超过限制值的登录终止其鉴别会话或临时封闭帐号。查看是否设置网络登录连接超时,并自动退出。
测评方法:
1)询问管理员是否采取其他手段配置数据库登录失败处理功能。(若MySQL数据库采用第三方管理软件,第三方管理软件也要设置登录失败锁定次数)
2)数据库管理系统本地配置:
主要看这两个参数有没有设置:max_connect_errors、Wait_timeout 。
mysql> SHOW VARIABLES LIKE 'max_connect_errors'; =====> 查看登录失败策略
+--------------------+-------+
| Variable_name | Value |
+--------------------+-------+
| max_connect_errors | 100 |
+--------------------+-------+
1 row in set (0.00 sec)
mysql> SHOW VARIABLES LIKE '%timeout%'; =====> 查看登录链接超时自动退出策略
+-----------------------------+----------+
| Variable_name | Value |
+-----------------------------+----------+
| connect_timeout | 10 |
| delayed_insert_timeout | 300 |
| have_statement_timeout | YES |
| innodb_flush_log_at_timeout | 1 |
| innodb_lock_wait_timeout | 50 |
| innodb_rollback_on_timeout | OFF |
| interactive_timeout | 28800 |
| lock_wait_timeout