MySQL数据库安全研究
2020-05-21蒋睿
摘要:MySQL数据库是当前最流行的关系型数据库系统,被广泛应用到各企业中小型网站中。当前,日益增长的网络攻击已严重威胁到了数据库安全,提高数据库的安全性已成为网络安全建设的最重要任务之一。该文从物理安全、网络安全、主机安全、运行安全等四个方面对MySQL数据库面临的问题进行了详细分析与研究,并针对性地提出了相应解决方案。
关键词:MySQL数据库;物理安全;网络安全;主机安全;运行安全
中国分类号:TP309.2 文献标识码:A
文章编号:1009-3044(2020)09-0003-02
1 引言
MySQL是一个轻量级关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司。MySQL由于其开源、免费,维护简单,使用成本低等特点被越来越多地应用到web类服务器中。作为web应用核心组成部分,MySQL數据库的安全直接关系到整个应用系统的安全,企业必须投入更多精力关注数据库面临的安全威胁,并制定相应解决方案。
2 数据库安全加固
2.1 物理安全保证数据库安全,首先要保证数据库服务器设备安全。数据库服务器硬件的可靠性直接决定了整个数据库系统的可靠性。因服务器磁盘数量较多,为了提高其可靠性通常不会直接采用直通模式,而是通过raid控制器将物理卷组合成一个或多个逻辑卷,不同的raid级别带来完全不一样的性能,常见的组合方式及性能如表1所示。
数据库管理员应在对成本、性能、可靠性进行综合考虑后选择最为合适生产环境的raid方案。
2.2 网络安全
为充分保障数据库服务器所在网络的安全,企业内网中应配备以下几种设备:
a)安全设备
主要包括IDS、IPS、防病毒网关等;
b)边界网络设备
主要包括路由器、防火墙、认证网关和准入控制设备等;
c)其他网络设备
主要包括接人交换机、汇聚交换机、核心交换机、负载均衡等。
网络层的访问控制主要由防火墙来实现,管理员可以通过防火墙设备对访问数据库服务器的源地址和端口进行控制,应当只允许相关用户IP地址访问该数据库服务器,访问端口控制到3306,并对该条策略启用防火墙日志记录功能。访问控制策略的设置应遵循权限最小化原则。
2.3 主机安全
2.3.1 系统安全
为了提高数据库的可靠性,必须提高操作系统的可靠性。如果使用linux作为数据库服务器操作系统,则应在安装数据库服务器操作系统过程中启用lvm管理,lvm提供了逻辑卷快照功能,它允许管理员创建一个新的块设备来呈现一个逻辑卷的精确副本,在某个时间冻结,管理员可以及时备份指定一致状态下的数据,当需要恢复删除的数据时可以通过挂在快照卷迅速恢复。
2.3.2 身份鉴别
缺省安装的MySQL的root用户是空密码的,必须修改默认的密码策略。
可以使用以下命令查看MySQL当前密码策略:
show variables like' validate_password%;
为提高数据库安全性,我们必须将其设置为强密码策略:口令长度需要至少八位,并包括数字、字母和特殊符号四类中,且五次以内不得设置相同的口令。密码应至少每90天进行一次更换。可以通过修改以下几个参数实现:
validate_password_length:密码最少长度
validate_password_mixed_c ase_count:大小写字符长度,至少1个
validate_password_number_count:数字至少1个
validate_password_special_char_count:特殊字符至少1个
default_password_lifetime:密码过期时间
2.3.3 访问控制
访问控制是安全防护的主要手段之一,它不仅应用于网络层面,同样适用于主机层面,它的主要目的是限制特定用户对特定资源的访问,防止对系统资源的非法访问和使用。数据库系统访问控制主要分为以下几点:
a)操作系统和数据库系统管理员权限分离
数据库服务器操作系统管理员和数据库管理员不得兼任;
b)禁止MySQL以管理员账户运行
以普通账户安全运行MySQL服务,禁止以管理员账号权限运行MySQL服务。在/etc/my.cnf'配置文件中进行以下设置。
[mysqld]
user=mysql
c)删除MySQL数据库多余账户
DROP USER语句可用于删除一个或多个MySQL账户。使用DROP USER命令时,必须确保当前账号拥有MySQL数据库的全局CREATE USER权限或DELETE权限。账户名称的用户和主机部分分别与用户表记录的User和Host列值相对应。
执行DROP USER user;语句,您可以取消一个账户和其权限,并删除来自所有授权表的账户权限记录。
d)删除默认数据库
MySQL初始化后会自动生成test库以进行安装的测试,这会对数据库的安全构成威胁,有必要予以删除,只保留必需的系统数据库即可,以后可以根据需要增加数据库。
2.3.4 安全审计
安全审计主要是通过系统日志功能实现。
数据库应配置并开启日志功能,便于记录运行状况和操作行为。MySQL服务有以下几种日志类型:
错误日志:-log-err
查询日志:-log(可选)
慢查询日志:-log-slow-queries(可选)
更新日志:-log-update
二进制日志:-log-bin
找到MySQL的安装目录,在my.1m配置文件中增加上述所需的日志类型参数,保存配置文件后,重启MySQL服务即可启用日志功能。
2.4 运行安全
2.4.1 系统漏洞分析
在企业内部网络环境中,可以配备数据库漏洞扫描系统,综合分析数据库访问控制、数据库审计、资源管理、数据库加密以及数据库系统本身安全机制。漏洞扫描系统可以读取数据库的信息与安全策略并进行综合分析,在查出数据库中存在的漏洞后自动给出详细的漏洞描述、漏洞来源及修复建议、并提供完整的数据库漏洞报告、数据库安全评估报告。数据库管理员应据此报告及时下载相应补丁对数据库进行漏洞修复,没有补丁的应及时修改安全策略,最大限度地保护数据库的安全。
2.4.2 备份与恢复
MySQL数据库作为应用系统的核心促成部分,为其制定一个合适的、可操作的备份和恢复计划至关重要。
数据库备份可以分为物理备份和逻辑备份两类。
物理备份是在操作系统层面上对数据库的数据文件进行备份,物理备份分为冷备份和热备份两种。冷备份是将数据库正常关闭,在停止状态下将数据库的文件全部备份下来。热备份分为两种方式,一种是不关闭数据库,将数据库中需要备份的数据文件依次置于备份状态,相对保持静止,然后再将数据库的文件备份下来,备份完毕后再将数据文件恢复为正常状态;另一种方式是利用备份软件(如IBM公司的TSM)在数据库正常运行的状态下,将数据库中的数据文件备份出来。
为了提高物理备份的效率,通常将完全、差异、增量三种备份方式相组合。完全备份是将数据库的内容全部备份,作为增量、累积的基础;差异备份是只备份上次完全备份以来修改的数据;增量备份是备份自上次备份以来修改过的数据。一个备份周期通常由一个完全备份和多个增量、差异备份组成。
逻辑备份是指利用数据库系统自带的工具软件备份和恢复数据库的内容。MySQL数据库可以使用以下命令进行逻辑备份:
mysqldump AE> /dbbackuphuysqldump.、date +%u'
在数据库容量不大的情况下可以选择逻辑备份,针对大型数据库则可结合磁带库采用物理的完全、增量、累积三种备份方式相组合来进行备份。
2.4.3 MySQL复制
复制是备份的一项技术补充,但复制既不是备份也不能够取代备份。它够帮助应用程序避免MySQL单点失败,一个包含复制的设计良好的故障切换系统能够显著地缩短宕机时间。
MySQL复制有三个步骤:
a)在主库上把数据更改记录到二进制文件(Binarylog)中;
b)备库将主库上的日志文件复制到自己的中继日志( Re-lay log);
c)备库读取中继日志中的事件,将其重放到备库数据上。
复制细节如下图所示:
重要业务系统的数据库应启用MySQL复制功能,增加系统整体可靠性。
3 结束语
本文从物理安全、网络安全、主机安全和运行安全等四个方面详细分析了MySQL数据库面临的安全问题及相应加固措施。在实际生产环境中,企业应结合自身业务工作,制定出切实可行的数据库系统安全保密工作方案,保障数据库及应用系统安全。
参考文献:
[1]HarmeetKaurKhanuja. Database Securitv Threats and Challeng-es in Database Forensic:A Survey[A]. The proceedings of 2011International Conference on Advancements in InformationTechnology。2011:6.
[2]馮娜,韩淑芹.计算机网络数据库的安全管理技术研讨[J].通讯世界,2017(3):112.
[3]宣振国.基于Mysql的数据库集群设计与实现[D].北京:北京邮电大学,2013.
[4]程文迪.计算机网络安全技术探析[J].技术与市场,2016,23 (4):119.
[5]严磊.高校教务管理系统中的数据库安全问题与策略研究[Jl.信息技术与信息化,2016 (8):76-78.
【通联编辑:王力】
作者简介:蒋睿,工程师。