等级保护测评2.0
mysql 数据库
安全控制点 | 控制项 | 测评方法 | 预期结果或主要证据 |
---|---|---|---|
身份鉴别 | a) 应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换; | 1)尝试登录数据库,执行mysql -u root -p查看是否提示输入口令鉴别用户身份 2)使用如下命令查询账号select * 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)配置信息: -1-如果,show variables like ‘validate%’,无数据输出,则可能未安装密码校验插件validate_password,则无密码复杂度限制功能; -2-如启用了validate_password插件,则如下: 各参数解释: validate_password_check_user_name :设置为ON的时候表示能将密码设置成当前用户名。 validate_password_dictionary_file:validate_password用于检查密码的字典文件的路径名。 validate_password_length :validate_password所需密码的最小字符数。 validate_password_mixed_case_count :如果密码策略是中等或更强的,validate_password要求密码具有的小写和大写字符的最小数量。对于给定的这个值密码必须有那么多小写字符和那么多大写字符。 validate_password_number_count:如果密码策略是中等或更强的,validate_password要求密码具有的数字、字符的最小数量。 validate_password_policy :validate_password强制执行的密码策略, validate_password_policy影响validate_password如何使用它的其他策略设置系统变量,除了根据用户名检查密码之外,后者由validate_password_check_user_name独立控制。 validate_password_policy值可以使用数值0、1、2或相应的符号值LOW、MEDIUM、STRONG来指定。下表描述了为每个策略执行的测试。对于长度测试,所需的长度是validate_password_length系统变量的值。类似地,其他测试所需的值由其他validate_password_xxx变量提供。 (5)查看用户上次密码修改的时间,看是否定期进行修改。 |
b) 应具有登录失败处理功能,应配置并启用结束会话、限制非法登录次数和当登录连接超时自动退出等相关措施; | 1)询问管理员是否采取其他手段配置数据库登录失败处理功能。 2)执行 show variables like %max_connect_errors%";或核查my.cnf文件,应设置如下参数: max_connect_errors=100 3) show variables like ”%timeout%“,查看返回值 | 1)MySQL数据库采用第三方管理软件,且第三方管理软件设置登录失败锁定次数 2)如输入:show variables like ‘%connection_control%’;无结果,且命令输入成功,则未安装相关插件;(单位毫秒)。 3)检查会话超时:show variables like ‘wait_timeout’; 10分钟。 | |
c) 当进行远程管理时,应采取必要措施防止鉴别信息在网络传输过程中被窃听。 | 1)是否采用加密等安全方式对系统进行远程管理 2)执行 mysql>show variables like ‘%have_ssl%’; 查看是否支持ssl的连接特性,若为disabled说明此功能没有激活,或执行\s查看是否启用SSL; 3)如果采用本地管理方式,该项为不适用。 | 1)远程管理采用的方式:远程管理数据库,启用了SSL连接特性。 2)用户远程管理数据库时,客户端和服务器的连接不通过或跨越不可信任的网络,采取SSH隧道加密连接选程管理通信。 3)本地管理,本条N/A 1)执行:show variables like ‘have_ssl’; 开启了SSL (2)通过抓包,验证的确对数据进行了加密。 | |
(3级)d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现。 | 1)MySQL不能集成其他身份鉴别措施,应通过对操作系统层面实现双因素; 2)访谈系统管理员,是否采用其他技术手段实现双因素身份认证,是否采用了两种或两种以上组合的鉴别技术,如口令、数字证书Ukey. 令牌、指纹等,是否有一种鉴别方法使用密码技术。 | 1)采用的登录方式有:用户名口令,MySQL数据库无法集成其他身份鉴别方式,在操作系统实现双因素,通常将服务器纳入到堡垒机管理,同时通过限制仅允许通过堡垒机坛维服务器。在堡垒机实现双因素身份认证。常见的双因素认证方式有口令、数字证书Ukey、令牌、指纹等; 2)采用的密码技术是: 在硬件UKey中使用了加密算法。 | |
访问控制 | a) 应对登录的用户分配账户和权限; | 1)执行语句select * from mysql.user; 输出结果是否为网络管理员,安全管理员,系统管理员创建了不同账户; 2)执行show grants for’ XXXX’@’ localhost’; 查看网络管理员,安全管理员、系统管理员用户账号的权限,权限间是否分离并相互制约。 | 1)审计员的角色,创建了不同的账户,并为其分配了相应的权限; 2)已禁用匿名、默认账户或限制匿名、默认用户的权限; 1、使用select * from user; 详细了解各类用户的权限。 2、访谈管理员主要为用户分配了什么角色,为各类用户分配了了什么样的权限权限,或使用:show grants for 用户名; 查看各类用户的权限。 |
b) 应重命名或删除默认账户,修改默认账户的默认口令; | 1)执行select * from mysql.user; 输出结果查看root用户是否被重命名或被删除; 2)若root账户未被删除,是否更改其默认口令,避免空口令或弱口令。 | 1)数据库管理系统默认账户已被删除; 2)数据本管理系统账认账户root未被删除,但增强其口令复杂度,不要空口令、弱口令的现象。 详细询问每个用户用途,检查root 用户或在其他默认用户口令是否修改。 | |
c) 应及时删除或停用多余的、过期的账户,避免共享账户的存在; | 1)在sqlplus中执行命令:select username,account_status from dba_users; 2)执行:select * from mysql.user where user=""; 依次核查列出的账户,是否存在无关的账户。 3)访谈网络管理员,安全管理员、系统管理员不同用户是否采用不同账户登录系统。 | 1)不存在示例帐户; 2)数据库管理系统用户表中不存在无关账户; 3)不存在多人共享帐户的情况。 通过查看用户的状态,详细询问每个用户的用户,并查看多余账户的account_locked的状态,Y的代表锁定。 | |
d) 应授予管理用户所需的最小权限,实现管理用户的权限分离。 | 1)是否对用户进行角色划分且只授予账号必须的权限,如除root外,任何用户不应该有mysql库user表的存取权限,禁止将fil、.process、 super权限授予管理员以外的账户; 2)查看权限表,并验证用户是否具有自身角色外的其他用户的权限。 | 记录管理用户的权限分配情况:分配了网络管理员、安全员、审计员账号,root账户使用需向数据库管理员申请。 (1) 通过select * from mysql.user ;查看是否仅有root一个超级管理员的权限,是否存在与root账户一样拥有所有权限的超级管理员的账户,并了解各用户授权的情况及授权的原因。 Y代表拥有此权限,N代表没有此权限。 | |
(3级)e)应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则。 | 1)访谈管理员是否制定了访问控制策略; 2)执行:mysql>select * from mysql.user; -检查用户权限列; mysql>select * from mysql.db; --检查数据库权限列; mysql>select * from mysql.tables_priv; 一检查用户表权限列; mysql>select * from mysql.columns_privi; -检查列权限列管理员; 输出的权限列是是否与管理员制定的访问控制策略及规则一致; 3)登录不同的用户,验证是否存在越权访问的情形。 | 1)制定数据库访问控制策略,由专门的安全员负责对访问控制权限的授权工作; 2)各账户权限配置,均是基于安全员的安全策略配置进行的访问控制; 3)无越权访问; (1)通过 selcec * from mysql.user;查看每个用户的在mysql数据库中的权限 (2)通过select * from db;查看用户在数据中的权限 (3)用户表级别的权限。 | |
(3级)f)访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级; | 1)执行下列语句: mysql>select * from mysql.user; 检查用户权限列 mysql>select * from mysql.db; 检查数据库权限列 2)访谈管理员并核查访问控制粒度主体是否为用户级,客体是否为数据库表级。 | 查看是否设置了安全管理员岗位,是否由专门的安全员负责对访问控制权限的授权工作,授权主体为用户,客体为数据库表。 | |
(3级)g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问; | 访谈管理员,是否采用其他技术手段; | MySQL不提供该项功能,主要依据操作系统层面实现该项功能。 | |
安全审计 | a) 应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计; | 1)执行下列语句: mysql>show variables like ‘log_%’; 查看输出的日志内容是否覆盖到所有用户,记录审计记录覆盖内容; 2)核查是否采取第三方工具增强MySQL日志功能。若有,记录第三方审计工具的审计内容,查看是否包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息。 | 1)数据库本地启用了日志功能,审计内容覆盖到每个用户, 能够记录用户行为和重要安全事件; 2)启用审计功能策略为:配置了审计日志存储位置,或部署第三方数据库审计产品,审计内容覆盖到所有用户。 |
b) 审计记录应包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息; | 1)执行下列语句: mysql>show variables like ‘log_%’; 查看输出的日志内容是否覆盖到所有用户,记录审计记录覆盖内容 2)核查是否采取第三方工具增强MySQL日志功能。若有,记录第三方审计工具的审计内容,查看是否包括事件的日期和时间、用户、事件类型、事件是否成功及其他与审计相关的信息 | ||
c) 应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等。 | 1)访谈管理员对审计话录如何保护,对审计记录是否定期备份,备份策略; 2)是否严格限制用户访问审计记录的权限。 | 1)采取了备份、转存等手段对审计记录进行保护,避免未预期的删除、修 改或覆盖,数据库本地日志保存时间超过6个月; 2)采用第三方数据库审计产品,审计记录保存时间超过6个月。 | |
(3级)d)应对审计进程进行保护,防止未经授权的中断 | 1)询问是否严格限制管理员、审计员权限; 2)用户重启实例关闭审计功能,查看是否成功。 | 1)非审计员账户无法中断审计进程,审计进程受到保护; 2)测试其他人员是否可以对审计进程进行开启,关闭操作,并记录。 | |
入侵防范 | a) 应遵循最小安装的原则,仅安装需要的组件和应用程序; | ||
b) 应关闭不需要的系统服务、默认共享和高危端口; | |||
c) 应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制; | 执行show grants for root@localhost; 查看用户登录的IP地址;是否给所有用户加上IP限制,拒绝所有未知主机进行连接 注:当user表中的Host值不为本地主机时,应指定特定IP地址,不应为%;或将user表中的Host值为空,而在host表中指定用户帐户允许登陆访问的若干主机;在非信任的客户端以数据库账户登录应被提示拒绝,用户从其他子网登录,应被拒绝。 | 1、配置安全策略为:在防火墙上限制特定的终端(IP) 连接(访问)数据库:限定的IP地址为:XXXX 2、查看数据库自身是否限制登陆地址。 %代表所有主机,localhost代表本机登录。 | |
d) 应提供数据有效性检验功能,保证通过人机接口输入或通过通信接口输入的内容符合系统设定要求; | 数据库默认符合。 | 数据库默认符合。 | |
e) 应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞。 | |||
数据备份恢复 | a) 应提供重要数据的本地数据备份与恢复功能; | 询问系统管理员数据库的备份和恢复策略是什么 | 备份策略为:对数据库重要数据每天增量备份,每周全量备份; 近期恢复测试时间:每月(季度)定期进行恢复性测试演练。 |
b) 应提供异地数据备份功能,利用通信网络将重要数据定时批量传送至备用场地。 | 1)询问系统管理员是否提供异地数据备份功能,是否定时批量传送至备用场地; 2)如果条件允许,则查看其实现技术措施的配置情况。 | 部署数据备份机房:有异地备份机房,实时(定期)将数据备份到机房。 |
内容仅供参考!