freeBuf
主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

等保能力验证2022—MySQL数据库
2023-10-09 08:53:33

2022能力验证MySQL数据库的测评条款共有9条,考察的有身份鉴别、访问控制、安全审计、数据保密性 四个大点,这期就对这些条款测评要点以及预设问题进行分析。

首先我们先确定MySQL数据库安装在哪,毕竟要连接登录查看嘛,确定其安装在Linux服务器上后,可通过跳板机的HeidiSQL 连接工具进行远程管理。

1696748728_652254b810de16c48d3b7.png!small?1696748729324

1696748758_652254d6a20b0c7918b16.png!small?1696748759277

输入对应的IP地址以及账号口令,我们成功登录对应数据库

1696748801_652255015de2b3f04d3bf.png!small?1696748802092

1696748812_6522550c888be2accfa12.png!small?1696748813340

接着我们就来看看当时具体的测评结果记录是一个什么情况。

一、  身份鉴别

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

老规矩,咱们先看看官方给出的结果描述

1696748847_6522552f570dee2a9aef2.png!small?1696748847962

首先身份鉴别a)条款,我们等保要测的就是用户登录的鉴别信息是否具有复杂度且是否定期更换,这是我们正常做等保时候的思路,但是能力验证一般常考的是让你去寻找是否有绕过正常登录的方式,好比Linux操作系统的pam模块身份验证绕过(可看我之前的Linux主机能力验证文章)。

那么测评mysql数据库的时候,我们第一个要去看的就是它的配置文件,确认是否可以绕过身份验证。我们先了解一下,如何不输入密码即可登录mysql的方法。

在配置文件(Linux系统一般为 /etc/my.cnf)中添加如下字段:

在[mysqld]下添加 skip-grant-tables

1696748879_6522554f3ad26268e40c6.png!small?1696748879926

1696748904_65225568a8f38276aacf8.png!small?1696748905328

此时的用户为

1696748920_65225578de49990c681e5.png!small?1696748921388

知道有这种方式后,我们再来看看现场截图情况:

查看配置文件cat /etc/my.cnf 发现并无对应参数

1696748934_65225586cdc97ce769835.png!small?1696748935543

1696749016_652255d8766291afa7a20.png!small?1696749017160

第一步确认了没问题,那么我们就放心了,按照我们的步骤来查,先确定有哪些账户,并查看是否存在空口令账户(authentication_string 值为空的)。

select user,host,password_last_changedfrom mysql.user;

1696749034_652255ea8914504452dc0.png!small?1696749035491

确定没有什么问题,接着查看口令复杂度策略是否设置

show variables like 'validate_password%';

1696749047_652255f7c3d0d766eb367.png!small?1696749048569

我们再看密码复杂度要求校验的时候最开始要看的参数为validate_password_policy

这个参数用于控制validate_password的验证策略0=low  1=MEDIUM  2=strong。

  • 当validate_password_policy=0时 这个时候只对密码长度做验证,也就是说它和validate_password_length一起配合起来完成用户验证。

这种情况下只要密码达到validate_password_length指定的长度后就行。

  • 当valdiate_password_policy=1时 这个时候首先要满足的是validate_password_policy=0时的验证要求。然后现去验证密码中的数字个数,大小写个数,特殊字符个数。这些又分别由validate_password_number_count,validate_password_mixed_case_count,validate_password_special_char_count 这几个参数来控制。
  • 当validate_password_policy=2这个时候它首先是要满足前面说到的0、1 的要求;然后它还追加了一个,对于密码中任意连续4个(或4个让上)字符不得是字典中的单词。

综上所述,如果validate_password_policy=0(MEDIUM)时,你后续配置的大小写个数、字符数等等,均不生效,生效的仅有密码长度。

validate_password_length密码长度的最小值(这个值最小要是4)。

validate_password_number_count密码中数字的最小个数。

validate_password_mixed_case_count大小写字母(同时)的最小个数。

validate_password_special_char_count特殊字符的最小个数。

validate_password_dictionary_file字典文件

所以上述配置强制密码策略要求为:密码至少包含大小写字母、数字、特殊字符至少1个,密码长度不小于10。

再看是否有密码最大使用期限设置,查看default_password_lifetime 参数

show global variables like 'default_password_lifetime';

1696749065_65225609266576fceeb9a.png!small?1696749066553

另外千万别忘了去对照关键资产的安全策略,由于长度和更换周期有问题,所以该条部分符合

1696749077_652256151ff1aa4b07b88.png!small?1696749077792

另外,一般现场测评查看用户密码是否定期更改,还可以查看各用户最后一次修改密码的时间,这样对照会更准确

select user,host,password_lifitime from mysql.user;

1696749089_6522562144ee2557754f9.png!small?1696749090731

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

1696749338_6522571a4410c701f5995.png!small?1696749339005

接着看身份鉴别b),查看MySQL的登录失败处理功能

show variables like 'connection_control%';

# 系统安全 # 等保测评 # 等保2.0 # 等保测评2.0 # 等保合规
本文为 独立观点,未经允许不得转载,授权请联系FreeBuf客服小蜜蜂,微信:freebee2022
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录