等保测评 安全计算坏境之mysql数据库管理系统

安全计算坏境之mysql数据库管理系统

1. 身份鉴别

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

“1)尝试登录数据库,执行mysql -u root -p查看是否提示输入口令鉴别用户身份
2)使用如下命令查询账号
select user, host FROM mysql.user
结果输出用户列表,查者是否存在相同用户名
3)执行如下语句查询是否在空口令用:
select * from mysql.user where length(password)= 0 or password is null
输出结果是否为空
4)执行如下语句查看用户口今复杂度相关配置:
show variables like ‘validate%’; 或show VARIABLES like “”%password“”

“1)用户登录数据库时,采用用户名、口令的方式进行身份鉴别
2)查询user表,不存在相同的用户名
3)不存在空口令用户;
4)配置信息:
validate_password_length 8
validat_ password_mixed_case_count 1
validate_password_number_count 1
validate_password policy MEDIUM
validate_password_special_char_count 1”

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

“1)询问管理员是否采取其他手段配置数据库登录失败处理功能。
2)执行
show variables like %max_connect_errors%”";或核查my.cnf文件,应设置如下参数:
max_connect_errors=100
3) show variables like ”%timeout%“,查看返回值"

“1)MySQL数据库采用第三方管理软件,且第三方管理软件设置登录失败锁定次数
2)3)数据库管理系统本地配置了参数max_connect_errors= 100, Wait_timeout = 28800,如果mysql服务器连续接收到了来自于同一个主机的请求,且这些连续的请求全部都没有成功的建立连接就被断开了,当这些连续的请求的累计值大于max_connect_errors的设定值时,mysql 服务器就会阻止这台主机后续的所有请求。Wait_ timeout: 一个连接connection空闲超过8个小时(默认值28800秒),MySQL 就会自动断开这个连接”

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

“1)是否采用加密等安全方式对系统进行远程管理
2)执行
mysql>show variables like %have_ssl%”"
查看是否支持ssl的连接特性,若为disabled说明此功能没有激活,或执行\s查看是否启用SSL;
3)如果采用本地管理方式,该项为不适用"

“1)远程管理采用的方式:远程管理数据库,启用了SSL连接特性。
2)用户远程管理数据库时,客户端和服务器的连接不通过或跨越不可信任的网络,采取SSH隧道加密连接选程管理通信
3)本地管理,本条N/A”

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

“1)MySQL不能集成其他身份鉴别措施,应通过对操作系统层面实现双因素
2)访谈系统管理员,是否采用其他技术手段实现双因素身份认证,是否采用了两种或两种以上组合的鉴别技术,如口令、数字证书Ukey. 令牌、指纹等,是否有一种鉴别方法使用密码技术”

“1)采用的登录方式有:用户名口令,MySQL数据库无法集成其他身份鉴别方式,在操作系统实现双因素,通常将服务器纳入到堡垒机管理,同时通过限制仅允许通过堡垒机坛维服务器。在堡垒机实现双因素身份认证。常见的双因素认证方式有口令、数字证书Ukey. 令牌、指纹等
2)采用的密码技术是: 在硬件UKey中使用了加密算法”

2. 访问控制

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

“1)执行语句select user,host FROM mysql.user
输出结果是否为网络管理员,安全管理员,系统管理员创建了不同账户:
2)执行show grants for’ XXXX’@’ localhost’:
查看网络管理员,安全管理员、系统管理员用户账号的权限,权限间是否分离并相互制约”
"

1)审计员的角色,创建了不同的账户,并为其分配了相应的权限
2)已禁用匿名、默认账户或限制匿名、默认用户的权限"

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

“1)执行select user,host FROM mysql.user
输出结果查看root用户是否被重命名或被删除
2)若root账户未被删除,是否更改其默认口令,避免空口令或弱口令.”

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

“1)在sqlplus中执行命令: select username,account_status from dba_users
2)执行下列语句:
select * from mysql.user where user=”"""
select user, host FROM mysql.user
依次核查列出的账户,是否存在无关的账户。
3)访谈网络管理员,安全管理员、系统管理员不同用户是否采用不同账户登录系统"

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

“1)是否对用户进行角色划分且只授予账号必须的权限
如除root外,任何用户不应该有mysql库user表的存取权限,禁止将fil、.process、 super权限授予管理员以外的账户
2)查看权限表,并验证用户是否具有自身角色外的其他用户的权限”

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

“1.访谈管理员是否制定了访问控制策略
2.执行语句:
mysql>selcec * from mysql.user\G -检查用户权限列
mysql>selcec * from mysql.db\G --检查数据库权限列
mysql>selcec * from mysql.tables_priv\G 一检查用户表权限列
mysql>selcec * from mysql.columns_privi\G -检查列权限列管理员
输出的权限列是是否与管理员制定的访问控制策略及规则一致
3)登录不同的用户,验证是否存在越权访问的情形”

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

“1)执行下列语句:
mysql>selcec * from mysql.user\G -检查用户权限列
mysql>selcec * from mysql.db\G --检查数据库权限列
2)访谈管理员并核查访问控制粒度主体是否为用户级,客体是否为数据库表级”

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

3. 安全审计

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

“1)执行下列语句:
mysql>show variables like’ log_%’
查看输出的日志内容是否覆盖到所有用户,记录审计记录覆盖内容
2)核查是否采取第三方工具增强MySQL日志功能。若有,记录第三方审计工具的审计内容,查看是否包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息”

“1)数据库本地启用了日志功能,审计内容覆盖到每个用户, 能够记录用户行为和重要安全事件
2)启用审计功能策略为:配置了审计日志存储位置,或部署第三方数据库审计产品,审计内容覆盖到所有用户”

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

“1)执行下列语句:
mysql>show variables like ‘log_%’
查看输出的日志内容是否覆盖到所有用户,记录审计记录覆盖内容
2)核查是否采取第三方工具增强MySQL日志功能。若有,记录第三方审计工具的审计内容,查看是否包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息”

“1)数据库本地启用了日志功能,审计内容覆盖到每个用户,能够记录重要用户行为和重要安全事件
2)采用第三方数据库审计产品,审计内容覆盖到每个用户,能够记录重要用户行为和重要安全事件”

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

“1)访谈管理员对审计话录如何保护,对审计记录是否定期备份,备份策略
2)是否严格限制用户访问审计记录的权限”

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

d)应对审计进程进行保护,防止未经授权的中断;
“1)询问是否严格限制管理员、审计员权限
2)用户重启实例关闭审计功能,查看是否成功”

4. 入侵防范

a)应遵循最小安装的原则,仅安装需要的组件和应用程序;

b)应关闭不需要的系统服务、默认共享和高危端口;

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

“查看用户登录的IP地址;是否给所有用户加上IP限制,拒绝所有未知主机进行连接
注:当user表中的Host值不为本地主机时,应指定特定IP地址,不应为%;或将user表中的Host值为空,而在host表中指定用户帐户允许登陆访问的若干主机;在非信任的客户端以数据库账户登录应被提示拒绝,用户从其他子网登录,应被拒绝”

配置安全策略为:在防火墙上限制特定的终端(IP) 连接(访问)数据库:限定的IP地址为:XXXX

d)应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求;

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

“访谈MySQL补丁升级机制,查看补丁安装情况:
1)执行如下命令查看当前补于版本:
show variables where variable name like ““version””
2)访谈数据库是否为企业版,是否定期进行漏洞扫描,针对高风险漏洞是否评估补丁并经测试后再进行安装”

f)应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警;

5. 恶意代码防范

a)应采用免受恶意代码攻击的技术措施或主动免疫可信验证机制及时识别入侵和病毒行为,并将其有效阻断;

6. 可信验证

a)可基于可信根对计算设备的系统引导程序、系统程序、重要配置参数和 应用程序等进行可信验证,并在应用程序的关键执行环节进行动态可信验证,在检 测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心;

7. 数据完整性

a)应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;

b)应采用校验技术或密码技术保证重要数据在存储过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;

8. 数据保密性

a)应采用密码技术保证重要数据在传输过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等;

b)应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等;

9. 数据备份恢复

a)应提供重要数据的本地数据备份与恢复功能;

询问系统管理员数据库的备份和恢复策略是什么

“备份策略为:对数据库重要数据每天增量备份,每周全量备份:
近期恢复测试时间:每月(季度)定期进行恢复性测试演练”

b)应提供异地实时备份功能,利用通信网络将重要数据实时备份至备份场地;

“1)询问系统管理员是否提供异地数据备份功能,是否定时批量传送至备用场地
2)如果条件允许,则查看其实现技术措施的配置情况”

“1)已部署异地备份机房,并符合备份策略通过网络定期进行异地备份
2)查看实现的配置结果与备份策略一致”

c)应提供重要数据处理系统的热冗余,保证系统的高可用性;

“1)询间系统管理员数据库的备份和恢复策略是什么,查看是否达到上述要求
2)检查相关文档和配置,查看是否与系统管理员回答的一致”

“)核查备份结果与备份策略一致
2)核查近期恢复测试记录能够进行正常的数据恢复”

10. 剩余信息保护

a)应保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除;

b)应保证存有敏感数据的存储空间被释放或重新分配前得到完全清除;

11. 个人信息保护

a)应仅采集和保存业务必需的用户个人信息

b)应禁止未授权访问和非法使用用户个人信息

猜你喜欢

转载自blog.csdn.net/weixin_45380284/article/details/113917785