等保2.0 MySQL数据库测评

admin 2022年2月13日23:09:24评论148 views字数 4660阅读15分32秒阅读模式

请点击上面 等保2.0 MySQL数据库测评 一键关注!

内容来源:FreeBuf.COM

本次测评以mysql 5.7.19 搭建在Win 10 专业版上,使用navicat 15进行管理。

一、身份鉴别

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

注:MySQL数据库对于用户的标识和其它数据库有些不一样,不仅仅是用户名,而是username + host。MySQL从5.7以上开始,密码字段不是password,而是authentication_string。要满足密码复杂度必须在my.ini配置文件中安装plugin-load-add=validate_password.dll(Windows/Linux为plugin-load-add=validate_password.so)插件。

1)尝试登录数据库,执行mysql -u root -p(linux下)查看是否提示输入口令鉴别用户身份。此处直接使用navicat 进行管理。

等保2.0 MySQL数据库测评


2)使用如下命令查询账号select user, host FROM mysql.user 结果输出用户列表,查者是否存在相同用户名。结果默认不存在同名用户。

等保2.0 MySQL数据库测评


3)执行如下语句查询是否在空口令用户:select * from mysql.user where length(password)= 0 or password is null或者select user,authentication_string from user;(mysql 5.7以上识别第二条命令)通过查看不存在空口令用户。

等保2.0 MySQL数据库测评


4)执行如下语句查看用户口今复杂度相关配置:show variables like 'validate%';下面我提前配置过,配置合理。默认情况下未配置,为空。等保2.0 MySQL数据库测评

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

登录失败功能也需要mysql安装connection_control.dll或者connection_control.so插件才能实现

1)询问管理员是否采取其他手段配置数据库登录失败处理功能。

2)执行show variables like '%connection_control%';或核查my.cnf或者my.ini文件,应设置如下参数:

max_connect_errors=100

等保2.0 MySQL数据库测评


3) show variables like ”%timeout%“,查看返回值。默认Wait_ timeout: 一个连接connection空闲超过8个小时(默认值28800秒),MySQL 就会自动断开这个连接。默认不符合,时间太长。

等保2.0 MySQL数据库测评


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

1)是否采用加密等安全方式对系统进行远程管理是否用户都是localhost,全为localhost则为本地管理。不适用。

2)若存在远程管理,执行show variables like "%have_ssl%"或者show variables like "%have_openssl%"

查看是否支持ssl的连接特性,若为disabled说明此功能没有激活,或执行s查看是否启用SSL。

等保2.0 MySQL数据库测评等保2.0 MySQL数据库测评


d) 应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。

对于数据库基本不符合。


二、访问控制

a) 应对登录的用户分配账户和权限;

1)执行语句select user,host FROM mysql.user

输出结果结合访谈管理员是否存在网络管理员,安全管理员,系统管理员等多个账户,且分配了相应权限。等保2.0 MySQL数据库测评


2)执行show grants for 'XXXX'@' localhost':

查看其他管理员用户账号的权限,是否只存在特定用户如root 用户存在权限分配的权限。其他普通用户如test用户应无Grant option 权限。

等保2.0 MySQL数据库测评等保2.0 MySQL数据库测评等保2.0 MySQL数据库测评


b) 应重命名或删除默认账户,修改默认账户的默认口令

1)执行select user,host FROM mysql.user得知root是否被重命名或被删除,若未重命名但修改了默认口令,

但增强其口令复杂度,不要空口令、弱口令的现象也判定符合。


c) 应及时删除或停用多余的、过期的账户,避免共享账户的存在 

1)在navicate中执行命令: select username,account_status from dba_users得知只有两个root 和test可用账户,其他账户已被锁定,访谈管理员是否存在多余的、过期的账户,避免共享账户。

等保2.0 MySQL数据库测评

2)访谈网络管理员,安全管理员、系统管理员不同用户是否采用不同账户登录系统.


d) 应授予管理用户所需的最小权限,实现管理用户的权限分离

1)是否对用户进行角色划分且只授予账号必须的权限

通过输入select * from mysql.user。如除root外,任何用户不应该有mysql库user表的存取权限,禁止将fil、process、 super权限授予管理员以外的账户

等保2.0 MySQL数据库测评

2)查看用户权限表,并验证用户是否具有自身角色外的其他用户的权限。输入select * from mysql.user where user="用户名"。

等保2.0 MySQL数据库测评


e)应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则

1.访谈管理员是否制定了访问控制策略

2.执行语句:

mysql>select * from mysql.user -检查用户权限列

等保2.0 MySQL数据库测评

mysql>select * from mysql.db --检查数据库权限列

等保2.0 MySQL数据库测评

mysql>select * from mysql.tables_priv 一检查用户表权限列

等保2.0 MySQL数据库测评

mysql>select * from mysql.columns_priv-检查列权限列管理员

等保2.0 MySQL数据库测评

输出的权限列是是否与管理员制定的访问控制策略及规则一致

3)登录不同的用户,验证是否存在越权访问的情形


f)访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表

1)执行下列语句:

mysql>select * from mysql.user -检查用户权限列

mysql>select * from mysql.db -检查数据库权限列

2)访谈管理员并核查访问控制粒度主体是否为用户级,客体是否为数据库表级

基本都满足。

g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问

MySQL不提供该项功能,访谈管理员,是否采用其他技术手段。


三、安全审计

a) 应启用安全审计功能,审计覆盖到每个用 户,对重要的用户行为和重要安全事件进行审计

1)执行下列语句:show global variables like '%general%'。默认为OFF,不符合。应设置为ON为开启审计。

如果数据库服务器并不执行任何查询,建议启用审计。在/etc/my.cnf文件的[Mysql]部分添加: log,=/var/log/ mylogfile(这个在Linux系统下查看)

等保2.0 MySQL数据库测评

2)访谈是否存在第三方插件。

对于生产环境中任务繁重的MySOL数据库,启用审计会引起服务器的高昂成本,因此建议采用第三方数据库审计产品收集审计记录。


b) 审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息

1)是否已开启审计general_log为ON。输入:select * from general_log;得知具体内容,下面为不符合。

等保2.0 MySQL数据库测评

2)核查是否采取第三方工具增强MySQL日志功能。若有,记录第三方审计工具的审计内容,查看是否包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息。


c) 应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等

应保证只有root可以访问这些日志文件,其中,错误日志务必须确保只有root可以访问日志文件

1)访谈管理员对审计话录如何保护,对审计记录是否定期备份,备份策略

是否采取了备份、转存等手段对审计记录进行保护,避免未预期的删除、修 改或覆盖,数据库本地日志保存时间超过6个月。采用第三方数据库审计产品,审计记录保存时间超过6个月。

2)是否严格限制用户访问审计记录的权限,可以通过普通用户登录然后是否能够访问修改删除日志。


d) 应对审计进程进行保护,防止未经授权的中断

1)询问是否严格限制管理员、审计员权限

2)用户重启实例关闭审计功能,查看是否成功


四、入侵防范

c) 应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制

查看用户登录的IP地址;是否给所有用户加上IP限制,拒绝所有未知主机进行连接

注:当user表中的Host值不为本地主机时,应指定特定IP地址,不应为%;或将user表中的Host值为空,而在host表中指定用户帐户允许登陆访问的若干主机;在非信任的客户端以数据库账户登录应被提示拒绝,用户从其他子网登录,应被拒绝

管理员会打开主机对数据库的访问:

> GRANT ALL ON *.* TO 'root'@'%'

其实是完全放开了对root的访问,因此把重要的操作限制给特定主机异常重要:

>GRANT ALL ON *.* TO 'root'@'localhost'

>GRANT ALL ON *.* TO 'root'@'myip.athome'

>FLUSH PRIVILEGES此时,即限制仅允许指定的P(不管其是否静态)可以访问


e) 应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞

访谈MySQL补丁升级机制,查看补丁安装情况:

1)执行如下命令查看当前补于版本:

show variables where variable_name like "version"

等保2.0 MySQL数据库测评

2)访谈数据库是否为企业版,是否定期进行漏洞扫描,针对高风险漏洞是否评估补丁并经测试后再进行安装

总结:跳过的测评项为不适用。

等保2.0 MySQL数据库测评

「天億网络安全」 知识星球 一个网络安全学习的星球!星球主要分享、整理、原创编辑等网络安全相关学习资料,一个真实有料的网络安全学习平台,大家共同学习、共同进步!

知识星球定价:199元/年,(服务时间为一年,自加入日期顺延一年)。

如何加入:扫描下方二维码,扫码付费即可加入。

加入知识星球的同学,请加我微信,拉您进VIP交流群!

等保2.0 MySQL数据库测评

朋友都在看

▶️等保2.0丨2021 必须了解的40个问题

▶️等保2.0 三级 拓扑图+设备套餐+详解

▶️等保2.0 二级 拓扑图+设备套餐+详解

▶️等保2.0 测评  二级系统和三级系统多长时间测评一次?

▶️等保2.0系列安全计算环境之数据完整性、保密性测评

▶️等保医疗|全国二级、三乙、三甲医院信息系统安全防护设备汇总

▶️国务院:不符合网络安全要求的政务信息系统未来将不给经费

▶️等级保护、风险评估和安全测评三者的区别

▶️分保、等保、关保、密码应用对比详解

▶️汇总 | 2020年发布的最重要网络安全标准(下载)

欢迎扫描关注【天億网络安全】公众号,及时了解更多网络安全知识

原文始发于微信公众号(天億网络安全):等保2.0 MySQL数据库测评

  • 左青龙
  • 微信扫一扫
  • weinxin
  • 右白虎
  • 微信扫一扫
  • weinxin
admin
  • 本文由 发表于 2022年2月13日23:09:24
  • 转载请保留本文链接(CN-SEC中文网:感谢原作者辛苦付出):
                   等保2.0 MySQL数据库测评http://cn-sec.com/archives/776389.html

发表评论

匿名网友 填写信息