MySql数据库等保测评2.0
本次测评在windows10专业版上,mysql版本8.0.36,使用Navicat premium 16管理。
本次测评在windows10专业版上,mysql版本8.0.36,使用Navicat premium 16管理
一、身份鉴别:
a) 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂 度要求并定期更换;
1.使用密码登录连接数据库:

2.查询数据库账户: select user,host FROM mysql.user 查看数据库账户是否有重复

3.查询数据库是否存在空口令:select user,authentication_string from user;
或者select * from mysql.user where length(password)= 0 orpassword is null(mysql5.7以下使用第二条命令,5,7以上的密码字段变更了)
![]()

![]()
4.查询数据库密码复杂度,正常来讲需要安装插件,我懒得弄~有需要可以查询一下如何开启密码复杂度,我这找了一个:install plugin validate_password soname 'validate_password.dll';
MySQL8密码复杂度设置_mysql8.0设置密码复杂度-CSDN博客
然后查询命令:show variables like 'validate%'

validate_password_policy:密码安全策略,默认MEDIUM策略
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个
b) 应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施;
设置数据库登陆失败也是需要安装插件的
1.询问管理员是否采取其他手段配置数据库登录失败处理功能。
2.执行show variables like ‘%connection_control%’;或核查my.cnf或者my.ini文件,应设置如下参数: max_connect_erros = 100

3.查询数据库登陆链接超时自动退出:show variables like '%timeout%' 单位值为秒,默认的8小时(28800秒)

c) 当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听;
如果全部为本地管理,用户为localhost测不使用,存在远程管理时是否支持ssl的连接特性
show variables like '%have_ssl&’ (若执行结果为disabled,则说明此功能没有激活)

d) 应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现;
对于数据库来说基本不符合,没法弄双因素
二、访问控制
a) 应对登录的用户分配账户和权限;
1.该测评项主要核查数据库是否进行三权分立,创建了系统管理员、审计管理员、安全管理员,并分配了权限
查询数据库用户:select user,host FROM mysql.user

2.设立了账户的话,查看系统管理员、审计管理员、安全管理员的账户权限是否分离并相互制约
show grants for ‘XXXX’@’ localhost’,查看其他管理员用户账号的权限,是否只存在特定用户如root 用户存在权限分配的权限。其他普通用户如test用户应无权限。

b) 应重命名或删除默认账户,修改默认账户的默认口令;
查看数据库中是否存在默认账户root。如果root账户未被删除,则核查默认口令是否符合复杂度要求。 “select user,host FROM mysql.user"

c) 应及时删除或停用多余的、过期的账户,避免共享账户的存在;
1.查看账户是否可用:select username, account status from dba_users (教材上这么写的,应该是以前版本的),select User,account_locked from user;(我用的这个)

2.访谈网络管理员、安全管理员、系统管理员,了解不同的用户是否使用不同的账户登录系统
d) 应授予管理用户所需的最小权限,实现管理用户的权限分离;
1.通过输入select * from mysql.user。如除root外,任何用户不应该有mysql库user表的存取权限,禁止将fil、process、super权限授予管理员以外的账户。(具体的权限我也不懂,需要自行去查)

2.在根据具体的用户名查看权限表,确定权限,select * from mysql.user where user = '用户名'

e) 应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则;
1.访谈管理员,是否制定了访问控制策略
2.核查输出的权限是否玉管理员指定访问控制策略一致
mysql> select * from mysql. user\G 一检查用户权限列
mysql> select • from mysql.db\G --检查数据库权限列
mysql> select * from mysql. tables_priv\G --检查用户表权限列
mysql> select • from mysql.columns_priv\G --检查列权限列管理员
核查用户权限列

核查数据库权限列

核查用户表权限列

核查列权限列管理员

f) 访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级;
(1) 执行下列语句。
mysql> select * from mysql. user\G --检查用户权限列
mysql> select * from mysql.db\G 一检查数据库权限列
(2) 访谈管理员,核查访问控制粒度的主体是否为用户级,客体是否为数据库表级。
g) 应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问。
MySQL不提供此项功能
三、安全审计:
a) 应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;
查询是否开启审计:show variables like'log_%';或show global variables like ‘%general%’(默认都是未开启)


2.访谈是否使用了第三方审计工具,如果使用了第三方审计工具,则查看其审计内容是否包含事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息
b)审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息;
1.查看审计是否开启:show variables like'log_%',查询审计具体内容:select * from general_log

2.核查是否采取第三方工具增强MySQL日志功能。若有,记录第三方审计工具的审计内容,查看是否包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息
c) 应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等;
应保证只有root可以访问这些日志文件,其中,错误日志务必须确保只有root可以访问hostname.err(错误日志)文件和logfileXY日志文件
1)访谈管理员对审计话录如何保护,对审计记录是否定期备份,备份策略
是否采取了备份、转存等手段对审计记录进行保护,避免未预期的删除、修
改或覆盖,数据库本地日志保存时间超过6个月。采用第三方数据库审计产品,审计记录保存时间超过6个月。
2)是否严格限制用户访问审计记录的权限,可以通过普通用户登录然后是否能够访问修改删除日志。
d) 应对审计进程进行保护,防止未经授权的中断。
1)询问是否严格限制管理员、审计员权限
2)用户重启实例关闭审计功能,查看是否成功
四、入侵防范:
a) 应遵循最小安装的原则,仅安装需要的组件和应用程序;
根据被测系统的实际情况,核查 MySQL 数据库是否遵循最小安装的原则。询问就行
b)应关闭不需要的系统服务、默认共享和高危端口;
不适用
c) 应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制;
查看用户登录的IP地址;是否给所有用户加上IP限制,拒绝所有未知主机进行连接
注:当user表中的Host值不为本地主机时,应指定特定IP地址,不应为%;或将user表中的Host值为空,而在host表中指定用户帐户允许登陆访问的若干主机;在非信任的客户端以数据库账户登录应被提示拒绝,用户从其他子网登录,应被拒绝

e) 应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞;
(!)了解 MySQL 数据库的补丁升级机制,查看补丁安装清况。执行如下命令,查看当前补丁版本show variables where variable name like "version"

(2) 核查数据库的版本是否为企业版,是否定期进行漏洞扫描,是否针对高风险漏洞,安装了经过评估和测试的补丁。
下面就没有了。
我在做等保工作的时候为了更好和直观的学习,先将测评项和测评方法都记录在了excal表格里,这样记录的时候也加深了一遍印象。其实测评工作最难的不是测评内容或者技术,而是其他的。具体的就等学习的你慢慢体会吧~~
DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。
更多推荐

所有评论(0)