等级保护2.0-mysql
控制点 |
安全要求 |
要求解读 |
测评方法 |
预期结果或主要证据 |
身份鉴别 |
a)应对登录的用户进行身份标识和鉴别,身份标识具有唯一性,身份鉴别信息具有复杂度要求并定期更换 |
应检查MySQL数据库的口令策略配置,查看其身份鉴别信息是否具有不易被冒用的特点,例如,口令足够长,口今复杂(如规定字符应混有大,小写字母数字和特殊字符),口令定期更新,新旧口令的替换要求 |
1)尝试登录数据库,执行mysql -u root -p查看是否提示输入口令鉴别用户身份 |
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)询问管理员是否采取其他手段配置数据库登录失败处理功能。 |
1)MySQL数据库采用第三方管理软件,且第三方管理软件设置登录失败锁定次数 如:执行成功,如下:单位毫秒:3次失败锁定2分钟,这里只是示例,并不是或是需要这样去配。 3)检查会话超时:show variables like 'wait_timeout'; 10分钟。 |
|
c)当进行远程管理时,应采取必要措施、防止鉴别信息在网络传输过程中被窃听 |
为了防止包括鉴别信息在内的敏感信息在网络传输过程中被窃听,应限制从远程管理数据,如果使用了远程访问,要确保只有定义的主机才可以访问服务器,一般通过 TCP wrappers 、iptables或任何其它的防火墙软件或硬件实现 |
1)是否采用加密等安全方式对系统进行远程管理 |
1)远程管理采用的方式:远程管理数据库,启用了SSL连接特性。 1)执行:show variables like 'have_ssl'; 开启了SSL (2)通过抓包,验证的确对数据进行了加密。 |
|
d)应采用口令、密码技术、生物技术等两种或两种以上组合的鉴别技术对用户进行身份鉴别,且其中一种鉴别技术至少应使用密码技术来实现 |
MySQL不能集成其他身份鉴别措施,应通过对操作系统层面实现双因素,强化数据库安全 |
1)MySQL不能集成其他身份鉴别措施,应通过对操作系统层面实现双因素 |
1)采用的登录方式有:用户名口令,MySQL数据库无法集成其他身份鉴别方式,在操作系统实现双因素,通常将服务器纳入到堡垒机管理,同时通过限制仅允许通过堡垒机坛维服务器。在堡垒机实现双因素身份认证。常见的双因素认证方式有口令、数字证书Ukey. 令牌、指纹等 |
|
访问控制 |
a)应对登录的用户分配账户和权限 |
访谈管理员数据库用户账户及权限分配情况,并测试网络管理员、安全管理员、系统管理员或核查用户账户和权限设置的情况,有些mysql数据库的匿名用户的口令为空,因而,任何人都可以连接到这些数据库。如果匿名帐户grants存在,那么任何人都可以访问数据库,至少可以使用默认的数据库”test“.因此,应核查是否已禁用匿名、默认账户的访问权限 |
1)执行语句select user,host FROM mysql.user |
1)审计员的角色,创建了不同的账户,并为其分配了相应的权限 (1)使用select * 详细权限说明可以见:https://blog.csdn.net/codemacket/article/details/77836010。 访谈管理员主要为用户分配了什么角色,为各类用户分配了了什么样的权限权限, 示例!!!也可以使用:show grants for 用户名; 查看各类用户的权限,得出结果如下:GRANT SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, FILE, INDEX, |
b)应重命名或删除默认账户,修改默认账户的默认口令 |
在linux中,root 用户拥有对所有数据库的完全访问权。因而,在linux的安装过程中,一定要设置root口令,要改变默认的空口令 |
1)执行select user,host FROM mysql.user |
1)数据库管理系统默认账户已被删除 (1)详细询问每个用户用途,检查root 用户或在其他默认用户口令是否修改; |
|
c)应及时删除或停用多余的、过期的账户,避免共享账户的存在 |
在默认安装mysql中,匿名户可访问test数据库.我们可以移除任何无用的数据库,以避免在不可预料的情况下访问了数据库,同时删除数据库中多余的、过期的账户,如测试账号等 |
1)在sqlplus中执行命令: select |
1)不存在示例帐户 (1)通过查看用户的状态,详细询问每个用户的用户,并查看多余账户的account_locked的状态,Y的代表锁定。 |
|
d)应授予管理用户所需的最小权限,实现管理用户的权限分离 |
有些应用程序是通过一个特定数据库表的用户名和口令连接到WySQL的,安全人员不应当给予这个用户完全的访问权。如果攻击者获得了这个拥有完全访问权的用户,他也就拥有了所有的数据库。因此应核查用户是否行角色划分,核查访问控制策略,查看管理用户的权限是否已进行分离,并核查管理用户权限是否为其工作任务所需的最小权限 |
1)是否对用户进行角色划分且只授予账号必须的权限 |
1)2)记录管理用户的权限分配情况:分配了网络管理员、安全员、审计员账号,root账户使用需向数据库管理员申请 (1) 通过select * from mysql.user ;查看是否仅有root一个超级管理员的权限,是否存在与root账户一样拥有所有权限的超级管理员的账户,并了解各用户授权的情况及授权的原因。 Y代表拥有此权限,N代表没有此权限,详细权限说明可以见:https://blog.csdn.net/codemacket/article/details/77836010。 |
|
e)应由授权主体配置访问控制策略,访问控制策略规定主体对客体的访问规则 |
应检查数据库系统的安全策略,查看是否明确主体(如用户)以用户和/或用户组的身份规定对客体(如文件或系统设备,目录表和存取控制表等)的访问控制,覆盖范围是否包括与信息安全直接相关的主体(如用户)和客体(如文件,数据库表等)及它们之间的操作(如读、写或执行) |
1.访谈管理员是否制定了访问控制策略 |
1制定数据库访问控制策略,由专门的安全员负责对访问控制权限的授权工作: (1)通过 selcec * from mysql.user;查看每个用户的在mysql数据库中的权限 (2)通过select * from db;查看用户在数据中的权限 (3)用户表级别的权限。 一些权限说明,参考 https://blog.csdn.net/weixin_33816946/article/details/91532878 |
|
f)访问控制的粒度应达到主体为用户级或进程级,客体为文件、数据库表级 |
明确提出访问控制的粒度要求,重点目录的访问控制的主体可能为某个用户或某个进程,应能够控制用户或进程对文件、数据库表等客体的访问 |
1)执行下列语句: |
1) 2)查看是否设置了安全管理员岗位,是否由专门的安全员负责对访问控制权限的授权工作,授权主体为用户,客体为数据库表 |
|
g)应对重要主体和客体设置安全标记,并控制主体对有安全标记信息资源的访问 |
MySQL不提供该项功能 |
访谈管理员,是否采用其他技术手段 |
MySQL不提供该项功能,主要依据操作系统层面实现该项功能 |
|
安全审计 |
a)应启用安全审计功能,审计覆盖到每个用户,对重要的用户行为和重要安全事件进行审计 |
如果数据库服务器并不执行任何查询,建议启用审计。在/etc/my.cnf文件的[Mysql]部分添加: 1og,=/var/1og/ my1ogfile |
1)执行下列语句: |
1)数据库本地启用了日志功能,审计内容覆盖到每个用户, (1)、询问管理员是否能对用户登录及用户命令操作进行审计,请调出日志证据,开启了general_log后能记录Mysql的操作命令,但看不到哪个用户。 (2) err-log能记录用户登录失败的事件,但看不到登陆成功的用户。 (3)mysql 查询日志,检查general_log是否开启, 看查general_log_file文件位置 查看general_log是否包括包括查询命令: 综上,mysql自身是不能查询某个用户什么时候登陆,进行了什么样的操作。 审计功能缺失,及时log功能开启,也不能对应到人。 |
b)审计记录应包括事件的日期和时间,用户、事件类型,事件是否成功及其他与审计相关的信息 |
应检查数据库系统,查看审计策略是否覆盖系统内重要的安全相关事件,例如,用户登录系统、自主访问控制的所有操作记录、重要用户行为(如增加/删除用户,删除库表)等 |
1)执行下列语句: |
1)数据库本地启用了日志功能,审计内容覆盖到每个用户,能够记录重要用户行为和重要安全事件 |
|
c)应对审计记录进行保护,定期备份,避免受到未预期的删除、修改或覆盖等 |
应保证只有root和mysql可以访问这些日志文件,其中,错误日志务必须确保只有root和MySq1可以访问hostnam'err日志文件,由于该文件存放在mysql数据历史中,文件包含如口令、地址,表名,存储过程名、代码等敏感信息,易被用于信息收集,并且有可能向攻击者提供利用数据库漏洞的信息,攻击者获取安装数据库的服务器的内部数据: MySQL日志,应确保只有root和mysq1可以访问logfileXY日志文件,此文件存放在mysq1的历史目录中。因此,应检查MySQL数据库系统是否对日志进行了权限设置,非授权人员不能对日志进行操作。另外,应防止审计日志空间不够而导致无法记录日志的情况发生,并对审计日志进行定期备份,根据《网络安全法》要求,日志应至少保存6个月以上 |
1)访谈管理员对审计话录如何保护,对审计记录是否定期备份,备份策略 |
1)采取了备份、转存等手段对审计记录进行保护,避免未预期的删除、修 |
|
d)应对审计进程进行保护,防止未经授权的中断 |
应测试通过非审计员的其他账户来中断审计进程,验证审计进程是否受到保护;对于MySQL数据库系统默认符合,但是如果采取了第三方工具,则应检查数据库系统,查看未授权用户是否能中断审计进程 |
1)询问是否严格限制管理员、审计员权限 |
1)非审计员账户无法中断审计进程,审计进程受到保护 |
|
入侵防范 |
a)应通过设定终端接入方式或网络地址范围对通过网络进行管理的管理终端进行限制 |
直接通过本地网络之外的计算机连接生产环境中的数据库是异常危险的。有时,管理员会打开主机对数据库的访问: |
执行show grants for root@localhost |
1、配置安全策略为:在防火墙上限制特定的终端(IP) 连接(访问)数据库:限定的IP地址为:XXXX 2、查看数据库自身是否限制登陆地址: %代表所有主机,localhost代表本机登陆。 |
b) 应能发现可能存在的已知漏洞,并在经过充分测试评估后,及时修补漏洞 |
攻击者可能利用操作系统存在的安全漏洞对系统进行攻击,应对系统进行漏洞扫描,及时发现系统中存在的已知漏洞,并在经过充分测试评估后更新系统补丁,.避免遭受由系统漏洞带的风险 |
访谈MySQL补丁升级机制,查看补丁安装情况: |
1)数据库当前不有在高风险漏洞,补丁更新及时,记录补丁信息为: MySQL数据库补丁定期更新版本 |
|
数据备份恢复 |
a)应提供重要数据的本地数据备份与恢复功能 |
任何系统都有可能发生灾难,服务器、MySQL也会崩溃,也有可能遭受入侵,数据有可能被删除。只有为最糟糕的情况做好了充分的准备,才能够在事后快速地从灾难中恢复。用户应把备份过程作为一项日常工作。数据库系统至少提供本地实时备份的功能,当数据发生错误时,能够及时恢复数据 |
询问系统管理员数据库的备份和恢复策略是什么 |
备份策略为:对数据库重要数据每天增量备份,每周全量备份: |
b)应提供异地实时备份功能,利用通信网络将重要数据实时备份至备份场地 |
应提供灾备中心,对重要的数据提供异地数据级备份,保证当本地系统发生灾难性后果不可恢复的,利用异地保存的数据对系统数据能进行恢复 |
1)询问系统管理员是否提供异地数据备份功能,是否定时批量传送至备用场地 |
部署数据备份机房:有异地备份机房,实时(定期)将数据备份到机房 |
等级保护2.0-mysql的更多相关文章
- 智和网管平台SugarNMS网络综合监控等级保护安全解决方案
IT运维是一个很大的范畴,涉及到的部门.架构.技术.产品十分广泛.北京智和信通以等保标准为依据,依托丰富的网络安全行业经验,配套自主研发的智和网管平台SugarNMS,提升用户网络关键基础设施综合管理 ...
- Mysql下Limit注入方法(此方法仅适用于5.0.0<mysql<5.6.6的版本)
SQL语句类似下面这样:(此方法仅适用于5.0.0<mysql<5.6.6的版本) SELECT field FROM table WHERE id > 0 ORDER BY id ...
- 权限管理系统源码分析(ASP.NET MVC 4.0 + easyui + EF6.0 + MYSQL/MSSQLSERVER +微软企业库5.0+日志绶存)
系统采用最先进技术开发: (ASP.NET MVC 4.0 + easyui + EF6.0 + MYSQL/MSSQLSERVER +微软企业库5.0+日志绶存) 大家可以加我QQ讨论 309159 ...
- 【数据库】7.0 MySQL入门学习(七)——MySQL基本指令:帮助、清除输入、查询等
1.0 help == ? 帮助指令,查询某个指令的解释.用法.说明等.详情参考博文: [数据库]6.0 MySQL入门学习(六)——MySQL启动与停止.官方手册.文档查询 https://www. ...
- 【数据库】6.0 MySQL入门学习(六)——MySQL启动与停止、官方手册、文档查询
1.0 MySQL主要有四种启动方式:直接启动.安全启动.服务启动.多实例启动. 直接启动: 服务器启动: 安全启动(最常用): 多实例启动: 2.0如何获得MySQL帮助 2.1官方手册 下面提供百 ...
- 【数据库】4.0 MySQL入门学习(四)——linux系统环境下MySQL安装
1.0 我的操作系统是CentOS Linux release 7.6.1810 (Core) 系统详细信息如下: Linux version 3.10.0-957.1.3.el7.x86_64 ( ...
- 【数据库】5.0 MySQL入门学习(五)——MySQL源码了解及MySQL初始化设置
1.0 MySQL源码目录主要包括:客户端代码.服务端代码.测试工具.其他库文件.当然,看懂源代码得有一定的C语言基础. BUILD:各种平台的编译脚本,可以用来制作各平台的二进制版本 client: ...
- 【数据库】3.0 MySQL入门学习(三)——Windows系统环境下MySQL安装
1.0 我的操作系统是window10 专业版 64位.,不过至少windows7以上系统都是一样的. 关于MySQL如何下载,请参考博文: [数据库]2.0 如何获得MySQL以及MySQL安装 h ...
- 【数据库】1.0 MySQL入门学习(一)——常识性知识
1.0 什么是MySQL(官方发音 My Ess Que Ell)? 是一个快速.多线程.多用户和强壮的SQL数据库服务器,SQL是世界上最流行的标准化数据库语言. 名字来源:共同创办人Monty W ...
随机推荐
- tp5 配置 // 视图输出字符串内容替换 'view_replace_str' 的原理
- 「SDOI2009」虔诚的墓主人
传送门 Luogu 解题思路 离散化没什么好说 有一种暴力的想法就是枚举每一个坟墓,用一些数据结构维护一下这个店向左,向右,向上,向下的常青树的个数,然后用组合数统计方案. 但是网格图边长就有 \(1 ...
- laravel 动态属性
我们在 User 模型里定义了关联方法 followings() 关联关系定义好后,我们就可以通过访问 followings 属性直接获取到关注用户的 集合.这是 Laravel Eloquent 提 ...
- ParameterizedType 使用方法
ParameterizedType 它是jdk提供的参数化类型,包括了如下 请求参数,和响应参数都是 参数话类型.记住凡是含有<T>中的都是参数话类型. public static < ...
- 【代码学习】PYHTON 元组
Python的元组与列表类似,不同之处在于元组的元素不能修改.也可进行分片 和 连接操作. 元组使用小括号,列表使用方括号. 一.访问元组 #coding=utf-8 Tuple = ('name', ...
- APDL获取节点和单元的结果
目录 1. 获取节点结果 1.1 获取节点应力结果 1.2 获取节点位移结果 1.3 获取节点应变结果--总应变 1.4 获取节点应变结果--弹性应变 1.5 获取节点应变结果--塑性应变 1.6 获 ...
- IKAnalyzer使用
1.分析器 所有分析器最终继承的类都是Analyzer 1.1 默认标准分析器:StandardAnalyzer 在我们创建索引的时候,我们使用到了IndexWriterConfig对象,在我们创建索 ...
- Codeforces Round #606 (Div. 2) - E. Two Fairs(割点+dfs)
题意:给你一张无向连通图,对于求有多少对$(x,y)$满足互相到达必须经过$(a,b)$,其中$x\neq a,x\neq b,y\neq a,y\neq b$ 思路:显然$a,b$都必须为割点,所以 ...
- 【SSM sql.xml】日志查询mapper.xml
LogInfoMapper.xml <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapp ...
- 【PAT甲级】1052 Linked List Sorting (25 分)
题意: 输入一个正整数N(<=100000),和一个链表的头结点地址.接着输入N行,每行包括一个结点的地址,结点存放的值(-1e5~1e5),指向下一个结点的地址.地址由五位包含前导零的正整数组 ...