Mysql 三级等保测评表格,仅供参考。
等级保护要求 | 测评项说明 | 测评步骤 | 检查结果 | 符合度 | 检查结果(不符合) | |||
控制点名称 | L3 | 测评项 | ||||||
身份鉴别(S) | s3 | a) 应对数据库系统的用户进行身份标识和鉴别; | 所有用户登录系统都需要密码,暂无空密码的用户 | 1) 查看mysql授权主机有那些,是否采用强口令登陆。 mysql -u root (验证root是否需要口令才能登录) mysql -u root@localhost (验证root在本地登录是否需要口令) 2)查看是否存在空口令用户。 | 所有用户登录系统都需要密码,暂无空密码的用户。 | 符合 | 所有用户登录系统都需要密码,暂无空密码的用户 | |
s3 | b) 数据库系统管理用户身份标识应具有不易被冒用的特点,口令应有复杂度要求并定期更换; | MySQL数据库暂未设置密码策略项,需要堡垒主机或第三方软件支持。 | 1)mysql本身无法设置密码策略,只能通过第三方软件或公司密码策略制度进行设置并执行。询问管理员是否采用第三方软件或有公司密码策略制度。 | 口令有复杂度要求,口令暂无定期进行修改。 | 符合 | 口令有复杂度要求,口令暂无定期进行修改 | ||
s3 | c) 应启用登录失败处理功能,可采取结束会话、限制非法登录次数和自动退出等措施; | mysql数据库暂无登录失败处理功能 | 1)如果mysql数据库系统没有部署堡垒主机,则该项不符合。 | 暂无登录失败处理功能。 | 符合 | 暂无登录失败处理功能 | ||
s3 | d) 当对服务器进行远程管理时,应采取必要措施,防治鉴别信息在网络传输过程中被窃听 | 远程管理数据库通过登录远程主机进行管理,采用了加密措施,能防止鉴别信息在网络传输过程中被窃听 | 1)在数据库中输入show variables; 查看“have_openssl”参数,若为YES则表明使MySQL支持SSL加密协议。 | 远程管理数据库通过登录远程主机进行管理,远程主机都通过堡垒机加VPN远程登陆,采用了加密措施,能防止鉴别信息在网络传输过程中被窃听。 | 符合 | 远程管理数据库通过登录远程主机进行管理,采用了加密措施,能防止鉴别信息在网络传输过程中被窃听 | ||
s3 | e) 应为数据库系统的不同用户分配不同的用户名,确保用户名具有唯一性。 | 数据库中不同的用户有不同的用户名 | 1)查看mysql数据库中的所有用户 SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user;或者mysql>use mysql select user, host from user; | 数据库中不同的用户有不同的用户名 | 符合 | 数据库中不同的用户有不同的用户名 | ||
s3 | f) 应采用两种或两种以上组合的鉴别技术对管理用户进行身份鉴别 | 只有一种身份鉴别方式,用户名和密码 | 1) 询问数据库管理员,MySQL使用了哪些类别的身份鉴别方式,是否采用除用户名密码之外的其他类型身份鉴别方式。并当场进行登录的验证。 | 只有一种身份鉴别方式,用户名和密码。 | 符合 | 只有一种身份鉴别方式,用户名和密码 | ||
访问控制(S) | s3 | a) 应启用访问控制功能,依据安全策略控制用户对资源的访问; | 启用了访问控制功能,不同的用户对资源的访问权限不同 | 1)一旦连接到了服务器,一个用户可以使用两种类型的请求: 管理请求(shutdown,reload,等)数据库相关的请求(insert,delete,等)。先查看USER表中用户的权限,在查看DB或者HOST表中的权限,以此为对照判断数据库是否进行了访问控制。 | 启用了访问控制功能,不同的用户对资源的访问权限不同 | 符合 | 启用了访问控制功能,不同的用户对资源的访问权限不同 | |
b) 应根据管理用户的角色分配权限,实现管理用户的权限分离,仅授予管理用户所需的最小权限 | 不同的账户,角色和权限不同,仅授予了管理用户所需的最小权限 | 1)登录使用root登录mysql数据库mysql -u root -> 查看数据库show databases; ->选择库 use mysql; -> 查看库中的表 show tables; -> 查看某用户权限show grant for root@localhost \G; 或者select * from user; | 不同的账户,角色和权限不同,仅授予了管理用户所需的最小权限 | 符合 | 不同的账户,角色和权限不同,仅授予了管理用户所需的最小权限 | |||
s3 | c)应实现操作系统和数据库系统特权用户的权限分离; | 1)询问管理员是否由不同员工分别担任操作系统管理员与数据库管理员。 | 主机只有一个管理员用户,拥有系统权限和数据库权限。 | 不符合 | ||||
s3 | d) 应限制默认帐户的访问权限,重命名系统默认帐户,修改这些帐户的默认口令; | 操作系统和数据库系统的用户权限实现了分离 | 1) 查看mysql数据库默认的用户名是否更改,root@localhost;root@127.0.0.1;root@ns.abc.com; 2)是否限制默认账户权限 | 操作系统和数据库系统的用户权限实现了分离 | 符合 | 操作系统和数据库系统的用户权限实现了分离 | ||
s3 | e) 应及时删除多余的、过期的帐户,避免共享帐户的存在 | 系统中的默认账户的密码进行了修改 | 1)show databases; 查看是否有测试数据库。 2)查询当前使用的数据库:select database(); 3)查询当前用户:select user(); 4)查看所有用户:SELECT DISTINCT CONCAT('User: ''',user,'''@''',host,''';') AS query FROM mysql.user; | 系统中的默认账户的密码进行了修改,没有多余和过期账户。 | 符合 | 系统中的默认账户的密码进行了修改 | ||
s3 | f)应对重要信息资源设置敏感标记; | 系统中存在多余的,过期的账户 | 1) 询问数据库管理员,是否对重要的信息资源采用一定的技术手段设置敏感标记,以及是否对重要信息资源设置敏感标记,询问敏感标记的怎样进行分级 | 数据库管理员没有对对重要的信息资源采用一定的技术手段设置敏感标记。 | 不适用 | 系统中存在多余的,过期的账户 | ||
s3 | g) 应依据安全策略严格控制用户对有敏感标记重要信息资源的操作 | 暂未对重要信息资源设置敏感标记 | 1) 询问数据库管理员,对重要信息资源如何划分敏感标记分类,如何设定访问权限实施访问控制,对不同敏感程度的信息资源的访问控制如何区分 | 数据库管理员没有对对重要的信息资源采用一定的技术手段设置敏感标记。 | 部分符合 | 暂未对重要信息资源设置敏感标记 | ||
安全审计(G) | g3 | a) 审计范围应覆盖到服务器和重要客户端上的每个数据库用户; | mysql数据库默认没有安装审计插件,需要修改源代码或者下载审计插件:mysql-audit。如果安装完成后audit.so和audit.cnf文件中设置参数。 或者开启General_log,查看日志文件即可。 | 数据库管理员没有对对重要的信息资源采用一定的技术手段设置敏感标记。 | 符合 | 暂未对重要信息资源设置敏感标记 | ||
mysql的binlog记录了数据库的所有用户的操作 | mysql的binlog记录了数据库的所有用户的操作 | |||||||
g3 | b) 审计内容应包括重要用户行为、系统资源的异常使用和重要系统命令的使用等系统内重要的安全相关事件; | 查看日志文件包括重要用户行为、系统资源的异常使用和重要系统命令的使用等系统内重要的安全相关事件。 | 符合 | |||||
g3 | c) 审计记录应包括事件的日期、时间、类型、主体标识、客体标识和结果等; | 审计内容包括了重要的用户行为,系统资源的异常使用,和重要系统命令的使用等系统内重要的安全相关事件。 | 审计内容包括了重要的用户行为,系统资源的异常使用,和重要系统命令的使用等系统内重要的安全相关事件 | 符合 | 审计内容包括了重要的用户行为,系统资源的异常使用,和重要系统命令的使用等系统内重要的安全相关事件 | |||
g3 | d) 应能根据记录数据进行分析,并生产审计报表 | 审计信息包括日期,时间,库,结果等。 | 1) 询问数据库管理员是否定期对审计数据生成分析报表,或者第三方数据库审计系统是否提供自动生成审核事件的自动生成报表的功能,可查看生成的报表记录。可生成报表时此项满足。 | 部署有网神的日志审计系统,对审计数据生成分析报表,审计信息包括日期,时间,库,结果等。 | 符合 | 审计信息包括日期,时间,库,结果等。 | ||
g3 | e)应保护审计进程,避免受到未预期的中断; | 暂未依据记录数据进行分析,并产生审计报表 | 1) 以非授权用户登录数据库系统,试图改变审计配置选项,查看是否成功 2) 询问管理员,是否有其他对审核日志文件的保护方式,并在条件允许的情况下尝试进行验证 3) 查看是否定期对日志文件进行备份和转移 | 部署有网神的日志审计系统,对审计数据生成分析报表,审计信息包括日期,时间,库,结果等。 | 符合 | 暂未依据记录数据进行分析,并产生审计报表 | ||
g3 | f) 应保护审计记录,避免受到未预期的删除、修改或覆盖等 | 审计进程无法单独中断 | 1) 以普通用户进入数据库系统,查看能否对日志进行非授权操作,询问第三方软件是如何保护数据不被篡改的 | 审计进程无法单独中断 | 符合 | 审计进程无法单独中断 | ||
资源控制(A) | a3 | a) 应通过设定终端接入方式、网络地址范围等条件限制终端登录; | 数据库本身可以对接入终端的IP地址进行限制。 | 1)限制方式 :grant all on *.* to '用户名'@'IP地址' identified by '远程登录密码'; 2)无限制方式:grant all on *.* to '%'@'localhost' identified by 'password'; 3)查看所有用户,如果当中出现user1@192.168.22.44和user1@localhost,意味着user1这个用户既可以本地登录,也可通过IP为192.168.22.44的客户端登录。表明该数据库限制终端登录。 4)如果只存在user1@192.168.22.44表明该用户无法在本地登录。 | 通过核心和出口防火墙访问控制列表,限制了能登录终端的IP范围。 | 符合 | 通过防火墙限制了能登录终端的IP范围 | |
a3 | b) 应根据安全策略设置登录终端的操作超时锁定; | 暂未依据安全策略设置登录终端的操作超时锁定 | 1)在数据块中show variables;或者查看grep -v "^#" etc/my.cnf。 查看 wait_timeout连接的等待时间默认为28800秒(8小时)。 | 暂未依据安全策略设置登录终端的操作超时锁定 | 符合 | 暂未依据安全策略设置登录终端的操作超时锁定 | ||
a3 | c) 应限制单个用户对系统资源的最大或最小使用限度。 | 1)登录mysql数据库use mysql;select * from user \G;查看所有用户以下参数。 MAX_QUERIES_PER_HOUR 用来限制用户每小时运行的查询数量 MAX_UPDATES_PER_HOUR 用来限制用户每小时的修改数据库数据的数量。 MAX_CONNECTIONS_PER_HOUR用来控制用户每小时打开新连接的数量。 MAX_USER_CONNECTIONS 限制有多少用户连接MYSQL服务器。 | 有cacti监控数据库状态,暂无对用户的使用资源进行限制 | 符合 | 有cacti监控数据库状态,暂无对用户的使用资源进行限制 |
本公众号是个人学习工作笔记,希望大家发现问题能及时和我本人沟通,希望你与我共同成长。个人微信zgjt12306。
欢迎关注“自学Oracle”
最后修改时间:2019-12-17 12:30:50
文章转载自自学Oracle,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。