赞
踩
应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换
应核查用户在登录时是否采用了身份鉴别措施;
应核查用户列表确认用户身份标识是否具有唯一性;
应核查用户配置信息或测试验证是否不存在空口令
应核查用户鉴别信息是否具有复杂度要求并定期更换。
查询命令:show variables like '%version';
select user,host, plugin, authentication_string from mysql.user;
user:登录的用户名,host: 登录地址的限制,plugin:登录时使用该列中命名的身份验证插件
authentication_string:表示该user表的列中存储的非空白密码值已加密
查询命令:show variables like '%validate_password%';
validate_password_check_user_name:表示检查用户名
validate_password_dictionary_file : 用于检查密码的字典文件的路径名
validate_password_length:密码应包含的最小字符数
validate_password_mixed_case_count:密码应具有的最小大小写字母字符数
validate_password_number_count:密码具有的最小数字(数字)字符数
validate_password_policy:密码强度
validate_password_special_char_count:如果密码策略为MEDIUM或更强密码,则要求密码具有的最小非字母数字字符数
查询命令:select user,host, password_lifetime, password_expired, password_last_changed from mysql.user;
password_lifetime:表示帐户密码的有效期限,以天为单位
password_expired : 表示账户过期时是否重置密码
password_last_changed :指示上次更改密码的时间
1)a在数据库中输入"SELECT Host, User, Password,plugin FROM mysal.user;",核查是否存在空口令用户: b若MySQL安装并为用户启用了其他认证插件,如authentication pam,询问数据库管理员这些用户是否设置了口令。
数据库未提供口令复杂度校验策略及定期更换策略,故不符合。
1) a在数据库中输入SELECT Host, User, Password,plugin FROM mysqluser,核查是否存在空口令用户: b若MySQL安装并为用户启用了其他认证插件,如authentication pam,询问数据库管理员这些用户是否设置了口令。
2) a在数据库中输入"SELECT*FROM information schema.PLUGINS WHEREPLUGIN_NAME='validate password;",核查是否安装了口令复杂度校验模块: b在数据库中输入"SHOW VARIABLES LIKE validate password%;",核查口令复杂度策略,c数据库末提供口令定期更换策略,故不符合
1) a在数据库中输入"SELECT Host, User, authentication string,plugin FROM mysgluser;",核查是否存在空门令用户,b若MySQL安装并为用户启用了其他认证插件,如authentication pam,询问数据库管理员这些用户是否设置了口令。
2) a在数据库中输入"SELECT* FROM information schema.PLUGINS WHEREPLUGIN NAME='validate password;",核查是否安装了口令复杂度校验模块; b在数据库中输"SHOW VARIABLES LIKEvalidate password%'",核查口令复杂度策略, c在数据库中输"SELECT Host,User, password lifetime FROM mysqluser;",核查口令定期更换策略.
要求:
应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施
应核查是否配置并启用了登录失败处理功能;
应核查是否配置并启用了限制非法登录功能,非法登录达到定次数后采取特定动作,如账户锁定等;
应核查是否配置并启用了登录连接超时及自动退出功能
查询命令:show variables like “%connection_control%”;
connection_control_failed_connections_threshold:允许客户端进行的连续失败连接尝试的次数
connection_control_max_connection_delay:要添加的最大延迟毫秒数
connection_control_min_connection_delay:对于超出阈值的每个连续连接失败,要添加的延迟量
查询命令:show variables like “%connection_control%”;
max_connec_errors:最大登录错误尝试的次数
max_connection:服务器允许同时连接的最大客户端数
查询命令:show variables like '%timeout%';
wait_timeout:在限制时间内没有发起任何请求,这个连接就会被清理掉。
方法:
1)a 询问数据库管理员是否配置并启用了登录失败处理功能。b MySQL 5.6及以上在数据库中输入SELECT*FROM information schema.PLUGINS WHERE PLUGIN NAME='connection control',核查是否安装了登录失败处理模块。
2)a询问数据库管理员是否配置并启用了限制非法登录功能。b MySQL 5.6及以上在数据库中输入SHOW variables LIKE'connection control%',核查是否合理配置了登录失败处理功能的相关参数。
3)在数据库中输入SHOW variables LIKE'%timeout',核查连接超时connecttimeout.空闲会话超时interactive timeout及wait timeout的配置情况。
当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听
应核查是否采用加密等安全方式对系统进行远程管理,防止鉴别信息在网络传输过程中被窃听。
查询命令:show variables like "%skip_networking%";
skip_networking :服务器会通过启用skip_networking来禁用远程连接
查询命令:show variables like “%ssl%";
have_ssl:如果值为YES,则服务器支持加密连接。
have_openssl:变量如果按照官网的手册里的说法,是have_ssl变量的别名,从MySQL 8.0.25开始, have_openssl不推荐使用,并且可能在将来的MySQL版本中删除。
MySQL数据库默认符合。
要求:
应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。
应核查是否采用动态口令、数字证书、生物技术和设备指纹等两种两种以上组合的鉴别技术对用户身份进行鉴别;
应核查其中一种鉴别技术是否使用密码技术来实现。
方法:
1)核查数据库系统是否采用动态口令、数字证书、生物技术和设备指纹等两种或两种以上组合的鉴别技术对用户身份进行鉴别;
2)核查其中一种鉴别技术是否使用密码技术来实现。
MySQL不能集成其他身份鉴别措施,应通过对操作系统层面实现双因素认证
应对登录的用户分配账户和权限;
应核查是否为用户分配了账户和权限及相关设置情况;
应核查是否已禁用或限制匿名、默认账户的访问权限。
1)a询问数据库管理员是否建立帐户权限表;b询问数据库管理员是否限制了应用系统数据库连接帐户的访问权限;c在数据库中输入SELECT * FROM mysql.user,查看设置的用户是否与权限表一致。查看输出结果,数据库是否创建了不同的账户,并为其分配了相应的权限。
2)核查数据库是否禁用或限制默认帐户root等的权限。
要求:
应重命名或删除默认账户,修改默认账户的默认口令;
应检查是否已经重命名默认账户或默认账户已被删除;
应核查是否已修改默认账户的默认口令。
查询命令:select * from mysql.user;
方法:
1)核查是否已经重命名默认帐户root或默认帐户已被删除;
2)核查是否已修改默认帐户root的默认口令。
应及时删除或停用多余的、过期的账户,避免共享账户的存在;
应核查是否不存在多余或过期账户,管理员用户与账户之间是否一一对应;
应测试验证多余的、过期的账户是否被删除或停用。
查询命令:select user,host, password_lifetime, password_expired,account_locked from mysql.user;
查看输出结果并结合访谈是否存在无关的账户,如test账户。
查看多余或过期的账户是否被锁定。
1)询问数据库管理员,是否不存在多余或过期帐户,管理员用户与帐户之间是否一一对应
2)输入SELECT * FROM mysql.user,核查多余的、过期的帐户是否已被删除或停用。
应授予管理用户所需的最小权限,实现管理用户的权限分离;
应核查是否进行角色划分;
应核查管理用户的权限是否已进行分离;
应核查管理用户权限是否为其工作任务所需的最小权限。
查询命令:select * from mysql.user;
select * from db;
select * from user;
mysql.user表(全局权限)、mysql.db表(数据库权限)、mysql.tables_priv(表权限)、mysql.columns_priv(列权限)。此外还可用show grants for root@’%’;查看某用户的所有权限。
1)根据帐户权限表,询问并检查是否对数据库连接帐户进行角色划分。
2)根据帐户权限表,询问并检查是否对数据库管理帐户进行权限分离,划分了用户管理员、配置管理员、安全审计员等角色。
3)在数据库中输入SELECT * FROM mysql.user,查看分配的角色是否和安全策略一致。
应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则;
应核查是否由授权主体(如管理用户)负责配置访间控制策略;
应核查授权主体是否依据安全策略配置了主体对客体的访问规则;
应测试验证用户是否有可越权访问情形。
查询命令:select * from mysql.user;
select * from db;
检查用户权限列和检查数据库权限列。授权主体在数据库中也就是拥有设置用户权限的账户,一般由系统的管理员配置访问控制策略。
1)询问数据库管理员是否统一配置用户的访问控制策略。
2)询问数据库管理员是否根据安全策略合理配置主体对客体的访问控制策略。
3)在数据库中输入SELECT * FROM mysql.user,查看分配的角色是否和安全策略一致。
访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级;
应核查访问控拉制策路的控制粒度是否达到主体为用户级或进程级,客体为文件、数据库表、记录或字段级。
查询命令:select * from mysql.user;
select * from db;
访问控制粒度的主体一般情况下为用户级,对于客体,要看数据库的权限控制粒度是否达到了数据库表的级别。查看配置的数据库访问控制措施是否和安全策略一致。
应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问。
应核查是否对主体、客体设置了安全标记;
应测试验证是否依据主体、客体安全标记控制主体对客体访问的强制访问控制策略。
1)核查是否对主体、客体设置了安全标记;
2)测试验证是否依据主体、客体安全标记控制主体对客体访问的强制访问控制策略。
MySQL自身不具备这个功能,可能要依靠操作系统或者第三方的软件来实现,一般情况基本上没有系统能够实现,且此项不是高风险项。
应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计;
应检查是否开启了安全审计功能;
应检查安全审计范围是否覆盖到每个用户;
应检查是否对重要用户的用户行为和重要安全事件进行审计。
查询命令:show variables like '%general%';
1)a)在数据库中输入SHOW variables LIKE 'general_log%',核查数据库日志模块的状态。b)MySQL Enterprise可在数据库中输入SELECT * FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME='audit_log',核查是否安装并开启了MySQL Enterprise Audit模块。
2)开启审计默认符合
3)开启审计默认符合
审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息;
应检查审计记录信息是都包括时间的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息。
开启general_log默认部分符合,开启MySQL Enterprise Audit默认符合。
应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等;
应检查是否采取了保护措施对审计记录进行保护;
应检查是否采取技术措施对审计记录进行定期备份,并核查起备份策略。
1.无论是自带的审计还是审计插件,如果审核记录存储于文件中,应该在操作系统上对这些日志文件的权限进行限定,仅允许数据库管理员可对这些文件进行访问、修改等。同时也要限制MySQL中的文件的访问权限。
如果审核记录存储于数据库表中,那么也应该对数据库的表进行权限设置,仅数据库管理员可对审核记录表进行访问、修改等。
2.访谈系统的管理员关于数据库的审计记录是否定期备份,询问备份策略,核查审计记录的保留时间是否不少于六个月。
1)核查数据库系统是否采取了保护措施对操作系统中的审计文件或数据库系统的审计表进行保护;
2)核查数据库系统是否采取技术措施对审计记录进行定期备份,并核查其备份策略。
应对审计进程进行保护,防止未经授权的中断。
应测试验证通过非审计管理员的其他账户来中断审计进程,验证审计进程是否受到保护。
测评方法:开启审计默认符合。
应遵循最小安装的原则,仅安装需要的组件和应用程序;
应核查是否遵循最小安装原则;
应核查是否未安装非必要的组件和应用程序。
1)核查数据库是否遵循最小安装原则;
2)核查数据库是否未安装非必要的组件和应用程序。
应关闭不需要的系统服务、默认共享和高危端口;
应检查是否关闭了非必要的系统服务和默认共享;
应检查是否不存在非必要的高危端口。
测评方法:不适用。
应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制;
应核查配置文件或参数等是否对终端接入范围进行限制。
核查配置文件或参数等是否对终端接入范围进行限制。
应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求;
应核查系统设计文档的内容是否包括数据有效性检验功能的内容或模块;
应测试验证是否对人机接口或通信接口输入的内容进行有效性检验。
测评方法:不适用。
应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞;
应通过漏洞扫描、渗透测试等方式核查是否不存在高风险漏洞;
应核查是否在经过充分测试评估后及时修补漏洞。
1)通过漏洞扫描、渗适测试等方式核查数据库是否不存在高风险漏洞;
2)核查是否在经过充分测试评估后及时修补数据库漏洞。
应能够检测到对重要节点进行入侵的行为,并在发生严重入侵事件时提供报警。
应访谈并核查是否有入侵检测的措施;
应核查在发生严重入侵事件时是否提供报警。
测评方法:不适用
应采用校验技术或密码技术保证重要数据在传输过程中的完整性,包括但不限于鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等;
应核查系统设计文档、鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等在传输过程中是否采用了密码技术保证完整性;
应测试验证在传输过程中对鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等进行篡改,是否能够检测到数据在传输过程中的完整性受到破坏并能够及时恢复。
a)询问数据库管理员,是否使用SSL方式连接数据库。
b)MySQL 5.7及以上在数据库中输入SHOW variables LIKE 'require_secure_transport',核查是否开启了强制SSL通信。'require_secure_transport'=ON。
1、应核查设计文档、是否采用密码技术保证鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等在存储过程中的完整性;
2、应核查是否采用技术措施(如数据安全保护系统)等保证鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等在存储过程中的完整性;
3、应测试验证在存储过程中对鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等进行篡改,是否能够检测到数据在存储过程中的完整性受到破坏并能够狗及时恢复。
测评方法:
1)核查数据库系统的鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等在存储过程中是否采用了校验技术或密码技术保证完整性;
2)核查数据库系统是否采用技术措施(如数据安全保护系统等)保证鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等在存储过程中的完整性;
3)测试验证数据库系统是否能够检测到鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等在存储过程中的完整性受到破坏并能够及时恢复。
测评对象:
业务应用系统、数据库管理系统、中间件、系统管理软件及系统设计文档、数据安全保护系统、终端和服务器等设备中的操作系统及网络设备和安全设备中等。
(密码技术保证重要数据在传输过程中的保密性)
1、应核查系统设计文档、鉴别数据、重要业务数据、重要审计数据、重要配置数据、重要视频数据和重要个人信息等在传输过程中是否采用了密码技术保证保密性;2、应通过嗅探等方式抓取传输过程中的数据包,鉴别数据、重要业务数据和重要个人信息等在传输过程中是否进行了加密处理。
测评方法:
1、询问数据库管理员,是否使用SSL方式连接数据库。
2、MySQL 5.7及以上在数据库中输入SHOW variables LIKE 'require_secure_transport',核查是否开启了强制SSL通信。
所有客户端均使用SSL方式连接数据库。
'require_secure_transport'='ON。或数据库采取了其他等效技术手段保证数据传输过程中的完整性。
应采用密码技术保证重要数据在存储过程中的保密性,包括但不限于鉴别数据、重要业务数据和重要个人信息等。
1、应核查是否采用密码技术保证鉴别数据、重要业务数据和重要个人信息等在存储过程中的保密性;
2、应核查是否采用技术措施(如数据安全保护系统等)保证鉴别数据、重要业务数据和重要个人信息等在存储过程中的保密性;
3、应测试验证是否对指定的数据进行加密处理。
测评方法:
1)核查数据库系统设计文档,检查鉴别数据、重要业务数据和重要个人信息等在存储过程中是否采用密码技术保证保密性;
2)核查数据库系统是否采用技术措施(如数据安全保护系统等)保证鉴别数据、重要业务数据和重要个人信息等在存储过程中的保密性;
3)检查数据库系统鉴别数据、重要业务数据和重要个人信息等在存储过程中是否进行了加密处理。
(应提供重要数据的本地数据备份与恢复功能)
1、应核查是否按照备份策略进行本地备份;
2、应核查备份策略设置是否合理、配置是否正确;
3、应核查备份结果是否与备份策略一致;
4、应核查近期恢复测试记录是否能够进行正常的数据恢复。
测评方法:
1)询问数据库管理员,是否已识别需要备份的重要数据,并制定相应的备份策略。
2)查看数据库备份计划是否与备份策略一致。
3)检查备份文件的命名方式、存储介质等是否与备份策略一致。
4)询问数据库管理员,是否定期进行恢复性测试,并检查恢复性测试记录。
应提供异地实时备份功能,利用通信网络将重要数据实时备份至备份场地;
应核查是否提供异地实时备份功能,并通过网络将重要配置数据、重要业务数据实时备份至备份场地。
应提供重要数据处理系统的热冗余,保证系统的高可用性。
应核查重要数据处理系统(包括边界路由器、边界防火墙、核心交换机、应用服务器和数据库服务器等)是否采用热冗余方式部署。
测评方法:询问数据库管理员,数据库是否采用热冗余方式部署。
(a)应保证鉴别信息所在的存储空间被释放或重新分配前得到完全清除;
应核查相关配置信息或系统设计文档,用户的鉴别信息所在的存储空间被释放或重新分配前是否得到完全清除。
测评方法:
核查数据库用户的鉴别信息所在的存储空间被释放或重新分配前是否得到完全清除。
(b)应保证存有敏感数据的存储空间被释放或重新分配前得到完全清除。
应核查相关配置信息或系统设计文档,敏感数据所在的存储空间被释放或重新分配给其他用户前是否得到完全清除。
测评方法:
核查数据库敏感数据所在的存储空间被释放或重新分配给其他用户前是否得到完全清除。
(a)应仅采集和保存业务必需的用户个人信息;
1)应核查采集的用户个人信息是否是业务应用必需的;
2)应核查是否定制了有关用户个人信息保护的管理制度和流程。
测评方法:
1)采集的用户个人信息是业务应用必需的。
2)制定了有关用户个人信息保护的管理制度和流程。
(b)应禁止未授权访问和非法使用用户个人信息。
1)应核查是否采用技术措施限制对用户个人信息的访问和使用;
2)应核查是否制定了有关用户个人信息保护的管理制度和流程。
测评方法:
1)询问并核查是否采用技术措施限制对用户个人信息的访问和使用。
2)询问并核查是否制定了有关用户个人信息保护的管理制度和流程。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。