MySQL数据库等级保护测评列表
评测项 |
评测要求 |
评测方法 |
评测记录 |
身份鉴别 |
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 Validate_password_mixed_case_count l Validate_password_number_count l Validate_password policy MEDIUM Validate_password_special_char_count l |
|
b)应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施 |
1)询问管理员是否采取其他手段配置数据库登录失败处理功能。 2)执行 show variables like %max_connect_errors%”;或核查my.cnf文件,应设置如下参数: max_connect_errors=100 3) show variables like “%timeout%”,查看返回值
样例: 1)MySQL 数据库采用第三方管理软件,且第三方管理软件设置登录失败锁定次数 |
|
1/5
|
|
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)如果采用本地管理方式,该项为不适用 |
|
|
访问控制 |
a)应对登录得用户分配账户和权限 |
1)执行语句 select uesr,host FROM mysql.user 输出结果是否为网络管理员,安全管理员,系统管理员创建了不同账户: 2)执行 show grants for’ XXX’@’ localhost’ : 查看网络管理员,安全管理员、系统管理员用户账户的权限,权限间是否分离并相互制约 |
|
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)查看权限表,并验证用户是否具有自身角色外的其他用户的权限 |
|
|
安全审计 |
a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审 |
1)执行下列语句: mysql > show variables like ‘log_%’ 查看输出的日志内容是否覆盖到所有用户,记录审计记录覆盖内容 |
|
2/5
|
计 |
2)检查是否采取第三方工具增强MySQL 日志功能。若有,记录第三方审计工具的审计内容,查看是否包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息 |
|
b)审计记录应用包括事件的日期和时间,用户、事件类型,事件是否成功及其他与审计相关的信息 |
1)执行下列语句: mysql>show variables like ‘log_%’ 查看输出的日志内容是否覆盖所有用户,记录审计记录覆盖内容 2)检查是否采取第三方工具增强MySQL日志功能。若有,记录第三方审计工具的审计内容,查看是否包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息 |
|
|
c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等 |
1)访谈管理员对审计话录如何保护,对审计记录是否定期备份,备份策略 2)是否严格限制用户访问审计记录的权限 |
|
|
入侵防范 |
a)应通过设定终端接入方法或网络地址范围对通过网络进行管理的管理终端进行限制 |
查看用户登录的IP地址:是否给所有用户加上IP限制,拒绝所有未知主机进行连接 注:当uesr表中的Host值不为本地主机时,应制定特定IP地址,不应为%;或将user表中的Host值为空,而在host表中指定用户账户允许登录访问的若干主机;在非信任的客户端以数据库账户登录应被提示拒绝,用户从其他子网登录,应被拒绝 |
|
b)应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞 |
访谈MySQL补丁升级机制,查看补丁安装情况: 1) 执行如下命令查看当前补丁版本: show variables where variable name like “version” 2)访谈数据库是否为企业版,是否定期进行漏洞扫描,针对高风险漏洞是否评估补丁并经测试后再进行安装 |
|
|
可信验证 |
可基于可信根对计算设备的系统引导程序、系统程序、重要配置参数和应用程序等进行可信验证,并在检测到其可信性受到破坏后进行报警,并将验证结果形成审计记录送至安全管理中心 |
1)检查数据库的启动,是否实现可信验证的检测过程,查看对那些系统引导程序、系统程序或重要配置参数进行可信验证 2)修改其中的重要系统程序之一和应用程序之一,检查是否能够检测到并进行报警 3)是否将验证结果形成审计记录送至安全管理中心 |
|
数据完整性 |
应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、 |
1)询问系统管理员,该系统的鉴别数据、重要业务数据、重要审计数据,重要配置数据,重要视频数据和重要个人信息等在传输过程中是否采用了校验技术或密码技术保证完整性 2)使用工具对通信报文中的鉴别数据、重要业务数据、重要审计数据,重要配置数据、重要视频数据和重要个人信息等进行篡改,查看是否能够检测到未知数据在传输过程中的完整性受到破坏能够及时恢复 |
|
3/5
|
重要配置数据、重要视频数据和重要个人信息等 |
|
|
数据备份恢复 |
a)应提重要数据处理系统的热冗余,保证系统的高可用性 |
询问系统管理员数据库的备份和恢复策略是什么 |
|
b)应提供异地实时备份功能,利用通信网络将重要数据实时备份至备份场地 |
1)询问系统管理员是否提供异地数据备份功能,是否定时批量传送至备用场地 2)如果条件允许,则查看其实现技术措施的配置情况 |
|
|
剩余信息保护 |
应保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除 |
询问系统管理员,操作系统是否采取措施保证对存储介质(如硬盘或内存)防止其他用户非授权获取该用户的鉴别信息 |
|
4/5